aboutsummaryrefslogtreecommitdiff
path: root/system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild
diff options
context:
space:
mode:
Diffstat (limited to 'system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild')
-rw-r--r--system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild80
1 files changed, 72 insertions, 8 deletions
diff --git a/system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild b/system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild
index fccae9840b0ed..0058c3ab0e5e4 100644
--- a/system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild
+++ b/system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for oldschool-pc-fonts
-# Copyright 2016 Peter Wang <novalazy@gmail.com>
+# Copyright 2016 Peter Wang <email removed>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -22,9 +22,18 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# Now maintained by B. Watson <yalhcru@gmail.com>
+
+# 20180108 bkw:
+# - Take over maintenance.
+# - BUILD=2.
+# - Include console fonts, if psftools is installed.
+# - Add variables TTF and CONSOLE to control which fonts are installed.
+# - A bit of useful documentation in README_console.txt.
+
PRGNAM=oldschool-pc-fonts
VERSION=${VERSION:-1.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
ARCH=noarch
@@ -36,6 +45,30 @@ OUTPUT=${OUTPUT:-/tmp}
set -eu
+# There are 2 sets of fonts that can be installed: the TrueType ones
+# and console ones converted from the .FON files. These 2 variables control
+# which are installed:
+
+TTF=${TTF:-yes} # By default, TTF is installed
+CONSOLE=${CONSOLE:-yes} # By default, install console fonts if possible
+
+if [ "$CONSOLE" = "yes" ]; then
+ if ! which fon2fnts || ! which fnt2psf; then
+ echo "=== can't find psftools, setting CONSOLE=no"
+ CONSOLE=no
+ fi
+fi
+
+case "$TTF$CONSOLE" in
+ "yesyes") TYPE="TrueType and console fonts" ;;
+ "yesno") TYPE="TrueType fonts only" ;;
+ "noyes") TYPE="console fonts only" ;;
+ "nono") echo "!!! At least one of TTF or CONSOLE must be set to 'yes'"
+ exit 1; ;;
+ *) echo "!!! TTF and CONSOLE variables must be 'yes', 'no', or empty"
+ exit 1; ;;
+esac
+
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
@@ -45,20 +78,51 @@ cd $PRGNAM-$VERSION
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 \
+ -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 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
-mkdir -p $PKG/usr/share/fonts/TTF
-cp -a */*.ttf $PKG/usr/share/fonts/TTF
+if [ "$TTF" = "yes" ]; then
+ mkdir -p $PKG/usr/share/fonts/TTF
+ cp -a */*.ttf $PKG/usr/share/fonts/TTF
+fi
+
+if [ "$CONSOLE" = "yes" ]; then
+ # The "PS/2thin" fonts don't extract, because fon2fnts insists on using
+ # the font name embedded in the .FON file as a filename, and these have
+ # a slash in them. On Windows, no problem, but a slash is a directory
+ # separator here... but, sed can handle binary files, so we can fix it:
+ sed -i 's,PS/2,PS_2,g' */*IBM_PS2thin*.FON
+
+ mkdir -p $PKG/usr/share/kbd/consolefonts
+
+ # fon2fnts doesn't (ever?) exit with error status.
+ for fon in */*.FON; do
+ fon2fnts "$fon"
+ done
+
+ for fnt in *.fnt; do
+ # Not going to install console fonts with spaces in their filenames,
+ # spaces are a PITA for console users.
+ psf="$( echo "$fnt" | sed -e 's, ,_,g' -e 's,\.fnt$,.psfu,' )"
+ echo "=== $fnt => $psf"
+ fnt2psf --psf2 --codepage=437 "$fnt" $PKG/usr/share/kbd/consolefonts/$psf
+ done
+fi
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a LICENSE.TXT README.NFO $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/README_console.txt > $PKG/usr/doc/$PRGNAM-$VERSION/README_console.txt
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
+sed "s,@TYPE@,$TYPE," $CWD/slack-desc > $PKG/install/slack-desc
+
+# Don't include doinst.sh that updates X font stuff unless X fonts are
+# actually included.
+if [ "$TTF" = "yes" ]; then
+ cat $CWD/doinst.sh > $PKG/install/doinst.sh
+fi
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}