Signed-off-by: Thorsten Glaser <[email protected]>
Hi,
this is an overdue update of the mksh package. I’ve only rebased
the patch and added support for Link-Time Optimisation to the
compilation scriptlet (and removed an obsolete option). Untested
since I do not currently have access to an OpenWrt development
environment, but “should” work. Please test and commit.
Index: packages/utils/mksh/patches/100-dot_mkshrc
===================================================================
--- packages/utils/mksh/patches/100-dot_mkshrc (revision 29504)
+++ packages/utils/mksh/patches/100-dot_mkshrc (working copy)
@@ -2,36 +2,37 @@
• 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:=$(</proc/sys/kernel/hostname)}
[[ $HOSTNAME = @(localhost|*([ ])) ]] && HOSTNAME=$(ulimit -c
0;hostname 2>&-)
: ${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
Index: packages/utils/mksh/Makefile
===================================================================
--- packages/utils/mksh/Makefile (revision 29504)
+++ packages/utils/mksh/Makefile (working copy)
@@ -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 @@
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 @@
# 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
bye,
//mirabilos
--
FWIW, I'm quite impressed with mksh interactively. I thought it was much
*much* more bare bones. But it turns out it beats the living hell out of
ksh93 in that respect. I'd even consider it for my daily use if I hadn't
wasted half my life on my zsh setup. :-) -- Frank Terbeck in #!/bin/mksh
_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel