Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Mar 2026 02:26:52 +0000
From:      Cy Schubert <cy@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Cc:        Martijn Dekker <martijn@inlv.org>
Subject:   git: 80018994a56b - main - shells/ksh-devel: Update to latest github commit plus additional fixes
Message-ID:  <69a646ec.214a1.3e1fa885@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by cy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=80018994a56b26897efd1e5b170ec91257caa434

commit 80018994a56b26897efd1e5b170ec91257caa434
Author:     Martijn Dekker <martijn@inlv.org>
AuthorDate: 2026-03-03 02:14:07 +0000
Commit:     Cy Schubert <cy@FreeBSD.org>
CommitDate: 2026-03-03 02:24:52 +0000

    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
---
 shells/ksh-devel/Makefile                          |  48 +++---
 shells/ksh-devel/distinfo                          |   6 +-
 shells/ksh-devel/files/patch-src_cmd_INIT_mamake.c |  18 ---
 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


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69a646ec.214a1.3e1fa885>