diff --git a/utils/mksh/Makefile b/utils/mksh/Makefile index e1dd6f9e2..e9a3bf3f1 100644 --- a/utils/mksh/Makefile +++ b/utils/mksh/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mksh -PKG_VERSION:=39 -PKG_RELEASE:=2 +PKG_VERSION:=40d +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-R$(PKG_VERSION).cpio.gz PKG_SOURCE_URL:=http://www.mirbsd.org/MirOS/dist/mir/mksh -PKG_MD5SUM:=b2eeb4fe4ccac2704e1440e53cd2672c +PKG_MD5SUM:=c6428401103367730a95b99284bf47dc PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) @@ -35,13 +35,14 @@ milar to the original AT&T Korn shell; mksh is the only pdksh derivate currently being actively developed. It includes bug fixes and feature improvements, in order to produce a modern, robust shell good for interactive and especially script use. -mksh has UTF-8 support (e.g. in the emacs editing mode); R38c -corresponds to OpenBSD 4.5-current ksh (without GNU bash-like -$PS1 and fancy character classes). The code has throughoutly +mksh has UTF-8 support (in substring operations and the Emacs +editing mode) and, while R40d corresponds to OpenBSD 5.0-cur- +rent ksh (without GNU bash-like PS1 and fancy character clas- +ses), adheres to SUSv4 and is much more robust. The code has been cleaned up and simplified, bugs fixed, standards compli- ance added, and several enhancements (for extended compatibi- lity to other modern shells - as well as a couple of its own) -have been placed. +are available. It has sensible defaults as usual with BSD. endef define Build/Compile @@ -50,17 +51,14 @@ define Build/Compile # UTF-8 mode, neither use setlocale/nl_langinfo # nor look at $LC_* and $LANG (not recommended) # HAVE_CAN_FSTACKPROTECTORALL=0 ⇒ nuke libssp dependency - # HAVE_REALPATH=x ⇒ add the realpath builtin, which was - # disabled by MKSH_SMALL, back if realpath() exists cd $(PKG_BUILD_DIR); \ CC="$(TARGET_CC)" \ TARGET_OS="$(shell uname -s)" \ CFLAGS="$(TARGET_CFLAGS)" \ CPPFLAGS="-DMKSH_SMALL=1 -DMKSH_ASSUME_UTF8=0" \ HAVE_CAN_FSTACKPROTECTORALL=0 \ - HAVE_REALPATH=x \ LDFLAGS="$(TARGET_LDFLAGS)" \ - $(BASH) Build.sh -Q -r + $(BASH) Build.sh -Q -r -c lto endef define Package/mksh/postinst diff --git a/utils/mksh/patches/100-dot_mkshrc b/utils/mksh/patches/100-dot_mkshrc index a47b29d3b..f326ae744 100644 --- a/utils/mksh/patches/100-dot_mkshrc +++ b/utils/mksh/patches/100-dot_mkshrc @@ -2,36 +2,37 @@ $Id$ • Part of the FreeWRT patches: – no hostname(1) - – ls has no -o - • OpenWrt fix: + – ls(1) has no -o option + • OpenWrt and FreeWRT-1.0 fix: – since this is not ~/.mkshrc make sure subshells find it ---- a/dot.mkshrc -+++ b/dot.mkshrc -@@ -20,7 +20,7 @@ +--- a/dot.mkshrc Sat Nov 26 18:15:38 2011 ++++ b/dot.mkshrc Sun Dec 11 21:31:27 2011 +@@ -21,7 +21,7 @@ #- - # ~/.mkshrc: mksh initialisation file for interactive shells + # ${ENV:-~/.mkshrc}: mksh initialisation file for interactive shells -: ${EDITOR:=/bin/ed} ${TERM:=vt100} ${HOSTNAME:=$(ulimit -c 0;hostname -s 2>&-)} +: ${EDITOR:=/bin/ed} ${TERM:=vt100} ${HOSTNAME:=$(&-) : ${HOSTNAME:=nil}; if (( USER_ID )); then PS1='$'; else PS1='#'; fi function precmd { -@@ -38,7 +38,7 @@ unalias ls +@@ -40,7 +40,7 @@ unalias ls alias l='ls -F' alias la='l -a' alias ll='l -l' -alias lo='l -alo' +alias lo='l -al' - alias which='whence -p' whence -p rot13 >&- || alias rot13='tr \ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ \ -@@ -304,4 +304,8 @@ function Lstripcom { - done; } - } + nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM' +@@ -365,5 +365,9 @@ alias cls='print -n \\033c' + #export LANG=C LC_CTYPE=$p LC_MEASUREMENT=$p LC_MESSAGES=$p LC_PAPER=$p + unset p ++ +# we need this in OpenWrt for subshells that are not login shells +: ${ENV=/etc/mkshrc} +[[ -z $ENV ]] || export ENV -+ - : place customsations above this line + + : place customisations above this line