[pacman-dev] [PATCH 4/4] makepkg: Fixed sourceball creation of split packages

Eric Bélanger snowmaniscool at gmail.com
Fri Nov 6 10:17:18 EST 2009


In some case, the install script of split packages was not included in the sourceballs. This was due because split packages can specify their install script in the package functions.  They also can use several install scripts.

Signed-off-by: Eric Bélanger <snowmaniscool at gmail.com>
---
 scripts/makepkg.sh.in |   25 ++++++++++++++++++-------
 1 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 8fc7c82..b77cc68 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1060,14 +1060,25 @@ create_srcpackage() {
 	msg2 "$(gettext "Adding %s...")" "$BUILDSCRIPT"
 	ln -s "${BUILDFILE}" "${srclinks}/${pkgbase}/${BUILDSCRIPT}"
 
-	if [ -n "$install" ]; then
-		if [ -f $install ]; then
-			msg2 "$(gettext "Adding install script...")"
-			ln -s "${startdir}/$install" "${srclinks}/${pkgbase}/"
-		else
-			error "$(gettext "Install scriptlet (%s) does not exist.")" "$install"
+	local install_files
+	install_files=$(grep "install=" "$BUILDSCRIPT")
+	for pkg in ${pkgname[@]}; do
+		install_files+=' '
+		install_files+=$(echo $install_files |sed "s/\$pkgname/$pkg/"|sed "s/\${pkgname}/$pkg/")
+		install_files=$(eval echo $install_files |tr '[:blank:]' '\n'|sort |uniq)
+	done
+
+	for f in $install_files; do
+		install="${f#"install="}"
+		if [[ -n "$install" ]]; then
+			if [[ -f $install ]]; then
+				msg2 "$(gettext "Adding install script...")"
+				ln -s "${startdir}/$install" "${srclinks}/${pkgbase}/"
+			else
+				error "$(gettext "Install scriptlet (%s) does not exist.")" "$install"
+			fi
 		fi
-	fi
+	done
 
 	if [ -n "$changelog" ]; then
 		if [ -f "$changelog" ]; then
-- 
1.6.5.2



More information about the pacman-dev mailing list