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

Reply via email to