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

Aaron Griffin aaronmgriffin at gmail.com
Wed Mar 11 12:35:29 EDT 2009


On Wed, Mar 11, 2009 at 11:26 AM, Abhishek Dasgupta <abhidg at gmail.com> wrote:
> 2009/3/11 Aaron Griffin <aaronmgriffin at gmail.com>:
>> I guess the only thing this DOESN'T take into account is the
>> symlinking part, but that would just be a single "special case" when
>> copying
>>
>
> Modified patch based on the any-arch branch:
> (I've added SVN check for ANYPKGS separately and symlinks)
>
> --- db-update   2009-03-11 21:52:58.000000000 +0530
> +++ db-update   2009-03-11 21:46:46.000000000 +0530
> @@ -79,6 +79,7 @@
>        current_arch="$A"
>
>        ftppath="$FTP_BASE/$reponame/os/$current_arch/"
> +       ftppath_any="$FTP_BASE/$reponame/os/any/"
>
>        if [ ! -d "$ftppath" ]; then
>                echo "FTP path for this repo ($reponame) is missing"
> @@ -105,6 +106,7 @@
>        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
> @@ -145,6 +147,30 @@
>                        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"
> +                                       else
> +                                               echo "    WARNING: $_pkgfile does not match $BUILDSCRIPT in $svnrepo"
> +                                       fi
> +                               else
> +                                       echo "    WARNING: Package $_pkgname not found in $svnrepo"
> +                               fi
> +                       fi
> +               done
> +
> +
>                if [ -n "$to_add" ]; then
>                        cd "$WORKDIR/build/"
>                        for f in $to_add; do /bin/cp "$f" .; done
> @@ -164,12 +190,16 @@
>        # if non empty, move all build dirs
>        if [ $(/bin/ls "$WORKDIR/build/" 2>/dev/null | wc -l) != 0 ]; then
>                echo "Copying new files to '$ftppath'"
> -               for f in "$WORKDIR/build/"*; do
> +               for f in "$WORKDIR/build/"*$current_arch.pkg.tar.gz; do
>                        if ! /bin/cp "$f" "$ftppath"; then
>                                die "error: failure while copying files to $ftppath"
>                        fi
>                done
> -
> +               for f in "$WORKDIR/build/"*any.pkg.tar.gz; do
> +                       /bin/cp "$f" "$ftppath_any" || die "error: failure while copying
> files to $ftppath_any"
> +                       ln -s "$ftppath_any/$f" "$ftppath/$f" || die "error: failed to
> make link for $f."
> +               done
> +               /bin/cp "$WORKDIR/build/$reponame.db"* "$ftppath" || die "failed to
> move repository $reponame-$A".
>        else
>                echo "Nothing to copy, no work done"
>        fi

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


More information about the aur-general mailing list