From: wang biao Date: Wed, 18 Oct 2023 08:51:50 +0000 (+0800) Subject: Support different interpreters in prein/postin scriptlets X-Git-Tag: accepted/tools/devbase/tools/legacy/20250527.042449~2^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F00%2F300200%2F2;p=tools%2Fbuild.git Support different interpreters in prein/postin scriptlets In default, it use /bin/sh as prein/postin scriptlets interpreter, but it also allow lua or perl other kinds of interpeter to run scripts. Change-Id: Ie01ee8af5154c2f7b73c55a897722b4cb6031928 Signed-off-by: wang biao --- diff --git a/build-pkg-rpm b/build-pkg-rpm index 0b31576..607edf7 100644 --- a/build-pkg-rpm +++ b/build-pkg-rpm @@ -186,7 +186,9 @@ pkg_preinstall_rpm() { fi if test -e ".init_b_cache/scripts/$PKG.run" ; then rpm -qp --nodigest --nosignature --qf "%{PREIN}" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.pre" + rpm -qp --nodigest --nosignature --qf "%{PREINPROG}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.preprog" rpm -qp --nodigest --nosignature --qf "%{POSTIN}" "'$BUILD_ROOT'/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.post" + rpm -qp --nodigest --nosignature --qf "%{POSTINPROG}" "$BUILD_ROOT/.init_b_cache/rpms/$PKG.rpm" > ".init_b_cache/scripts/$PKG.postprog" echo -n '(none)' > .init_b_cache/scripts/.none cmp -s ".init_b_cache/scripts/$PKG.pre" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$PKG.pre" cmp -s ".init_b_cache/scripts/$PKG.post" .init_b_cache/scripts/.none && rm -f ".init_b_cache/scripts/$PKG.post" @@ -204,12 +206,16 @@ pkg_preinstall_rpm() { pkg_runscripts_rpm() { if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" ; then echo "running $PKG preinstall script" - (cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" sh ".init_b_cache/scripts/$PKG.pre" 0) - rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" + local prog + read prog < "$BUILD_ROOT/.init_b_cache/scripts/$PKG.preprog" + (cd $BUILD_ROOT && chroot $BUILD_ROOT "${prog:-sh}" ".init_b_cache/scripts/$PKG.pre" 0) + rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.pre" "$BUILD_ROOT/.init_b_cache/scripts/$PKG.preprog" fi if test -e "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" ; then echo "running $PKG postinstall script" - (cd "$BUILD_ROOT" && chroot "$BUILD_ROOT" sh ".init_b_cache/scripts/$PKG.post" 1) - rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" + local prog + read prog < "$BUILD_ROOT/.init_b_cache/scripts/$PKG.postprog" + (cd $BUILD_ROOT && chroot $BUILD_ROOT "${prog:-sh}" ".init_b_cache/scripts/$PKG.post" 1) + rm -f "$BUILD_ROOT/.init_b_cache/scripts/$PKG.post" "$BUILD_ROOT/.init_b_cache/scripts/$PKG.postprog" fi }