1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8,9} )
inherit font python-any-r1
DESCRIPTION="A clean fixed font for the console and X11"
HOMEPAGE="http://terminus-font.sourceforge.net/"
SRC_URI="mirror://sourceforge/${PN}/${P}/${P}.tar.gz"
LICENSE="OFL-1.1 GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~mips ppc ppc64 ~s390 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
IUSE="a-like-o +center-tilde distinct-l otf +pcf +pcf-unicode-only +psf quote
ru-dv +ru-g ru-i ru-k"
DEPEND="app-arch/gzip
${PYTHON_DEPS}
virtual/awk
otf? ( media-gfx/fontforge )
pcf? ( x11-apps/bdftopcf )"
RDEPEND=""
FONTDIR=/usr/share/fonts/terminus
FONT_CONF=( 75-yes-terminus.conf )
DOCS=( README README-BG AUTHORS CHANGES )
REQUIRED_USE="X? ( pcf )"
pkg_setup() {
python_setup
}
src_prepare() {
default
# Upstream patches. Some of them are suggested to be applied by default
# dv - de NOT like latin g, but like caps greek delta
# ve NOT like greek beta, but like caps latin B
# ge - ge NOT like "mirrored" latin s, but like caps greek gamma
# ka - small ka NOT like minimised caps latin K, but like small latin k
use a-like-o && eapply "${S}"/alt/ao2.diff
use center-tilde && eapply "${S}"/alt/td1.diff
use distinct-l && eapply "${S}"/alt/ll2.diff
use ru-i && eapply "${S}"/alt/ij1.diff
use ru-k && eapply "${S}"/alt/ka2.diff
use ru-dv && eapply "${S}"/alt/dv1.diff
use ru-g && eapply "${S}"/alt/ge2.diff
use quote && eapply "${S}"/alt/gq2.diff
}
src_configure() {
local configure_args=(
--prefix="${EPREFIX}"/usr
--psfdir="${EPREFIX}"/usr/share/consolefonts
--x11dir="${EPREFIX}"/${FONTDIR}
)
# selfwritten configure script
./configure "${configure_args[@]}" || die
}
src_compile() {
local args=(
$(usex psf 'psf psf-vgaw' '')
$(usex pcf 'pcf pcf-8bit' '')
)
[[ ${#args[@]} -gt 0 ]] && emake "${args[@]}"
# Follow https://bugs.gentoo.org/728308#c5
# build ".otf" (bitmap-only) fonts out of .bdf ones
#
# Important details (copying notes as-is):
#
# 0. Pango 1.44 now returns floating point ascent and
# descent, instead of integer. The functions were always returning float,
# all right... but so far, without a fractional part. Which makes problems
# too, for example in Scintilla based editors such as SciTE and Geany
# (there is a quick and dirty fix).
#
# 1. 'fonttosfnt' adds 0.5 to at least the logical (OpenType-scaled)
# character width, ascent and height. Haven't checked the physical (pixel)
# metrics yet. With some sizes/applications, the fonttosfnt converted
# fonts do indeed have extra wrong spacing, 1 pixel horizontal or
# vertical. It has other bugs too, but they don't seem important.
#
# 2. If you pack 2+ terminus sizes into a single .otb font file, KDE will
# (may? YMMV) use *only the first size*.
#
# 3. OTB has a single set of logical metrics. So, for example, the logical
# character width (which is relative to height) can never be correct for
# an .otb file including both 8x14 and 8x16.
if use otf; then
local source_bdf
for source_bdf in ter-u*n.bdf ter-u*b.bdf; do
set -- fontforge -lang=ff -c 'Open($1); ScaleToEm(1024); Generate($2)' \
"${source_bdf}" "${source_bdf%.bdf}.otb"
einfo "$@"
"$@" || die
done
fi
}
src_install() {
local args=(
$(usex psf 'install-psf install-psf-vgaw install-psf-ref' '')
$(usex pcf 'install-pcf' '')
)
# Set the CHECKDIR to a dummy location so we always get the same set of
# files installed regardless of what is in / or ROOT or wherever.
[[ ${#args[@]} -gt 0 ]] && emake DESTDIR="${D}" CHECKDIR="${D}" "${args[@]}"
# Remove trans files that the kbd package takes care of installing.
rm -f "${ED}"/usr/share/consoletrans/*.trans
if use pcf-unicode-only; then
# Only the ter-x* fonts are unicode (ISO-10646-1) based
rm -f "${ED}"/usr/share/fonts/terminus/ter-[0-9a-wy-z]* || die
fi
use otf && FONT_SUFFIX=otb
font_src_install
einstalldocs
}
|