summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-06-15 07:25:38 -0500
committerJoshua Ismael Haase Hernández <hahj87@gmail.com>2011-06-15 07:25:38 -0500
commit77b766bc5be791ab97fee8c1a8fee14b3debcd2f (patch)
treed0b0bcd06bff9ac92b1d9ea159d1c8ac4cf636b2
parent300888e05f68c187f74b61f3baebf27e6e2d6acc (diff)
fullpkg: -b (build_only) skips first PKGBUILD check, and takes $build_dir as $optarg
mipsrelease has usage and get_full_version
-rwxr-xr-xfullpkg41
-rwxr-xr-xmipsrelease23
2 files changed, 49 insertions, 15 deletions
diff --git a/fullpkg b/fullpkg
index 3edc636..39d4fa9 100755
--- a/fullpkg
+++ b/fullpkg
@@ -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."
@@ -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 || true
}
# Build only
- [ $build_only == 'y' ] && {
+ [ ${build_only} == 'y' ] && {
_pkg_build
exit 0
}
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 $?