2009-04-20: ksh93 update tarballs for OpenSolaris
These tarballs are intended to be installed over an existing OpenSolaris ≥ B110 i386 or SPARC installation and provide ksh93t_20090310 for testing and evaluation purposes ONLY.Please report any problems/errors/bugs/comments to the ksh93-integration project bugzilla or the ksh93-integration mailinglist (please subscribe before posting).
Install instructions:
Basic installation:
- Download the tarball:
1* i386/AMD64: ksh93_integration_20090420_snapshot_i386.tar.bz2 (list files)
1* SPARC: ksh93_integration_20090420_snapshot_sparc.tar.bz2 (list files) - Verify the MD5 checksum:
1* i386/AMD64: MD5(ksh93_integration_20090420_snapshot_i386.tar.bz2)= c5697c5bc5f14bfa6a2c5708ed25e4f2
1* SPARC: MD5(ksh93_integration_20090420_snapshot_sparc.tar.bz2)= e0cc96c747f87094388abd62c4694816 - Login as user "root":
- Change directory to / and unpack the tarball with /usr/bin/tar using the "xvof" option ("o" is very important to set the file ownership to "root")
Example for i386/AMD64:
$ cd /tmp
$ /usr/sfw/bin/wget http://www.opensolaris.org/os/project/ksh93-integration/downloads/ksh93_integration_20090420_snapshot_i386.tar.bz2
$ sum -x md5 ksh93_integration_20090420_snapshot_i386.tar.bz2
c5697c5bc5f14bfa6a2c5708ed25e4f2 ksh93_integration_20090420_snapshot_i386.tar.bz2
# cd /
# sync ; sync
# bzcat </tmp/ksh93_integration_20090420_snapshot_i386.tar.bz2 | tar -xvof -
# sync ; sync
Example for SPARC:
$ cd /tmp
$ /usr/sfw/bin/wget http://www.opensolaris.org/os/project/ksh93-integration/downloads/ksh93_integration_20090420_snapshot_sparc.tar.bz2
$ sum -x md5 ksh93_integration_20090420_snapshot_sparc.tar.bz2
e0cc96c747f87094388abd62c4694816 ksh93_integration_20090420_snapshot_sparc.tar.bz2
# cd /
# sync ; sync
# bzcat </tmp/ksh93_integration_20090420_snapshot_sparc.tar.bz2 | tar -xvof -
# sync ; sync
[OPTIONAL] Using ksh93 as /sbin/sh:
After installation of the tarball the following steps will replace the original Bourne shell with ksh93: Example for i386/AMD64:
# cp /usr/bin/i86/ksh93 /sbin/ksh93
# [[ ! -f /sbin/bsh ]] && mv /sbin/sh /sbin/bsh || rm /sbin/sh
# mv /sbin/ksh93 /sbin/sh
# sync ; sync
Example for SPARC:
# cp /usr/bin/sparcv7/ksh93 /sbin/ksh93
# [[ ! -f /sbin/bsh ]] && mv /sbin/sh /sbin/bsh || rm /sbin/sh
# mv /sbin/ksh93 /sbin/sh
# sync ; sync
Notes:
- This tarball matches ksh93t+ (=ast-ksh.2009-03-10) with many many changes since the last version. Please test the binaries extensively.
- The following commands have been updated (or added) and now include common GNU+BSD+AST features:
/usr/bin/bg, /usr/bin/cd, /usr/bin/cksum, /usr/bin/cmp, /usr/bin/comm, /usr/bin/command, /usr/bin/cut, /usr/bin/fc, /usr/bin/fg, /usr/bin/getopts, /usr/bin/hash, /usr/bin/head, /usr/bin/jobs, /usr/bin/join, /usr/bin/kill, /usr/bin/logname, /usr/bin/mkfifo, /usr/bin/paste, /usr/bin/print, /usr/bin/read, /usr/bin/rev, /usr/bin/sleep, /usr/bin/sum, /usr/bin/tail, /usr/bin/tee, /usr/bin/test, /usr/bin/type, /usr/bin/ulimit, /usr/bin/umask, /usr/bin/unalias, /usr/bin/uniq, /usr/bin/wait, /usr/bin/wc, /usr/xpg4/bin/tail - The binaries now are build from a B111-based tree and require SXCR B110 or higher
- Sources/diffs/webrevs:
- The diffs between Solaris Nevada B111 and the current ksh93-integration tree can be obtained via
svn diff -r 1446:1483 svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype021/usr
or as unified diff (1.82MB, MD5 checksum is afbc63ce43d9f416d2500941bb92c0d1).
- "multiline" input mode is now enabled by default in /etc/ksh.kshrc to match input/editor behaviour of bash.
- /etc/ksh.kshrc now sets a default prompt (PS1) which contains <username>@<hostname>:<current_directory>$<blank> for normal users and <username>@<hostname>:<current_directory>#<blank> for user "root"; the prompt length itself is limited to ~30 characters to ensure it only occupies ~1/4 of a standard 80x24 terminal window.
- <esc><ctrl-l> was added to emacs/gmacs mode to clear the screen (per community requests and to be in sync with bash)
- 64bit binaries and libraries are now included (and used by default if the hardware is 64bit capable)
- "[[shcomp>>Project ksh93-integration.shcomp]]", the shell script compiler is now included as /usr/bin/shcomp.
- AST l10n utilities are stored in /usr/ast/bin/.
- Starting with ksh93s+ multibyte characters can be used for variable/function/etc.-names. Please test this functionality extensively.
- The tarball was created using the build_ksh93_standalone_tarball.sh script which is available in the base directory of the prototype021 tree.
Note: The script can only be used after a successfull $ cd usr/src ; (cd tools ; make install) ; make setup ; dmake install #-sequence, otherwise the resulting tarball will be incomplete. - The tarballs do not provide a manual page for ksh93. Please use the manual page for ksh93s+ in the meantime.
- The ksh93 binaries can be build from source like this:
(Instructions are for Solaris i386/AMD64; SPARC requires minor adjustments)- Pull sources and extract closed bin stuff (files can be obtained from opensolaris.org):
$ mkdir test_x86 ; cd test_x86
$ svn checkout -r 1483 svn://svn.genunix.org/on/branches/ksh93/gisburn/prototype021/usr
$ bzcat <../download/on-closed-bins-nd.i386.tar.bz2 | tar -xf -
$ bzcat <../download/on-closed-bins.i386.tar.bz2 | tar -xf -
$ cd .. - Create opensolaris.sh.
This is the usual opensolaris.sh with the paths adjusted to match your location of the sources.
Example for the changes applies to opensolaris.sh (for my workspace):
~--- ./test1_x86/usr/src/tools/env/opensolaris.sh Thu Sep 14 13:17:59 2006
+++ ./opensolaris.sh Sun Jul 30 00:50:08 2006
@@ -43,10 +43,10 @@
# This is a variable for the rest of the script - GATE doesn't matter to
# nightly itself
-GATE=testws; export GATE
+GATE=prototype021; export GATE
+# workaround for B111 build issue
+export NOT_UNDER_SCM=true
# CODEMGR_WS - where is your workspace at (or what should nightly name it)
-CODEMGR_WS="/export/$GATE"; export CODEMGR_WS
+CODEMGR_WS="/home/test001/ksh93/on_build1/$GATE"; export CODEMGR_WS
# Location of encumbered binaries.
ON_CLOSED_BINS="$CODEMGR_WS/closed"; export ON_CLOSED_BINS
- Run "bldenv":
$ env - SHELL=$SHELL TERM=$TERM HOME=$HOME LOGNAME=$LOGNAME DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY LANG=C LC_ALL=C PAGER=less MANPATH=$MANPATH /opt/onbld/bin/bldenv opensolaris.sh # - Build it (the quick way):
$ cd prototype021/usr/src
$ export CW_NO_SHADOW=1
$ time nice make setup 2>&1 | tee -a buildlog_setup.log
$ time nice dmake install >buildlog.log 2>&1