diff --git a/pkgadd b/pkgadd index 3d43939..f24b160 100755 --- a/pkgadd +++ b/pkgadd @@ -119,19 +119,20 @@ isinstalled() { fi } +run_scripts() { + if [ "$ROOT_DIR" ]; then + xchroot "$ROOT_DIR" sh $@ + else + sh $@ + fi +} + parse_opts $(extract_opts "$@") +PKG_DB="/var/lib/scratchpkg/index" INDEX_DIR="$ROOT_DIR/var/lib/scratchpkg/index" LOCK_FILE="$ROOT_DIR/var/lib/scratchpkg/spkg.lock" -# disable pre/post install/upgrade script when install to custom root location -if [ "$ROOT_DIR" != "" ]; then - NO_PREINSTALL=yes - NO_POSTINSTALL=yes - NO_PREUPGRADE=yes - NO_POSTUPGRADE=yes -fi - # show help page [ "$SHOWHELP" ] || [ -z "$PKGNAME" ] && { help @@ -244,19 +245,20 @@ fi # pre-install and pre-upgrade script if grep -qx .pkginstall $TMP_PKGADD; then - TMP_PKGINSTALL_SCRIPT="/tmp/.tmp_pkgadd_installscript.$$" - tar -xf "$PKGNAME" .pkginstall -O > "$TMP_PKGINSTALL_SCRIPT" + SCRATCHPKG_DIR="/var/lib/scratchpkg/" + TMP_PKGINSTALL_SCRIPT="$SCRATCHPKG_DIR/pkgadd_installscript" + tar -xf "$PKGNAME" .pkginstall -O > "$ROOT_DIR/$TMP_PKGINSTALL_SCRIPT" if [ ! "$NO_PREINSTALL" ] && [ ! "$UPGRADE_PKG" ]; then (cd "$ROOT_DIR"/ - sh "$TMP_PKGINSTALL_SCRIPT" pre-install "$version" + run_scripts "$TMP_PKGINSTALL_SCRIPT" pre-install "$version" ) fi if [ "$UPGRADE_PKG" ] && [ ! "$NO_PREUPGRADE" ]; then (cd "$ROOT_DIR"/ - sh "$TMP_PKGINSTALL_SCRIPT" pre-upgrade "$version" "$iversion" + run_scripts "$TMP_PKGINSTALL_SCRIPT" pre-upgrade "$version" "$iversion" ) fi - rm -f "$TMP_PKGINSTALL_SCRIPT" + rm -f "$ROOT_DIR/$TMP_PKGINSTALL_SCRIPT" fi # exclude .pkg* files when extract into system @@ -321,12 +323,12 @@ fi if [ -f "$INDEX_DIR/$name/.pkginstall" ]; then if [ ! "$NO_POSTINSTALL" ] && [ ! "$UPGRADE_PKG" ]; then (cd "$ROOT_DIR"/ - sh "$INDEX_DIR/$name/.pkginstall" post-install "$version" + run_scripts "$PKG_DB/$name/.pkginstall" post-install "$version" ) fi if [ "$UPGRADE_PKG" ] && [ ! "$NO_POSTUPGRADE" ]; then (cd "$ROOT_DIR"/ - sh "$INDEX_DIR/$name/.pkginstall" post-upgrade "$version" "$iversion" + run_scripts "$PKG_DB/$name/.pkginstall" post-upgrade "$version" "$iversion" ) fi fi diff --git a/pkgbuild b/pkgbuild index a08fbc9..b5cd758 100755 --- a/pkgbuild +++ b/pkgbuild @@ -665,6 +665,7 @@ main() { abort 0 fi else + msg "Building '$name-$version-$release'..." download_src prepare_src run_build diff --git a/pkgdel b/pkgdel index 161d39f..724135a 100755 --- a/pkgdel +++ b/pkgdel @@ -107,16 +107,19 @@ isinstalled() { fi } +run_scripts() { + if [ "$ROOT_DIR" ]; then + xchroot "$ROOT_DIR" sh $@ + else + sh $@ + fi +} + parse_opts $(extract_opts "$@") +PKG_DB="/var/lib/scratchpkg/index" INDEX_DIR="$ROOT_DIR/var/lib/scratchpkg/index" LOCK_FILE="$ROOT_DIR/var/lib/scratchpkg/spkg.lock" - -# disable pre/post remove script when remove from custom root location -if [ "$ROOT_DIR" != "" ]; then - NO_PREREMOVE=yes - NO_POSTREMOVE=yes -fi # show help page [ "$SHOWHELP" ] || [ -z "$RMNAME" ] && { @@ -124,8 +127,8 @@ fi ret 0 } -# check for root access, non-root only allowed if use custom --root= location -[ "$(id -u)" = "0" ] || [ "$ROOT_DIR" ] || { +# check for root access +[ "$(id -u)" = "0" ] || { echo "Removing package need root access!" ret 1 } @@ -172,7 +175,7 @@ echo "remove: $name-$version-$release..." # pre-remove script if [ ! "$NO_PREREMOVE" ] && [ -f "$INDEX_DIR/$name/.pkginstall" ]; then (cd "$ROOT_DIR"/ - sh "$INDEX_DIR/$name/.pkginstall" pre-remove "$version" + run_scripts "$PKG_DB/$name/.pkginstall" pre-remove "$version" ) fi @@ -187,7 +190,7 @@ rm -f "$reserve" "$dirs" "$remove" "$files" # post-remove script if [ ! "$NO_POSTREMOVE" ] && [ -f "$INDEX_DIR/$name/.pkginstall" ]; then (cd "$ROOT_DIR"/ - sh "$INDEX_DIR/$name/.pkginstall" post-remove "$version" + run_scripts "$PKG_DB/$name/.pkginstall" post-remove "$version" ) fi diff --git a/scratchpkg.alias b/scratchpkg.alias index e1aeb4b..a3b0eab 100644 --- a/scratchpkg.alias +++ b/scratchpkg.alias @@ -5,5 +5,5 @@ # # # example: -# +# openssl libressl # \ No newline at end of file