Bug #16732

feature/buster FTBR: differing fonts .uuid files

Added by intrigeri 2019-05-19 15:29:59 . Updated 2019-06-17 07:33:19 .

Target version:
Start date:
Due date:
% Done:


Feature Branch:
Type of work:

Affected tool:
Deliverable for:


usr/local/share/fonts/.uuid and friends differ. I’ve verified that our custom fontconfig package is installed.



Related issues

Blocks Tails - Feature #16209: Core work: Foundations Team Confirmed


#1 Updated by intrigeri 2019-05-19 15:30:10

#2 Updated by lamby 2019-05-23 08:58:44

  • Assignee set to lamby

#3 Updated by lamby 2019-05-23 10:21:11

Can confirm that fontconfig 2.13.1-2.0tails1 is being used, and that should include my f098adac54ab86b75a38f2d23fa706a1348f55ba that landed upstream (see https://gist.githubusercontent.com/lamby/9669e74490122e8a1ebd3cfd1bbc1db5/raw)

#4 Updated by lamby 2019-05-23 12:53:08

Hm, so this actually appears to be two regressions… somehow. Setting up a proper testing harness now.

#5 Updated by lamby 2019-05-23 14:44:22

List of package changes attached.

#6 Updated by lamby 2019-05-23 14:47:39

> List of package changes attached.

And, of course, ttf-dejava (the “source” or close according to the diffoscope…) is not in the list but other font packages are.

-fonts-arphic-ukai  0.2.20080216.2-4
-fonts-arphic-uming 0.2.20080216.2-10
-fonts-beng 2:1.2
-fonts-beng-extra   1.0-6
 fonts-cantarell    0.111-2
 fonts-dejavu   2.37-1
 fonts-dejavu-core  2.37-1
 fonts-dejavu-extra 2.37-1
-fonts-deva 2:1.2
-fonts-deva-extra   3.0-4

#7 Updated by lamby 2019-05-23 14:52:22

ie. note that only these files are different, but we don’t have any special dejavu handling…

#8 Updated by lamby 2019-05-23 15:11:55

Seems like I can reproduce part of this in sid:

$ create-throwaway-sid-docker-container-and-run zsh -i -c 'sudo env SOURCE_DATE_EPOCH=1558623932 apt install -y fontconfig; sha1sum /usr/share/fonts/.uuid; dpkg -l fontconfig'

3fd53b98187b1d4978a7c7f3b7fab2ce2e5d9db0  /usr/share/fonts/.uuid
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
ii  fontconfig     2.13.1-2     amd64        generic font configuration library - support binar

#9 Updated by lamby 2019-05-24 14:34:00

Okay, this took a while. After quite a bit of investigation the picture appears to be that Akira Tagoh initially added support to remove .uuid files when no font files exist in a directory (in f5dd8512bdf9fd8e01c30ae36f593758b29385cf) but due to Debian bugs #897040, #909728, #909841 and #909818 Laurent Bigonville reverted this in debian/patches in 2.13.1-2.

I believe this is surfacing now as, due to changes in buster, we are installing different font packages due to differing dependencies.

Anyway, the uuid generation process was then replaced with a new, better process in c4324f54ee16e648ba91f3e9c66af13ab3b1754c. Ideally, we would simply cherry-pick this (large) commit but this is not possible without also cherry-picking a whole bunch of adjacent misc/fixup commits (eg. 04f75fce0bd060b780af6d05314852be6df27216, 9177cf2c3814f1f23fe207d4be3876111d272d60, plus at least 2 others). I think this makes it too invasive to backport.

However, we could “just” revert the application of Keith’s patch via:

--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,4 +2,3 @@

… but I’m not emotionally prepared for this yet due to the time invested getting here and, as mentioned, it might have serious problems (see, in particular, Debian bug #909818).

Summary: Either apply the above (with potential side effects listed in the aforementioned Debian bugs) or wait for the next version of fontconfig after 2.13.1. I recommend the latter.

#11 Updated by intrigeri 2019-06-01 06:03:13

Uh, this problem vanished: https://jenkins.tails.boum.org/view/RM/job/reproducibly_build_Tails_ISO_feature-buster/ has been passing consistently since May 27 (unfortunately we have no older data so I can’t tell exactly when this started working again). I’ve taken a look at the diff between a .packages file from feature/buster built on May 22 and today’s and could spot no obvious explanation. Let’s keep this ticket open until our next Buster sprint, keep an eye on Jenkins results, and close this if the problem does not reappear.

#12 Updated by intrigeri 2019-06-17 07:33:19

  • Status changed from Confirmed to Resolved
  • Assignee deleted (lamby)

intrigeri wrote:
> Let’s keep this ticket open until our next Buster sprint, keep an eye on Jenkins results, and close this if the problem does not reappear.

It did not reappear. @lamby, you’re of course welcome to work on this in Debian / upstream, but as discussed during last sprint, I’m afraid it’s now out of scope of Tails work.