From aa23356ee86066ae161dec162335d75063295b04 Mon Sep 17 00:00:00 2001 From: markus reichelt Date: Wed, 20 Jul 2011 09:32:26 -0300 Subject: system/mksh: Added (MirBSD Korn Shell) Signed-off-by: Niels Horn --- system/mksh/README | 9 ++ system/mksh/TaC-mksh.txt | 258 ++++++++++++++++++++++++++++++++++++++++++++ system/mksh/doinst.sh | 3 + system/mksh/mksh.SlackBuild | 116 ++++++++++++++++++++ system/mksh/mksh.info | 10 ++ system/mksh/slack-desc | 19 ++++ 6 files changed, 415 insertions(+) create mode 100644 system/mksh/README create mode 100644 system/mksh/TaC-mksh.txt create mode 100644 system/mksh/doinst.sh create mode 100644 system/mksh/mksh.SlackBuild create mode 100644 system/mksh/mksh.info create mode 100644 system/mksh/slack-desc diff --git a/system/mksh/README b/system/mksh/README new file mode 100644 index 000000000000..50ef0f21d9b3 --- /dev/null +++ b/system/mksh/README @@ -0,0 +1,9 @@ +mksh is a successor to the Public Domain Korn Shell (pdksh) + +Pass UTF8=no to the script so that mksh does never assume +that the terminal is in UTF-8 mode. + +Pass STATIC=yes to the script to create a static build. + +Pass DIET=yes to the script in order to use dietlibc (this +requires dietlibc, also available on SBo) diff --git a/system/mksh/TaC-mksh.txt b/system/mksh/TaC-mksh.txt new file mode 100644 index 000000000000..5e59d2a528eb --- /dev/null +++ b/system/mksh/TaC-mksh.txt @@ -0,0 +1,258 @@ +Terms and Conditions - The MirBSD Korn Shell +============================================ + +The MirBSD Korn Shell (mksh) consists of a number of "source" files, +which are provided by upstream in a number of places. This file will +list the files belonging to mksh or being part of it and the licence +terms and conditions that apply to them, in one single central place +for packagers' convenience. This list aims to be authoritative. (Yet +as it was compiled by a human, there may be bugs, please report them +if any are found. We don't think so though.) + +All paths are relative to The MirOS Project's CVS repository. + + +The following files form The MirBSD Korn Shell R39c: +- build system, testsuite + * mksh/Build.sh + * mksh/check.pl + * mksh/check.t +- documentation, configuration + * mksh/dot.mkshrc + * mksh/mksh.1 +- source code + * mksh/edit.c + * mksh/emacsfn.h + * mksh/eval.c + * mksh/exec.c + * mksh/expr.c + * mksh/funcs.c + * mksh/histrap.c + * mksh/jobs.c + * mksh/lalloc.c + * mksh/lex.c + * mksh/main.c + * mksh/misc.c + * mksh/sh.h + * mksh/sh_flags.h + * mksh/shf.c + * mksh/syn.c + * mksh/tree.c + * mksh/var.c + * mksh/var_spec.h +- upstream provided packaging + * contrib/hosted/tg/deb/mksh/debian/** (Debian) + * mksh/Makefile (MirBSD only, not part of mksh) + * ports/shells/mksh/DEINSTALL + * ports/shells/mksh/DESCR (official) + * ports/shells/mksh/INSTALL + * ports/shells/mksh/Makefile + * ports/shells/mksh/PLIST + * ports/shells/mksh/distinfo (official) + * src/distrib/special/mksh/Makefile (for the MirBSD installer) +- website (informal) + * www/data/tag_mksh.cfg (internal) + * www/files/TaC-mksh.txt (this file) + * www/pics/mksh.svg (logo source code) + * www/pics/mksh128x100.png (logo compiled version) + * www/src/mksh.hts (primary webpage) + * www/src/mksh_bld.hts (supplemental webpage) + * www/src/mksh_old.hts (supplemental webpage) + +All of these files are covered by The MirOS Licence (Appendix A) ex- +cept the upstream provided packaging, some of which were copied from +other places (specifically some of the Debian packaging) and most of +which do not require a copyright licence. + +The mksh author acknowledges the contribution from the Public Domain +Korn Shell and everyone who contributed to its various incarnations, +including patches, which have found their way into mksh (not all are +even known, but they gave up copyright anyway). The patches and sug- +gestions from other developers, users and other shells' authors were +also welcome. + + +The following files belong to mksh and are distributed inside of its +distfile, but are not part of it. They are provided for convenience, +because they are required on many operating environments for mksh or +some of its features to function: +- source code + * mksh/setmode.c (needed for the optional mknod builtin) + * mksh/strlcpy.c (always needed) + +These files are covered by seperate licences in addition (Appendices +B and C). Some operating environments already provide their functio- +nality, such as the BSDs and OSX libc, or the Debian/freedesktop.org +libbsd package. The files are not compiled into the resulting binary +if their respective functionality is already provided. + + +The following files belong to mksh in a less close way, as they pro- +vide additional functionality less closely coupled or not always de- +sired. These are not included in the mksh distfile: +- source code + * contrib/code/Snippets/arc4random.c (somewhat portable arc4random + implementation on top of /dev/urandom - for $RANDOM reads) + * contrib/hosted/tg/arc4rootdom.c (an even less portable implemen- + tation of a4r_pushb for *WRT/Android/... - for $RANDOM writes) + * contrib/hosted/tg/deb/klibc/arc4random.c (part of my klibc patch + providing arc4random API on top of jrand48 for small size) + * src/usr.bin/printf/printf.c (slightly modified UCB printf utili- + ty code - for the optional, undesired printf(1) builtin) + *DO NOT* INCLUDE printf AS A SHELL BUILT-IN UNLESS YOU ABSOLUTE- + LY MUST (otherwise, the preferrable /usr/bin/printf is called) + +The arc4rootdom.c file is covered by the MirOS Licence (Appendix A). +The klibc/arc4random.c file is also covered by The MirOS Licence but +dual-licenced with klibc's as we hope it gets included. The printf.c +file is covered by the UCB's three-clause BSD licence (Appendix B). + +The arc4random.c file is a conglomerate of The MirOS Licence as well +as another but many people have touched this code so there are other +versions of it around with differing terms. See Appendix D for ours. + + +The MirOS Licence also applies as a collective-work copyright on The +MirBSD Korn Shell. + +Note that these appendices may represent the terms and conditions of +more than one file, hence the actual wording of the files was folded +into one representation, with different copyright holders and years, +separated if merging was undesirable. + + +Appendix A - The MirOS Licence (OSI approved) +============================== + +The MirBSD Korn Shell (mksh) is +Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + Thorsten "mirabilos" Glaser +All rights reserved. + +The mksh logo is +Copyright © 2008, 2009 + Lukas U. +Copyright © 2008, 2009 + Thorsten "mirabilos" Glaser + +The arc4random for *WRT, Android, klibc functions are +Copyright © 2009 + Thorsten "mirabilos" Glaser + + +Provided that these terms and disclaimer and all copyright notices +are retained or reproduced in an accompanying document, permission +is granted to deal in this work without restriction, including un‐ +limited rights to use, publicly perform, distribute, sell, modify, +merge, give away, or sublicence. + +This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to +the utmost extent permitted by applicable law, neither express nor +implied; without malicious intent or gross negligence. In no event +may a licensor, author or contributor be held liable for indirect, +direct, other damage, loss, or other issues arising in any way out +of dealing in the work, even if advised of the possibility of such +damage or existence of a defect, except proven that it results out +of said person’s immediate fault when using the work as intended. + + +Appendix B - The UCB (3-clause BSD) licence (OSI approved) +=========================================== + +printf.c is +Copyright (c) 1989 + The Regents of the University of California. +All rights reserved. + +setmode.c is +Copyright (c) 1989, 1993, 1994 + The Regents of the University of California. +All rights reserved. + +This code is derived from software contributed to Berkeley by +Dave Borman at Cray Research, Inc. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + +Appendix C - ISC Licence (OSI approved) +======================== + +strlcpy.c is +Copyright (c) 2006, 2008, 2009 + Thorsten Glaser +Copyright (c) 1998 + Todd C. Miller + + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +Appendix D - Licence of mircvs://contrib/code/Snippets/arc4random.c +=================================================================== + +/*- + * Arc4 random number generator for OpenBSD. + * Copyright 1996 David Mazieres . + * + * Modification and redistribution in source and binary forms is + * permitted provided that due credit is given to the author and the + * OpenBSD project by leaving this copyright notice intact. + */ + +/*- + * This code is derived from section 17.1 of Applied Cryptography, + * second edition, [...] + * + * RC4 is a registered trademark of RSA Laboratories. + */ + +/*- + * Modified by Robert Connolly from OpenBSD lib/libc/crypt/arc4random.c v1.11. + * This is arc4random(3) using urandom. + */ + +arc4random_uniform() is derived from code written by + Damien Miller +published under the ISC licence (see Appendix C). + +arc4random.c additionally is Copyright © 2008, 2009 + Thorsten Glaser +and covered by the MirOS Licence (see Appendix A). + + +_________________________________________________________________ +$MirOS: www/files/TaC-mksh.txt,v 1.3 2011/03/21 16:22:58 tg Exp $ diff --git a/system/mksh/doinst.sh b/system/mksh/doinst.sh new file mode 100644 index 000000000000..83ded97792fb --- /dev/null +++ b/system/mksh/doinst.sh @@ -0,0 +1,3 @@ +if ! grep -q '/bin/mksh' etc/shells ; then + echo "/bin/mksh" >> etc/shells +fi diff --git a/system/mksh/mksh.SlackBuild b/system/mksh/mksh.SlackBuild new file mode 100644 index 000000000000..22356d82e121 --- /dev/null +++ b/system/mksh/mksh.SlackBuild @@ -0,0 +1,116 @@ +#!/bin/sh + +# Slackware build script for mksh + +# Copyright (c) 2011 Markus Reichelt, Aachen, DE +# All rights reserved. +# +# Permission to use, copy, modify, and distribute this software for +# any purpose with or without fee is hereby granted, provided that +# the above copyright notice and this permission notice appear in all +# copies. +# +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# markus reichelt, slackbuilds@mareichelt.de, 0xCCEEF115 +# 2011 Mar 20 - initial release +# 2011 Jun 13 - adapted to R40 + +PRGNAM=mksh +VERSION=${VERSION:-R40} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM +gzip -dc $CWD/$PRGNAM-$VERSION.cpio.gz | cpio -mid +cd $PRGNAM + +if [ "$UTF8" = "no" ]; then + CPPFLAGS="${CPPFLAGS} -DMKSH_ASSUME_UTF8=0" +fi + +if [ "$STATIC" = "yes" ]; then + LDFLAGS="${LDFLAGS} -static" + CPPFLAGS="${CPPFLAGS} -DMKSH_NOPWNAM" +fi + +if [ "$DIET" = "yes" ]; then + CC="diet gcc -nostdinc" +else + CC="gcc" +fi + +chown -R root:root . +chmod -R u+w,go+r-w,a-s . + +mkdir build +cd build + +LDFLAGS=$LDFLAGS \ +CPPFLAGS=$CPPFLAGS \ +CFLAGS=$SLKCFLAGS \ +CC=$CC \ + sh ../Build.sh -r -c combine + +ginstall -D -m 755 mksh $PKG/bin/mksh +ginstall -D -m 644 ../mksh.1 $PKG/usr/man/man1/mksh.1 +ginstall -D -m 644 ../dot.mkshrc $PKG/etc/skel/.mkshrc + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +find $PKG/usr/man -type f -exec gzip -9 {} \; + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $CWD/TaC-mksh.txt $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +cat $CWD/doinst.sh > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/system/mksh/mksh.info b/system/mksh/mksh.info new file mode 100644 index 000000000000..dc18280a9c73 --- /dev/null +++ b/system/mksh/mksh.info @@ -0,0 +1,10 @@ +PRGNAM="mksh" +VERSION="R40" +HOMEPAGE="http://mirbsd.de/mksh/" +DOWNLOAD="http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R40.cpio.gz" +MD5SUM="395a6c5f39c7e2afd8f6504d90ca90bd" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +MAINTAINER="markus reichelt" +EMAIL="slackbuilds@mareichelt.de" +APPROVED="Niels Horn" diff --git a/system/mksh/slack-desc b/system/mksh/slack-desc new file mode 100644 index 000000000000..44fb3c612f7f --- /dev/null +++ b/system/mksh/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +mksh: mksh (MirBSD Korn Shell) +mksh: +mksh: mksh is a successor to the Public Domain Korn Shell (pdksh) +mksh: +mksh: Homepage: http://mirbsd.de/mksh/ +mksh: +mksh: +mksh: +mksh: +mksh: +mksh: -- cgit v1.2.3