From 533ffdeb862a71e831fffe9bf970c260a9b260ac Mon Sep 17 00:00:00 2001 From: jmmv Date: Tue, 13 Apr 2010 16:46:01 +0000 Subject: Update to 1.32: * Do not force the install target to take a full package name. pkg_add will automatically pick the latest version. * When building a package as part of makeroot, make sure it actually gets installed. This is to fix a regression with the switch to USE_DESTDIR=yes. Otherwise these packages will get rebuilt later on when needed. * It is common for calls to mktemp to have 6 placeholders in the template, not 4. Make it so. --- pkgtools/pkg_comp/Makefile | 4 +- pkgtools/pkg_comp/files/pkg_comp.8 | 7 ++-- pkgtools/pkg_comp/files/pkg_comp.sh | 74 +++++++++++++++++++++++++------------ 3 files changed, 57 insertions(+), 28 deletions(-) diff --git a/pkgtools/pkg_comp/Makefile b/pkgtools/pkg_comp/Makefile index 3999ba4e3e1..a58f3944956 100644 --- a/pkgtools/pkg_comp/Makefile +++ b/pkgtools/pkg_comp/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.43 2009/04/09 00:48:12 joerg Exp $ +# $NetBSD: Makefile,v 1.44 2010/04/13 16:46:01 jmmv Exp $ -DISTNAME= pkg_comp-1.31 +DISTNAME= pkg_comp-1.32 CATEGORIES= pkgtools MASTER_SITES= # empty DISTFILES= # empty diff --git a/pkgtools/pkg_comp/files/pkg_comp.8 b/pkgtools/pkg_comp/files/pkg_comp.8 index a211b610fd0..2081ba5493e 100644 --- a/pkgtools/pkg_comp/files/pkg_comp.8 +++ b/pkgtools/pkg_comp/files/pkg_comp.8 @@ -1,4 +1,4 @@ -.\" $NetBSD: pkg_comp.8,v 1.32 2009/05/13 10:39:52 wiz Exp $ +.\" $NetBSD: pkg_comp.8,v 1.33 2010/04/13 16:46:01 jmmv Exp $ .\" .\" pkg_comp - Build packages inside a clean chroot environment .\" Copyright (c) 2002, 2003, 2004, 2005 Julio M. Merino Vidal @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd October 27, 2007 +.Dd April 13, 2010 .Dt PKG_COMP 8 .Os .Sh NAME @@ -475,7 +475,8 @@ You need to pass their names as relative paths inside pkgsrc, like .Pa pkgtools/pkg_comp . .It install Install the specified binary packages into the chroot. -You must specify the full name of the package and they must reside inside +Package names can contain globs. +The package files will be taken from within .Sy REAL_PACKAGES . .It chroot Enters the chroot environment. diff --git a/pkgtools/pkg_comp/files/pkg_comp.sh b/pkgtools/pkg_comp/files/pkg_comp.sh index b4f9eb196fb..3c7e0684c36 100644 --- a/pkgtools/pkg_comp/files/pkg_comp.sh +++ b/pkgtools/pkg_comp/files/pkg_comp.sh @@ -1,6 +1,6 @@ #!/bin/sh # -# $NetBSD: pkg_comp.sh,v 1.35 2009/05/13 10:40:24 wiz Exp $ +# $NetBSD: pkg_comp.sh,v 1.36 2010/04/13 16:46:01 jmmv Exp $ # # pkg_comp - Build packages inside a clean chroot environment # Copyright (c) 2002, 2003, 2004, 2005 Julio M. Merino Vidal @@ -228,7 +228,7 @@ fsmount() count=`cat $fsstate` count=$(($count + 1)) echo "$count" > $fsstate - echo "Already mounted by another pkg_comp process." + echo "Already mounted (maybe by another pkg_comp process?)" return else echo "1" > $fsstate @@ -306,7 +306,7 @@ fsumount() if [ $count -gt 1 ]; then count=$(($count - 1)) echo "$count" > $fsstate - echo "Still in use by another pkg_comp process." + echo "Still in use (maybe by another pkg_comp process?)" return fi @@ -414,7 +414,7 @@ pkg_makeroot() pkg_install $INSTALL_PACKAGES [ "$nflag" = "no" -a -n "$BUILD_PACKAGES" ] && - pkg_build $BUILD_PACKAGES + build_and_install $BUILD_PACKAGES } # makeroot @@ -532,7 +532,7 @@ makeroot() if [ "$USE_GCC3" = "yes" -a "$Nflag" = "no" ]; then if [ -z "`echo $BUILD_PACKAGES $INSTALL_PACKAGES | grep gcc3`" ]; then - AVOID_GCC3=yes pkg_build lang/gcc3 + AVOID_GCC3=yes build_and_install lang/gcc3 fi fi @@ -611,7 +611,8 @@ EOF # makeroot_digest() { - ( PKGSRC_COMPILER=gcc; export PKGSRC_COMPILER; pkg_build pkgtools/digest ) + ( PKGSRC_COMPILER=gcc; export PKGSRC_COMPILER; \ + build_and_install pkgtools/digest ) } # makeroot_libkver @@ -626,7 +627,7 @@ makeroot_libkver() if [ "$NETBSD_RELEASE" != "no" ]; then _BUILD_TARGET="$BUILD_TARGET" BUILD_TARGET="standalone-install" - pkg_build pkgtools/libkver + build_and_install pkgtools/libkver BUILD_TARGET="$_BUILD_TARGET" echo "LD_PRELOAD=${LIBKVER_STANDALONE_PREFIX}/lib/libkver.so; export LD_PRELOAD" >> $DESTDIR/etc/shrc echo "setenv LD_PRELOAD ${LIBKVER_STANDALONE_PREFIX}/lib/libkver.so" >> $DESTDIR/etc/csh.login @@ -648,7 +649,7 @@ makeroot_x11() echo "export XAPPLRESDIR=${LOCALBASE}/lib/X11/app-defaults" >> $DESTDIR/etc/profile echo "setenv XAPPLRESDIR ${LOCALBASE}/lib/X11/app-defaults" >> $DESTDIR/etc/csh.login fi - [ "$Nflag" = "no" ] && pkg_build pkgtools/x11-links + [ "$Nflag" = "no" ] && build_and_install pkgtools/x11-links fi } @@ -723,7 +724,7 @@ pkg_build() failed="" for p in $pkgs; do echo "PKG_COMP ==> Building and installing $p" - prefix=`mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXX` + prefix=$(mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXXXX) rm $prefix script="$prefix.sh" statfile="$prefix.stat" @@ -771,7 +772,7 @@ check_pkg_install() # We assume filesystems are mounted! echo "PKG_COMP ==> Checking if pkg_install is up to date" - script=`mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXX`.sh + script=$(mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXXXX).sh init_script $script cat >> $script <>${script} </dev/null; then + : +else + echo "PKG_COMP ==> Forcing installation of \${pkgname}" + cd /pkg_comp/packages/All + pkg_add \${pkgname} +fi +EOF + chmod +x ${script} + chroot ${DESTDIR} /pkg_comp/tmp/$(basename ${script}) + rm ${script} + fi + fsumount +} + # ---------------------------------------------------------------------- # install target # ---------------------------------------------------------------------- @@ -808,21 +840,17 @@ pkg_install() fsmount failed="" - for p in $pkgs; do - if [ -f $DESTDIR/pkg_comp/packages/All/$p ]; then - echo "PKG_COMP ==> Installing binary package: $p" - stat=$DESTDIR/pkg_comp/tmp/install.sh - init_script $stat - cat >> $stat < Installing binary package: $p" + stat=$DESTDIR/pkg_comp/tmp/install.sh + init_script $stat + cat >> $stat < Entering sandbox \`$DESTDIR'" - prefix=`mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXX` + prefix=$(mktemp $DESTDIR/pkg_comp/tmp/pkg_comp-XXXXXX) rm $prefix script="$prefix.sh" init_script $script -- cgit v1.2.3