ksh93u+m is the ksh93 reboot aims to develop bugfixes to the last
stable release (93u+ 2012-08-01) of ksh93, formerly developed by
AT&T Software Technology (AST). This ksh 93u+m reboot now incorporates
many of these bugfixes, plus patches from OpenSUSE, Red Hat, and Solaris,
as well as many new fixes from the community.
Between 2017 and 2020 there was an ultimately unsuccessful attempt to
breathe new life into the KornShell by extensively refactoring the last
unstable AST beta version (93v-). While that ksh2020 effort is now
abandoned and still has many critical bugs, it also had a lot of bugs
fixed. More importantly, the AST issue tracker now contains a lot of
documentation on how to fix those bugs, which made it possible to
backport many of them to the last stable release instead.
The shells/ksh-devel port tracks the develpment branch.
===> The following configuration options are available for ksh-devel-2026.09.21:
EXAMPLES=on: Build and/or install examples
STATIC=off: Build static executables and/or libraries
====> Options available for the single BIN_KSH: you have to select exactly one of them
KSH=off: Install to /usr/local/bin/ksh
KSH93=on: Install to /usr/local/bin/ksh93
KSH93D=off: Install to /usr/local/bin/ksh93d (development)
===> Use 'make config' to modify these settings
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: update to the latest ksh93/ksh github commit
A patch was added to revert upstream commit e8b45cc8. This upstream
commit was causing numererous build failures.
*/*: Sunset 12.4-RELEASE/12-STABLE from ports tree
- Remove all references to defunct ARCH arm
- Remove all references to defunct ARCH sparc64
- Remove x11-drivers/xf86-video-sunffb which requires defunct sparc64
ARCH
- Remove sysutils/afbinit requires defunct sparc64 ARCH
- Remove all references to bktr driver
- Remove all references to defunct FreeBSD_12
- Remove all references to OSVERSION/OSREL corresponding to 12
- Remove conditionals in Mk/Uses/cabal.mk
- Remove sparc reference from Mk/Uses/qt-dist.mk
- Remove BROKEN_sparc64/NOT_FOR_ARCH=sparc64
- Remove BROKEN_FreeBSD_12* from:
- Remove OpenSSL patches from:
- Remove conditional flags for OSVERSION >= 1300000 to fixed flags.
Also move conditional flags for non sparc64/arm ARCH to fixed flags.
Reviewed by: brooks, jbeich, rene, salvadore
Differential Revision: https://reviews.freebsd.org/D42068
shells/ksh-devel: update to the latest ksh93/ksh github commit
This includes an urgent bugfix release that fixes a serious regression
in pathname expansion, see: https://github.com/ksh93/ksh/issues/660
shells/ksh*: Fix ksh 1.0.5 Regression (issue #660) version 2
From the upstream patch description:
Patch version two. In mac_copy(), don't internally backslash-escape
a backslash in a glob pattern bracket expression. This also fixes
the #549 regression reintroduced by the previous patch, at least for
standard glob patterns. For this, we need to use the bracketexpr flag
(introduced as a copyto() local variable in 6c73c8c) in mac_copy(),
so we move it to the Mac_t struct, making it globally accessible.
Initialisation is automatic.
shells/ksh-devel: Fix ksh 1.0.5 Regression (issue #660)
From issue #660:
Globs are not expanded with the following:
% echo "/"{bin,sbin}"/*"
/bin/* /sbin/*
% v=/; echo "$v"bin"/*"
/bin/*
But globbing is unexpectedly performed if both parameter substitution
and brace expansion are present:
% v=/; echo "$v"{bin,sbin}"/*"
[output omitted for the sake of brevity]
Obtained from: https://github.com/ksh93/ksh/issues/660
shells/ksh*: Remove BROKEN for missing sbrk()
As of Jan 26, 2021, ksh (ksh93/ksh) no longer needs sbrk(). Remove
BROKEN for architectures that don't have sbrk(2). See upstream issue
https://github.com/ksh93/ksh/issues/154.
shells/ksh*: Update descriptions
Update ksh ports descriptions to more accurately reflect what they are.
Reported by: "Joseph Holsten" <joseph@josephholsten.com>
shells/ksh-devel: Mark BROKEN on FreeBSD-12
ksh-devel fails to build on FreeBSD-12 with this error:
mamake: *** exit code 139 making lib/libcmd
mamake: *** exit code 1 making all
MFH: 2023Q1
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner)
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above )
shells/ksh*: Allow the ksh ports to coexist
Add an option to allow the ksh ports to avoid conflicting with each
other and to coexist. This allows people who wish to punish themselves
by tracking developent to still be able to fall back should upstream
cause regressions.
This also allows legacy ksh93 to coexist with the recently added
ksh93/ksh, which is not entirely compatible with legacy ksh. Applications
which require a legacy ksh compatible package should use the ksh93 port
installed using one of its options. This allows new and old to exist on
the same system.
shells/ksh-devel: Start tracking ksh93 development again
Now that ksh development has resumed under a new account on github.
grab our first update from the ksh93 project from their ksh repo.
shells/ksh93-devel: Rename to ksh-devel
ksh development has resumed under a new account on github. Renaming
shells ksh93-devel to ksh-devel is the fist step in tracking ksh93
development again.