#!/bin/bash # Slackware build script for zennode # Written by B. Watson (urchlay@slackware.uk) # Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. # 20211011 bkw: BUILD=3 # - flesh out slack-desc with some real information. # - add man pages for the other tools. # 20180215 bkw: BUILD=2, move binary to /usr/games cd $(dirname $0) ; CWD=$(pwd) PRGNAM=zennode VERSION=${VERSION:-1.2.1} BUILD=${BUILD:-2} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} if [ -z "$ARCH" ]; then case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; *) ARCH=$( uname -m ) ;; esac fi if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi TMP=${TMP:-/tmp/SBo} PKG=$TMP/package-$PRGNAM OUTPUT=${OUTPUT:-/tmp} if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -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 # Is it "zennode" or "ZenNode"? Upstream uses both. ZIPNAME=ZenNode rm -rf $PKG mkdir -p $TMP $PKG $OUTPUT cd $TMP rm -rf $ZIPNAME-$VERSION # 20211011 bkw: the -x stuff skips extracting the prebuilt binaries # and saves ~700KB in /tmp. unzip $CWD/$PRGNAM-$VERSION.zip -x '*/linux*/*' '*/win32/*' cd $ZIPNAME-$VERSION unzip $PRGNAM-src.zip chown -R root:root . # 20211011 bkw: permissions suck, do not revert to template. find . -type d -exec chmod 755 {} + -o -type f -exec chmod 644 {} + # Don't install "compare" as /usr/bin/compare, it conflicts with imagemagick. # This patch just adds a note to compare.html explaining the situation. patch -p1 < $CWD/compare_html_doc.diff cd src/$ZIPNAME sed -i "s/-O\>/$SLKCFLAGS/" makefile make WARNINGS=-Wall mkdir -p $PKG/usr/games install -s -m0755 $ZIPNAME $PKG/usr/games/$PRGNAM install -s -m0755 bspdiff bspinfo $PKG/usr/games/ install -s -m0755 compare $PKG/usr/games/zn-compare ln -s $PRGNAM $PKG/usr/games/$ZIPNAME cd - # Man pages written for this SlackBuild. The main zennode.6 was written # in raw troff, because I knew no better way to do it back then. The # tools man page is generated from zennode-tools.rst, q.v. PKGMAN6=$PKG/usr/man/man6 mkdir -p $PKG/usr/man/man6 sed "s,@DOCDIR@,/usr/doc/$PRGNAM-$VERSION/," < $CWD/$PRGNAM.6 \ | gzip -c > $PKGMAN6/$PRGNAM.6.gz ln -s $PRGNAM.6.gz $PKGMAN6/$ZIPNAME.6.gz gzip -9c < $CWD/zennode-tools.6 > $PKGMAN6/zennode-tools.6.gz for i in bspdiff bspinfo zn-compare; do ln -s zennode-tools.6.gz $PKGMAN6/$i.6.gz done mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION/samples cp -a doc/* src/COPYING $PKG/usr/doc/$PRGNAM-$VERSION cp -a Samples/* $PKG/usr/doc/$PRGNAM-$VERSION/samples cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild mkdir -p $PKG/install cat $CWD/slack-desc > $PKG/install/slack-desc cd $PKG /sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE