diff options
author | tnn <tnn@pkgsrc.org> | 2007-07-01 23:27:43 +0000 |
---|---|---|
committer | tnn <tnn@pkgsrc.org> | 2007-07-01 23:27:43 +0000 |
commit | 0234d40e0a6d9ba2108fc86e59a50c72ad5afa5d (patch) | |
tree | 607f4ce224778db6ffb3444a06c639ad9cfaf82d | |
parent | 79dab0a3c6935eee35c736b291385490eadbcdfa (diff) | |
download | pkgsrc-0234d40e0a6d9ba2108fc86e59a50c72ad5afa5d.tar.gz |
xargs(1) on Interix is broken. It executes the utility on the command line
even if standard input is the empty string. Install a wrapper script
bundled with pkgtools/bootstrap-extras to deal with this. This is an
attempt at a permanent workaround for the problem described in PR pkg/25777
which has regressed since it was initially fixed.
We can now bootstrap again on Interix 3.5.
-rwxr-xr-x | bootstrap/bootstrap | 10 | ||||
-rw-r--r-- | pkgtools/bootstrap-extras/Makefile | 14 | ||||
-rw-r--r-- | pkgtools/bootstrap-extras/PLIST | 3 | ||||
-rw-r--r-- | pkgtools/bootstrap-extras/files/xargs-sh | 13 |
4 files changed, 36 insertions, 4 deletions
diff --git a/bootstrap/bootstrap b/bootstrap/bootstrap index 01a6ff3a7bf..29b1dc670da 100755 --- a/bootstrap/bootstrap +++ b/bootstrap/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh -# $NetBSD: bootstrap,v 1.98 2007/05/30 01:42:59 schmonz Exp $ +# $NetBSD: bootstrap,v 1.99 2007/07/01 23:27:43 tnn Exp $ # # # Copyright (c) 2001-2002 Alistair G. Crooks. All rights reserved. @@ -489,6 +489,7 @@ Interix) need_awk=yes need_sed=yes set_opsys=no + need_xargs=yes # only used for unprivileged builds groupsprog="id -gn" # for bootstrap only; pkgsrc uses CPPFLAGS @@ -771,6 +772,13 @@ if [ "$need_mkdir" = "yes" -a -z "$MKDIR" ]; then need_extras=yes fi +if [ "$need_xargs" = "yes" ]; then + echo_msg "Installing fixed xargs script" + run_cmd "$install_sh -c -o $user -g $group -m 755 $pkgsrcdir/pkgtools/bootstrap-extras/files/xargs-sh $prefix/bin/xargs" + echo "TOOLS_PLATFORM.xargs?= $prefix/bin/xargs" >> ${MKCONF_EXAMPLE} + need_extras=yes +fi + echo_msg "Installing bmake" copy_src $pkgsrcdir/devel/bmake/files bmake run_cmd "(cd $wrkdir/bmake && env CPPFLAGS='$CPPFLAGS -I../../libnbcompat' LDFLAGS='$LDFLAGS -L../../libnbcompat' LIBS='-lnbcompat' $bmakexenv $shprog ./boot-strap $configure_quiet_flags -q -o $opsys --prefix=$prefix --sysconfdir=$sysconfdir --mksrc none --with-default-sys-path="$prefix/share/mk" $bmakexargs)" diff --git a/pkgtools/bootstrap-extras/Makefile b/pkgtools/bootstrap-extras/Makefile index c7fc44c56b7..1aa1acd1524 100644 --- a/pkgtools/bootstrap-extras/Makefile +++ b/pkgtools/bootstrap-extras/Makefile @@ -1,6 +1,6 @@ -# $NetBSD: Makefile,v 1.2 2006/08/24 17:46:53 wiz Exp $ +# $NetBSD: Makefile,v 1.3 2007/07/01 23:27:43 tnn Exp $ -DISTNAME= bootstrap-extra-files-20060824 +DISTNAME= bootstrap-extra-files-20070202 CATEGORIES= pkgtools MASTER_SITES= # empty DISTFILES= # empty @@ -30,6 +30,11 @@ NEED_STRIP.AIX= # empty NEED_STRIP.*= "@comment " PLIST_SUBST+= NEED_STRIP=${NEED_STRIP} +OPSYSVARS+= NEED_XARGS +NEED_XARGS.Interix= # empty +NEED_XARGS.*= "@comment " +PLIST_SUBST+= NEED_XARGS=${NEED_XARGS} + do-extract: ${CP} -R ${FILESDIR} ${WRKSRC} @@ -49,5 +54,10 @@ do-install: ${INSTALL_SCRIPT} ${WRKSRC}/strip-sh \ ${PREFIX}/bin/strip; \ fi + if ${TEST} -z ${NEED_XARGS:M*:Q}""; then \ + ${INSTALL_SCRIPT_DIR} ${PREFIX}/bin; \ + ${INSTALL_SCRIPT} ${WRKSRC}/xargs-sh \ + ${PREFIX}/bin/xargs; \ + fi .include "../../mk/bsd.pkg.mk" diff --git a/pkgtools/bootstrap-extras/PLIST b/pkgtools/bootstrap-extras/PLIST index 8e729b33a58..22a972df021 100644 --- a/pkgtools/bootstrap-extras/PLIST +++ b/pkgtools/bootstrap-extras/PLIST @@ -1,4 +1,5 @@ -@comment $NetBSD: PLIST,v 1.1.1.1 2006/07/17 14:21:31 jlam Exp $ +@comment $NetBSD: PLIST,v 1.2 2007/07/01 23:27:43 tnn Exp $ ${NEED_MKDIR}bin/mkdir-sh ${NEED_STRIP}bin/strip ${NEED_FAKELDD}sbin/fakeldd +${NEED_XARGS}bin/xargs diff --git a/pkgtools/bootstrap-extras/files/xargs-sh b/pkgtools/bootstrap-extras/files/xargs-sh new file mode 100644 index 00000000000..2c961548378 --- /dev/null +++ b/pkgtools/bootstrap-extras/files/xargs-sh @@ -0,0 +1,13 @@ +#! /bin/sh +# +# $NetBSD: xargs-sh,v 1.1 2007/07/01 23:27:43 tnn Exp $ +# +# xargs(1) on Interix is broken. It executes the utility on the command line +# even if standard input is the empty string. + +d="`/bin/cat`" +if [ "$d" != "" ] +then +echo "$d" | /bin/xargs $@ +exit $? +fi |