From dff3d16a86c846e0ef88d0f26f6d7b1a3076203c Mon Sep 17 00:00:00 2001 From: B. Watson Date: Wed, 4 Jan 2023 00:28:29 -0500 Subject: system/mksh: New maintainer. Signed-off-by: B. Watson Signed-off-by: Willy Sudiarto Raharjo --- system/mksh/README | 12 +++-- system/mksh/doinst.sh | 8 +-- system/mksh/mksh.SlackBuild | 127 ++++++++++++++++++++++---------------------- system/mksh/mksh.info | 4 +- 4 files changed, 76 insertions(+), 75 deletions(-) (limited to 'system/mksh') diff --git a/system/mksh/README b/system/mksh/README index 7907a1cfd9..ee62015587 100644 --- a/system/mksh/README +++ b/system/mksh/README @@ -1,10 +1,12 @@ This is mksh, the "MirBSD Korn Shell" (or "MidnightBSD Korn Shell"). It is a successor to the Public Domain Korn Shell (pdksh) -Pass STATIC=yes to the script to create a static build. +Pass STATIC=yes to the script to build a static /bin/mksh. -Pass DIET=yes to the script in order to use dietlibc (this -requires the optional dependency dietlibc) +Pass DIET=yes to the script to use dietlibc instead of glibc. This +requires the optional dependency dietlibc. DIET=yes builds are always +static; no need for STATIC=yes. Cannot be combined with MUSL=yes. -Pass MUSL=yes to the script in order to use musl (this -requires the optional dependency musl) +Pass MUSL=yes to the script to use musl instead of glibc. This +requires the optional dependency musl. Can be combined with +STATIC=yes. Cannot be combined with DIET=yes. diff --git a/system/mksh/doinst.sh b/system/mksh/doinst.sh index ebbd502e4b..b5e1deca03 100644 --- a/system/mksh/doinst.sh +++ b/system/mksh/doinst.sh @@ -1,15 +1,15 @@ -if ! grep -q '/bin/mksh' etc/shells ; then +if ! grep -q '/bin/mksh' etc/shells; then echo "/bin/mksh" >> etc/shells fi + config() { NEW="$1" OLD="$(dirname $NEW)/$(basename $NEW .new)" - # If there's no config file by that name, mv it over: if [ ! -r $OLD ]; then mv $NEW $OLD - elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then rm $NEW fi - # Otherwise, we leave the .new copy for the admin to consider... } + config etc/skel/.mkshrc.new diff --git a/system/mksh/mksh.SlackBuild b/system/mksh/mksh.SlackBuild index a468e0587c..ac0a66c687 100644 --- a/system/mksh/mksh.SlackBuild +++ b/system/mksh/mksh.SlackBuild @@ -2,34 +2,24 @@ # Slackware build script for mksh -# Copyright (c) 2011-2021 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 +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# Original author: Markus Reichelt, Aachen, DE +# Now maintained by B. Watson + +# 20230102 bkw: BUILD=2 +# - take over maintenance. +# - relicense as WTFPL. +# - install FAQ.htm, not mksh.faq. +# - make the test suite optional (but default to enabled). +# - simplify the build script. +# - make the slack-desc show the build options. cd $(dirname $0) ; CWD=$(pwd) PRGNAM=mksh VERSION=${VERSION:-R59c} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} @@ -41,9 +31,6 @@ if [ -z "$ARCH" ]; then esac fi -# If the variable PRINT_PACKAGE_NAME is set, then this script will report what -# the name of the created package would be, and then exit. This information -# could be useful to other scripts. if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 @@ -69,69 +56,81 @@ fi set -e -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM -tar xf $CWD/$PRGNAM-$VERSION.tgz -cd $PRGNAM - CC="gcc" SLKCFLAGS="${SLKCFLAGS} -Wall" -if [ "$STATIC" = "yes" ]; then - LDFLAGS="${LDFLAGS} -static" - CPPFLAGS="${CPPFLAGS} -DMKSH_NOPWNAM" +# 20230102 bkw: fail if user passes both DIET=yes and MUSL=yes. +if [ "$DIET" = "yes" -a "$MUSL" = "yes" ]; then + echo "$( basename $0 ): cannot combine DIET=yes with MUSL=yes." 1>&2 + exit 1 fi if [ "$DIET" = "yes" ]; then + # no need to log out & back in after installing dietlibc. + source /etc/profile.d/dietlibc.sh CC="diet -Os gcc" + # diet builds are always static + STATIC=yes + BUILDOPTS+="DIET=yes " +elif [ "$MUSL" = "yes" ]; then + CC="musl-gcc" + BUILDOPTS+="MUSL=yes " fi -if [ "$MUSL" = "yes" ]; then - CC="musl-gcc" +if [ "$STATIC" = "yes" ]; then + LDFLAGS="${LDFLAGS} -static" + CPPFLAGS="${CPPFLAGS} -DMKSH_NOPWNAM" + BUILDOPTS+="STATIC=yes " fi -chown -R root:root . -find -L . \ - \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ - -o -perm 511 \) -exec chmod 755 {} \; -o \ - \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ - -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM +tar xvf $CWD/$PRGNAM-$VERSION.tgz +cd $PRGNAM -mkdir build -cd build +chown -R root:root . +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ -LDFLAGS=$LDFLAGS \ -CPPFLAGS=$CPPFLAGS \ -CFLAGS=$SLKCFLAGS \ -CC=$CC \ - sh ../Build.sh -r +LDFLAGS="$LDFLAGS" \ +CPPFLAGS="$CPPFLAGS" \ +CFLAGS="$SLKCFLAGS" \ +CC="$CC" \ + sh Build.sh -r # make sure tests pass whether there is a controlling tty or not. There are # some changes related to this in CVS, so this can probably be removed with the # next release. # thanks alpine maintainers. -sed -i ../check.t -e '/^name: selftest-tty-absent$/,/^---$/d' -./test.sh -C regress:no-ctty +# 20230102 bkw: make tests optional with TESTS=no. This is a maintainer-mode +# option (saves me time if I'm repeatedly editing/running the script). +if [ "${TESTS:-yes}" = "yes" ]; then + sed -i -e '/^name: selftest-tty-absent$/,/^---$/d' check.t + ./test.sh -C regress:no-ctty +fi -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION $PKG/usr/man/man1 $PKG/install +# 20230102 bkw: turns mksh.faq into proper HTML (FAQ.htm). +sh FAQ2HTML.sh -ginstall -D -m 755 mksh $PKG/bin/mksh -ginstall -D -m 644 ../mksh.1 $PKG/usr/man/man1/ -ginstall -D -m 644 ../lksh.1 $PKG/usr/man/man1/ -ginstall -D -m 644 ../mksh.faq $PKG/usr/doc/$PRGNAM-$VERSION/ -ginstall -D -m 644 ../dot.mkshrc $PKG/etc/skel/.mkshrc.new +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC $PKG/{bin,usr/man/man1,etc/skel,install} -find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ - | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true +install -m 755 -s mksh $PKG/bin +install -m 644 dot.mkshrc $PKG/etc/skel/.mkshrc.new +install -m 644 dot.mkshrc $PKGDOC +install -m 644 FAQ.htm $PKGDOC -cat ../dot.mkshrc > $PKG/usr/doc/$PRGNAM-$VERSION/dot.mkshrc -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +for i in mksh lksh; do + gzip -9c < $i.1 > $PKG/usr/man/man1/$i.1.gz +done -find $PKG/usr/man -type f -exec gzip -9 {} \; +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild cat $CWD/slack-desc > $PKG/install/slack-desc +[ -n "$BUILDOPTS" ] && \ + sed -i "15s,\$, Build options: $BUILDOPTS," $PKG/install/slack-desc cat $CWD/doinst.sh > $PKG/install/doinst.sh cd $PKG diff --git a/system/mksh/mksh.info b/system/mksh/mksh.info index e9eacb68f9..6fb39e1456 100644 --- a/system/mksh/mksh.info +++ b/system/mksh/mksh.info @@ -6,5 +6,5 @@ MD5SUM="99f8ac3c1d8a30b913d509f1969a4aaa" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Markus Reichelt" -EMAIL="slackbuilds@mareichelt.de" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" -- cgit v1.2.3