Contrary to the advice in faq 7, it is possible to load a new font if
you have console on a drm device, but there are restrictions on font
size that must be followed.

This builds raw variants of some of the Terminus fonts and adds a readme
showing how to use them. I've updated to a newer version of Terminus
while there (I could split into two commits if preferred but it's simple
enough that it doesn't seem necessary).

Thanks to fcambus@ for clues on this!

Index: Makefile
===================================================================
RCS file: /cvs/ports/fonts/terminus-font/Makefile,v
retrieving revision 1.13
diff -u -p -r1.13 Makefile
--- Makefile    16 Nov 2017 03:33:09 -0000      1.13
+++ Makefile    15 Mar 2019 14:59:57 -0000
@@ -2,7 +2,7 @@
 
 COMMENT =              fixed width fonts especially for long hacking sessions
 
-DISTNAME =             terminus-font-4.46
+DISTNAME =             terminus-font-4.47
 CATEGORIES =           fonts x11
 
 HOMEPAGE =             http://terminus-font.sourceforge.net/
@@ -23,7 +23,7 @@ CONFIGURE_STYLE =     simple
 NO_TEST =              Yes
 USE_X11 =              Yes
 
-ALL_TARGET =           pcf pcf-8bit
+ALL_TARGET =           pcf pcf-8bit raw
 
 FONTDIR =              ${PREFIX}/share/fonts/terminus
 
@@ -50,5 +50,11 @@ do-install:
        ${INSTALL_DATA_DIR} ${FONTDIR}
        ${INSTALL_DATA} ${WRKSRC}/*.pcf.gz ${FONTDIR}
        ${INSTALL_DATA} ${WRKBUILD}/fonts.alias ${FONTDIR}/fonts.alias-terminus
+
+       ${INSTALL_DATA_DIR} ${PREFIX}/share/misc/pcvtfonts
+       ${INSTALL_DATA} ${WRKBUILD}/fonts.alias ${FONTDIR}/fonts.alias-terminus
+       cd ${WRKSRC}; for i in *.raw; do \
+               ${INSTALL_DATA} $$i ${PREFIX}/share/misc/pcvtfonts/$${i%.raw}; \
+       done
 
 .include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/fonts/terminus-font/distinfo,v
retrieving revision 1.6
diff -u -p -r1.6 distinfo
--- distinfo    4 Aug 2017 16:59:39 -0000       1.6
+++ distinfo    15 Mar 2019 14:59:57 -0000
@@ -1,2 +1,2 @@
-SHA256 (terminus-font-4.46.tar.gz) = 
TilDPlaZt23x9cmpbxIozM+OqKFnkc/vBj8rhQbHW80=
-SIZE (terminus-font-4.46.tar.gz) = 590210
+SHA256 (terminus-font-4.47.tar.gz) = 
DxsgWIjk4mqUh490a4Vmplw+N0KzPPmk5lF2RtVlEpc=
+SIZE (terminus-font-4.47.tar.gz) = 620344
Index: patches/patch-Makefile
===================================================================
RCS file: patches/patch-Makefile
diff -N patches/patch-Makefile
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-Makefile      15 Mar 2019 14:59:57 -0000
@@ -0,0 +1,46 @@
+$OpenBSD$
+
+Build raw files for wsfontload.
+
+Index: Makefile
+--- Makefile.orig
++++ Makefile
+@@ -4,6 +4,7 @@ BIN = ./bin
+ 
+ UCS2ANY = $(INT) $(BIN)/ucstoany.$(EXT)
+ BDF2PSF = $(INT) $(BIN)/bdftopsf.$(EXT)
++BDF2RAW = $(INT) $(BIN)/bdftopsf.$(EXT) -r
+ UCS2X11       = $(INT) $(BIN)/ucstoany.$(EXT) -f
+ BDF2PCF       = bdftopcf
+ 
+@@ -56,6 +57,11 @@ PSF_VGAW_KOI8_UV = ter-u14v.psf ter-u16v.psf
+ PSF_VGAW_XOS4_2  = ter-v14v.psf ter-v16v.psf
+ PSF_VGAW = $(PSF_VGAW_8859_1) $(PSF_VGAW_8859_2) $(PSF_VGAW_8859_7) 
$(PSF_VGAW_8859_9) $(PSF_VGAW_MS_1251) $(PSF_VGAW_8859_13) $(PSF_VGAW_8859_16) 
$(PSF_VGAW_IBM_437) $(PSF_VGAW_KOI8_RV) $(PSF_VGAW_BG_MIK) $(PSF_VGAW_PT_154) 
$(PSF_VGAW_KOI8_UV) $(PSF_VGAW_XOS4_2)
+ 
++RAW_8859_1  = $(subst .psf,.raw,$(PSF_8859_1))
++RAW_VGAW_8859_1  = $(subst .psf,.raw,$(PSF_VGAW_8859_1))
++RAW = $(RAW_8859_1)
++RAW_VGAW = $(RAW_VGAW_8859_1)
++
+ PCF_8859_1  = ter-112n.pcf ter-112b.pcf ter-114n.pcf ter-114b.pcf 
ter-116n.pcf ter-116b.pcf ter-118n.pcf ter-118b.pcf ter-120n.pcf ter-120b.pcf 
ter-122n.pcf ter-122b.pcf ter-124n.pcf ter-124b.pcf ter-128n.pcf ter-128b.pcf 
ter-132n.pcf ter-132b.pcf
+ PCF_8859_2  = ter-212n.pcf ter-212b.pcf ter-214n.pcf ter-214b.pcf 
ter-216n.pcf ter-216b.pcf ter-218n.pcf ter-218b.pcf ter-220n.pcf ter-220b.pcf 
ter-222n.pcf ter-222b.pcf ter-224n.pcf ter-224b.pcf ter-228n.pcf ter-228b.pcf 
ter-232n.pcf ter-232b.pcf
+ PCF_8859_5  = ter-512n.pcf ter-512b.pcf ter-514n.pcf ter-514b.pcf 
ter-516n.pcf ter-516b.pcf ter-518n.pcf ter-518b.pcf ter-520n.pcf ter-520b.pcf 
ter-522n.pcf ter-522b.pcf ter-524n.pcf ter-524b.pcf ter-528n.pcf ter-528b.pcf 
ter-532n.pcf ter-532b.pcf
+@@ -131,6 +137,9 @@ DUP_KOI8_UV = dup/cntrl.dup dup/ascii-h.dup dup/koi8.d
+ DUP_KOI8_U  = dup/cntrl.dup dup/ascii-h.dup dup/koi8.dup
+ DUP_XOS4_2  = dup/vgagr.dup dup/xos4-2.dup
+ 
++$(RAW_8859_1) $(RAW_VGAW_8859_1): ter-1%.raw : ter-u%.bdf $(VGA_8859_1) 
$(DUP_8859_1)
++      $(UCS2ANY) $< $(REG_8859_1) $(VGA_8859_1) | $(BDF2RAW) -o $@ 
$(DUP_8859_1)
++
+ $(PSF_8859_1) $(PSF_VGAW_8859_1): ter-1%.psf : ter-u%.bdf $(VGA_8859_1) 
$(DUP_8859_1)
+       $(UCS2ANY) $< $(REG_8859_1) $(VGA_8859_1) | $(BDF2PSF) -o $@ 
$(DUP_8859_1)
+ 
+@@ -202,6 +211,8 @@ install-psf-ref: README
+ 
+ uninstall-psf-ref:
+       rm -f $(DESTDIR)$(psfref)
++
++raw: $(RAW) $(RAW_VGAW)
+ 
+ # X11 Window System
+ 
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/fonts/terminus-font/pkg/PLIST,v
retrieving revision 1.4
diff -u -p -r1.4 PLIST
--- pkg/PLIST   4 Aug 2017 16:59:39 -0000       1.4
+++ pkg/PLIST   15 Mar 2019 14:59:57 -0000
@@ -1,5 +1,6 @@
 @comment $OpenBSD: PLIST,v 1.4 2017/08/04 16:59:39 sthen Exp $
 @pkgpath x11/terminus-font
+share/doc/pkg-readmes/${PKGSTEM}
 share/fonts/
 @fontdir share/fonts/terminus/
 share/fonts/terminus/fonts.alias-terminus
@@ -255,3 +256,23 @@ share/fonts/terminus/ter-x28b.pcf.gz
 share/fonts/terminus/ter-x28n.pcf.gz
 share/fonts/terminus/ter-x32b.pcf.gz
 share/fonts/terminus/ter-x32n.pcf.gz
+share/misc/pcvtfonts/
+share/misc/pcvtfonts/ter-112n
+share/misc/pcvtfonts/ter-114b
+share/misc/pcvtfonts/ter-114n
+share/misc/pcvtfonts/ter-114v
+share/misc/pcvtfonts/ter-116b
+share/misc/pcvtfonts/ter-116n
+share/misc/pcvtfonts/ter-116v
+share/misc/pcvtfonts/ter-118b
+share/misc/pcvtfonts/ter-118n
+share/misc/pcvtfonts/ter-120b
+share/misc/pcvtfonts/ter-120n
+share/misc/pcvtfonts/ter-122b
+share/misc/pcvtfonts/ter-122n
+share/misc/pcvtfonts/ter-124b
+share/misc/pcvtfonts/ter-124n
+share/misc/pcvtfonts/ter-128b
+share/misc/pcvtfonts/ter-128n
+share/misc/pcvtfonts/ter-132b
+share/misc/pcvtfonts/ter-132n
Index: pkg/README
===================================================================
RCS file: pkg/README
diff -N pkg/README
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ pkg/README  15 Mar 2019 14:59:57 -0000
@@ -0,0 +1,28 @@
+$OpenBSD: README.template,v 1.6 2018/09/04 13:40:26 ajacoutot Exp $
+
++-------------------------------------------------------------------------------
+| Running ${PKGSTEM} on OpenBSD
++-------------------------------------------------------------------------------
+
+Use with wscons(4)
+==================
+Raw versions of some Terminus fonts are included; these can be loaded with
+wsfontload(8) for use in OpenBSD's wscons(4) text-mode console.
+
+For consoles on a drm(4) device, a font may only be loaded if it matches
+the size of the current console font. For displays with a width above
+1920 and belove 3840 pixels, rasops(9) will select a 16x32 font which
+can be replaced with one of the "ter-132*" fonts. (Terminus does not
+have a 32x64 font to match the size used by default on wider displays).
+
+This can be loaded and configured like so:
+
+$ wsfontload -N ter-132n -w 16 -h 32 /usr/local/share/misc/pcvtfonts/ter-132n
+$ wsconsctl display.font=ter-132n
+
+To return to the default console font:
+
+$ wsconsctl display.font="Spleen 16x32"
+
+The final letter of the filename relates to the weight; n=normal, b=bold,
+v="VGA weight".

Reply via email to