diff options
| author | Martijn Dekker <martijn@inlv.org> | 2026-03-03 02:14:07 +0000 |
|---|---|---|
| committer | Cy Schubert <cy@FreeBSD.org> | 2026-03-03 02:24:52 +0000 |
| commit | 80018994a56b26897efd1e5b170ec91257caa434 (patch) | |
| tree | 65ef485d7ff1edebe16229126bb85912ee24b0cf | |
| parent | 99139ce3bdd80f7fbbd1aa13590fcc92d04e0769 (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/Makefile | 48 | ||||
| -rw-r--r-- | shells/ksh-devel/distinfo | 6 | ||||
| -rw-r--r-- | shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c | 18 | ||||
| -rw-r--r-- | shells/ksh-devel/pkg-plist | 168 |
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 |
