slackbuilds/network/syncterm/syncterm.SlackBuild

137 lines
3.8 KiB
Bash

#!/bin/bash
# Slackware build script for syncterm
# Written by B. Watson (urchlay@slackware.uk)
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
# Issues:
# 1. Figure out why shell: doesn't work on the command line (though
# it does, with the ^D "quick connect" option, or by adding it to
# the dialing list). Though, if I add it to the dialing list, I
# still can't make it work directly from the command line, even
# though it works from the menu. *Shrug*.
# 20250123 bkw: update for v1.4.
# 20241203 bkw: update for v1.3.
# - patch for -current no longer needed (and no longer works anyway), removed.
# - 'make install' now installs the icons, stopping shipping our own.
# - manpage.diff reworked for 1.3.
# - remove -j1 from make: parallel builds work fine now.
# 20240218 bkw: BUILD=2
# - add compile fix for -current.
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=syncterm
VERSION=${VERSION:-1.4}
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}
if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
else
SLKCFLAGS="-O2"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION-src.tgz
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 {} +
# Man page: Fix path to dialing list and a couple typos. The path
# baked into the binary really is /etc/syncterm.lst (not /usr/etc)...
# In 1.3, the system dialing list actually works. If both the system
# and user lists both exist, both are read, which is nice.
patch -p1 < $CWD/manpage.diff
# This is a big hassle: -O3 is hardcoded in a makefile... which is
# inside a zip file. To force our flags, we have to extract the zip
# file, mod the makefile, then re-zip it. Using -0 with zip means
# "store" (for speed).
cd 3rdp/dist
unzip -oa cryptlib.zip
rm -f cryptlib.zip
sed -i "s,-O3,$SLKCFLAGS," makefile
zip -0r cryptlib.zip *
cd -
# Rest of the flags:
sed -i "s,-O[23],$SLKCFLAGS," src/build/Common.gmake
sed -i "s,-O3,\"$SLKCFLAGS\"," 3rdp/build/GNUmakefile
# Top-level source directory:
cd src/$PRGNAM
# Lots of make options here:
# - RELEASE=1 means binary already stripped, man page already gzipped.
# - WITHOUT_PORTAUDIO=1 to avoid a hidden dependency on portaudio. I
# see no advantage to using portaudio anyway (SDL audio works fine).
# - INSTALL_DATA: install man page with usual Slackware permissions.
# - SRC_ROOT has to be set because the makefile is dumb...
make \
PREFIX=/usr \
MANPREFIX=/usr \
SYSTEM_LIST_DIR=/etc \
SRC_ROOT="$( realpath .. )" \
USE_SDL=1 \
USE_SDL_AUDIO=1 \
WITHOUT_PORTAUDIO=1 \
VERBOSE=1 \
RELEASE=1 \
DESTDIR=$PKG \
INSTALL_DATA="install -m 0644" \
all install
# Compile the terminfo entries. Have to run the binary we just built,
# let's not do it as root.
su nobody -s /bin/sh -c "$PKG/usr/bin/$PRGNAM -T" | \
tic -o $PKG/usr/share/terminfo -
mkdir -p $PKG/usr/share/pixmaps
ln -s ../icons/hicolor/48x48/apps/$PRGNAM.png $PKG/usr/share/pixmaps/$PRGNAM.png
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
mkdir -p $PKGDOC
cp -a Install-Mozilla.txt CHANGES LICENCE gpl.txt $PKGDOC
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$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