pkgsrc/shells/mksh/Makefile

57 lines
1.4 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.42 2020/08/03 15:33:45 tnn Exp $
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
MAINTAINER= jperkin@pkgsrc.org
HOMEPAGE= http://mirbsd.de/mksh
COMMENT= MirBSD Korn Shell
LICENSE= miros
BOOTSTRAP_PKG= yes
NO_CHECKSUM= yes
WRKSRC= ${WRKDIR}/mksh
LIBS.Interix+= -lcrypt
INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 share/examples/mksh
.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
do-extract:
${CP} -R ${FILESDIR} ${WRKSRC}
do-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LIBS=${LIBS:Q} \
${TOOLS_SHELL} ${WRKSRC}/Build.sh -r
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/mksh ${DESTDIR}${PREFIX}/bin/mksh
${INSTALL_MAN} ${WRKSRC}/mksh.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/
${INSTALL_DATA} ${WRKSRC}/dot.mkshrc ${DESTDIR}${PREFIX}/share/examples/mksh/
# For check-portability's double brackets check.
# This should be patched instead.
CHECK_PORTABILITY_SKIP+= Build.sh
# Uncomment this if you want to run the regression tests
#USE_TOOLS+= perl
#do-test:
# ${WRKSRC}/test.sh -v
.include "../../mk/bsd.pkg.mk"