aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Dekker <martijn@inlv.org>2026-03-03 02:14:07 +0000
committerCy Schubert <cy@FreeBSD.org>2026-03-03 02:24:52 +0000
commit80018994a56b26897efd1e5b170ec91257caa434 (patch)
tree65ef485d7ff1edebe16229126bb85912ee24b0cf
parent99139ce3bdd80f7fbbd1aa13590fcc92d04e0769 (diff)
shells/ksh-devel: Update to latest github commit plus additional fixes
Main changes: - Removal of obsolete comments and build system workarounds. - Update build/test command invocations. - Add -j${MAKE_JOBS_NUMBER} flag to enable parallel building (I added support for this last year). - Ensure that ${SH} (/bin/sh) is used for shell actions while building. - Install default shell functions in /usr/local/share/fun (for use with FPATH and the autoload command). Symlink /usr/local/share/examples/ksh* to that. (Of course you may decide to handle this differently, but it would be good if the canonical share/fun directory were available.) - Install the version with dynamic (*.so*) libraries by default (the STATIC option can now be used to link those libraries statically). The version with the libraries is preferred because this enables access to all the libcmd built-ins (which are bound to /opt/ast/bin by default) and allows writing C programs that link against these libraries -- you can even embed the entire shell as a library. It would be good if this received wider testing. - Install development headers and section 3 manual pages if the dynamic libraries are installed. Submitted by: Martijn Dekker <martijn@inlv.org> ksh93 upstream
-rw-r--r--shells/ksh-devel/Makefile48
-rw-r--r--shells/ksh-devel/distinfo6
-rw-r--r--shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c18
-rw-r--r--shells/ksh-devel/pkg-plist168
4 files changed, 185 insertions, 55 deletions
diff --git a/shells/ksh-devel/Makefile b/shells/ksh-devel/Makefile
index 5ed155352059..dbf3972645d1 100644
--- a/shells/ksh-devel/Makefile
+++ b/shells/ksh-devel/Makefile
@@ -1,13 +1,3 @@
-# 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}
CATEGORIES= shells
@@ -15,12 +5,14 @@ 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/
+WWW= https://github.com/ksh93/ksh
-LICENSE= EPL
+LICENSE= EPL
+LICENSE_FILE= ${WRKSRC}/COPYRIGHT
+LICENSE_FILE_EPL= ${WRKSRC}/LICENSE.md
-HASH= 0180e76e
-AST_COMMIT_DATE= 2026.02.26
+HASH= a215b8be
+AST_COMMIT_DATE= 2026.03.02
USES= compiler:c11
@@ -29,9 +21,6 @@ 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= ast-ksh
@@ -44,10 +33,11 @@ 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
+STATIC_MAKE_ENV= AST_NO_DYLIB="y"
+MAKE_ENV= CCFLAGS="${CFLAGS}"
+
+STATIC_PLIST_SUB= DYNAMIC="@comment "
+STATIC_PLIST_SUB_OFF= DYNAMIC=""
KSH_PLIST_SUB= 93=""
KSH93_PLIST_SUB= 93="93"
@@ -61,19 +51,17 @@ PSUFFIX= 93d
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
+ @cd ${WRKSRC}/ && ${SETENV} -i ${MAKE_ENV} ${SH} bin/package make -j${MAKE_JOBS_NUMBER} SHELL=${SH}
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}/
+ @cd ${WRKSRC}/ && \
+ ${SETENV} -i ${MAKE_ENV} ${SH} bin/package install ${PREFIX} DESTDIR=${STAGEDIR} SHELL=${SH} && \
+ mv ${STAGEDIR}${PREFIX}/bin/ksh ${STAGEDIR}${PREFIX}/bin/ksh${PSUFFIX} && \
+ mv ${STAGEDIR}${PREFIX}/share/man/man1/ksh.1 ${STAGEDIR}${PREFIX}/share/man/man1/ksh${PSUFFIX}.1 && \
+ ln -s ../fun ${STAGEDIR}${EXAMPLESDIR}${PSUFFIX}
do-test:
- cd ${WRKSRC}/src/cmd/ksh93/tests/ && ${SETENV} SHELL=${WRKSRC}/bin/ksh ${WRKSRC}/bin/ksh shtests
+ @cd ${WRKSRC}/ && bin/shtests
.include <bsd.port.mk>
diff --git a/shells/ksh-devel/distinfo b/shells/ksh-devel/distinfo
index 22b20ffab294..20d706e68837 100644
--- a/shells/ksh-devel/distinfo
+++ b/shells/ksh-devel/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1772212264
-SHA256 (ksh93-ksh-2026.02.26-0180e76e_GH0.tar.gz) = af7a1ae2eb6aa057f7f0d807a16d2ff5ddecc64d4720d669a9d0a038aeb67888
-SIZE (ksh93-ksh-2026.02.26-0180e76e_GH0.tar.gz) = 1978842
+TIMESTAMP = 1772495724
+SHA256 (ksh93-ksh-2026.03.02-a215b8be_GH0.tar.gz) = 8534dbe15fb92aea3edd5a0649a32195f7a7056d13bbd5f537160a86d8032699
+SIZE (ksh93-ksh-2026.03.02-a215b8be_GH0.tar.gz) = 1980097
diff --git a/shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c b/shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c
deleted file mode 100644
index a589e3638358..000000000000
--- a/shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c
+++ /dev/null
@@ -1,18 +0,0 @@
---- src/cmd/INIT/mamake.c.orig 2026-02-25 16:06:24.000000000 -0800
-+++ src/cmd/INIT/mamake.c 2026-03-01 08:17:37.760046000 -0800
-@@ -3011,15 +3011,6 @@
- state.maxjobs = 0;
-
- /*
-- * standards compliance for shell actions
-- */
--
-- setenv("POSIXLY_CORRECT", "y", 1);
--#if __QNX__
-- setenv("POSIX_STRICT", "y", 1); /* required for /bin/cp on QNX to update the target's last-modified date */
--#endif
--
-- /*
- * load the environment
- */
-
diff --git a/shells/ksh-devel/pkg-plist b/shells/ksh-devel/pkg-plist
index 5756c25ed572..d036894f7e37 100644
--- a/shells/ksh-devel/pkg-plist
+++ b/shells/ksh-devel/pkg-plist
@@ -1,6 +1,166 @@
@shell bin/ksh%%93%%
+bin/shcomp
share/man/man1/ksh%%93%%.1.gz
-share/examples/ksh%%93%%/dirs
-share/examples/ksh%%93%%/popd
-share/examples/ksh%%93%%/pushd
-
+share/man/man1/shcomp.1.gz
+share/fun/autocd
+share/fun/cd
+share/fun/dirs
+share/fun/man
+share/fun/mcd
+share/fun/popd
+share/fun/pushd
+share/examples/ksh%%93%%
+%%DYNAMIC%%lib/libast.so
+%%DYNAMIC%%lib/libast.so.8
+%%DYNAMIC%%lib/libast.so.8.0
+%%DYNAMIC%%lib/libcmd.so
+%%DYNAMIC%%lib/libcmd.so.4
+%%DYNAMIC%%lib/libcmd.so.4.0
+%%DYNAMIC%%lib/libdll.so
+%%DYNAMIC%%lib/libdll.so.4
+%%DYNAMIC%%lib/libdll.so.4.0
+%%DYNAMIC%%lib/libshell.so
+%%DYNAMIC%%lib/libshell.so.4
+%%DYNAMIC%%lib/libshell.so.4.0
+%%DYNAMIC%%include/ast/align.h
+%%DYNAMIC%%include/ast/aso.h
+%%DYNAMIC%%include/ast/assert.h
+%%DYNAMIC%%include/ast/ast.h
+%%DYNAMIC%%include/ast/ast_api.h
+%%DYNAMIC%%include/ast/ast_ccode.h
+%%DYNAMIC%%include/ast/ast_common.h
+%%DYNAMIC%%include/ast/ast_dir.h
+%%DYNAMIC%%include/ast/ast_dirent.h
+%%DYNAMIC%%include/ast/ast_fcntl.h
+%%DYNAMIC%%include/ast/ast_float.h
+%%DYNAMIC%%include/ast/ast_fs.h
+%%DYNAMIC%%include/ast/ast_iconv.h
+%%DYNAMIC%%include/ast/ast_lib.h
+%%DYNAMIC%%include/ast/ast_limits.h
+%%DYNAMIC%%include/ast/ast_map.h
+%%DYNAMIC%%include/ast/ast_mode.h
+%%DYNAMIC%%include/ast/ast_ndbm.h
+%%DYNAMIC%%include/ast/ast_nl_types.h
+%%DYNAMIC%%include/ast/ast_param.h
+%%DYNAMIC%%include/ast/ast_random.h
+%%DYNAMIC%%include/ast/ast_release.h
+%%DYNAMIC%%include/ast/ast_sizeof.h
+%%DYNAMIC%%include/ast/ast_standards.h
+%%DYNAMIC%%include/ast/ast_std.h
+%%DYNAMIC%%include/ast/ast_stdio.h
+%%DYNAMIC%%include/ast/ast_sys.h
+%%DYNAMIC%%include/ast/ast_time.h
+%%DYNAMIC%%include/ast/ast_tty.h
+%%DYNAMIC%%include/ast/ast_wchar.h
+%%DYNAMIC%%include/ast/ast_wctype.h
+%%DYNAMIC%%include/ast/ast_windows.h
+%%DYNAMIC%%include/ast/bytesex.h
+%%DYNAMIC%%include/ast/ccode.h
+%%DYNAMIC%%include/ast/cdt.h
+%%DYNAMIC%%include/ast/cmd.h
+%%DYNAMIC%%include/ast/cmdarg.h
+%%DYNAMIC%%include/ast/cmdext.h
+%%DYNAMIC%%include/ast/cmdlist.h
+%%DYNAMIC%%include/ast/debug.h
+%%DYNAMIC%%include/ast/dirent.h
+%%DYNAMIC%%include/ast/dlldefs.h
+%%DYNAMIC%%include/ast/endian.h
+%%DYNAMIC%%include/ast/error.h
+%%DYNAMIC%%include/ast/find.h
+%%DYNAMIC%%include/ast/fnmatch.h
+%%DYNAMIC%%include/ast/fnv.h
+%%DYNAMIC%%include/ast/fts.h
+%%DYNAMIC%%include/ast/ftw.h
+%%DYNAMIC%%include/ast/ftwalk.h
+%%DYNAMIC%%include/ast/glob.h
+%%DYNAMIC%%include/ast/hash.h
+%%DYNAMIC%%include/ast/hashkey.h
+%%DYNAMIC%%include/ast/hashpart.h
+%%DYNAMIC%%include/ast/history.h
+%%DYNAMIC%%include/ast/iconv.h
+%%DYNAMIC%%include/ast/ip6.h
+%%DYNAMIC%%include/ast/lc.h
+%%DYNAMIC%%include/ast/ls.h
+%%DYNAMIC%%include/ast/mc.h
+%%DYNAMIC%%include/ast/mnt.h
+%%DYNAMIC%%include/ast/modecanon.h
+%%DYNAMIC%%include/ast/modex.h
+%%DYNAMIC%%include/ast/namval.h
+%%DYNAMIC%%include/ast/nl_types.h
+%%DYNAMIC%%include/ast/nval.h
+%%DYNAMIC%%include/ast/option.h
+%%DYNAMIC%%include/ast/proc.h
+%%DYNAMIC%%include/ast/re_comp.h
+%%DYNAMIC%%include/ast/recfmt.h
+%%DYNAMIC%%include/ast/regex.h
+%%DYNAMIC%%include/ast/sfdisc.h
+%%DYNAMIC%%include/ast/sfio.h
+%%DYNAMIC%%include/ast/sfio_s.h
+%%DYNAMIC%%include/ast/sfio_t.h
+%%DYNAMIC%%include/ast/shcmd.h
+%%DYNAMIC%%include/ast/shell.h
+%%DYNAMIC%%include/ast/sig.h
+%%DYNAMIC%%include/ast/stak.h
+%%DYNAMIC%%include/ast/stdio.h
+%%DYNAMIC%%include/ast/stk.h
+%%DYNAMIC%%include/ast/sum.h
+%%DYNAMIC%%include/ast/swap.h
+%%DYNAMIC%%include/ast/tar.h
+%%DYNAMIC%%include/ast/times.h
+%%DYNAMIC%%include/ast/tm.h
+%%DYNAMIC%%include/ast/tmx.h
+%%DYNAMIC%%include/ast/tok.h
+%%DYNAMIC%%include/ast/tv.h
+%%DYNAMIC%%include/ast/vdb.h
+%%DYNAMIC%%include/ast/vmalloc.h
+%%DYNAMIC%%include/ast/wait.h
+%%DYNAMIC%%include/ast/wchar.h
+%%DYNAMIC%%include/ast/wctype.h
+%%DYNAMIC%%include/ast/wordexp.h
+%%DYNAMIC%%share/man/man3/LIBAST.3ast.gz
+%%DYNAMIC%%share/man/man3/aso.3ast.gz
+%%DYNAMIC%%share/man/man3/ast.3ast.gz
+%%DYNAMIC%%share/man/man3/cdt.3ast.gz
+%%DYNAMIC%%share/man/man3/chr.3ast.gz
+%%DYNAMIC%%share/man/man3/compat.3ast.gz
+%%DYNAMIC%%share/man/man3/error.3ast.gz
+%%DYNAMIC%%share/man/man3/find.3ast.gz
+%%DYNAMIC%%share/man/man3/fmt.3ast.gz
+%%DYNAMIC%%share/man/man3/fmtls.3ast.gz
+%%DYNAMIC%%share/man/man3/ftwalk.3ast.gz
+%%DYNAMIC%%share/man/man3/getcwd.3ast.gz
+%%DYNAMIC%%share/man/man3/hash.3ast.gz
+%%DYNAMIC%%share/man/man3/iblocks.3ast.gz
+%%DYNAMIC%%share/man/man3/ip6.3ast.gz
+%%DYNAMIC%%share/man/man3/mem.3ast.gz
+%%DYNAMIC%%share/man/man3/modecanon.3ast.gz
+%%DYNAMIC%%share/man/man3/nval.3ast.gz
+%%DYNAMIC%%share/man/man3/optget.3ast.gz
+%%DYNAMIC%%share/man/man3/path.3ast.gz
+%%DYNAMIC%%share/man/man3/proc.3ast.gz
+%%DYNAMIC%%share/man/man3/regex.3ast.gz
+%%DYNAMIC%%share/man/man3/setenviron.3ast.gz
+%%DYNAMIC%%share/man/man3/sfio.3ast.gz
+%%DYNAMIC%%share/man/man3/shell.3ast.gz
+%%DYNAMIC%%share/man/man3/sig.3ast.gz
+%%DYNAMIC%%share/man/man3/spawnveg.3ast.gz
+%%DYNAMIC%%share/man/man3/stk.3ast.gz
+%%DYNAMIC%%share/man/man3/strcopy.3ast.gz
+%%DYNAMIC%%share/man/man3/strdup.3ast.gz
+%%DYNAMIC%%share/man/man3/strelapsed.3ast.gz
+%%DYNAMIC%%share/man/man3/stresc.3ast.gz
+%%DYNAMIC%%share/man/man3/strexpr.3ast.gz
+%%DYNAMIC%%share/man/man3/strgid.3ast.gz
+%%DYNAMIC%%share/man/man3/strmatch.3ast.gz
+%%DYNAMIC%%share/man/man3/stropt.3ast.gz
+%%DYNAMIC%%share/man/man3/strperm.3ast.gz
+%%DYNAMIC%%share/man/man3/strsort.3ast.gz
+%%DYNAMIC%%share/man/man3/strtape.3ast.gz
+%%DYNAMIC%%share/man/man3/strton.3ast.gz
+%%DYNAMIC%%share/man/man3/struid.3ast.gz
+%%DYNAMIC%%share/man/man3/swap.3ast.gz
+%%DYNAMIC%%share/man/man3/tm.3ast.gz
+%%DYNAMIC%%share/man/man3/tmx.3ast.gz
+%%DYNAMIC%%share/man/man3/tok.3ast.gz
+%%DYNAMIC%%share/man/man3/touch.3ast.gz
+%%DYNAMIC%%share/man/man3/tv.3ast.gz