Drop unneeded font dependency in birdfont

Bug #1593711 reported by Pander
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
birdfont (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Please, drop the unneeded font dependency in birdfont on roboto. Upon inspection, only as a fallback this font is used..

In general, hard dependencies on fonts are not desirable. This is especially the case for a well-known font such as this which is also distributed via TeX Live.

When a font is offered by both APT and TeX Live, it is easier for users to solve this conflict when font packages can be deinstalled. However, with unneeded dependencies that is a problem for the user as APT cannot purge font package without breaking dependencies.

Alternatively, this dependency could be downgraded to a recommendation or a suggestion. Ideally, the dependency is removed all together.

Also worth mentioning is that Ubuntu is lagging years behind with packaging of TeX Live. Hence, users of TeX Live are forced to solve font collisions in this way.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in birdfont (Ubuntu):
status: New → Confirmed
Revision history for this message
Johan Mattsson (johan-mattsson-m) wrote :

The birdfont UI uses roboto and it will not work without it.

Revision history for this message
Pander (pander) wrote :

Are there other ways to loosen this requirement? This is for cases that Roboto is available but from TeX Live. As Ubuntu is behind with packaging that, it is an Ubuntu issue too.

But suppose a system does not have Roboto, could it be a feature request that the user chooses another font? For example GNU Freefont is more frequently available and has one of the most broad support of glyphs.

Revision history for this message
Johan Mattsson (johan-mattsson-m) wrote : Re: [Bug 1593711] Re: Drop unneeded font dependency in birdfont

It might be possible to include the TTF file in the source package and
skip the roboto deb but I would like to see a solution where TeX Live
and the regular packaging system plays well together. Maybe I am
wishing to much.

Revision history for this message
Pander (pander) wrote :

TeX Live is not going to be packaged any time soon for Ubuntu or Debian :( There are no people that have time to do that. Which results in these kind of problems. So waiting for that is not an issue.

Shipping the TTF is also not a good solution as again users might get font conflicts and/or you need to maintain that you have the latest version too.

Is Roboto the only font which is suitable as fallback font? Otherwise, you could implement the following fallback with graceful degradation: Roboto -> FreeFont -> DejaVu. Than for sure one of those fonts will be picked up via fontconfig.

If none is found, a warning can be presented to the user to install one of those fonts. That leaves for maximum flexibility. When the font dependencies are recommended or suggested, most users will pull in those packages anyway.

Revision history for this message
Johan Mattsson (johan-mattsson-m) wrote :

I will put Roboto in BirdFonts own folder and avoid installing it as a
system font in order to make sure that there are no conflicts with
other versions of the font.

Revision history for this message
Johan Mattsson (johan-mattsson-m) wrote :

Roboto is now a part of the BirdFont source package and the dependency
on the font-roboto deb can be dropped in the next release.

Changed in birdfont (Ubuntu):
status: Confirmed → Fix Committed
Revision history for this message
Hideki Yamane (henrich) wrote :

No, please do NOT include ttf in birdfont.

>TeX Live is not going to be packaged any time soon for Ubuntu or Debian :( There are no people that have time to do that. Which results in these kind of problems.

No, Nobert works for TeXlive for both upstream and Debian.

I don't get what is wrong with fonts-roboto package and why does texlive relate to birdfont depenency. Please describe more exact problem with it.

Revision history for this message
Pander (pander) wrote :

If one has installed TeX Live on Debian or Ubuntu, you have multiple font files for Roboto (and otehr packages). These are all found by font-config and that causes conflicts. the end-user does not always know which font files are being used.

One solution is to deinstall the Roboto package from Debian or Ubuntu and let font-config use the files installed by TeX Live. However, some Debian or Ubuntu packages have dependencies on font packages. Those are highly undesirable, however some packages realy need specific font packages, such as birdfont that uses it as a fallback for missing glyphs.

I am in favour that birdfont tries to find Roboto via font-config and if it doens't find that font, it tries to find another well-know font as fallback for that. So shipping the TTF is not needed if this approach is implemented.

Current situation:
- birdfont has depency on font-roboto
- birdfont uses Roboto font via fixed file path to TTF

Desired situation:
- birdfont has no depency on font-roboto
- birdfont uses Roboto Font via path from font-config
- if that fails: birdfont uses GNU Freefont via path from font-config
- if that fails: birdfont uses DejaVu Font via path from font-config

Revision history for this message
Hideki Yamane (henrich) wrote :

It sounds like TeXlive issue that has multiple fonts, not birdfont.

It'd be better to send bug to texlive package in Debian BTS (NOT launchpad)
and fix it, since root cause would not be fixed even if birdfont doesn't pull
fonts-roboto.

It would be better to change birdfont to use other fonts as failback, but it
is not solution, IMO.

Revision history for this message
Pander (pander) wrote :

There are hundreds of font files that have overlap. TeX Live will not remove all their fonts, so there must be a way to have it coexist and have flexibility on installation and deinstallation of fonts.

For most of these fonts the user is free to choose what to do via package management. Only a few packages have unneeded dependencies on fonts. birdfont is one of these.

Using font-config and fallback is the most elegant and dynamic way and allows dropping the depency and also no more need for need for including the TFF.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Sorry, my understanding of Debian Policy and its spirit is that it is wrong for there to be multiple copies of the same font in Debian (or Ubuntu). Since birdfont needs Roboto, it needs to depend on the existing fonts-roboto package instead of shipping yet another copy of Roboto. Therefore, I am closing this bug.

It really sounds like a bug in texlive-fonts-extra for it to ship duplicate copies of system fonts. It should look into using symlinks to the system fonts like birdfont does.

https://anonscm.debian.org/git/pkg-fonts/birdfont.git/commit/?h=debian/sid&id=91d19a9

Changed in birdfont (Ubuntu):
status: Fix Committed → Invalid
Revision history for this message
Pander (pander) wrote :

Thanks for your reply. However, there is a slight difference in situation you describe. I am referring to an installation of Tex Live with via its own installer. If you would change the dependency to recommended or suggested, all users will still install it, but have the freedom to uninstall fonts-roboto and provide an alternative in their own way.

Changed in birdfont (Ubuntu):
status: Invalid → New
Revision history for this message
Pander (pander) wrote :

Thanks for marking this as New. Hope this hard dependency can also be demoted as has been done in the last days for https://bugs.launchpad.net/ubuntu/+source/kodi/+bug/1685918 and https://bugs.launchpad.net/ubuntu/+source/libpdf-api2-perl/+bug/714588

Pander (pander)
tags: added: bionic
Pander (pander)
tags: added: cosmic
removed: yakkety
tags: removed: xenial
Pander (pander)
tags: added: disco
removed: bionic cosmic
Revision history for this message
Pander (pander) wrote :

fixed in at least focal

Changed in birdfont (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.