diff options
-rwxr-xr-x | fullpkg | 45 | ||||
-rwxr-xr-x | libremakepkg | 2 | ||||
-rwxr-xr-x | mipsrelease | 23 |
3 files changed, 52 insertions, 18 deletions
@@ -30,7 +30,7 @@ function usage { echo "OPTIONS:" echo " -h : this message." echo " -a absdir : set absdir as ABSROOT." - echo " -b : do not check deps but build. Needs -d" + echo " -b build_dir : use a fullpkg build_dir and only build." echo " -c : check deps only, do not build." echo " -d build_dir : use this dir to build. Defaults to mktemp." echo " -n : don't update pacman db." @@ -287,7 +287,7 @@ function _pkg_build () { } msg "Updating pacman db and packages" - sudo pacman -Syu --noconfirm + sudo pacman -Syu --noconfirm || true } echo "built:$(basename $PWD)" >> $build_dir/log @@ -361,11 +361,20 @@ check_deps_only='n' do_cleanup='n' max_level=21 OFFLINE=false -while getopts 'ha:bcCd:l:nm:r:o' arg; do +while getopts 'ha:b:cCd:l:nm:r:o' arg; do case $arg in h) usage; exit 0 ;; a) ABSROOT="$OPTARG" ;; - b) build_only='y' ;; + b) build_only='y' + build_dir="$OPTARG" + [ -z ${build_dir} ] && { + usage + exit 1 + } + [ -e ${build_dir}/BUILDORDER ] && { + error "${build_dir}/BUILDORDER doesn't exist." + exit 1 + };; c) check_deps_only='y' ;; C) do_cleanup='y';; # f) force_build+="-f pkgname " ;; @@ -380,17 +389,21 @@ while getopts 'ha:bcCd:l:nm:r:o' arg; do esac done +if [ ${build_only} == 'n' ]; then + # Check if we are actually on a build directory # Do this early -[ ! -r PKGBUILD ] && { - error "This isn't a build directory" - usage && exit 1 -} + + [ -r PKGBUILD ] && { + error "This isn't a build directory" + usage && exit 1 + } # Add mips64el if missing from arch=() and it isn't an 'any' package -if ! grep mips64el PKGBUILD >/dev/null; then - plain "Adding mips64el arch" - sed -i "s/^\(arch=([^)anym]\+\))/\1 'mips64el')/" "PKGBUILD" + if ! grep mips64el PKGBUILD >/dev/null; then + plain "Adding mips64el arch" + sed -i "s/^\(arch=([^)anym]\+\))/\1 'mips64el')/" "PKGBUILD" + fi fi # Only on level 0 @@ -399,16 +412,16 @@ if [ $level -eq 0 ]; then build_dir=${build_dir:-$(mktemp -d /tmp/fullpkg.XXXXXX)} # make files for log and buildorder - touch $build_dir/{log,BUILDORDER} - buildorder=$build_dir/BUILDORDER + touch ${build_dir}/{log,BUILDORDER} + buildorder=${build_dir}/BUILDORDER - [ $noupdate = 'n' ] && { + [ ${noupdate} = 'n' ] && { msg "Updating pacman db and packages" - sudo pacman -Syu --noconfirm + sudo pacman -Syu --noconfirm || true } # Build only - [ $build_only == 'y' ] && { + [ ${build_only} == 'y' ] && { _pkg_build exit 0 } diff --git a/libremakepkg b/libremakepkg index af18e8e..58dc352 100755 --- a/libremakepkg +++ b/libremakepkg @@ -89,7 +89,7 @@ msg "Creating the package" makechrootpkg $_CLEAN -r ${CHROOTDIR} -l "${chrootname}" $_PKGINSTALL -- $_MAKEPKG_ARGS ev=$? # exit value -[ $ev -ne 0 -a "$use_log" == 'y' ] && { +[ $ev -ne 0 -a "$use_log" == 'y' -a -e ${CHROOTDIR}/${chrootname}/build/*.log ] && { cp ${CHROOTDIR}/${chrootname}/build/*.log ./ } exit $ev diff --git a/mipsrelease b/mipsrelease index a4e4394..a21eaec 100755 --- a/mipsrelease +++ b/mipsrelease @@ -10,18 +10,39 @@ source /etc/makepkg.conf source /etc/libretools.conf +usage() { + echo "$0 repo package1 [ package2 ... packageN ]" + echo + echo " release packages locally on ${PKGDEST}/stage3." + echo " and make a clean ABS sync " +} + +## +# usage : get_full_version( $epoch, $pkgver, $pkgrel ) +# return : full version spec, including epoch (if necessary), pkgver, pkgrel +## +get_full_version() { + if [[ $1 -eq 0 ]]; then + # zero epoch case, don't include it in version + echo $2-$3 + else + echo $1:$2-$3 + fi +} + repo=$1; shift repo-add ${PKGDEST}/stage3.db.tar.gz $@ # Get all needed sources source PKGBUILD +fullver=$(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}) makepkg --source mkdir -p ${WORKDIR}/abs/${CARCH}/${repo} >/dev/null pushd ${WORKDIR}/abs/${CARCH}/${repo} >/dev/null - tar xvf $SRCPKGDEST/${pkgbase:-${pkgname[0]}}-${pkgver}-${pkgrel}${SRCEXT} + tar xvf $SRCPKGDEST/${pkgbase:-${pkgname[0]}}-${fullver}${SRCEXT} popd >/dev/null exit $? |