From 99dad96bcc60136d6b99f797405e7cbdd5991d09 Mon Sep 17 00:00:00 2001 From: Nicolas Reynolds Date: Wed, 13 Apr 2011 13:17:30 -0300 Subject: FullPkg fixes, ban list, etc. --- fullpkg | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) (limited to 'fullpkg') diff --git a/fullpkg b/fullpkg index 794b191..ac5b005 100755 --- a/fullpkg +++ b/fullpkg @@ -11,7 +11,9 @@ tmp_dir=$(mktemp -d /tmp/$(basename $PWD).XXXXXX) queue_file=$(mktemp /tmp/queue.XXXXXX) +ban_file=$(mktemp) [[ ! -w $queue_file ]] && exit 1 +[[ ! -w $ban_file ]] && exit 1 source /etc/makepkg.conf source /etc/abs.conf @@ -77,6 +79,18 @@ check_queue() { return 0 } +# Checks if the package is banned from building +is_banned() { + rsync -e ssh -aq $PARABOLAHOST:mips64el/ban $ban_file >/dev/null 2>&1 || { + echo ":: Failed to get ban list" + return 0 + } + + grep -w $1 $ban_file >/dev/null 2>&1 + + return $? +} + # TODO keep track of spawned fullpkgs quit() { @@ -86,10 +100,21 @@ quit() { } source PKGBUILD -msg "Building ${pkgbase} ${pkgname[@]}" +msg ":: Building ${pkgbase:-${pkgname[@]}}" + +# is_built doesn't support version checking +#is_built ${pkgbase:-${pkgname[0]}}=${pkgver} && exit 0 +is_built ${pkgbase:-${pkgname[0]}} && exit 0 + +#sudo pacman -Sy trap "quit" SIGTERM SIGKILL +if is_banned ${pkgbase:-$pkgname}; then + echo "This package is banned from building. Check the ban list" + exit 1 +fi + check_queue || exit 1 failed=() @@ -113,15 +138,21 @@ deps=$(echo "${depends[@]} ${makedepends[@]} ${pkgdeps[@]}" | \ msg "Checking dependencies" plain "${deps[@]}" -msg "Syncing database" -sudo pacman -Sy +#msg "Syncing database" +#sudo pacman -Sy for _dep in ${deps[@]}; do is_built $_dep && continue + is_banned $_dep && continue for _repo in ${REPOS[@]}; do # TODO find split packages [[ -e "$ABSROOT/${_repo}/$_dep/PKGBUILD" ]] && { +# source "$ABSROOT/${_repo}/$_dep/PKGBUILD" + +# If this version is built, continue with the next dep +# is_built $_dep=$pkgver && continue 2 + cp -r "$ABSROOT/$_repo/$_dep" $tmp_dir/ || { error "Can't copy $_dep to the work dir." exit 1 @@ -173,12 +204,12 @@ pushd $tmp_dir/$(basename $PWD) >/dev/null msg "Syncing database" sudo pacman -Sy - -makepkg --noconfirm -sLcr ; r=$? +makepkg --noconfirm -sLcr $@ ; r=$? case $r in 0) msg "The build was succesful." mipsrelease *.pkg.tar.* + sudo pacman -Sy ;; 1) error "There were errors while trying to build the package." -- cgit v1.2.2 From 2434277d8cf73c7332b82e5fb8fd968990976fd0 Mon Sep 17 00:00:00 2001 From: Nicolas Reynolds Date: Thu, 14 Apr 2011 13:31:46 -0300 Subject: Version checking --- fullpkg | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'fullpkg') diff --git a/fullpkg b/fullpkg index ac5b005..c3c44a8 100755 --- a/fullpkg +++ b/fullpkg @@ -1,8 +1,8 @@ #!/bin/bash # TODO -# * Do version checking # * Detect circular builds # * Detect pkgnames by provides, replaces, etc. instead of dir tree +# * Detect package repo [[ ! -r PKGBUILD ]] && { echo "This isn't a build directory" @@ -102,9 +102,7 @@ quit() { source PKGBUILD msg ":: Building ${pkgbase:-${pkgname[@]}}" -# is_built doesn't support version checking -#is_built ${pkgbase:-${pkgname[0]}}=${pkgver} && exit 0 -is_built ${pkgbase:-${pkgname[0]}} && exit 0 +is_built "${pkgbase:-${pkgname[0]}}>=${pkgver}" && exit 0 #sudo pacman -Sy @@ -142,16 +140,20 @@ plain "${deps[@]}" #sudo pacman -Sy for _dep in ${deps[@]}; do - is_built $_dep && continue is_banned $_dep && continue for _repo in ${REPOS[@]}; do # TODO find split packages [[ -e "$ABSROOT/${_repo}/$_dep/PKGBUILD" ]] && { -# source "$ABSROOT/${_repo}/$_dep/PKGBUILD" + source "$ABSROOT/${_repo}/$_dep/PKGBUILD" + msg "Checking for $_dep>=$pkgver" # If this version is built, continue with the next dep -# is_built $_dep=$pkgver && continue 2 + + if is_built "$_dep>=$pkgver"; then + msg "No need to build this one" + break + fi cp -r "$ABSROOT/$_repo/$_dep" $tmp_dir/ || { error "Can't copy $_dep to the work dir." -- cgit v1.2.2