public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sergei Trofimovich" <slyfox@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: media-fonts/terminus-font/
Date: Mon, 15 Jun 2020 22:04:51 +0000 (UTC)	[thread overview]
Message-ID: <1592258684.98a92c85d431a70f660f9dbd43b148e7c2afae2f.slyfox@gentoo> (raw)

commit:     98a92c85d431a70f660f9dbd43b148e7c2afae2f
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 15 22:03:31 2020 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 15 22:04:44 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=98a92c85

media-fonts/terminus-font: use fontforge for rescaling

We tackle a few issues at once here:

1. Avoid 'fonttosfnt' when converting to .otb and use fontforge instead.
2. Use one .otb file per font
3. Attempt to avoid Pango's fractioning by using 1024 em

Reported-by: Alexander Tsoy
Bug: https://bugs.gentoo.org/728308
Package-Manager: Portage-2.3.101, Repoman-2.3.22
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 .../terminus-font/terminus-font-4.48-r2.ebuild     | 128 +++++++++++++++++++++
 1 file changed, 128 insertions(+)

diff --git a/media-fonts/terminus-font/terminus-font-4.48-r2.ebuild b/media-fonts/terminus-font/terminus-font-4.48-r2.ebuild
new file mode 100644
index 00000000000..dd6bb191ea5
--- /dev/null
+++ b/media-fonts/terminus-font/terminus-font-4.48-r2.ebuild
@@ -0,0 +1,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} )
+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 target_otb
+		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
+}


             reply	other threads:[~2020-06-15 22:04 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-15 22:04 Sergei Trofimovich [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-02-11 14:27 [gentoo-commits] repo/gentoo:master commit in: media-fonts/terminus-font/ Sam James
2024-09-24 20:25 Andreas Sturmlechner
2024-04-24 14:11 Sam James
2023-12-16 21:39 Marek Szuba
2023-07-03 22:02 Conrad Kostecki
2023-05-14 14:51 Piotr Karbowski
2022-08-21  1:16 Marek Szuba
2021-08-31 21:25 Marek Szuba
2021-08-11 16:02 Marek Szuba
2021-07-19 16:04 Marek Szuba
2021-07-19 16:04 Marek Szuba
2021-07-08  9:35 Marek Szuba
2021-07-08  9:35 Marek Szuba
2021-07-07 12:13 Marek Szuba
2021-07-07 12:13 Marek Szuba
2021-07-07 12:13 Marek Szuba
2021-07-03 20:12 Piotr Karbowski
2021-07-02  9:34 Sergei Trofimovich
2021-07-02  9:18 Marek Szuba
2021-06-05 21:43 Sergei Trofimovich
2021-06-05 19:22 Matt Turner
2021-06-05 10:50 Sergei Trofimovich
2021-05-15 13:58 Sergei Trofimovich
2021-03-13  9:53 Sergei Trofimovich
2021-03-07 19:44 Sam James
2021-03-07 14:41 Agostino Sarubbo
2021-03-06 18:38 Sam James
2021-03-06 18:38 Sam James
2021-03-06 18:37 Sam James
2021-03-06 15:37 Thomas Deutschmann
2021-01-06 14:01 Fabian Groffen
2020-12-26 19:26 Sergei Trofimovich
2020-11-10 23:49 Sergei Trofimovich
2020-07-25  9:18 Sergei Trofimovich
2020-07-17 15:17 Agostino Sarubbo
2020-07-17 15:12 Agostino Sarubbo
2020-07-17 15:09 Agostino Sarubbo
2020-07-17 15:05 Agostino Sarubbo
2020-07-17 14:47 Sam James
2020-07-17  7:02 Agostino Sarubbo
2020-06-20 19:49 Sergei Trofimovich
2020-06-16  7:03 Sergei Trofimovich
2020-06-15 22:04 Sergei Trofimovich
2020-06-14 17:43 Sergei Trofimovich
2020-06-14 13:29 Sergei Trofimovich
2020-05-01 17:48 Agostino Sarubbo
2020-05-01 17:46 Agostino Sarubbo
2020-05-01 17:44 Agostino Sarubbo
2020-05-01 17:43 Agostino Sarubbo
2020-05-01 17:42 Agostino Sarubbo
2020-05-01  8:40 Mart Raudsepp
2020-04-19  2:35 Craig Andrews
2019-08-12 19:58 Michał Górny
2019-08-07 13:44 Lars Wendler
2019-01-02 12:48 Lars Wendler
2018-06-25  8:31 Johannes Huber
2018-06-19 14:32 Tobias Klausmann
2018-05-30 16:30 Markus Meier
2018-05-26 10:20 Mart Raudsepp
2018-05-25 23:58 Thomas Deutschmann
2018-05-25  8:41 Sergei Trofimovich
2018-05-24 14:31 Agostino Sarubbo
2018-05-23 20:01 Johannes Huber
2017-11-09 22:43 Sergei Trofimovich
2017-11-09 22:43 Sergei Trofimovich
2017-08-21  8:47 Lars Wendler
2017-08-19  0:31 Thomas Deutschmann
2017-07-30 11:24 Sergei Trofimovich
2017-07-24 17:59 Markus Meier
2017-07-19 18:06 Tobias Klausmann
2017-07-17  9:09 Sergei Trofimovich
2017-07-17  8:12 Lars Wendler
2017-01-29 18:56 Fabian Groffen
2016-04-07 14:04 Lars Wendler
2016-04-07 14:04 Lars Wendler
2016-03-04 20:52 Stephen Klimaszewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1592258684.98a92c85d431a70f660f9dbd43b148e7c2afae2f.slyfox@gentoo \
    --to=slyfox@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox