summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjperkin <jperkin@pkgsrc.org>2021-12-07 12:06:16 +0000
committerjperkin <jperkin@pkgsrc.org>2021-12-07 12:06:16 +0000
commitda45faf9d7b5135015ce92ddc18dff30a6772220 (patch)
tree212b9e6558d3b362dbcd38121f9a970f0d9766cb
parent42493c722311eeaa137dcefa360ada6eb042a0d2 (diff)
downloadpkgsrc-da45faf9d7b5135015ce92ddc18dff30a6772220.tar.gz
gmake: Use the pkgsrc bootstrap shell if set.
Fixes issues seen on e.g. older Solaris with the legacy /bin/sh. Add our bootstrap shells to the list of POSIX-compatible shells, required for correct operation of .ONESHELL mode, fixing the test suite with mksh. Bump PKGREVISION.
-rw-r--r--devel/gmake/Makefile18
-rw-r--r--devel/gmake/distinfo3
-rw-r--r--devel/gmake/patches/patch-src_job.c30
3 files changed, 48 insertions, 3 deletions
diff --git a/devel/gmake/Makefile b/devel/gmake/Makefile
index 16093c54e95..48e033ac88c 100644
--- a/devel/gmake/Makefile
+++ b/devel/gmake/Makefile
@@ -1,8 +1,8 @@
-# $NetBSD: Makefile,v 1.115 2021/05/24 19:49:57 wiz Exp $
+# $NetBSD: Makefile,v 1.116 2021/12/07 12:06:16 jperkin Exp $
DISTNAME= make-4.3
PKGNAME= g${DISTNAME}
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_GNU:=make/}
@@ -31,6 +31,20 @@ CONFIGURE_ARGS+= ac_cv_func_getloadavg_setgid=no
.include "../../mk/bsd.prefs.mk"
+#
+# Keep in sync with devel/bmake, the goal is to ensure we use the same shell
+# that was selected by bootstrap.
+#
+.if ${TOOLS_PLATFORM.sh:M?*/bin/mksh}
+DEPENDS+= mksh-[0-9]*:../../shells/mksh
+CPPFLAGS+= -DPKGSRC_DEFAULT_SHELL="\"${PREFIX}/bin/mksh\""
+.elif ${TOOLS_PLATFORM.sh:M?*/bin/pdksh}
+DEPENDS+= pdksh-[0-9]*:../../shells/pdksh
+CPPFLAGS+= -DPKGSRC_DEFAULT_SHELL="\"${PREFIX}/bin/pdksh\""
+.elif ${OPSYS} == "SunOS" && exists(/usr/bin/bash)
+CPPFLAGS+= -DPKGSRC_DEFAULT_SHELL="\"/usr/bin/bash\""
+.endif
+
# kernel bug, fixed in NetBSD 9.99.82
.if ${OPSYS} == "NetBSD" && !empty(OS_VERSION:M[0-9].*)
CONFIGURE_ARGS.NetBSD+= --disable-posix-spawn
diff --git a/devel/gmake/distinfo b/devel/gmake/distinfo
index ebbd6dad0f3..ab8ded7cbcc 100644
--- a/devel/gmake/distinfo
+++ b/devel/gmake/distinfo
@@ -1,7 +1,8 @@
-$NetBSD: distinfo,v 1.42 2021/10/26 10:14:43 nia Exp $
+$NetBSD: distinfo,v 1.43 2021/12/07 12:06:16 jperkin Exp $
BLAKE2s (make-4.3.tar.gz) = 09e086f44defc3367ab2d167711675cf77ea82c79f134b3133c191f8d7ac58ae
SHA512 (make-4.3.tar.gz) = 9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b
Size (make-4.3.tar.gz) = 2317073 bytes
SHA1 (patch-af) = 8ff060ecba9d664044eabd98741253881d8c9bbe
SHA1 (patch-src_hash.c) = 755de04a4f9a63f5bfc2520026344d6dc8654992
+SHA1 (patch-src_job.c) = 3514e409af0d704cb657409721e0819109251051
diff --git a/devel/gmake/patches/patch-src_job.c b/devel/gmake/patches/patch-src_job.c
new file mode 100644
index 00000000000..ff746807a22
--- /dev/null
+++ b/devel/gmake/patches/patch-src_job.c
@@ -0,0 +1,30 @@
+$NetBSD: patch-src_job.c,v 1.1 2021/12/07 12:06:16 jperkin Exp $
+
+If we bootstrap pkgsrc with a different shell, use it.
+
+Add our bootstrap shells to the POSIX-compatible list, required for correct
+operation of .ONESHELL mode.
+
+--- src/job.c.orig 2020-01-19 20:32:59.000000000 +0000
++++ src/job.c
+@@ -77,7 +77,11 @@ char * vms_strsignal (int status);
+
+ #else
+
++#ifdef PKGSRC_DEFAULT_SHELL
++const char *default_shell = PKGSRC_DEFAULT_SHELL;
++#else
+ const char *default_shell = "/bin/sh";
++#endif
+ int batch_mode_shell = 0;
+
+ #endif
+@@ -433,6 +437,8 @@ is_bourne_compatible_shell (const char *
+ "zsh",
+ "ash",
+ "dash",
++ "mksh",
++ "pdksh",
+ NULL
+ };
+ const char **s;