Gentoo Archives: gentoo-dev

From: Matt Turner <mattst88@g.o>
To: gentoo-dev@l.g.o
Cc: fonts@g.o, Matt Turner <mattst88@g.o>
Subject: [gentoo-dev] [PATCH 2/2] font.eclass: Remove racy pkg_postinst code
Date: Tue, 08 Nov 2022 01:10:36
Message-Id: 20221108011008.61823-2-mattst88@gentoo.org
In Reply to: [gentoo-dev] [PATCH 1/2] media-fonts/x11fonts-jmk: Install files with 0644 permissions by Matt Turner
1 Noticed on ChromeOS when installing a large number of font packages in
2 parallel:
3
4 /usr/share/fonts/noto/NotoSerifThai-Regular.ttf#new' from 0004 (------r--) to 2440 (r--r-S---)
5 * ERROR: media-fonts/ipaex-004.01-r1::chromiumos failed (postinst phase):
6 * failed to fix font files perms
7
8 The "#new" filename is the hint. Portage uses "#new" suffixes when
9 copying files to the system, and then renames them to their final
10 filenames.
11
12 This code was executing while another font was in the process of being
13 copied to the system. Font packages should just ensure that they install
14 files with correct permissions to begin with, and all except
15 media-fonts/x11fonts-jmk already use 0644 permissions.
16 media-fonts/x11fonts-jmk used 0444 (which was probably fine) until the
17 previous commit which changes its installed files to 0644.
18
19 Bug: https://bugs.gentoo.org/187774
20 Signed-off-by: Matt Turner <mattst88@g.o>
21 ---
22 eclass/font.eclass | 6 ------
23 1 file changed, 6 deletions(-)
24
25 diff --git a/eclass/font.eclass b/eclass/font.eclass
26 index 4970c959f7c..0196755ce3e 100644
27 --- a/eclass/font.eclass
28 +++ b/eclass/font.eclass
29 @@ -186,12 +186,6 @@ font_src_install() {
30 # @DESCRIPTION:
31 # Updates fontcache if !prefix and media-libs/fontconfig installed
32 _update_fontcache() {
33 - if [[ -d "${EROOT}"/usr/share/fonts ]] ; then
34 - # unreadable font files = fontconfig segfaults
35 - find "${EROOT}"/usr/share/fonts/ -type f '!' -perm 0644 \
36 - -exec chmod -v 0644 2>/dev/null {} + || die "failed to fix font files perms"
37 - fi
38 -
39 if [[ -z ${ROOT} ]] ; then
40 if has_version media-libs/fontconfig ; then
41 ebegin "Updating global fontcache"
42 --
43 2.37.4

Replies