Merge pull request #73795 from worldofpeace/fontconfig-2.13.92
This commit is contained in:
commit
09558f1dbf
@ -214,15 +214,7 @@ let
|
|||||||
# fontconfig default config files
|
# fontconfig default config files
|
||||||
ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
|
ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
|
||||||
$support_folder/
|
$support_folder/
|
||||||
ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
|
# Latest fontconfig is configured to look for the upstream defaults inside the package.
|
||||||
$latest_folder/
|
|
||||||
|
|
||||||
# update latest 51-local.conf path to look at the latest local.conf
|
|
||||||
rm $latest_folder/51-local.conf
|
|
||||||
|
|
||||||
substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
|
|
||||||
$latest_folder/51-local.conf \
|
|
||||||
--replace local.conf /etc/fonts/${latestVersion}/local.conf
|
|
||||||
|
|
||||||
# 00-nixos-cache.conf
|
# 00-nixos-cache.conf
|
||||||
ln -s ${cacheConfSupport} \
|
ln -s ${cacheConfSupport} \
|
||||||
@ -236,7 +228,11 @@ let
|
|||||||
# 50-user.conf
|
# 50-user.conf
|
||||||
${optionalString (!cfg.includeUserConf) ''
|
${optionalString (!cfg.includeUserConf) ''
|
||||||
rm $support_folder/50-user.conf
|
rm $support_folder/50-user.conf
|
||||||
rm $latest_folder/50-user.conf
|
''}
|
||||||
|
# Since latest fontconfig looks for default files inside the package,
|
||||||
|
# we had to move this one elsewhere to be able to exclude it here.
|
||||||
|
${optionalString cfg.includeUserConf ''
|
||||||
|
ln -s ${latestPkg.out}/etc/fonts/conf.d.bak/50-user.conf $latest_folder/50-user.conf
|
||||||
''}
|
''}
|
||||||
|
|
||||||
# local.conf (indirect priority 51)
|
# local.conf (indirect priority 51)
|
||||||
|
@ -1,17 +1,22 @@
|
|||||||
commit 05c6adf8104b4321d3a3716a7b9feb6bf223ed0c (HEAD, nixpkgs)
|
From 2ff9b53ce755be183ef9274f7dd3f9ac537173f6 Mon Sep 17 00:00:00 2001
|
||||||
Author: Vladimír Čunát <vcunat@gmail.com>
|
From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= <vcunat@gmail.com>
|
||||||
Date: Tue Nov 4 12:24:25 2014 +0100
|
Date: Tue, 4 Nov 2014 12:24:25 +0100
|
||||||
|
Subject: [PATCH] add check for /etc/fonts/@configVersion@/fonts.conf
|
||||||
|
|
||||||
add check for /etc/fonts/@configVersion@/fonts.conf
|
It's checked between FONTCONFIG_FILE and the in-package etc/fonts/fonts.conf.
|
||||||
|
The latter is used so that on non-NixOS distributions, fontconfig works at least
|
||||||
|
with upstream defaults, even when the global config is incompatible.
|
||||||
|
|
||||||
It's checked between FONTCONFIG_FILE and the usual /etc/fonts/fonts.conf.
|
Co-Authored-By: Jan Tojnar <jtojnar@gmail.com>
|
||||||
Also, hardcode /etc/fonts/fonts.conf to prevent accidental override.
|
---
|
||||||
|
src/fccfg.c | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/fccfg.c b/src/fccfg.c
|
diff --git a/src/fccfg.c b/src/fccfg.c
|
||||||
index 6377fd7..e9eb10a 100644
|
index 342c996..98a1324 100644
|
||||||
--- a/src/fccfg.c
|
--- a/src/fccfg.c
|
||||||
+++ b/src/fccfg.c
|
+++ b/src/fccfg.c
|
||||||
@@ -2070,8 +2070,13 @@ FcConfigFilename (const FcChar8 *url)
|
@@ -2391,8 +2391,13 @@ FcConfigGetFilename (FcConfig *config,
|
||||||
if (!url || !*url)
|
if (!url || !*url)
|
||||||
{
|
{
|
||||||
url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
|
url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
|
||||||
@ -22,7 +27,10 @@ index 6377fd7..e9eb10a 100644
|
|||||||
+ }
|
+ }
|
||||||
if (!url)
|
if (!url)
|
||||||
- url = (FcChar8 *) FONTCONFIG_FILE;
|
- url = (FcChar8 *) FONTCONFIG_FILE;
|
||||||
+ url = (FcChar8 *) "/etc/fonts/fonts.conf";
|
+ url = (FcChar8 *) FONTCONFIG_PATH "/" FONTCONFIG_FILE;
|
||||||
}
|
}
|
||||||
file = 0;
|
file = 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.26.2
|
||||||
|
|
||||||
|
@ -1,12 +1,22 @@
|
|||||||
{ stdenv, substituteAll, fetchurl
|
{ stdenv
|
||||||
, pkgconfig, freetype, expat, libxslt, gperf, dejavu_fonts
|
, fetchpatch
|
||||||
|
, substituteAll
|
||||||
|
, fetchurl
|
||||||
|
, pkg-config
|
||||||
|
, freetype
|
||||||
|
, expat
|
||||||
|
, libxslt
|
||||||
|
, gperf
|
||||||
|
, dejavu_fonts
|
||||||
|
, autoreconfHook
|
||||||
}:
|
}:
|
||||||
|
|
||||||
/** Font configuration scheme
|
/** Font configuration scheme
|
||||||
- ./config-compat.patch makes fontconfig try the following root configs, in order:
|
- ./config-compat.patch makes fontconfig try the following root configs, in order:
|
||||||
$FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, /etc/fonts/fonts.conf
|
$FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, ${fontconfig.out}/etc/fonts/fonts.conf
|
||||||
This is done not to override config of pre-2.11 versions (which just blow up)
|
This is done not to override config of pre-2.11 versions (which just blow up)
|
||||||
and still use *global* font configuration at both NixOS or non-NixOS.
|
and still use *global* font configuration at NixOS,
|
||||||
|
falling back to upstream defaults on non-NixOS.
|
||||||
- NixOS creates /etc/fonts/${configVersion}/fonts.conf link to $out/etc/fonts/fonts.conf,
|
- NixOS creates /etc/fonts/${configVersion}/fonts.conf link to $out/etc/fonts/fonts.conf,
|
||||||
and other modifications should go to /etc/fonts/${configVersion}/conf.d
|
and other modifications should go to /etc/fonts/${configVersion}/conf.d
|
||||||
- See ./make-fonts-conf.xsl for config details.
|
- See ./make-fonts-conf.xsl for config details.
|
||||||
@ -18,11 +28,11 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fontconfig";
|
pname = "fontconfig";
|
||||||
version = "2.12.6";
|
version = "2.13.92";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://fontconfig.org/release/${pname}-${version}.tar.bz2";
|
url = "http://fontconfig.org/release/${pname}-${version}.tar.xz";
|
||||||
sha256 = "05zh65zni11kgnhg726gjbrd55swspdvhqbcnj5a5xh8gn03036g";
|
sha256 = "0kkfsvxcvcphm9zcgsh646gix3qn4spz555wa1jp5hbq70l62vjh";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
@ -31,15 +41,56 @@ stdenv.mkDerivation rec {
|
|||||||
inherit configVersion;
|
inherit configVersion;
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# Fix fonts not being loaded when missing included configs that have ignore_missing="yes".
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1744377
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/fcada522913e5e07efa6367eff87ace9f06d24c8.patch";
|
||||||
|
sha256 = "1jbm3vw45b3qjnqrh2545v1k8vmb29c09v2wj07jnrq3lnchbvmn";
|
||||||
|
})
|
||||||
|
|
||||||
|
# Register JoyPixels as an emoji font.
|
||||||
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/67
|
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/67
|
||||||
./fix-joypixels.patch
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/65087ac7ce4cc5f2109967c1380b474955dcb590.patch";
|
||||||
|
sha256 = "1dkrbqx1c1d8yfnx0igvv516wanw2ksrpm3fbpm2h9nw0hccwqvm";
|
||||||
|
})
|
||||||
|
|
||||||
|
# Fix invalid DTD in reset-dirs.
|
||||||
|
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/78
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/a4aa66a858f1ecd375c5efe5916398281f73f794.patch";
|
||||||
|
sha256 = "1j4ky8jhpllfm1lh2if34xglh2hl79nsa0xxgzxpj9sx6h4v99j5";
|
||||||
|
})
|
||||||
|
|
||||||
|
# Do not include its tags, they are external now and only cause warnings with old fontconfig clients.
|
||||||
|
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/97
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/528b17b2837c3b102acd90cc7548d07bacaccb1f.patch";
|
||||||
|
sha256 = "1zf4wcd2xlprh805jalfy8ja5c2qzgkh4fwd1m9d638nl9gx932m";
|
||||||
|
})
|
||||||
|
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/100
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/37c7c748740bf6f2468d59e67951902710240b34.patch";
|
||||||
|
sha256 = "1rz5zrfwhpn9g49wrzzrmdglj78pbvpnw8ksgsw6bxq8l5d84jfr";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
|
outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
|
||||||
|
|
||||||
propagatedBuildInputs = [ freetype ];
|
nativeBuildInputs = [
|
||||||
nativeBuildInputs = [ pkgconfig gperf libxslt ];
|
gperf
|
||||||
buildInputs = [ expat ];
|
libxslt
|
||||||
|
pkg-config
|
||||||
|
autoreconfHook
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
expat
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
freetype
|
||||||
|
];
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
"--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||||
@ -61,11 +112,20 @@ stdenv.mkDerivation rec {
|
|||||||
postInstall = ''
|
postInstall = ''
|
||||||
cd "$out/etc/fonts"
|
cd "$out/etc/fonts"
|
||||||
xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
|
xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
|
||||||
|
--stringparam fontconfig "$out" \
|
||||||
--stringparam fontconfigConfigVersion "${configVersion}" \
|
--stringparam fontconfigConfigVersion "${configVersion}" \
|
||||||
--path $out/share/xml/fontconfig \
|
--path $out/share/xml/fontconfig \
|
||||||
${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \
|
${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \
|
||||||
> fonts.conf.tmp
|
> fonts.conf.tmp
|
||||||
mv fonts.conf.tmp $out/etc/fonts/fonts.conf
|
mv fonts.conf.tmp $out/etc/fonts/fonts.conf
|
||||||
|
|
||||||
|
# Make it easier to remove user config in NixOS module.
|
||||||
|
mkdir -p $out/etc/fonts/conf.d.bak
|
||||||
|
mv $out/etc/fonts/conf.d/50-user.conf $out/etc/fonts/conf.d.bak
|
||||||
|
|
||||||
|
# update latest 51-local.conf path to look at the latest local.conf
|
||||||
|
substituteInPlace $out/etc/fonts/conf.d/51-local.conf \
|
||||||
|
--replace local.conf /etc/fonts/${configVersion}/local.conf
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
--- a/conf.d/45-generic.conf
|
|
||||||
+++ b/conf.d/45-generic.conf
|
|
||||||
@@ -5,6 +5,10 @@
|
|
||||||
|
|
||||||
<!-- Emoji -->
|
|
||||||
|
|
||||||
+ <alias binding="same">
|
|
||||||
+ <family>JoyPixels</family>
|
|
||||||
+ <default><family>emoji</family></default>
|
|
||||||
+ </alias>
|
|
||||||
<alias binding="same">
|
|
||||||
<family>Emoji Two</family>
|
|
||||||
<default><family>emoji</family></default>
|
|
||||||
--- a/conf.d/60-generic.conf
|
|
||||||
+++ b/conf.d/60-generic.conf
|
|
||||||
@@ -29,6 +29,7 @@
|
|
||||||
<alias binding="same">
|
|
||||||
<family>emoji</family>
|
|
||||||
<prefer>
|
|
||||||
+ <family>JoyPixels</family>
|
|
||||||
<family>Emoji Two</family>
|
|
||||||
<family>Emoji One</family>
|
|
||||||
<!-- System fonts -->
|
|
@ -31,6 +31,9 @@
|
|||||||
<!-- versioned system-wide config -->
|
<!-- versioned system-wide config -->
|
||||||
<include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
|
<include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
|
||||||
|
|
||||||
|
<!-- upstream config -->
|
||||||
|
<include><xsl:value-of select="$fontconfig" />/etc/fonts/conf.d</include>
|
||||||
|
|
||||||
<dir prefix="xdg">fonts</dir>
|
<dir prefix="xdg">fonts</dir>
|
||||||
<xsl:for-each select="str:tokenize($fontDirectories)">
|
<xsl:for-each select="str:tokenize($fontDirectories)">
|
||||||
<dir><xsl:value-of select="." /></dir>
|
<dir><xsl:value-of select="." /></dir>
|
||||||
@ -40,6 +43,11 @@
|
|||||||
<!-- nix user profile -->
|
<!-- nix user profile -->
|
||||||
<dir>~/.nix-profile/lib/X11/fonts</dir>
|
<dir>~/.nix-profile/lib/X11/fonts</dir>
|
||||||
<dir>~/.nix-profile/share/fonts</dir>
|
<dir>~/.nix-profile/share/fonts</dir>
|
||||||
|
|
||||||
|
<!-- FHS paths for non-NixOS platforms -->
|
||||||
|
<dir>/usr/share/fonts</dir>
|
||||||
|
<dir>/usr/local/share/fonts</dir>
|
||||||
|
|
||||||
<!-- nix default profile -->
|
<!-- nix default profile -->
|
||||||
<dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir>
|
<dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir>
|
||||||
<dir>/nix/var/nix/profiles/default/share/fonts</dir>
|
<dir>/nix/var/nix/profiles/default/share/fonts</dir>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user