[aur-general] [PATCH] initial support for any architecture.

Abhishek Dasgupta abhidg at gmail.com
Wed Mar 11 13:48:14 EDT 2009


2009/3/11 Aaron Griffin <aaronmgriffin at gmail.com>:
> Committed.
>
> One problem I see is that the "rm $to_add" will delete the any
> packages for the first arch, so they won't be processed for the next
> arch in the loop. I committed the patch anyway, but that will still
> need to be fixed

Thanks. I've moved processing of architecture-independent packages
out of the loop and am now storing the any packages list in to_add_any.
That should fix the problem. BTW, trying to git pull from
  http://code.phraktured.net/git/arch/dbscripts/.git
gives the error:
  fatal: http://code.phraktured.net/git/arch/dbscripts/.git/info/refs not found:
  did you run git update-server-info on the server?


--- db-update	2009-03-11 22:32:39.000000000 +0530
+++ db-update	2009-03-11 23:09:30.000000000 +0530
@@ -76,6 +76,42 @@
 trap ctrl_c 2
 trap cleanup 0

+# Process architecture-independent packages first.
+if [ -d "$stagedir" ]; then
+	ANYPKGS="$(/bin/ls $stagedir/*-any$PKGEXT 2>/dev/null)"
+fi
+
+echo "==> Processing new/updated arch-independent packages for
'$reponame'..." >&2
+cd "$WORKDIR"
+svnpath="$(get_svnpath $reponame)"
+/usr/bin/svn checkout -N $svnpath checkout
+cd checkout
+to_add_any=""
+if [ -n "$ANYPKGS" ]; then
+	for pkg in $ANYPKGS; do
+		_pkgfile=$(basename $pkg)
+		_pkgname="$(getpkgname $pkg)"
+		svnrepo="$reponame-any"
+		echo "    Validating package arch (any) $_pkgname"
+		if ! check_pkg_arch "$pkg" "any"; then
+			echo "   ERROR: $_pkgfile is not architecture independent!"
+		else
+			echo "    Checking SVN for $_pkgname"
+			/usr/bin/svn up -q $_pkgname
+			if [ -d "$_pkgname/repos/$svnrepo" ]; then
+				. "$_pkgname/repos/$svnrepo/$BUILDSCRIPT"
+				if [ "$_pkgfile" = "$pkgname-$pkgver-$pkgrel-any$PKGEXT" ]; then
+					to_add_any="$to_add_any $pkg"
+				else
+					echo "    WARNING: $_pkgfile does not match $BUILDSCRIPT in $svnrepo"
+				fi
+			else
+				echo "    WARNING: Package $_pkgname not found in $svnrepo"
+			fi
+		fi
+	done
+fi
+
 for A in ${ARCHES[@]}; do
 	current_arch="$A"

@@ -107,10 +143,9 @@
 	to_add=""
 	if [ -d "$stagedir" ]; then
 		ADDPKGS="$(/bin/ls $stagedir/*-${current_arch}$PKGEXT 2>/dev/null)"
-		ANYPKGS="$(/bin/ls $stagedir/*-any$PKGEXT 2>/dev/null)"
 	fi

-	if [ -n "$ADDPKGS" ]; then
+	if [ -n "$ADDPKGS" || -n "$ANYPKGS" ]; then

 		echo "==> Copying DB file from '$reponame'..." >&2
 		if [ -f "$ftppath/$reponame.db.tar.$DB_COMPRESSION" ]; then
@@ -124,59 +159,38 @@
 		cd "$WORKDIR"
 		/usr/bin/svn checkout -N $svnpath checkout
 		cd checkout
-
-		for pkg in $ADDPKGS; do
-			_pkgfile=$(basename $pkg)
-			_pkgname="$(getpkgname $pkg)"
-
-			echo "    Validating package arch ($current_arch) $_pkgname"
-			if ! check_pkg_arch "$pkg" "$current_arch"; then
-				echo "   ERROR: $_pkgfile was built for the wrong architecture"
-			else
-				echo "    Checking SVN for $_pkgname"
-				/usr/bin/svn up -q $_pkgname
-				if [ -d "$_pkgname/repos/$svnrepo" ]; then
-					. "$_pkgname/repos/$svnrepo/$BUILDSCRIPT"
-					if [ "$_pkgfile" = "$pkgname-$pkgver-$pkgrel-$current_arch$PKGEXT" ]; then
-						to_add="$to_add $pkg"
-					else
-						echo "    WARNING: $_pkgfile does not match $BUILDSCRIPT in $svnrepo"
-					fi
+	
+		if [ -n "$ADDPKGS" ]; then
+			for pkg in $ADDPKGS; do
+				_pkgfile=$(basename $pkg)
+				_pkgname="$(getpkgname $pkg)"
+
+				echo "    Validating package arch ($current_arch) $_pkgname"
+				if ! check_pkg_arch "$pkg" "$current_arch"; then
+					echo "   ERROR: $_pkgfile was built for the wrong architecture"
 				else
-					echo "    WARNING: Package $_pkgname not found in $svnrepo"
-				fi
-			fi
-		done
-
-		for pkg in $ANYPKGS; do
-			_pkgfile=$(basename $pkg)
-			_pkgname="$(getpkgname $pkg)"
-			svnrepo="$reponame-any"
-			echo "    Validating package arch (any) $_pkgname"
-			if ! check_pkg_arch "$pkg" "any"; then
-				echo "   ERROR: $_pkgfile is not architecture independent!"
-			else
-				echo "    Checking SVN for $_pkgname"
-				/usr/bin/svn up -q $_pkgname
-				if [ -d "$_pkgname/repos/$svnrepo" ]; then
-					. "$_pkgname/repos/$svnrepo/$BUILDSCRIPT"
-					if [ "$_pkgfile" = "$pkgname-$pkgver-$pkgrel-any$PKGEXT" ]; then
-						to_add="$to_add $pkg"
+					echo "    Checking SVN for $_pkgname"
+					/usr/bin/svn up -q $_pkgname
+					if [ -d "$_pkgname/repos/$svnrepo" ]; then
+						. "$_pkgname/repos/$svnrepo/$BUILDSCRIPT"
+						if [ "$_pkgfile" =
"$pkgname-$pkgver-$pkgrel-$current_arch$PKGEXT" ]; then
+							to_add="$to_add $pkg"
+						else
+							echo "    WARNING: $_pkgfile does not match $BUILDSCRIPT in $svnrepo"
+						fi
 					else
-						echo "    WARNING: $_pkgfile does not match $BUILDSCRIPT in $svnrepo"
+						echo "    WARNING: Package $_pkgname not found in $svnrepo"
 					fi
-				else
-					echo "    WARNING: Package $_pkgname not found in $svnrepo"
 				fi
-			fi
-		done
+			done
+		fi

-		if [ -n "$to_add" ]; then
+		if [ -n "$to_add" || -n "$to_add_any" ]; then
 			cd "$WORKDIR/build/"
-			for f in $to_add; do /bin/cp "$f" .; done
+			for f in $to_add $to_add_any; do /bin/cp "$f" .; done

 			pkgs=""
-			for pkg in $to_add; do pkgs="$pkgs $(basename $pkg)"; done
+			for pkg in $to_add $to_add_any; do pkgs="$pkgs $(basename $pkg)"; done

 			/usr/bin/repo-add -q "$reponame.db.tar.$DB_COMPRESSION" $pkgs
 		else
@@ -218,6 +232,7 @@
 	repo_unlock $reponame $current_arch
 done

+/bin/rm $to_add_any
 cleanup
 # vim: set ts=4 sw=4 noet ft=sh:

-- 
Abhishek


More information about the aur-general mailing list