diff --git a/shells/ksh-devel/Makefile b/shells/ksh-devel/Makefile index 5aad003c2e6d..a8a8abf5509f 100644 --- a/shells/ksh-devel/Makefile +++ b/shells/ksh-devel/Makefile @@ -1,81 +1,80 @@ # Make sure that your configuration DOES NOT set ANY gcc-related # variables. ksh93 will not compile if you set even the seemingly # most unrelated variable related to gcc configuration. This means # especially any flag which attempts to set the cputype. Setting the # cputype does absolutely nothing except cause systems to fail in # horrible ways. For any modern processor, setting the cputype only # serves to expose gcc bugs and does nothing to speed up any known # program. If you are really unconvinced, go ahead but do not # complain to me about it. PORTNAME= ksh PORTVERSION= ${AST_COMMIT_DATE} PORTREVISION= 1 CATEGORIES= shells PKGNAMESUFFIX= -devel MAINTAINER= cy@FreeBSD.org COMMENT= ksh93u+m is the development branch ksh93 based on AT&T ksh93u+ (stable) WWW= http://www.kornshell.com/ LICENSE= EPL -HASH= 2e8aeee9 -AST_COMMIT_DATE= 2024.04.06 +HASH= 1407f3be +AST_COMMIT_DATE= 2024.06.26 USES= compiler:c11 USE_GITHUB= yes GH_ACCOUNT= ksh93 GH_PROJECT= ksh GH_TAGNAME= ${HASH} # IMPORTANT: Disabling conflicts, i.e. -DDISABLE_CONFLICTS will result in # arcane build failures due to already installed ksh/ksh93 in # $PATH. KSH_CONFLICTS= pdksh KSH93_CONFLICTS= ksh93 ast-ksh KSH93D_CONFLICTS= ksh93 ast-ksh OPTIONS_DEFAULT= KSH93 EXAMPLES OPTIONS_DEFINE= EXAMPLES STATIC OPTIONS_SINGLE= BIN_KSH OPTIONS_SINGLE_BIN_KSH= KSH KSH93 KSH93D KSH_DESC= Install to ${PREFIX}/bin/ksh KSH93_DESC= Install to ${PREFIX}/bin/ksh93 KSH93D_DESC= Install to ${PREFIX}/bin/ksh93d (development) CFLAGS+= -DMAP_TYPE LDFLAGS+= -lm MAKE_ENV= CCFLAGS="-Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses" CFLAGS="${CFLAGS}" - STATIC_MAKE_ENV= LDFLAGS+=-static KSH_PLIST_SUB= 93="" KSH93_PLIST_SUB= 93="93" KSH93D_PLIST_SUB= 93="93d" .include .if ${PORT_OPTIONS:MKSH93D} PSUFFIX= 93d .elif ${PORT_OPTIONS:MKSH93} PSUFFIX= 93 .endif post-patch: @${REINPLACE_CMD} -e 's|SF_FLAGS|SFIO_FLAGS|g' ${WRKSRC}/src/lib/libast/include/sfio*.h ${WRKSRC}/src/lib/libast/sfio/*.c do-build: @cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package flat make do-install: ${INSTALL_PROGRAM} ${WRKSRC}/bin/ksh ${STAGEDIR}${PREFIX}/bin/ksh${PSUFFIX} ${INSTALL_MAN} ${WRKSRC}/man/man1/sh.1 ${STAGEDIR}${PREFIX}/share/man/man1/ksh${PSUFFIX}.1 ${MKDIR} ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ cd ${WRKSRC}/fun/ && ${INSTALL_SCRIPT} dirs popd pushd ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}/ do-test: cd ${WRKSRC}/src/cmd/ksh93/tests/ && ${SETENV} SHELL=${WRKSRC}/bin/ksh ${WRKSRC}/bin/ksh shtests .include diff --git a/shells/ksh-devel/distinfo b/shells/ksh-devel/distinfo index be3f2eec79b3..f67d22075699 100644 --- a/shells/ksh-devel/distinfo +++ b/shells/ksh-devel/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1715612864 -SHA256 (ksh93-ksh-2024.04.06-2e8aeee9_GH0.tar.gz) = 517634a35c66117cb82a5808752fcfad2a0286ca74a0364f1ae35960dee8c368 -SIZE (ksh93-ksh-2024.04.06-2e8aeee9_GH0.tar.gz) = 2089545 +TIMESTAMP = 1719406732 +SHA256 (ksh93-ksh-2024.06.26-1407f3be_GH0.tar.gz) = e91b0c27d60af06527feedd0745cd4c63941e88161a4aba61db9a6b044057238 +SIZE (ksh93-ksh-2024.06.26-1407f3be_GH0.tar.gz) = 2088543 diff --git a/shells/ksh-devel/files/patch-src_INIT_mamake.c b/shells/ksh-devel/files/patch-src_INIT_mamake.c new file mode 100644 index 000000000000..6373af9f9c7d --- /dev/null +++ b/shells/ksh-devel/files/patch-src_INIT_mamake.c @@ -0,0 +1,53 @@ +diff --git src/cmd/INIT/mamake.c src/cmd/INIT/mamake.c +index 1cc85f1f..6785ff03 100644 +--- src/cmd/INIT/mamake.c ++++ src/cmd/INIT/mamake.c +@@ -27,7 +27,7 @@ + * coded for portability + */ + +-#define RELEASE_DATE "2024-06-25" ++#define RELEASE_DATE "2024-04-02" + static char id[] = "\n@(#)$Id: mamake (ksh 93u+m) " RELEASE_DATE " $\0\n"; + + #if _PACKAGE_ast +@@ -297,6 +297,7 @@ static struct /* program state */ + int indent; /* debug indent */ + int keepgoing; /* do siblings on error */ + int never; /* never execute */ ++ int probed; /* probe already done */ + int verified; /* don't bother with verify() */ + + Stream_t streams[4]; /* input file stream stack */ +@@ -1346,7 +1347,7 @@ static unsigned long run(Rule_t *r, char *s) + /* find commands in the current working directory first */ + append(buf, + "case $PATH in\n" +- ".:* | :*) ;;\n" ++ ".:*) ;;\n" + "*) PATH=.:$PATH;;\n" + "esac\n" + ); +@@ -1860,7 +1861,7 @@ static unsigned long make(Rule_t *r, int inloop, unsigned long modtime, Buf_t ** + else + s = 0; + /* only bother if t is a path to a *.a we built (i.e. not -l...) */ +- if (t[0] && (t[0] != '-' || t[1] != 'l')) ++ if (t[0] != '-' || t[1] != 'l') + { + q = rule(expand(buf, t)); + attributes(q, v); +@@ -2112,8 +2113,11 @@ static unsigned long make(Rule_t *r, int inloop, unsigned long modtime, Buf_t ** + setval(state.vars, t, v); + if (strcmp(t, "MAMAKE_STRICT") == 0) + state.strict = *v ? atoi(v) : 1; +- else if (strcmp(t, "CC") == 0) +- probe(); ++ } ++ if (!state.probed && strcmp(t, "CC") == 0) ++ { ++ state.probed = 1; ++ probe(); + } + continue; +