diff options
Diffstat (limited to 'network/dog/dog.SlackBuild')
-rw-r--r-- | network/dog/dog.SlackBuild | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/network/dog/dog.SlackBuild b/network/dog/dog.SlackBuild new file mode 100644 index 000000000000..2b5e586287f9 --- /dev/null +++ b/network/dog/dog.SlackBuild @@ -0,0 +1,104 @@ +#!/bin/bash + +# Slackware build script for dog + +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# Notes: + +# This is written in rust, which annoys me (not the language, but its +# build system). Fortunately it works with the rust included in +# Slackware 15.0 (no need for rustup). + +# I considered just doing a binary repack, but upstream doesn't +# provide a 32-bit x86 binary... + +# The vendored sources were made thus: +## tar xvf dog-0.1.0.tar.gz +## cd dog-0.1.0 +## cargo vendor +## cd .. +## tar cvfJ dog-0.1.0-vendored-sources.tar.xz dog-0.1.0/vendor/ +# It's a bunch of .crate files, like 70 of them. I would not have +# packaged this if I didn't have a place to host my own tarball +# with all the vendor stuff (if I had to list 70 .crate files in +# my .info file, I'd just forget about this). + +# The man page was generated with: +## pandoc --standalone -t man /tmp/SBo/dog-0.1.0/man/dog.1.md > dog.1 +# (adapted from the Justfile) + +# Linode has some docs on using this: +# https://www.linode.com/docs/guides/use-dog-linux-dns-client/ + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=dog +VERSION=${VERSION:-0.1.0} +BUILD=${BUILD:-1} +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} + +# It's in rust, we don't need any C flags. Also, no lib|lib64 here. + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +tar xvf $CWD/$PRGNAM-$VERSION-vendored-sources.tar.xz +cd $PRGNAM-$VERSION +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 {} + + +# Contents of config.toml came from 'cargo vendor' output. +mkdir -p .cargo +cat $CWD/config.toml > .cargo/config.toml + +# Setting CARGO_HOME prevents writing a 0-byte /root/.cargo/.package-cache +CARGO_HOME=`pwd`/.cargo-home cargo build --release + +install -D -s -m0755 -oroot -groot target/release/dog $PKG/usr/bin/dog + +# Pregenerated (tiny) man page to avoid dependency on (huge) pandoc. +mkdir -p $PKG/usr/man/man1 +gzip -9c < $CWD/dog.1 > $PKG/usr/man/man1/dog.1.gz + +# Completions for various shells. They all seem to work. +PSH=$PKG/usr/share +install -D -m0644 completions/dog.bash $PSH/bash-completion/completions/dog +install -D -m0644 completions/dog.fish $PSH/fish/completions/dog.fish +install -D -m0644 completions/dog.zsh $PSH/zsh/site-functions/_dog + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a README* LICENCE $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$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 |