Hi, On Mon, Jun 01, 2020 at 01:33:56PM +0100, Stuart Henderson wrote: > ttc files hold a collection of ttf, and allow sharing common glyphs which > can save a bunch of space. They have been supported by freetype/fontconfig > for many years and there shouldn't be a problem using them.
Spent some time revisiting this tonight. Due to the way the TTC fonts work, we need to do some re-shuffling: - The two MULTI_PACKAGES we have in tree now could be covered by a single TTC distfile. - To allow other variants to be added, it'd make sense to use SUBDIRs. The attached diff ought to be somewhat close. It doesn't add any variants, but just does the aforementioned restructuring. So we now have a port with one SUBDIR which makes just one package. The old TTF packages should both update to the new package. But for some reason after adding the @pkgpath and @conflict markers, `pkg_add -u` is not upgrading the old packages to the new one. I must have messed up, but I can't see where. New markers in the PLIST: ``` @conflict iosevka-fonts-default-* @conflict iosevka-fonts-term-* @pkgpath fonts/iosevka-fonts,-main @pkgpath fonts/iosevka-fonts,-term ``` Attempted upgrade: ``` $ pkg_info | grep iosevka iosevka-fonts-default-2.3.3 slender typeface for code (default variant) iosevka-fonts-term-2.3.3 slender typeface for code (term variant) $ echo $PKG_PATH /usr/ports/packages/amd64/all $ pwd /usr/ports/packages/amd64/all $ ls iosevka* iosevka-fonts-monospace-default-3.3.1.tgz $ doas pkg_add -u -Dunsigned iosevka-fonts-default iosevka-fonts-term Couldn't find updates for iosevka-fonts-default-2.3.3 iosevka-fonts-term-2.3.3 ``` Any ideas? Diff follows. Index: Makefile =================================================================== RCS file: /cvs/ports/fonts/iosevka-fonts/Makefile,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 Makefile --- Makefile 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ Makefile 30 Jul 2020 20:06:22 -0000 @@ -1,46 +1,16 @@ # $OpenBSD: Makefile,v 1.1.1.1 2020/03/06 19:32:35 edd Exp $ -COMMENT-main = slender typeface for code (default variant) -COMMENT-term = slender typeface for code (term variant) +# There are many different variants of Iosevka. We only package a subset of +# them, but the layout of the port is designed for more to be added if need be. +# +# Each SUBDIR is one "variant" and because we use the TTC fonts (which allow +# glyphs to be shared, thus saving space) each variant contains all of the +# various "spacing variants". +# +# For details on variants and spacing variants, see: +# https://github.com/be5invis/Iosevka/releases -V = 2.3.3 -PKGNAME = iosevka-fonts-default-${V} -PKGNAME-main = ${PKGNAME} -PKGNAME-term = iosevka-fonts-term-${V} +SUBDIR = +SUBDIR += monospace-default -# The font has many different variants. We are only packaging the 'default' -# variant (for general use) and the 'term' variant (designed for monospace -# terminals), but more could be added later if need be. See the releases page -# on Github for a complete list. -DISTFILES = 01-iosevka-${V}${EXTRACT_SUFX} \ - 02-iosevka-term-${V}${EXTRACT_SUFX} - -CATEGORIES = fonts x11 - -HOMEPAGE = https://github.com/be5invis/iosevka - -MAINTAINER = Edd Barrett <e...@openbsd.org> - -# SIL OFL 1.1 -PERMIT_PACKAGE = Yes - -MASTER_SITES = https://github.com/be5invis/iosevka/releases/download/v${V}/ -EXTRACT_SUFX = .zip - -MULTI_PACKAGES = -main -term - -NO_BUILD = Yes -NO_TEST = Yes - -# distfile is a zip bomb. -WRKDIST = ${WRKDIR} - -PKG_ARCH = * - -FONTDIR = ${PREFIX}/share/fonts/iosevka - -do-install: - ${INSTALL_DATA_DIR} ${FONTDIR} - ${INSTALL_DATA} ${WRKDIST}/ttf/*.ttf ${FONTDIR} - -.include <bsd.port.mk> +.include <bsd.port.subdir.mk> Index: Makefile.inc =================================================================== RCS file: Makefile.inc diff -N Makefile.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ Makefile.inc 30 Jul 2020 19:26:08 -0000 @@ -0,0 +1,22 @@ +# $OpenBSD$ + +V = 3.3.1 +CATEGORIES = fonts x11 +HOMEPAGE = https://github.com/be5invis/iosevka +MAINTAINER = Edd Barrett <e...@openbsd.org> + +# SIL OFL 1.1 +PERMIT_PACKAGE =Yes + +MASTER_SITES = https://github.com/be5invis/iosevka/releases/download/v${V}/ +EXTRACT_SUFX = .zip + +NO_BUILD = Yes +NO_TEST = Yes + +# distfiles are zip bombs. +WRKDIST = ${WRKDIR} + +PKG_ARCH = * + +FONTDIR = ${PREFIX}/share/fonts/iosevka Index: distinfo =================================================================== RCS file: distinfo diff -N distinfo --- distinfo 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,4 +0,0 @@ -SHA256 (01-iosevka-2.3.3.zip) = zI3jyld7ih1JR9zN//ggUELkefAiOldN41kn4T9Qb5A= -SHA256 (02-iosevka-term-2.3.3.zip) = APzmF0BfzNf79zFtrdP2s8yx4nbykQ6anN4S4/BYtNc= -SIZE (01-iosevka-2.3.3.zip) = 20624208 -SIZE (02-iosevka-term-2.3.3.zip) = 16093865 Index: monospace-default/Makefile =================================================================== RCS file: monospace-default/Makefile diff -N monospace-default/Makefile --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ monospace-default/Makefile 30 Jul 2020 19:23:28 -0000 @@ -0,0 +1,11 @@ +# $OpenBSD$ + +COMMENT = slender typeface for code (Monospace, Default) +PKGNAME = iosevka-fonts-monospace-default-${V} +DISTFILES = ttc-iosevka-${V}${EXTRACT_SUFX} + +do-install: + ${INSTALL_DATA_DIR} ${FONTDIR} + ${INSTALL_DATA} ${WRKDIST}/*.ttc ${FONTDIR} + +.include <bsd.port.mk> Index: monospace-default/distinfo =================================================================== RCS file: monospace-default/distinfo diff -N monospace-default/distinfo --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ monospace-default/distinfo 30 Jul 2020 19:11:57 -0000 @@ -0,0 +1,2 @@ +SHA256 (ttc-iosevka-3.3.1.zip) = 9GqqPuqhM9yOXniAE+F+NgmzOi9NPps2OM/Qu0aY+1E= +SIZE (ttc-iosevka-3.3.1.zip) = 17539786 Index: monospace-default/pkg/DESCR =================================================================== RCS file: monospace-default/pkg/DESCR diff -N monospace-default/pkg/DESCR --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ monospace-default/pkg/DESCR 30 Jul 2020 19:14:30 -0000 @@ -0,0 +1,3 @@ +Coders' typeface, built from code. + +This package is for the 'Monospace, Default' variant. Index: monospace-default/pkg/PLIST =================================================================== RCS file: monospace-default/pkg/PLIST diff -N monospace-default/pkg/PLIST --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ monospace-default/pkg/PLIST 30 Jul 2020 20:00:36 -0000 @@ -0,0 +1,16 @@ +@comment $OpenBSD: PLIST,v$ +@conflict iosevka-fonts-default-* +@conflict iosevka-fonts-term-* +@pkgpath fonts/iosevka-fonts,-main +@pkgpath fonts/iosevka-fonts,-term +share/fonts/ +@fontdir share/fonts/iosevka/ +share/fonts/iosevka/iosevka-bold.ttc +share/fonts/iosevka/iosevka-extrabold.ttc +share/fonts/iosevka/iosevka-extralight.ttc +share/fonts/iosevka/iosevka-heavy.ttc +share/fonts/iosevka/iosevka-light.ttc +share/fonts/iosevka/iosevka-medium.ttc +share/fonts/iosevka/iosevka-regular.ttc +share/fonts/iosevka/iosevka-semibold.ttc +share/fonts/iosevka/iosevka-thin.ttc Index: pkg/DESCR-main =================================================================== RCS file: pkg/DESCR-main diff -N pkg/DESCR-main --- pkg/DESCR-main 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,3 +0,0 @@ -Coders' typeface, built from code. - -This package is for the 'default' variant. Index: pkg/DESCR-term =================================================================== RCS file: pkg/DESCR-term diff -N pkg/DESCR-term --- pkg/DESCR-term 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,3 +0,0 @@ -Coders' typeface, built from code. - -This package is for the 'term' variant. Index: pkg/PLIST-main =================================================================== RCS file: pkg/PLIST-main diff -N pkg/PLIST-main --- pkg/PLIST-main 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -@comment $OpenBSD: PLIST-main,v 1.1.1.1 2020/03/06 19:32:35 edd Exp $ -share/fonts/ -@fontdir share/fonts/iosevka/ -share/fonts/iosevka/iosevka-bold.ttf -share/fonts/iosevka/iosevka-bolditalic.ttf -share/fonts/iosevka/iosevka-boldoblique.ttf -share/fonts/iosevka/iosevka-extrabold.ttf -share/fonts/iosevka/iosevka-extrabolditalic.ttf -share/fonts/iosevka/iosevka-extraboldoblique.ttf -share/fonts/iosevka/iosevka-extralight.ttf -share/fonts/iosevka/iosevka-extralightitalic.ttf -share/fonts/iosevka/iosevka-extralightoblique.ttf -share/fonts/iosevka/iosevka-heavy.ttf -share/fonts/iosevka/iosevka-heavyitalic.ttf -share/fonts/iosevka/iosevka-heavyoblique.ttf -share/fonts/iosevka/iosevka-italic.ttf -share/fonts/iosevka/iosevka-light.ttf -share/fonts/iosevka/iosevka-lightitalic.ttf -share/fonts/iosevka/iosevka-lightoblique.ttf -share/fonts/iosevka/iosevka-medium.ttf -share/fonts/iosevka/iosevka-mediumitalic.ttf -share/fonts/iosevka/iosevka-mediumoblique.ttf -share/fonts/iosevka/iosevka-oblique.ttf -share/fonts/iosevka/iosevka-regular.ttf -share/fonts/iosevka/iosevka-semibold.ttf -share/fonts/iosevka/iosevka-semibolditalic.ttf -share/fonts/iosevka/iosevka-semiboldoblique.ttf -share/fonts/iosevka/iosevka-thin.ttf -share/fonts/iosevka/iosevka-thinitalic.ttf -share/fonts/iosevka/iosevka-thinoblique.ttf Index: pkg/PLIST-term =================================================================== RCS file: pkg/PLIST-term diff -N pkg/PLIST-term --- pkg/PLIST-term 6 Mar 2020 19:32:35 -0000 1.1.1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -@comment $OpenBSD: PLIST-term,v 1.1.1.1 2020/03/06 19:32:35 edd Exp $ -share/fonts/ -@fontdir share/fonts/iosevka/ -share/fonts/iosevka/iosevka-term-bold.ttf -share/fonts/iosevka/iosevka-term-bolditalic.ttf -share/fonts/iosevka/iosevka-term-boldoblique.ttf -share/fonts/iosevka/iosevka-term-extrabold.ttf -share/fonts/iosevka/iosevka-term-extrabolditalic.ttf -share/fonts/iosevka/iosevka-term-extraboldoblique.ttf -share/fonts/iosevka/iosevka-term-extralight.ttf -share/fonts/iosevka/iosevka-term-extralightitalic.ttf -share/fonts/iosevka/iosevka-term-extralightoblique.ttf -share/fonts/iosevka/iosevka-term-heavy.ttf -share/fonts/iosevka/iosevka-term-heavyitalic.ttf -share/fonts/iosevka/iosevka-term-heavyoblique.ttf -share/fonts/iosevka/iosevka-term-italic.ttf -share/fonts/iosevka/iosevka-term-light.ttf -share/fonts/iosevka/iosevka-term-lightitalic.ttf -share/fonts/iosevka/iosevka-term-lightoblique.ttf -share/fonts/iosevka/iosevka-term-medium.ttf -share/fonts/iosevka/iosevka-term-mediumitalic.ttf -share/fonts/iosevka/iosevka-term-mediumoblique.ttf -share/fonts/iosevka/iosevka-term-oblique.ttf -share/fonts/iosevka/iosevka-term-regular.ttf -share/fonts/iosevka/iosevka-term-semibold.ttf -share/fonts/iosevka/iosevka-term-semibolditalic.ttf -share/fonts/iosevka/iosevka-term-semiboldoblique.ttf -share/fonts/iosevka/iosevka-term-thin.ttf -share/fonts/iosevka/iosevka-term-thinitalic.ttf -share/fonts/iosevka/iosevka-term-thinoblique.ttf -- Best Regards Edd Barrett http://www.theunixzoo.co.uk