#897040 fontconfig: .uuid files in font directories not removed during purge

Package:
fontconfig
Source:
fontconfig
Description:
generic font configuration library - support binaries
Submitter:
Simon McVittie
Date:
2025-05-14 09:09:01 UTC
Severity:
important
Tags:
#897040#5
Date:
2018-04-27 12:41:32 UTC
From:
To:
To reproduce: run piuparts on fontconfig or anything that it depends on.
I tested d-feet in a sid base tarball from earlier this week, in a
Debian 9 'stretch' virtual machine:

0m0.0s INFO: piuparts version 0.85~bpo9+1 starting up.
0m0.0s INFO: Command line arguments: /usr/sbin/piuparts --arch amd64 -b /tmp/autopkgtest.uE5SNJ/3e1d5d16-c1de-46a1-ab13-fef86825fe3a/minbase-merged-usr.tar.gz --bindmount=/tmp/autopkgtest.uE5SNJ/vectis-iCnAcABsFP -l /tmp/autopkgtest.uE5SNJ/vectis-1rBsQJnS1T/piuparts.log -d sid --mirror 'http://192.168.122.1:3142/debian main' /tmp/autopkgtest.uE5SNJ/vectis-iCnAcABsFP/d-feet_0.3.13-3_all.deb
0m0.0s INFO: Running on: Linux host 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64
...
0m38.4s ERROR: FAIL: Package purging left files on system:
  /usr/local/share/fonts/	 not owned
  /usr/local/share/fonts/.uuid	 not owned
  /usr/share/fonts/	 owned by: fonts-dejavu-core
  /usr/share/fonts/.uuid	 not owned
  /usr/share/fonts/truetype/	 owned by: fonts-dejavu-core
  /usr/share/fonts/truetype/.uuid	 not owned
  /usr/share/fonts/truetype/dejavu/	 owned by: fonts-dejavu-core
  /usr/share/fonts/truetype/dejavu/.uuid	 not owned

0m38.4s ERROR: FAIL: Installation and purging test.

This can also be seen on piuparts.debian.org:
https://piuparts.debian.org/testing2sid/owned_files_after_purge_issue.html
https://piuparts.debian.org/testing2sid/pass/fontconfig_2.13.0-4.log

I think these .uuid files are created as a result of:
https://bugs.freedesktop.org/show_bug.cgi?id=101889

Either fontconfig or fontconfig-config should delete them from known
font directories during purge.

Thanks,
    smcv

#897040#10
Date:
2018-05-12 16:24:45 UTC
From:
To:
Even if you have no intention of purging the fontconfig package, stale
.uuid files and the directory containing it are left behind when all
font files have been removed from the directory.  This happened today
where an update of fonts-font-awesome dropped the file
/usr/share/fonts/truetype/font-awesome/fontawesome-webfont.ttf, but the
directory remains (dpkg warned about that, so I noticed it):

,----
| $ ls -lA /usr/share/fonts/truetype/font-awesome
| total 4
| -rw-r--r-- 1 root root 36 Apr 11 14:25 .uuid
| $ dpkg -S /usr/share/fonts/truetype/font-awesome
| dpkg-query: no path found matching pattern /usr/share/fonts/truetype/font-awesome
`----

Cheers,
       Sven

#897040#21
Date:
2018-09-26 17:49:31 UTC
From:
To:
That upstream bug has been fixed in commit f5dd851[1] which is included
in fontconfig 2.13.1, so I think the Debian bug should be closed too.
Haven't tested whether the fix works, though.

Cheers,
       Sven


1. https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/f5dd8512bdf9fd8e01c30ae36f593758b29385cf

#897040#26
Date:
2018-10-23 08:49:32 UTC
From:
To:
This doesn't work, or maybe it does not get executed by the removal
sequence performed by piuparts.

  Removing fonts-cantarell (0.111-2) ...
  Removing fontconfig (2.13.1-1) ...
  Removing libfontconfig1:amd64 (2.13.1-1) ...
  Removing fontconfig-config (2.13.1-1) ...
  Removing fonts-dejavu-core (2.37-1) ...
  Removing libexpat1:amd64 (2.2.6-1) ...
  Removing libfreetype6:amd64 (2.8.1-2) ...
  Removing libpng16-16:amd64 (1.6.34-2) ...
  Processing triggers for libc-bin (2.27-6) ...

0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/truetype/dejavu/.uuid
0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/.uuid
0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/opentype/.uuid
0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/opentype/cantarell/.uuid
0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/truetype/.uuid
0m52.5s ERROR: FAIL: Package purging left files on system:
  /usr/share/fonts/opentype/	 owned by: fonts-cantarell
  /usr/share/fonts/opentype/cantarell/	 owned by: fonts-cantarell

Tried it manually in a sid chroot, there it works if fontconfig can
perform its trigger processing.

But if fontconfig has pending triggers while being removed, .uuid files
will stay behind.
Probably add a fontconfig.prerm script and in the "remove" case perform
that same actions as in fontconfig.configure "triggered"

fc-cache unfortunately does not seem to have an option for "clear the
cache and delete all .uuid files (and do not regenerate anything)" which
would be the best thing to do in fontconfig.prerm remove


Andreas

#897040#31
Date:
2018-11-05 08:12:23 UTC
From:
To:
On Tue, 23 Oct 2018 10:49:32 +0200 Andreas Beckmann <anbe@debian.org> wrote:
 > On Wed, 26 Sep 2018 19:49:31 +0200 Sven Joachim <svenjoac@gmx.de> wrote:
 > > On 2018-05-23 16:43 +0200, Laurent Bigonville wrote:
 > > That upstream bug has been fixed in commit f5dd851[1] which is included
 > > in fontconfig 2.13.1, so I think the Debian bug should be closed too.
 > > Haven't tested whether the fix works, though.
 >
 > This doesn't work, or maybe it does not get executed by the removal
 > sequence performed by piuparts.
 >
 > Removing fonts-cantarell (0.111-2) ...
 > Removing fontconfig (2.13.1-1) ...
 > Removing libfontconfig1:amd64 (2.13.1-1) ...
 > Removing fontconfig-config (2.13.1-1) ...
 > Removing fonts-dejavu-core (2.37-1) ...
 > Removing libexpat1:amd64 (2.2.6-1) ...
 > Removing libfreetype6:amd64 (2.8.1-2) ...
 > Removing libpng16-16:amd64 (1.6.34-2) ...
 > Processing triggers for libc-bin (2.27-6) ...
 >
 > 0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/truetype/dejavu/.uuid
 > 0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/.uuid
 > 0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/opentype/.uuid
 > 0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/opentype/cantarell/.uuid
 > 0m52.0s INFO: IGNORED PATH@2: /usr/share/fonts/truetype/.uuid
 > 0m52.5s ERROR: FAIL: Package purging left files on system:
 > /usr/share/fonts/opentype/ owned by: fonts-cantarell
 > /usr/share/fonts/opentype/cantarell/ owned by: fonts-cantarell
 >
 > Tried it manually in a sid chroot, there it works if fontconfig can
 > perform its trigger processing.
 >
 > But if fontconfig has pending triggers while being removed, .uuid files
 > will stay behind.
 > Probably add a fontconfig.prerm script and in the "remove" case perform
 > that same actions as in fontconfig.configure "triggered"
 >
 > fc-cache unfortunately does not seem to have an option for "clear the
 > cache and delete all .uuid files (and do not regenerate anything)" which
 > would be the best thing to do in fontconfig.prerm remove


FTR, f5dd851 has been reverted in fontconfig, see
https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/8

An other attempt to implement this is waiting at
https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/10

#897040#36
Date:
2019-02-12 18:32:30 UTC
From:
To:
Hi,

the issue is still present:
https://piuparts.debian.org/sid-strict/fail/fontconfig_2.13.1-2.log

This is currently blocking piuparts testing for quite a number
of packages in sid ☹

bye,
//mirabilos

#897040#43
Date:
2019-09-01 22:06:40 UTC
From:
To:
Hi,

This bug seems to be fixed since merge requests !30 got merged [0].
I've read a bit what was made and it seems .uuid files were removed.

This change is in version 2.13.91, to be confirmed.


[0] https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/30

#897040#48
Date:
2019-12-13 18:26:42 UTC
From:
To:
Package: fontconfig

Version: 2.13.1-2+b1


Dear Maintainer,


Today on removing fonts-noto-extra I've noticed that the package could not
be

purged, the reason is the persistence of a .uuid file inside the

/usr/share/fonts/truetype/noto/ directory.

Then I tried to remove the .uuid file manually and reinstall/remove the

package

again to reproduce and yes, the file is still there.



~$ sudo apt install fonts-noto-extra

Lettura elenco dei pacchetti... Fatto

Generazione albero delle dipendenze

Lettura informazioni sullo stato... Fatto

I seguenti pacchetti NUOVI saranno installati:

fonts-noto-extra

0 aggiornati, 1 installati, 0 da rimuovere e 0 non aggiornati.

è necessario scaricare 59,1 MB di archivi.

Dopo quest'operazione, verranno occupati 277 MB di spazio su disco.

Scaricamento di:1 http://debian.mirror.garr.it/debian bullseye/main amd64

fonts-noto-extra all 20181227-1 [59,1 MB]

Recuperati 59,1 MB in 48s (1.227 kB/s)

Selezionato il pacchetto fonts-noto-extra non precedentemente selezionato.

(Lettura del database... 434019 file e directory attualmente installati.)

Preparativi per estrarre .../fonts-noto-extra_20181227-1_all.deb...

Estrazione di fonts-noto-extra (20181227-1)...

Configurazione di fonts-noto-extra (20181227-1)...

Elaborazione dei trigger per fontconfig (2.13.1-2+b1)...


~$ sudo apt purge fonts-noto-extra

Lettura elenco dei pacchetti... Fatto

Generazione albero delle dipendenze

Lettura informazioni sullo stato... Fatto

I seguenti pacchetti saranno RIMOSSI:

fonts-noto-extra*

0 aggiornati, 0 installati, 1 da rimuovere e 0 non aggiornati.

Dopo quest'operazione, verranno liberati 277 MB di spazio su disco.

Continuare? [S/n]

(Lettura del database... 435253 file e directory attualmente installati.)

Rimozione di fonts-noto-extra (20181227-1)...

dpkg: attenzione: nel rimuovere fonts-noto-extra, la directory

"/usr/share/fonts/truetype/noto" è risultata non vuota e non viene
rimossa

Elaborazione dei trigger per fontconfig (2.13.1-2+b1)...

#897040#53
Date:
2020-03-22 07:53:56 UTC
From:
To:
Dear Maintainer,

I am still seeing this bug on testing, as the version is 2.13.1 vs.
upstream version 2.13.91 which should fix the bug as mentioned by Alexis
in this bug report.

Here is an example output from "apt remove" command:

And each of these directories are containing a ".uuid" file indeed,
which is why the directory is left over after font uninstallation:

After looking at tracker status for fontconfig [1], it seems that the
package is blocked on version 2.13.1 while upstream released two new
versions since then [2]. Last release 2.13.92 was 7 months ago.

[1] https://tracker.debian.org/pkg/fontconfig
[2] https://gitlab.freedesktop.org/fontconfig/fontconfig/-/tags

Is there anything preventing the new version to be tested?

Thanks and have a nice day,

#897040#80
Date:
2025-05-14 09:05:40 UTC
From:
To:
On Fri, 27 Apr 2018 13:41:32 +0100 Simon McVittie <smcv@debian.org> wrote:
 >
 > Either fontconfig or fontconfig-config should delete them from known
 > font directories during purge.

AFAICS, fc-cache is not generating .uuid files anymore.

The problem remains for older installations, but I see that fc-cache
contains a "-r" flags to delete old cache files and the remaining .uuid
are being removed with this flag.

That could mitigate the problem I would say

What do you thing?

Kind regards,

Laurent Bigonville