Last active
April 3, 2019 12:14
-
-
Save alexlarsson/8912637dd6173591a8dec7c043cfa01d to your computer and use it in GitHub Desktop.
fontconfig new cache test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
flatpak-builder --ccache --install-deps-from=flathub --user --repo=repo --keep-build-dirs --force-clean builddir org.fontconfig.Sdk.json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# 49, so we run before 50-flatpak.conf | |
CONF_FILE=/etc/fonts/conf.d/49-flatpak-salted.conf | |
SALT=$(head -c 300 /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -1) | |
rm -f $CONF_FILE | |
cat > $CONF_FILE <<-EOF | |
<?xml version="1.0"?> | |
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |
<fontconfig> | |
<!-- remove all default dirs, so we can re-add them with a salt. --> | |
<reset-dirs/> | |
<dir salt="$SALT">/usr/share/fonts</dir> | |
</fontconfig> | |
EOF | |
# Updating (or adding) the salt invalidates all old config files, so | |
# lest just remove them here. Otherwise caches for old salts tend to | |
# stick around as we can't know what path the checksums were against, | |
# and thus can't tell they should be invalidated. | |
# This is especially problematic for un-salted caches ones as any they | |
# can conflict with the host caches. | |
rm -rf /usr/cache/fontconfig/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<!DOCTYPE fontconfig SYSTEM "fonts.dtd"> | |
<fontconfig> | |
<!-- This has to be first so it is written while building the runtime, when building apps this is read-only --> | |
<cachedir>/usr/cache/fontconfig</cachedir> | |
<!-- Then this is writable while building the app --> | |
<cachedir>/app/cache/fontconfig</cachedir> | |
<!-- Allow per-app config (for instance defining a per-app dir with per-app salt) --> | |
<include ignore_missing="yes">/app/etc/fonts/local.conf</include> | |
<!-- This defines the remap-dir for /run/host/[user-]fonts in flatpak 1.2.0 and later --> | |
<include ignore_missing="yes">/run/host/font-dirs.xml</include> | |
<!-- These are from the host, and expected to be non-salted --> | |
<dir>/run/host/fonts</dir> | |
<dir>/run/host/user-fonts</dir> | |
<!-- This per-user-and-app cache dir is duplicated from the global fonts.conf, because that | |
includes the conf.d snippets before setting it, and we want it to be ahead | |
of the /run/host/ cache dirs, to ensure we never accidentally write to these | |
because earlier versions of flatpak accidentally made /run/host/user-fonts-cache | |
writable, causing. That is bad because we don't want to write to the global | |
per-user cache dir, only the per-user-and-app one (each app gets its own xdg dirs). --> | |
<cachedir prefix="xdg">fontconfig</cachedir> | |
<cachedir>/run/host/fonts-cache</cachedir> | |
<cachedir>/run/host/user-fonts-cache</cachedir> | |
</fontconfig> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"build-runtime": true, | |
"id": "org.fontconfig.Sdk", | |
"id-platform": "org.fontconfig.Platform", | |
"default-branch": "test", | |
"runtime": "org.gnome.Platform", | |
"sdk": "org.gnome.Sdk", | |
"runtime-version": "3.30", | |
"sdk-extensions": ["org.gnome.Sdk.Debug", "org.gnome.Sdk.Locale", "org.gnome.Sdk.Docs"], | |
"platform-extensions": [ "org.gnome.Platform.Locale"], | |
"inherit-extensions": [ | |
"org.freedesktop.Platform.GL", | |
"org.freedesktop.Platform.Timezones", | |
"org.freedesktop.Platform.GStreamer", | |
"org.freedesktop.Platform.Icontheme", | |
"org.gtk.Gtk3theme" | |
], | |
"finish-args": [ | |
"--env=GI_TYPELIB_PATH=/app/lib/girepository-1.0", | |
"--env=GST_PLUGIN_SYSTEM_PATH=/app/lib/gstreamer-1.0:/usr/lib/extensions/gstreamer-1.0:/usr/lib/gstreamer-1.0", | |
"--env=XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/share", | |
"--sdk=org.fontconfig.Sdk//test", | |
"--runtime=org.fontconfig.Platform//test" | |
], | |
"cleanup": [ "*.la", "*.a"], | |
"cleanup-commands": [ | |
"echo CLEANUP SDK", | |
"fc-regenerate-salt", | |
"fc-cache --force -rs -v" | |
], | |
"cleanup-platform-commands": [ | |
"echo CLEANUP PLATFORM", | |
"fc-regenerate-salt", | |
"fc-cache --force -rs -v" | |
], | |
"modules": [ | |
{ | |
"name": "fontconfig", | |
"config-opts": [ "--disable-static"], | |
"post-install": [ | |
"install -m 0644 -p -T fontconfig-flatpak.conf /etc/fonts/conf.d/50-flatpak.conf", | |
"install -m 0755 -p -T fc-regenerate-salt /usr/bin/fc-regenerate-salt" | |
], | |
"sources": [ | |
{ | |
"type": "git", | |
"url": "https://gitlab.freedesktop.org/tagoh/fontconfig.git", | |
"branch": "flatpak-rework" | |
}, | |
{ | |
"type": "file", | |
"path": "fontconfig-flatpak.conf" | |
}, | |
{ | |
"type": "file", | |
"path": "fc-regenerate-salt" | |
} | |
] | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment