Hi Leo, Leo Prikler writes: > * gnu/packages/patches/webkitgtk-bind-all-fonts.patch: New file. > * gnu/packages/webkit.scm (webkitgtk)[source]: Use it here. > * gnu/local.mk: Add it here. I've expounded a bit the commit message, > --- > gnu/local.mk | 1 + > .../patches/webkitgtk-bind-all-fonts.patch | 37 +++++++++++++++++++ > gnu/packages/webkit.scm | 3 +- > 3 files changed, 40 insertions(+), 1 deletion(-) > create mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch > > diff --git a/gnu/local.mk b/gnu/local.mk > index d34e7e6ae5..7a694e551a 100644 > --- a/gnu/local.mk > +++ b/gnu/local.mk > @@ -1580,6 +1580,7 @@ dist_patch_DATA = \ > %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \ > %D%/packages/patches/weasyprint-library-paths.patch \ > %D%/packages/patches/webkitgtk-share-store.patch \ > + %D%/packages/patches/webkitgtk-bind-all-fonts.patch \ > %D%/packages/patches/websocketpp-fix-for-boost-1.70.patch \ > %D%/packages/patches/wicd-bitrate-none-fix.patch \ > %D%/packages/patches/wicd-get-selected-profile-fix.patch \ > diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch > new file mode 100644 > index 0000000000..fec0b812f1 > --- /dev/null > +++ b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch > @@ -0,0 +1,37 @@ > +Add fonts from all XDG_DATA_DIRS, not just XDG_DATA_HOME. > + > +See . > +Author: Leo Prikler > +Index: webkitgtk-2.28.2/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp > +=================================================================== > +--- webkitgtk-2.28.2.orig/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp > ++++ webkitgtk-2.28.2/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp > +@@ -385,8 +385,8 @@ static void bindFonts(Vector& a > + { > + const char* configDir = g_get_user_config_dir(); > + const char* homeDir = g_get_home_dir(); > +- const char* dataDir = g_get_user_data_dir(); > + const char* cacheDir = g_get_user_cache_dir(); > ++ const char* const * dataDirs = g_get_system_data_dirs(); > + > + // Configs can include custom dirs but then we have to parse them... > + GUniquePtr fontConfig(g_build_filename(configDir, "fontconfig", nullptr)); > +@@ -394,15 +394,17 @@ static void bindFonts(Vector& a > + GUniquePtr fontCache(g_build_filename(cacheDir, "fontconfig", nullptr)); > + GUniquePtr fontHomeConfig(g_build_filename(homeDir, ".fonts.conf", nullptr)); > + GUniquePtr fontHomeConfigDir(g_build_filename(configDir, ".fonts.conf.d", nullptr)); > +- GUniquePtr fontData(g_build_filename(dataDir, "fonts", nullptr)); > + GUniquePtr fontHomeData(g_build_filename(homeDir, ".fonts", nullptr)); > + bindIfExists(args, fontConfig.get()); > + bindIfExists(args, fontConfigHome.get()); > + bindIfExists(args, fontCache.get(), BindFlags::ReadWrite); > + bindIfExists(args, fontHomeConfig.get()); > + bindIfExists(args, fontHomeConfigDir.get()); > +- bindIfExists(args, fontData.get()); removed the above deleted lines from your patch, so as to continue honoring XDG_DATA_HOME, > + bindIfExists(args, fontHomeData.get()); > ++ for (auto dataDir = dataDirs; dataDir != nullptr && *dataDir != nullptr; dataDir++) { > ++ GUniquePtr fontDataDir(g_build_filename(*dataDir, "fonts", nullptr)); > ++ bindIfExists(args, fontDataDir.get()); > ++ } > + bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian. > + } > diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm > index 90be7d2625..a5c2b3fee2 100644 > --- a/gnu/packages/webkit.scm > +++ b/gnu/packages/webkit.scm > @@ -129,7 +129,8 @@ engine that uses Wayland for graphics output.") > (sha256 > (base32 > "1g9hik3bprki5s9d7y5288q5irwckbzajr6rnlvjrlnqrwjkblmr")) > - (patches (search-patches "webkitgtk-share-store.patch")))) > + (patches (search-patches "webkitgtk-share-store.patch" > + "webkitgtk-bind-all-fonts.patch")))) > (build-system cmake-build-system) > (outputs '("out" "doc")) > (arguments And validated it worked well with a './pre-inst-env guix system vm epiphany-ratpoison.scm' generated VM (it exhibited the problem after all, when used in a VM). For completeness sake, the test VM operating system is attached. It's not necessary to include bubblewrap to trigger the font problem.