2020-08-03 17:33:45 +02:00
|
|
|
# $NetBSD: Makefile,v 1.42 2020/08/03 15:33:45 tnn Exp $
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
DISTNAME= mksh-R59b
|
|
|
|
PKGNAME= ${DISTNAME:S/-R/-/}
|
|
|
|
CATEGORIES= shells
|
|
|
|
MASTER_SITES= # maintained locally
|
|
|
|
DISTFILES= # empty
|
Update to R44. The manpage is incompatible with mdocml, so switch to the
separately distributed catman page.
R44 contains these bugfixes:
* [tg] "$@" always generates words; bug spotted by engla in IRC
* [tg] Optimise print_columns display to use the screen space better
Please upgrade to mksh R43 (or stick on R41c) because of#
* [tg] Do not permit $'#' and $"#" in anything that looks like a
string, as old scripts, like ncurses', depend on behaviour not
guaranteed by POSIX regarding unescaped dollar signs there
* [dalias] Make detection of function prototypes more reliable
* [tg] Quote setenv arguments for eval properly in dot.mkshrc
* [tg] Validate parameter names for typeset, export, etc.
* [tg] Provide a classic BSD echo builtin for /bin/sh on MidnightBSD
* [tg] When generating Makefrag.inc put list of check_categories
inside
* [tg] Actually test all [197]echo(1) flavours and MidnightBSD
/bin/sh hacks
mksh R42b and R41c fix regressions:
* [tg] Correctly initialise memory (Debian #700604)
* [tg] LP#1104543 fix was too strict (Debian #700526)
mksh R42 brings back the release\ {early,often} scheme:
* [tg] Make -DMKSH_DISABLE_EXPERIMENTAL a nop again
* [tg] Quell some LLVM+Clang warnings; overhaul scan-build
[198]assert(3)s
* [tg, RT] Bunch of portability and build system fixes
* [tg] Re-enable ${ precmd;} in dot.mkshrc and fix it to retain the
errorlevel
* [RT] Port to Minix-vmd, QNX 4, Watcom C; begin porting to SunOS
4.1.1, Xenix, ISC (Interactive) Unix
* [tg] Prefer const-clean sys_errlist[] to [199]strerror(3)
* [tg] Permit $"#" and $'#' everywhere except in the body of here
documents that are not here strings
* [tg] Use full recursive parser for double-quoted here strings, and
reuse code between here strings and here documents
* [tg] #ifdef DEBUG_LEAKS free all fds and memory on exit
(LP#1106116)
* [tg] Don't close stdout/stderr with redirections, dup /dev/null
instead, always, both in dot.mkshrc and the testsuite, it does
break!
* [tg] Handle ${ #;} like functions in that local and return DWIW;
use it for the big chunk in $PS1 to avoid [200]fork(2)ing (at cost
of tempfiles; dot.mkshrc is a sample, adjust to your needs)
* [tg] Document invalid ${a/b/c} patterns in manpage (Debian #698678)
mksh R41b is a bugfix-only release off a stable branch:
* [tg] Fix [201]gettimeofday(2) detection at build time (warning)
* [RT, tg] Build.sh: catch non-working dash printf builtin
* [chris2, dalias, tg] Remove musl libc workaround and use
_GNU_SOURCE which they kindly aliased to _ALL_SOURCE, which is
implemented now
* [tg] Fix getn and some cases of possible array bounds trespasses
* [chris2, dalias, tg] Use -fno-asynchronous-unwind-tables with GCC
* [tg] Fix a few warnings from libFirm/cparser (mostly
-Wsign-compare)
* [tg] Correct mistake when doing hashtable lookup collision
resolution
* [tg] Fix running the ERR and EXIT traps in situations with set -e
and/or eval (also closes Debian #696823)
* [tg] Fix "command shift", reported by «ormaaj:#!/bin/mksh»
* [Torsten Sillke] Unbreak linking on AIX (remove -qextchk)
* [tg] Fix regression wrt lists in functions and "set -e"
(LP#1104543)
mksh R41 brings a number of bugfixes and new features:
* [tg] Drop "set ±o arc4random" (deprecated in R40)
* [tg] Drop old Build.sh -long-options (deprecated in R40)
* [tg] Change the internal hash algorithm from Bob Jenkins'
one-at-a-time to its NUL-counting, always-changing,
better-avalanching MirOS variant [202]NZAAT (with feedback from
ciruZ; 75% fill level is reasonable; names tbd in Mirkev/MirJSON)
* [tg] Use $'#' for non-ASCII parameters for re-entry printing
* [tg] Use sane spelling of "read-only" consistently
* [tg] Improve tree -DDEBUG functions (internal/developer use)
* [tg] Reduce stack usage a bit; speed up hash tables at size cost
* [tg] MKSH_SMALL no longer implies -fno-inline
* [tg] Support optional seed in ${parameter@#seed} for security
* [tg] New Build.sh environment configurable: LDSTATIC (empty)
* [tg] Improve LTO effect by always adding our copies of distributed
utility function sources when linking statically (i.e. LDSTATIC is
not empty)
* [tg] Drop deprecated hack for lines beginning with an exclamation
mark
* [tg] No longer interpret numbers beginning with a 0 digit as octal
* [tg] Attempt to use -fwrapv on more compilers
* [tg, RT] Better portability to 386BSD, Debian 0.91, ancient Unic#s
* [tg] No longer use [203]mkstemp(3) or [204]tempnam(3) functions, do
our own
* [tg] Fix some bugs in the manual page and Build.sh
* [tg] Add MKSH_NO_CMDLINE_EDITING, MKSH_DISABLE_TTY_WARNING
* [RT] Port to Coherent UNIX
* [tg] Enable some options by default for some ports, for instance,
since BeOS can never have a controlling tty, the option disabling
that warning
* [tg] Some bugfixes, prompted by RT and Valgrind
* [RT] Disable [205]sigsuspend(2) on Syllable Desktop
* [tg] Fix several issues with typeset -p (LP: #993847)
* [RT] Detect lcc and apply inline fix, e.g. for use with libc5
* [tg] If klibc, set -DMKSH_NO_LIMITS and check for sigsuspend fix
* [tg] Fix some issues found by Coverity and some found while fixing
* [tg] Build.sh options: -t target-filename (instead of mksh); -L to
build a legacy mksh, current changes:
+ different $KSH_VERSION "LEGACY KSH" instead of "MIRBSD KSH"
+ purely for running ksh88 and pdksh scripts; no command line
editing
+ use traditional "set -- $(getopt #); echo $?" mode always
+ do not keep file descriptors private
+ parse leading-zero-digit numbers as octal
+ no mksh extension -T
+ use "long", not "int32_t", for arithmetics
* [tg] fix trimming with positional parameters (Debian #48453)
* [tg] ensure that case end tokens are not mixed up (Debian #220272)
* [tg] make alias definitions in mksh -c work (Debian #517009), hack
* [tg] Apply speed improvements and add MKSH_SMALL_BUT_FAST
* [tg] Fix CONSERVATIVE_FDS use-before-definition bug
* [tg] Correct two regressions when tab-completing (LP: #1025843) and
fix bugs in the same code wrt. completion display and other
expansions
* [tg] Make quoted output of "typeset -p" AT&T ksh93 compatible
* [tg] Implement ${foo@Q} like ${foo:Q} in [206]make(1)
* [tg] Remove some unused code; more int # bool conversion
* [tg] Fix using here documents in COMSUB etc. (LP: #1030581)
* [tg] Fix ulimit builtin usage to match what limits we actually know
* [tg] Allow overriding /etc location, experts only (LP: #1039713)
* [tg] Update to Unicode 6.1.0
* [tg, Todd Miller] Avoid changing [207]ps(1) output by accident
* [tg, ft, Christian Neukirchen] Detect zsh 2.5.02/NeXTstep for
Build.sh
* [tg] Detect musl-gcc wrapper, define _BSD_SOURCE there, which is
totally bogus, but musl, just like dietlibc, gets it wrong
* [tg] Improve compile-time assertions
* [tg] Repair select builtin without any choices given
* [tg] Add -DMKSH_GCC55009 hack to avoid some compile-time assertions
and introduce arith-mandatory in check.t to substitute for missing
that compile-time check; will change
* [tg] Rewrite lots of code to not rely on -fwrapv so much
* [tg] Build.sh: Fix [208]flock(2) detection on GNU/Linux
* [Andrew Kudryashov] Manpage: fix default for HISTSIZE
* [tg] Add debugging aid (split-screen mechanism using GNU screen)
* [Andrew Kudryashov] Manpage, Website: point out correct mailing
list
* [tg, Andrew Kudryashov] Fix ~/nonexistant tab completion
* [tg] Optimise sh -c "[^]\t\n"-$&-*;-?[\\`|]*" to exec, inspired by
Jilles Tjoelker (-DMKSH_DISABLE_EXPERIMENTAL to ostracise)
* [tg] Fix $? inside eval (RedHat BZ#865121)
* [tg] Implement ksh93 feature ${ foo;} (using tempfiles this time;
exclude with -DMKSH_DISABLE_EXPERIMENTAL in R41)
* [tg] Run SIGINT check more reliably in the cat builtin (LP#1058815)
* [tg] Handle ^C in here documents, COMSUB, arithmetics (LP#1069428)
* [tg] Make dot.mkshrc usable with "set -o nounset" / "set -u"
* [tg, Clint Adams] Clean up and optimise the error handling code
* [tg] Fix and add some checks in the testsuite
* [tg] Sort list of variables in the source code when possible
* [tg] Add $BASHPID (for ormaaj) and $EPOCHREALTIME
* [tg] Improve documentation, #ksh IRC channel homepage
* [tg, RT] Minix 2 also doesn't have [209]gettimeofday(2) # check for
it
* [tg] Fix an input command line editing display redrawing issue
* [tg] Track the tty to keep $COLUMNS and $LINES up-to-date after a
SIGWINCH even in scripts
2013-03-11 20:47:38 +01:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
MAINTAINER= jperkin@pkgsrc.org
|
|
|
|
HOMEPAGE= http://mirbsd.de/mksh
|
|
|
|
COMMENT= MirBSD Korn Shell
|
|
|
|
LICENSE= miros
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
BOOTSTRAP_PKG= yes
|
|
|
|
NO_CHECKSUM= yes
|
2020-07-06 12:11:34 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
WRKSRC= ${WRKDIR}/mksh
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
LIBS.Interix+= -lcrypt
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 share/examples/mksh
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-10 13:24:24 +02:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
|
|
|
#
|
|
|
|
# If mksh is currently in use as the bootstrap shell then do not enable
|
|
|
|
# PKG_SHELL as it can cause circular problems (its +INSTALL script will
|
|
|
|
# require the shell itself). This match is deliberate to catch both of
|
|
|
|
# the prefixes used during bootstrap, we can't simply use LOCALBASE.
|
|
|
|
#
|
|
|
|
.if ${TOOLS_PLATFORM.sh:N?*/bin/mksh}
|
|
|
|
PKG_SHELL= bin/mksh
|
|
|
|
.endif
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-07-06 12:11:34 +02:00
|
|
|
do-extract:
|
|
|
|
${CP} -R ${FILESDIR} ${WRKSRC}
|
|
|
|
|
2006-09-15 15:00:37 +02:00
|
|
|
do-build:
|
2020-07-06 12:11:34 +02:00
|
|
|
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LIBS=${LIBS:Q} \
|
2007-08-07 21:38:11 +02:00
|
|
|
${TOOLS_SHELL} ${WRKSRC}/Build.sh -r
|
2006-09-15 15:00:37 +02:00
|
|
|
|
|
|
|
do-install:
|
2020-07-06 12:11:34 +02:00
|
|
|
${INSTALL_PROGRAM} ${WRKSRC}/mksh ${DESTDIR}${PREFIX}/bin/mksh
|
2013-03-23 13:18:19 +01:00
|
|
|
${INSTALL_MAN} ${WRKSRC}/mksh.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
|
2007-05-23 13:02:32 +02:00
|
|
|
${INSTALL_DATA} ${WRKSRC}/dot.mkshrc ${DESTDIR}${PREFIX}/share/examples/mksh/
|
2006-09-15 15:00:37 +02:00
|
|
|
|
2020-08-03 17:33:45 +02:00
|
|
|
# For check-portability's double brackets check.
|
|
|
|
# This should be patched instead.
|
|
|
|
CHECK_PORTABILITY_SKIP+= Build.sh
|
|
|
|
|
2007-08-07 21:38:11 +02:00
|
|
|
# Uncomment this if you want to run the regression tests
|
2007-05-23 13:02:32 +02:00
|
|
|
#USE_TOOLS+= perl
|
2006-09-15 15:00:37 +02:00
|
|
|
#do-test:
|
2020-07-06 12:11:34 +02:00
|
|
|
# ${WRKSRC}/test.sh -v
|
2006-09-15 15:00:37 +02:00
|
|
|
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|