fontconfig: get rid of rest of versioned configs
The incompatibility does not seem to exist any more: programs linked against fc 2.12 on fc 2.14 system seem to at least display text, even while printing tons of errors (as long as you generate fc cache manually), and same thing the other way around. Hopefully it will not be an issue in the future.
This commit is contained in:
parent
89401d986c
commit
b49a769970
@ -1,6 +1,6 @@
|
||||
/*
|
||||
|
||||
Configuration files are linked to /etc/fonts/${pkgs.fontconfig.configVersion}/conf.d/
|
||||
Configuration files are linked to /etc/fonts/conf.d/
|
||||
|
||||
This module generates a package containing configuration files and link it in /etc/fonts.
|
||||
|
||||
@ -176,15 +176,16 @@ let
|
||||
confPkg = pkgs.runCommand "fontconfig-conf" {
|
||||
preferLocalBuild = true;
|
||||
} ''
|
||||
dst=$out/etc/fonts/${pkg.configVersion}/conf.d
|
||||
dst=$out/etc/fonts/conf.d
|
||||
mkdir -p $dst
|
||||
|
||||
# fonts.conf
|
||||
ln -s ${pkg.out}/etc/fonts/fonts.conf \
|
||||
$dst/../fonts.conf
|
||||
# TODO: remove this legacy symlink once people stop using packages built before #95358 was merged
|
||||
ln -s /etc/fonts/${pkg.configVersion}/fonts.conf \
|
||||
$out/etc/fonts/fonts.conf
|
||||
mkdir -p $out/etc/fonts/2.11
|
||||
ln -s /etc/fonts/fonts.conf \
|
||||
$out/etc/fonts/2.11/fonts.conf
|
||||
|
||||
# fontconfig default config files
|
||||
ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
|
||||
|
@ -1,28 +0,0 @@
|
||||
commit 05c6adf8104b4321d3a3716a7b9feb6bf223ed0c (HEAD, nixpkgs)
|
||||
Author: Vladimír Čunát <vcunat@gmail.com>
|
||||
Date: Tue Nov 4 12:24:25 2014 +0100
|
||||
|
||||
add check for /etc/fonts/@configVersion@/fonts.conf
|
||||
|
||||
It's checked between FONTCONFIG_FILE and the usual /etc/fonts/fonts.conf.
|
||||
Also, hardcode /etc/fonts/fonts.conf to prevent accidental override.
|
||||
|
||||
diff --git a/src/fccfg.c b/src/fccfg.c
|
||||
index 6377fd7..e9eb10a 100644
|
||||
--- a/src/fccfg.c
|
||||
+++ b/src/fccfg.c
|
||||
@@ -2070,8 +2070,13 @@ FcConfigFilename (const FcChar8 *url)
|
||||
if (!url || !*url)
|
||||
{
|
||||
url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
|
||||
+ if (!url) {
|
||||
+ static const FcChar8 *cfPath = "/etc/fonts/@configVersion@/fonts.conf";
|
||||
+ if (access (cfPath, R_OK) == 0)
|
||||
+ url = cfPath;
|
||||
+ }
|
||||
if (!url)
|
||||
- url = (FcChar8 *) FONTCONFIG_FILE;
|
||||
+ url = (FcChar8 *) "/etc/fonts/fonts.conf";
|
||||
}
|
||||
file = 0;
|
||||
|
@ -11,20 +11,6 @@
|
||||
, autoreconfHook
|
||||
}:
|
||||
|
||||
/** Font configuration scheme
|
||||
- ./config-compat.patch makes fontconfig try the following root configs, in order:
|
||||
$FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, /etc/fonts/fonts.conf
|
||||
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.
|
||||
- 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
|
||||
- See ./make-fonts-conf.xsl for config details.
|
||||
|
||||
*/
|
||||
|
||||
let
|
||||
configVersion = "2.11"; # bump whenever fontconfig breaks compatibility with older configurations
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "fontconfig";
|
||||
version = "2.13.92";
|
||||
@ -35,11 +21,6 @@ stdenv.mkDerivation rec {
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./config-compat.patch;
|
||||
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 {
|
||||
@ -72,6 +53,13 @@ stdenv.mkDerivation rec {
|
||||
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/37c7c748740bf6f2468d59e67951902710240b34.patch";
|
||||
sha256 = "1rz5zrfwhpn9g49wrzzrmdglj78pbvpnw8ksgsw6bxq8l5d84jfr";
|
||||
})
|
||||
|
||||
# Show warning instead of error when encountering unknown attribute in config.
|
||||
# https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/111
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/409b37c62780728755c908991c912a6b16f2389c.patch";
|
||||
sha256 = "zJFh37QErSAINPGFkFVJyhYRP27BuIN7PIgoDl/PIwI=";
|
||||
})
|
||||
];
|
||||
|
||||
outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
|
||||
@ -92,6 +80,7 @@ stdenv.mkDerivation rec {
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--sysconfdir=/etc"
|
||||
"--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
|
||||
"--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/
|
||||
"--disable-docs"
|
||||
@ -105,23 +94,22 @@ stdenv.mkDerivation rec {
|
||||
|
||||
doCheck = true;
|
||||
|
||||
installFlags = [
|
||||
# Don't try to write to /var/cache/fontconfig at install time.
|
||||
installFlags = [ "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
|
||||
"fc_cachedir=$(TMPDIR)/dummy"
|
||||
"RUN_FC_CACHE_TEST=false"
|
||||
"sysconfdir=${placeholder "out"}/etc"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
cd "$out/etc/fonts"
|
||||
xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
|
||||
--stringparam fontconfigConfigVersion "${configVersion}" \
|
||||
--path $out/share/xml/fontconfig \
|
||||
${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \
|
||||
> fonts.conf.tmp
|
||||
mv fonts.conf.tmp $out/etc/fonts/fonts.conf
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit configVersion;
|
||||
};
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "A library for font customization and configuration";
|
||||
homepage = "http://fontconfig.org/";
|
||||
|
@ -10,7 +10,6 @@ runCommand "fonts.conf"
|
||||
''
|
||||
xsltproc --stringparam fontDirectories "$fontDirectories" \
|
||||
--stringparam fontconfig "${fontconfig.out}" \
|
||||
--stringparam fontconfigConfigVersion "${fontconfig.configVersion}" \
|
||||
--path ${fontconfig.out}/share/xml/fontconfig \
|
||||
${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \
|
||||
> $out
|
||||
|
@ -16,7 +16,6 @@
|
||||
|
||||
<xsl:param name="fontDirectories" />
|
||||
<xsl:param name="fontconfig" />
|
||||
<xsl:param name="fontconfigConfigVersion" />
|
||||
|
||||
<xsl:template match="/fontconfig">
|
||||
|
||||
@ -28,8 +27,8 @@
|
||||
<!-- /var/cache/fontconfig is useful for non-nixos systems -->
|
||||
<cachedir>/var/cache/fontconfig</cachedir>
|
||||
|
||||
<!-- versioned system-wide config -->
|
||||
<include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
|
||||
<!-- system-wide config -->
|
||||
<include ignore_missing="yes">/etc/fonts/conf.d</include>
|
||||
|
||||
<dir prefix="xdg">fonts</dir>
|
||||
<xsl:for-each select="str:tokenize($fontDirectories)">
|
||||
|
Loading…
Reference in New Issue
Block a user