From: Pierre Schmitz <pie...@archlinux.de>

(cherry picked from commit 76f95dd139094dc2985b6733f23fcb098f07c64e)
---
 test/Makefile                           |  6 +--
 test/cases/db-move.bats                 | 18 ++-----
 test/cases/db-remove.bats               | 10 ++--
 test/cases/db-repo-add.bats             |  9 ++--
 test/cases/db-repo-remove.bats          | 10 ++--
 test/cases/db-update.bats               | 88 +++++++++++++++------------------
 test/cases/ftpdir-cleanup.bats          | 18 ++-----
 test/cases/packages.bats                | 10 ++--
 test/cases/sourceballs.bats             | 14 ++----
 test/fixtures/pkg-single-arch/PKGBUILD  | 12 +++++
 test/fixtures/pkg-single-epoch/PKGBUILD | 13 +++++
 test/lib/common.bash                    | 64 ++++++++++++------------
 12 files changed, 132 insertions(+), 140 deletions(-)
 create mode 100644 test/fixtures/pkg-single-arch/PKGBUILD
 create mode 100644 test/fixtures/pkg-single-epoch/PKGBUILD

diff --git a/test/Makefile b/test/Makefile
index 9a6d18f..da09c4a 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -1,10 +1,10 @@
-PACKAGE_CACHE ?= $(or $(TMPDIR),/tmp)/dbscripts-build
+export BUILDDIR ?= $(or $(TMPDIR),/tmp)/dbscripts-build
 
 test:
-       PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) 
PACKAGE_CACHE=$(PACKAGE_CACHE) bats cases
+       PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) bats cases
 
 test-coverage:
-       PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) 
PACKAGE_CACHE=$(PACKAGE_CACHE) kcov \
+       PATH=$(CURDIR)/../:$(CURDIR)/../cron-jobs/:$(PATH) kcov \
                --include-path=$(CURDIR)/../ \
                
--exclude-path=$(CURDIR)/../test,$(CURDIR)/../cron-jobs/makepkg.conf,$(CURDIR)/../config
 \
                $(COVERAGE_DIR) \
diff --git a/test/cases/db-move.bats b/test/cases/db-move.bats
index a0af0ce..4eea575 100755
--- a/test/cases/db-move.bats
+++ b/test/cases/db-move.bats
@@ -6,9 +6,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage testing "${pkgbase}" "${arch}"
-               done
+               releasePackage testing "${pkgbase}"
        done
 
        db-update
@@ -29,9 +27,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage testing "${pkgbase}" "${arch}"
-               done
+               releasePackage testing "${pkgbase}"
        done
 
        db-update
@@ -52,9 +48,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage testing "${pkgbase}" "${arch}"
-               done
+               releasePackage testing "${pkgbase}"
        done
 
        db-update
@@ -72,7 +66,7 @@ load ../lib/common
        local pkgbase
 
        for pkgbase in "${pkgs[@]}"; do
-               releasePackage testing "${pkgbase}" any
+               releasePackage testing "${pkgbase}"
        done
 
        db-update
@@ -90,9 +84,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage testing "${pkgbase}" "${arch}"
-               done
+               releasePackage testing "${pkgbase}"
        done
 
        db-update
diff --git a/test/cases/db-remove.bats b/test/cases/db-remove.bats
index 5201440..deb0f0e 100755
--- a/test/cases/db-remove.bats
+++ b/test/cases/db-remove.bats
@@ -6,9 +6,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -32,9 +30,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -55,7 +51,7 @@ load ../lib/common
        local pkgbase
 
        for pkgbase in "${pkgs[@]}"; do
-               releasePackage extra "${pkgbase}" any
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats
index 869796a..a04d9bb 100755
--- a/test/cases/db-repo-add.bats
+++ b/test/cases/db-repo-add.bats
@@ -27,8 +27,8 @@ __movePackageToRepo() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
+               releasePackage extra "$pkgbase"
                for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "$pkgbase" "$arch"
                        __movePackageToRepo extra ${pkgbase} ${arch}
                        db-repo-add extra "${arch}" 
"${pkgbase}-1-1-${arch}.pkg.tar.xz"
                done
@@ -46,10 +46,13 @@ __movePackageToRepo() {
        local pkgbase
        local arch
 
+       for pkgbase in "${pkgs[@]}"; do
+               releasePackage extra "$pkgbase"
+       done
+
        for arch in "${ARCH_BUILD[@]}"; do
                add_pkgs=()
                for pkgbase in "${pkgs[@]}"; do
-                       releasePackage extra "$pkgbase" "$arch"
                        __movePackageToRepo extra ${pkgbase} ${arch}
                        add_pkgs+=("${pkgbase}-1-1-${arch}.pkg.tar.xz")
                done
@@ -69,7 +72,7 @@ __movePackageToRepo() {
        local arch
 
        for pkgbase in ${pkgs[@]}; do
-               releasePackage extra ${pkgbase} any
+               releasePackage extra ${pkgbase}
                __movePackageToRepo extra ${pkgbase} any
                db-repo-add extra any ${pkgbase}-1-1-any.pkg.tar.xz
        done
diff --git a/test/cases/db-repo-remove.bats b/test/cases/db-repo-remove.bats
index 165b759..6145f25 100755
--- a/test/cases/db-repo-remove.bats
+++ b/test/cases/db-repo-remove.bats
@@ -6,9 +6,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -32,9 +30,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -55,7 +51,7 @@ load ../lib/common
        local pkgbase
 
        for pkgbase in ${pkgs[@]}; do
-               releasePackage extra ${pkgbase} any
+               releasePackage extra ${pkgbase}
        done
 
        db-update
diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats
index cf60fcd..2fafcd8 100755
--- a/test/cases/db-update.bats
+++ b/test/cases/db-update.bats
@@ -6,9 +6,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -21,15 +19,15 @@ load ../lib/common
 }
 
 @test "add single simple package" {
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-single-arch'
        db-update
-       checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
+       checkPackage extra 'pkg-single-arch-1-1-x86_64.pkg.tar.xz' 'x86_64'
 }
 
 @test "add single epoch package" {
-       releasePackage extra 'pkg-simple-epoch' 'i686'
+       releasePackage extra 'pkg-single-epoch'
        db-update
-       checkPackage extra 'pkg-simple-epoch-1:1-1-i686.pkg.tar.xz' 'i686'
+       checkPackage extra 'pkg-single-epoch-1:1-1-x86_64.pkg.tar.xz' 'x86_64'
 }
 
 @test "add any packages" {
@@ -37,7 +35,7 @@ load ../lib/common
        local pkgbase
 
        for pkgbase in "${pkgs[@]}"; do
-               releasePackage extra "${pkgbase}" any
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -54,9 +52,7 @@ load ../lib/common
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -71,23 +67,23 @@ load ../lib/common
 }
 
 @test "update any package" {
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
        db-update
 
-       updatePackage pkg-any-a any
+       updatePackage pkg-any-a
 
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
        db-update
 
        checkPackage extra pkg-any-a-1-2-any.pkg.tar.xz any
 }
 
 @test "update any package to different repositories at once" {
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
 
-       updatePackage pkg-any-a any
+       updatePackage pkg-any-a
 
-       releasePackage testing pkg-any-a any
+       releasePackage testing pkg-any-a
 
        db-update
 
@@ -96,21 +92,21 @@ load ../lib/common
 }
 
 @test "update same any package to same repository" {
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
        db-update
        checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
 
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
        run db-update
        [ "$status" -ne 0 ]
 }
 
 @test "update same any package to different repositories" {
-       releasePackage extra pkg-any-a any
+       releasePackage extra pkg-any-a
        db-update
        checkPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
 
-       releasePackage testing pkg-any-a any
+       releasePackage testing pkg-any-a
        run db-update
        [ "$status" -ne 0 ]
 
@@ -123,9 +119,7 @@ load ../lib/common
        local pkgbase='pkg-split-a'
        local arch
 
-       for arch in "${ARCH_BUILD[@]}"; do
-               releasePackage "${repo}" "${pkgbase}" "${arch}"
-       done
+       releasePackage "${repo}" "${pkgbase}"
 
        # remove a split package to make db-update fail
        rm "${STAGING}/extra/${pkgbase}1-"*
@@ -140,26 +134,26 @@ load ../lib/common
 
 @test "unknown repo" {
        mkdir "${STAGING}/unknown/"
-       releasePackage extra 'pkg-simple-a' 'i686'
-       releasePackage unknown 'pkg-simple-b' 'i686'
+       releasePackage extra 'pkg-any-a'
+       releasePackage unknown 'pkg-any-b'
        db-update
-       checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
+       checkPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' any
        [ ! -e "${FTP_BASE}/unknown" ]
        rm -rf "${STAGING}/unknown/"
 }
 
 @test "add unsigned package fails" {
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
        rm "${STAGING}"/extra/*.sig
        run db-update
        [ "$status" -ne 0 ]
 
-       checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686
+       checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
 }
 
 @test "add invalid signed package fails" {
        local p
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
        for p in "${STAGING}"/extra/*${PKGEXT}; do
                unxz "$p"
                xz -0 "${p%%.xz}"
@@ -167,37 +161,37 @@ load ../lib/common
        run db-update
        [ "$status" -ne 0 ]
 
-       checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686
+       checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
 }
 
 @test "add broken signature fails" {
        local s
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
        for s in "${STAGING}"/extra/*.sig; do
                echo 0 > "$s"
        done
        run db-update
        [ "$status" -ne 0 ]
 
-       checkRemovedPackage extra pkg-simple-a-1-1-i686.pkg.tar.xz i686
+       checkRemovedPackage extra pkg-any-a-1-1-any.pkg.tar.xz any
 }
 
 @test "add package with inconsistent version fails" {
        local p
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
 
        for p in "${STAGING}"/extra/*; do
-               mv "${p}" "${p/pkg-simple-a-1/pkg-simple-a-2}"
+               mv "${p}" "${p/pkg-any-a-1/pkg-any-a-2}"
        done
 
        run db-update
        [ "$status" -ne 0 ]
-       checkRemovedPackage extra 'pkg-simple-a-2-1-i686.pkg.tar.xz' 'i686'
+       checkRemovedPackage extra 'pkg-any-a-2-1-any.pkg.tar.xz' 'any'
 }
 
 @test "add package with inconsistent name fails" {
        local p
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
 
        for p in "${STAGING}"/extra/*; do
                mv "${p}" "${p/pkg-/foo-pkg-}"
@@ -205,40 +199,38 @@ load ../lib/common
 
        run db-update
        [ "$status" -ne 0 ]
-       checkRemovedPackage extra 'foo-pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
+       checkRemovedPackage extra 'foo-pkg-any-a-1-1-any.pkg.tar.xz' 'any'
 }
 
 @test "add package with inconsistent pkgbuild fails" {
        skip # abslibre is broken
-       releasePackage extra 'pkg-simple-a' 'i686'
+       releasePackage extra 'pkg-any-a'
 
-       updateRepoPKGBUILD 'pkg-simple-a' extra i686
+       updateRepoPKGBUILD 'pkg-any-a' extra any
 
        run db-update
        [ "$status" -ne 0 ]
-       checkRemovedPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
+       checkRemovedPackage extra 'pkg-any-a-1-1-any.pkg.tar.xz' 'any'
 }
 
 @test "add package with insufficient permissions fails" {
-       releasePackage core 'pkg-simple-a' 'i686'
-       releasePackage extra 'pkg-simple-b' 'i686'
+       releasePackage core 'pkg-any-a'
+       releasePackage extra 'pkg-any-b'
 
        chmod -xwr ${FTP_BASE}/core/os/i686
        run db-update
        [ "$status" -ne 0 ]
        chmod +xwr ${FTP_BASE}/core/os/i686
 
-       checkRemovedPackage core 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
-       checkRemovedPackage extra 'pkg-simple-b-1-1-i686.pkg.tar.xz' 'i686'
+       checkRemovedPackage core 'pkg-any-a-1-1-any.pkg.tar.xz' 'any'
+       checkRemovedPackage extra 'pkg-any-b-1-1-any.pkg.tar.xz' 'any'
 }
 
 @test "package has to be a regular file" {
        local p
        local target=$(mktemp -d)
 
-       for arch in "${ARCH_BUILD[@]}"; do
-               releasePackage extra 'pkg-simple-a' $arch
-       done
+       releasePackage extra 'pkg-simple-a'
 
        for p in "${STAGING}"/extra/*i686*; do
                mv "${p}" "${target}"
diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats
index 2cb2e59..1a46fdf 100755
--- a/test/cases/ftpdir-cleanup.bats
+++ b/test/cases/ftpdir-cleanup.bats
@@ -16,9 +16,7 @@ __checkRepoRemovedPackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -44,9 +42,7 @@ __checkRepoRemovedPackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -69,7 +65,7 @@ __checkRepoRemovedPackage() {
        local arch='any'
 
        for pkgbase in "${pkgs[@]}"; do
-               releasePackage extra "${pkgbase}" any
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -91,9 +87,7 @@ __checkRepoRemovedPackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -122,9 +116,7 @@ __checkRepoRemovedPackage() {
        local arch
 
        for pkgbase in ${pkgs[@]}; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra ${pkgbase} ${arch}
-               done
+               releasePackage extra ${pkgbase}
        done
 
        db-update
diff --git a/test/cases/packages.bats b/test/cases/packages.bats
index 3e0246b..657de91 100755
--- a/test/cases/packages.bats
+++ b/test/cases/packages.bats
@@ -15,16 +15,16 @@ load ../lib/common
 
        for pkgbase in "${tmp}"/*; do
                pushd "${pkgbase}"
+               run namcap -e pkgnameindesc,tags PKGBUILD
+               [ -z "$output" ]
+
+               __buildPackage
+
                # FIXME: Is overriding IFS a bats bug?
                IFS=' '
                pkgarchs=($(. PKGBUILD; echo ${arch[@]}))
                for pkgarch in "${pkgarchs[@]}"; do
                        echo "Building ${pkgbase} on ${pkgarch}"
-                       run namcap -e pkgnameindesc,tags PKGBUILD
-                       [ -z "$output" ]
-
-                       __buildPackage "$pkgarch"
-
                        if [[ $pkgarch != "$ARCH_HOST" && $pkgarch != any ]]; 
then
                                # Cross-arch namcap is silly:
                                #
diff --git a/test/cases/sourceballs.bats b/test/cases/sourceballs.bats
index ba06b8d..f5e41a8 100755
--- a/test/cases/sourceballs.bats
+++ b/test/cases/sourceballs.bats
@@ -16,9 +16,7 @@ __checkRemovedSourcePackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
        db-update
 
@@ -33,7 +31,7 @@ __checkRemovedSourcePackage() {
        local pkgbase
 
        for pkgbase in "${pkgs[@]}"; do
-               releasePackage extra "${pkgbase}" any
+               releasePackage extra "${pkgbase}"
        done
        db-update
 
@@ -50,9 +48,7 @@ __checkRemovedSourcePackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
 
        db-update
@@ -69,9 +65,7 @@ __checkRemovedSourcePackage() {
        local arch
 
        for pkgbase in "${pkgs[@]}"; do
-               for arch in "${ARCH_BUILD[@]}"; do
-                       releasePackage extra "${pkgbase}" "${arch}"
-               done
+               releasePackage extra "${pkgbase}"
        done
        db-update
        sourceballs
diff --git a/test/fixtures/pkg-single-arch/PKGBUILD 
b/test/fixtures/pkg-single-arch/PKGBUILD
new file mode 100644
index 0000000..581efb4
--- /dev/null
+++ b/test/fixtures/pkg-single-arch/PKGBUILD
@@ -0,0 +1,12 @@
+pkgname=pkg-single-arch
+pkgver=1
+pkgrel=1
+pkgdesc="A package called ${pkgname}"
+arch=('x86_64')
+url='http://www.archlinux.org/'
+license=('GPL')
+depends=('glibc')
+
+package() {
+       install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname}
+}
diff --git a/test/fixtures/pkg-single-epoch/PKGBUILD 
b/test/fixtures/pkg-single-epoch/PKGBUILD
new file mode 100644
index 0000000..c1bc3d6
--- /dev/null
+++ b/test/fixtures/pkg-single-epoch/PKGBUILD
@@ -0,0 +1,13 @@
+pkgname=pkg-single-epoch
+pkgver=1
+pkgrel=1
+epoch=1
+pkgdesc="A package called ${pkgname}"
+arch=('x86_64')
+url='http://www.archlinux.org/'
+license=('GPL')
+depends=('glibc')
+
+package() {
+       install -D -m755 /bin/true ${pkgdir}/usr/bin/${pkgname}
+}
diff --git a/test/lib/common.bash b/test/lib/common.bash
index ea01a2d..9c1ae4c 100644
--- a/test/lib/common.bash
+++ b/test/lib/common.bash
@@ -35,37 +35,44 @@ __getCheckSum() {
 }
 
 __buildPackage() {
-       local arch=$1
+       local pkgdest=${1:-.}
        local p
-       local checkSum
+       local cache
+       local pkgarches
+       local tarch
        local pkgnames
 
-       if [[ -n ${PACKAGE_CACHE} ]]; then
-               checkSum=$(__getCheckSum PKGBUILD)
-                       # TODO: Be more specific
-                       if cp -av 
${PACKAGE_CACHE}/${checkSum}/*-${arch}${PKGEXT}{,.sig} .; then
-                               return 0
-                       fi
+       if [[ -n ${BUILDDIR} ]]; then
+               cache=${BUILDDIR}/$(__getCheckSum PKGBUILD)
+               if [[ -d ${cache} ]]; then
+                       cp -Lv ${cache}/*${PKGEXT}{,.sig} ${pkgdest}
+                       return 0
+               else
+                       mkdir -p ${cache}
+               fi
        fi
 
-       if [ "${arch}" == 'any' ]; then
-               sudo librechroot -n "dbscripts@${arch}" make
-       else
-               sudo librechroot -n "dbscripts@${arch}" -A "$arch" make
-       fi
-       sudo libremakepkg -n "dbscripts@${arch}"
+       pkgarches=($(. PKGBUILD; echo ${arch[@]}))
+       for tarch in ${pkgarches[@]}; do
+               if [ "${tarch}" == 'any' ]; then
+                       sudo librechroot -n "dbscripts@${tarch}" make
+               else
+                       sudo librechroot -n "dbscripts@${tarch}" -A "$tarch" 
make
+               fi
+               sudo PKGDEST="${pkgdest}" libremakepkg -n "dbscripts@${tarch}"
+       done
 
        pkgnames=($(. PKGBUILD; print_all_package_names))
+       pushd ${pkgdest}
        for p in ${pkgnames[@]/%/${PKGEXT}}; do
-               [[ ${p} = *-${arch}${PKGEXT} ]] || continue
                # Manually sign packages as "makepkg --sign" is buggy
                gpg -v --detach-sign --no-armor --use-agent ${p}
 
-               if [[ -n ${PACKAGE_CACHE} ]]; then
-                       mkdir -p ${PACKAGE_CACHE}/${checkSum}
-                       cp -Lv ${p}{,.sig} ${PACKAGE_CACHE}/${checkSum}/
+               if [[ -n ${BUILDDIR} ]]; then
+                       cp -Lv ${p}{,.sig} ${cache}/
                fi
        done
+       popd
 }
 
 setup() {
@@ -128,11 +135,8 @@ teardown() {
 releasePackage() {
        local repo=$1
        local pkgbase=$2
-       local arch=$3
-       local a
-       local p
-       local pkgver
-       local pkgname
+       local pkgarches
+       local tarch
 
        if [ ! -d "${TMP}/svn-packages-copy/${pkgbase}/trunk" ]; then
                mkdir -p "${TMP}/svn-packages-copy/${pkgbase}"/{trunk,repos}
@@ -142,23 +146,21 @@ releasePackage() {
        fi
 
        pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/"
-       __buildPackage ${arch}
-       xbs release-client "${repo}" "${arch}"
-       pkgver=$(. PKGBUILD; get_full_version)
-       pkgname=($(. PKGBUILD; echo "${pkgname[@]}"))
-       for p in "${pkgname[@]}"; do
-               cp "${p}-${pkgver}-${arch}"${PKGEXT}{,.sig} 
"${STAGING}/${repo}/"
+
+       __buildPackage "${STAGING}"/${repo}
+       pkgarches=($(. PKGBUILD; echo ${arch[@]}))
+       for tarch in "${pkgarches[@]}"; do
+               xbs release-client "${repo}" "${tarch}"
        done
        popd
 }
 
 updatePackage() {
        local pkgbase=$1
-       local arch=$2
 
        pushd "${TMP}/svn-packages-copy/${pkgbase}/trunk/"
        __updatePKGBUILD
-       __buildPackage ${arch}
+       __buildPackage
        popd
 }
 
-- 
2.16.2

_______________________________________________
Dev mailing list
Dev@lists.parabola.nu
https://lists.parabola.nu/mailman/listinfo/dev

Reply via email to