diff options
Diffstat (limited to 'system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild')
-rw-r--r-- | system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild | 80 |
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} |