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 .

Status:
Resolved
Priority:
Elevated
Assignee:
Category:
Target version:
Start date:
Due date:
% Done:

0%

Feature Branch:
Type of work:
Research
Blueprint:

Starter:
Affected tool:
Deliverable for:

Description

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


Files


Subtasks


Related issues

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

History

#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
Desired=Unknown/Install/Remove/Purge/Hold
| 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
ies

#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 @@
 04_mgopen_fonts.patch
 skip-dpkg-tmp-files.patch
 path_max.patch
-do_not_remove_uuid.patch

… 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.