--- Begin Message ---
Subject: |
Epiphany can't find fonts |
Date: |
Sun, 10 May 2020 15:02:58 +0200 |
User-agent: |
Evolution 3.34.2 |
Hi Guix,
when trying to set fonts in Epiphany, it appears as though fonts other
than "Serif", "Sans" and "Monospace" do not apply. Some symbols, such
as CJK, are also missing in text (but not tooltips interestingly) even
if a font supporting them is installed. I tried refreshing and also
removing the fontconfig cache, but that didn't help.
Regards, Leo
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#41174: [PATCH] gnu: webkitgtk: Add patch to share all fonts. |
Date: |
Sun, 16 Aug 2020 16:19:53 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi Leo,
Leo Prikler <leo.prikler@student.tugraz.at> writes:
> * gnu/packages/patches/webkitgtk-bind-all-fonts.patch: New file.
> * gnu/packages/webkit.scm (webkitgtk)[source]<patches>: 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 <http://bugs.gnu.org/41174>.
> +Author: Leo Prikler <leo.prikler@student.tugraz.at>
> +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<CString>& 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<char> fontConfig(g_build_filename(configDir, "fontconfig",
> nullptr));
> +@@ -394,15 +394,17 @@ static void bindFonts(Vector<CString>& a
> + GUniquePtr<char> fontCache(g_build_filename(cacheDir, "fontconfig",
> nullptr));
> + GUniquePtr<char> fontHomeConfig(g_build_filename(homeDir,
> ".fonts.conf", nullptr));
> + GUniquePtr<char> fontHomeConfigDir(g_build_filename(configDir,
> ".fonts.conf.d", nullptr));
> +- GUniquePtr<char> fontData(g_build_filename(dataDir, "fonts", nullptr));
> + GUniquePtr<char> 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<char> 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.
epiphany-ratpoison.scm
Description: Text document
The fix is now merged in master as of commit bc549a276c.
Thanks for investigating and fixing the issue!
Closing,
Maxim
--- End Message ---