diff options
-rw-r--r-- | system/oldschool-pc-fonts/README | 9 | ||||
-rw-r--r-- | system/oldschool-pc-fonts/README_console.txt | 38 | ||||
-rw-r--r-- | system/oldschool-pc-fonts/doinst.sh | 8 | ||||
-rw-r--r-- | system/oldschool-pc-fonts/oldschool-pc-fonts.SlackBuild | 80 | ||||
-rw-r--r-- | system/oldschool-pc-fonts/oldschool-pc-fonts.info | 4 | ||||
-rw-r--r-- | system/oldschool-pc-fonts/slack-desc | 6 |
6 files changed, 127 insertions, 18 deletions
diff --git a/system/oldschool-pc-fonts/README b/system/oldschool-pc-fonts/README index 84577c317e678..7f05768503103 100644 --- a/system/oldschool-pc-fonts/README +++ b/system/oldschool-pc-fonts/README @@ -1,3 +1,10 @@ +oldschool-pc-fonts (remakes of PC text mode fonts) + The Ultimate Oldschool PC Font Pack brings you pixel-perfect remakes of various type styles from text-mode era PCs - in modern, multi-platform, -Unicode-compatible TrueType form. +Unicode-compatible TrueType form, and/or as Linux .psfu console fonts. + +By default, the package will include TrueType fonts. To also include +console fonts, install graphics/psftools before running this script. +If you only want console fonts, set TTF=no in the script's environment. +See README_console.txt for more information. diff --git a/system/oldschool-pc-fonts/README_console.txt b/system/oldschool-pc-fonts/README_console.txt new file mode 100644 index 0000000000000..2e8fb9210bae3 --- /dev/null +++ b/system/oldschool-pc-fonts/README_console.txt @@ -0,0 +1,38 @@ + +If psftools is installed when oldschool-pc-fonts.SlackBuild is run, +the .FON fonts in the upstream zip file will be converted to .psfu fonts +and installed in /usr/share/kbd/consolefonts. + +If you have psftools installed and *don't* want this package to include +console fonts, you can set CONSOLE=no in the script's environment. + +The console font filenames begin with Bm_437. You can try them out in +the console with a command like: + +setfont -v Bm437_IBM_MDA_10 + +...in other words, the filename, minus the path and .psfu extension. + +When you find a font you like, edit /etc/rc.d/rc.font, and add +the font name to the "setfont" command there. Also run "chmod +x +/etc/rc.d/rc.font". + +The new fonts *do not* show up in the menu shown by the Slackware +"setconsolefont" utility, since it uses a hard-coded list of fonts. + +Since these fonts were designed for displays from the 1970s and 80s, you +might find them too small to read on modern high-resolution systems. If +so, you can use a 'video=' kernel argument in /etc/lilo.conf to change +the default resolution of the console. Also you may be able to use fbset +to change the resolution without rebooting, but this doesn't work on some +(most?) modern video hardware. + +Unicode support is pretty sparse with these fonts. They only support the +glyphs found in the MS-DOS codepage 437 character set, although they do +include Unicode mappings so that e.g. codepoint U263A is rendered as a +smiley face (aka character code 1, in codepage 437). You should get a +full set of box-drawing characters for use with 'dialog', at least. + +For the full character set supported, see: + +https://en.wikipedia.org/wiki/Codepage_437 diff --git a/system/oldschool-pc-fonts/doinst.sh b/system/oldschool-pc-fonts/doinst.sh index 883c47ac0a60c..251ce03afbee5 100644 --- a/system/oldschool-pc-fonts/doinst.sh +++ b/system/oldschool-pc-fonts/doinst.sh @@ -1,8 +1,8 @@ # Update the X font indexes: -if [ -x /usr/bin/mkfontdir ]; then - ( cd /usr/share/fonts/TTF - mkfontscale . - mkfontdir . +if [ -x /usr/bin/mkfontdir -a -x /usr/bin/mkfontscale ]; then + ( cd usr/share/fonts/TTF + /usr/bin/mkfontscale . + /usr/bin/mkfontdir . ) fi if [ -x /usr/bin/fc-cache ]; then 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} diff --git a/system/oldschool-pc-fonts/oldschool-pc-fonts.info b/system/oldschool-pc-fonts/oldschool-pc-fonts.info index 37120875b9e60..578c3b82b9801 100644 --- a/system/oldschool-pc-fonts/oldschool-pc-fonts.info +++ b/system/oldschool-pc-fonts/oldschool-pc-fonts.info @@ -6,5 +6,5 @@ MD5SUM="24acf70a302419895544e32757cfe4c8" DOWNLOAD_x86_64="" MD5SUM_x86_64="" REQUIRES="" -MAINTAINER="Peter Wang" -EMAIL="novalazy@gmail.com" +MAINTAINER="B. Watson" +EMAIL="yalhcru@gmail.com" diff --git a/system/oldschool-pc-fonts/slack-desc b/system/oldschool-pc-fonts/slack-desc index 8a9dcb203f021..babf64be3534c 100644 --- a/system/oldschool-pc-fonts/slack-desc +++ b/system/oldschool-pc-fonts/slack-desc @@ -10,10 +10,10 @@ oldschool-pc-fonts: oldschool-pc-fonts (remakes of PC text mode fonts) oldschool-pc-fonts: oldschool-pc-fonts: The Ultimate Oldschool PC Font Pack brings you pixel-perfect oldschool-pc-fonts: remakes of various type styles from text-mode era PCs - in modern, -oldschool-pc-fonts: multi-platform, Unicode-compatible TrueType form. +oldschool-pc-fonts: multi-platform, Unicode-compatible TrueType form, and/or as Linux +oldschool-pc-fonts: .psfu console fonts. oldschool-pc-fonts: oldschool-pc-fonts: http://int10h.org/oldschool-pc-fonts/ oldschool-pc-fonts: -oldschool-pc-fonts: -oldschool-pc-fonts: +oldschool-pc-fonts: This package includes @TYPE@. oldschool-pc-fonts: |