diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-05-10 18:06:29 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-05-10 18:06:29 -0400 |
commit | 33730fc272bec6376a28d8f813e9e35ec4f84175 (patch) | |
tree | 0b85c3687a968fe83baa879952984f18f75f3061 | |
parent | 534d2015b45e013b37e1edbb997bd4df27d7b8fd (diff) | |
parent | 905198295dcb4fffcd16edff3fd7052a4cfc5788 (diff) |
Merge remote-tracking branch 'arch/master'
Conflicts:
lib/common.sh
makechrootpkg.in
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | arch-nspawn.in | 2 | ||||
-rw-r--r-- | archbuild.in | 4 | ||||
-rw-r--r-- | lib/common.sh | 23 | ||||
-rw-r--r-- | makechrootpkg.in | 13 | ||||
-rw-r--r-- | makepkg-i686.conf | 4 | ||||
-rw-r--r-- | makepkg-x86_64.conf | 4 | ||||
-rw-r--r-- | mkarchroot.in | 3 |
8 files changed, 34 insertions, 21 deletions
@@ -1,4 +1,4 @@ -V=20131107 +V=20140510 PREFIX = /usr/local diff --git a/arch-nspawn.in b/arch-nspawn.in index 94002f1..0bdd921 100644 --- a/arch-nspawn.in +++ b/arch-nspawn.in @@ -37,8 +37,8 @@ while getopts 'hC:M:c:' arg; do done shift $(($OPTIND - 1)) -(( $EUID != 0 )) && die 'This script must be run as root.' (( $# < 1 )) && die 'You must specify a directory.' +check_root "$0" "$@" working_dir=$(readlink -f "$1") shift 1 diff --git a/archbuild.in b/archbuild.in index ec70b59..64e0904 100644 --- a/archbuild.in +++ b/archbuild.in @@ -40,9 +40,7 @@ done # Pass all arguments after -- right to makepkg makechrootpkg_args+=("${@:$OPTIND}") -if (( EUID )); then - die 'This script must be run as root.' -fi +check_root "$0" "$@" if ${clean_first} || [[ ! -d "${chroots}/${repo}-${arch}" ]]; then msg "Creating chroot for [%s] (%s)..." "${repo}" "${arch}" diff --git a/lib/common.sh b/lib/common.sh index dff9b43..455e841 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -71,12 +71,12 @@ cleanup() { if [[ -n ${WORKDIR:-} ]] && $_setup_workdir; then rm -rf "$WORKDIR" fi - [[ -n ${1:-} ]] && exit $1 + exit ${1:-0} } abort() { - msg 'Aborting...' - cleanup 0 + error 'Aborting...' + cleanup 255 } trap_abort() { @@ -91,7 +91,7 @@ trap_exit() { die() { (( $# )) && error "$@" - cleanup 1 + cleanup 255 } ## @@ -117,7 +117,7 @@ get_full_version() { pkgbase=${pkgbase:-${pkgname[0]}} epoch=${epoch:-0} if [[ -z $1 ]]; then - if [[ $epoch ]] && (( ! $epoch )); then + if (( ! epoch )); then echo $pkgver-$pkgrel else echo $epoch:$pkgver-$pkgrel @@ -258,3 +258,16 @@ find_cached_package() { return 1 esac } + +## +# usage : check_root ("$0" "$@") +## +check_root() { + (( EUID == 0 )) && return + if type -P sudo >/dev/null; then + exec sudo -- "$@" + else + exec su root -c "$(printf '%q' "$@")" + fi + die 'This script must be run as root.' +} diff --git a/makechrootpkg.in b/makechrootpkg.in index 71fd5d9..e2dd0b7 100644 --- a/makechrootpkg.in +++ b/makechrootpkg.in @@ -36,8 +36,8 @@ src_owner=${SUDO_USER:-$USER} usage() { echo "Usage: ${0##*/} [options] -r <chrootdir> [--] [makepkg args]" echo ' Run this script in a PKGBUILD dir to build a package inside a' - echo ' clean chroot. All unrecognized arguments passed to this script' - echo ' will be passed to makepkg.' + echo ' clean chroot. Arguments passed to this script after the' + echo ' end-of-options marker (--) will be passed to makepkg.' echo '' echo ' The chroot dir consists of the following directories:' echo ' <chrootdir>/{root, copy} but only "root" is required' @@ -79,12 +79,10 @@ while getopts 'hcur:I:l:nTD:d:' arg; do l) copy="$OPTARG" ;; n) run_namcap=true; makepkg_args+=('-i') ;; T) temp_chroot=true; copy+="-$$" ;; - *) usage >&2 ;; esac done -shift $(($OPTIND - 1)) -(( EUID != 0 )) && die 'This script must be run as root.' +check_root "$0" "$@" [[ ! -f PKGBUILD && -z "${install_pkgs[*]}" ]] && die 'This must be run in a directory containing a PKGBUILD.' @@ -103,7 +101,7 @@ else fi # Pass all arguments after -- right to makepkg -makepkg_args+=("$@") +makepkg_args+=("${@:OPTIND}") # See if -R was passed to makepkg for arg in "${@:OPTIND}"; do @@ -160,6 +158,9 @@ create_chroot() { # Drop the read lock again lock_close 8 fi + + # Update mtime + touch "$copydir" } clean_temporary() { diff --git a/makepkg-i686.conf b/makepkg-i686.conf index fcb131f..da249f6 100644 --- a/makepkg-i686.conf +++ b/makepkg-i686.conf @@ -30,8 +30,8 @@ CHOST="i686-pc-linux-gnu" # -march (or -mcpu) builds exclusively for an architecture # -mtune optimizes for an architecture, but builds for whole processor family CPPFLAGS="-D_FORTIFY_SOURCE=2" -CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4" -CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4" +CFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" +CXXFLAGS="-march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro" #-- Make Flags: change this for DistCC/SMP systems #MAKEFLAGS="-j2" diff --git a/makepkg-x86_64.conf b/makepkg-x86_64.conf index 330c242..33dbe99 100644 --- a/makepkg-x86_64.conf +++ b/makepkg-x86_64.conf @@ -30,8 +30,8 @@ CHOST="x86_64-unknown-linux-gnu" # -march (or -mcpu) builds exclusively for an architecture # -mtune optimizes for an architecture, but builds for whole processor family CPPFLAGS="-D_FORTIFY_SOURCE=2" -CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4" -CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4" +CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" +CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4" LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro" #-- Make Flags: change this for DistCC/SMP systems #MAKEFLAGS="-j2" diff --git a/mkarchroot.in b/mkarchroot.in index 07bf7c6..09ba64f 100644 --- a/mkarchroot.in +++ b/mkarchroot.in @@ -35,9 +35,10 @@ while getopts 'hC:M:c:' arg; do done shift $(($OPTIND - 1)) -(( $EUID != 0 )) && die 'This script must be run as root.' (( $# < 2 )) && die 'You must specify a directory and one or more packages.' +check_root "$0" "$@" + working_dir="$(readlink -f $1)" shift 1 |