diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index 831f2387a427..ae9d6064f32f 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -849,6 +849,12 @@ services.transmission.settings.rpc-bind-address = "0.0.0.0";
There are no functional changes, however this may require updating some configurations to use correct types for all attributes.
+
+
+ The fontconfig module stopped generating fontconfig 2.10.x config and cache.
+ Fontconfig 2.10.x was removed from Nixpkgs - it hasn't been used in any nixpkgs package anymore.
+
+
diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix
index 52d284f739b3..12a40fbb5a27 100644
--- a/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixos/modules/config/fonts/fontconfig.nix
@@ -1,11 +1,6 @@
/*
-NixOS support 2 fontconfig versions, "support" and "latest".
-
-- "latest" refers to default fontconfig package (pkgs.fontconfig).
- configuration files are linked to /etc/fonts/VERSION/conf.d/
-- "support" refers to supportPkg (pkgs."fontconfig_${supportVersion}").
- configuration files are linked to /etc/fonts/conf.d/
+Configuration files are linked to /etc/fonts/${pkgs.fontconfig.configVersion}/conf.d/
This module generates a package containing configuration files and link it in /etc/fonts.
@@ -22,40 +17,21 @@ let
cfg = config.fonts.fontconfig;
fcBool = x: "" + (boolToString x) + "";
-
- # back-supported fontconfig version and package
- # version is used for font cache generation
- supportVersion = "210";
- supportPkg = pkgs."fontconfig_${supportVersion}";
-
- # latest fontconfig version and package
- # version is used for configuration folder name, /etc/fonts/VERSION/
- # note: format differs from supportVersion and can not be used with makeCacheConf
- latestVersion = pkgs.fontconfig.configVersion;
- latestPkg = pkgs.fontconfig;
-
- # supported version fonts.conf
- supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
+ pkg = pkgs.fontconfig;
# configuration file to read fontconfig cache
- # version dependent
# priority 0
- cacheConfSupport = makeCacheConf { version = supportVersion; };
- cacheConfLatest = makeCacheConf {};
+ cacheConf = makeCacheConf {};
- # generate the font cache setting file for a fontconfig version
- # use latest when no version is passed
+ # generate the font cache setting file
# When cross-compiling, we can’t generate the cache, so we skip the
# part. fontconfig still works but is a little slower in
# looking things up.
- makeCacheConf = { version ? null }:
+ makeCacheConf = { }:
let
- fcPackage = if version == null
- then "fontconfig"
- else "fontconfig_${version}";
makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
- cache = makeCache pkgs.${fcPackage};
- cache32 = makeCache pkgs.pkgsi686Linux.${fcPackage};
+ cache = makeCache pkgs.fontconfig;
+ cache32 = makeCache pkgs.pkgsi686Linux.fontconfig;
in
pkgs.writeText "fc-00-nixos-cache.conf" ''
@@ -200,59 +176,49 @@ let
confPkg = pkgs.runCommand "fontconfig-conf" {
preferLocalBuild = true;
} ''
- support_folder=$out/etc/fonts/conf.d
- latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
- mkdir -p $support_folder
- mkdir -p $latest_folder
+ dst=$out/etc/fonts/${pkg.configVersion}/conf.d
+ mkdir -p $dst
# fonts.conf
- ln -s ${supportFontsConf} $support_folder/../fonts.conf
- ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
- $latest_folder/../fonts.conf
+ ln -s ${pkg.out}/etc/fonts/fonts.conf \
+ $dst/../fonts.conf
# fontconfig default config files
- ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
- $support_folder/
- # Latest fontconfig is configured to look for the upstream defaults inside the package.
+ ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
+ $dst/
+
+ # update 51-local.conf path to look at local.conf
+ rm $dst/51-local.conf
+
+ substitute ${pkg.out}/etc/fonts/conf.d/51-local.conf \
+ $dst/51-local.conf \
+ --replace local.conf /etc/fonts/${pkg.configVersion}/local.conf
# 00-nixos-cache.conf
- ln -s ${cacheConfSupport} \
- $support_folder/00-nixos-cache.conf
- ln -s ${cacheConfLatest} $latest_folder/00-nixos-cache.conf
+ ln -s ${cacheConf} $dst/00-nixos-cache.conf
# 10-nixos-rendering.conf
- ln -s ${renderConf} $support_folder/10-nixos-rendering.conf
- ln -s ${renderConf} $latest_folder/10-nixos-rendering.conf
+ ln -s ${renderConf} $dst/10-nixos-rendering.conf
# 50-user.conf
${optionalString (!cfg.includeUserConf) ''
- rm $support_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
+ rm $dst/50-user.conf
''}
# local.conf (indirect priority 51)
${optionalString (cfg.localConf != "") ''
- ln -s ${localConf} $support_folder/../local.conf
- ln -s ${localConf} $latest_folder/../local.conf
+ ln -s ${localConf} $dst/../local.conf
''}
# 52-nixos-default-fonts.conf
- ln -s ${defaultFontsConf} $support_folder/52-nixos-default-fonts.conf
- ln -s ${defaultFontsConf} $latest_folder/52-nixos-default-fonts.conf
+ ln -s ${defaultFontsConf} $dst/52-nixos-default-fonts.conf
# 53-no-bitmaps.conf
- ln -s ${rejectBitmaps} $support_folder/53-no-bitmaps.conf
- ln -s ${rejectBitmaps} $latest_folder/53-no-bitmaps.conf
+ ln -s ${rejectBitmaps} $dst/53-no-bitmaps.conf
${optionalString (!cfg.allowType1) ''
# 53-nixos-reject-type1.conf
- ln -s ${rejectType1} $support_folder/53-nixos-reject-type1.conf
- ln -s ${rejectType1} $latest_folder/53-nixos-reject-type1.conf
+ ln -s ${rejectType1} $dst/53-nixos-reject-type1.conf
''}
'';
diff --git a/pkgs/development/libraries/fontconfig/2.10.nix b/pkgs/development/libraries/fontconfig/2.10.nix
deleted file mode 100644
index f4cc29892451..000000000000
--- a/pkgs/development/libraries/fontconfig/2.10.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, freetype, expat
-}:
-
-stdenv.mkDerivation rec {
- name = "fontconfig-2.10.2";
-
- src = fetchurl {
- url = "http://fontconfig.org/release/${name}.tar.bz2";
- sha256 = "0llraqw86jmw4vzv7inskp3xxm2gc64my08iwq5mzncgfdbfza4f";
- };
-
- outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
-
- propagatedBuildInputs = [ freetype ];
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ expat ];
-
- configureFlags = [
- "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
- "--sysconfdir=/etc"
- "--with-cache-dir=/var/cache/fontconfig"
- "--disable-docs"
- "--with-default-fonts="
- ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
- "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
- ];
-
- enableParallelBuilding = true;
-
- doCheck = true;
-
- # Don't try to write to /var/cache/fontconfig at install time.
- installFlags = [ "sysconfdir=$(out)/etc" "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
-
- passthru = {
- # Empty for backward compatibility, there was no versioning before 2.11
- configVersion = "";
- };
-
- meta = with stdenv.lib; {
- description = "A library for font customization and configuration";
- homepage = "http://fontconfig.org/";
- license = licenses.bsd2; # custom but very bsd-like
- platforms = platforms.all;
- maintainers = [ maintainers.vcunat ];
- };
-}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 3d2c21cc3586..3df944635c18 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -138,6 +138,11 @@ mapAliases ({
fontconfig-ultimate has been removed. The repository has been archived upstream and activity has ceased for several years.
https://github.com/bohoomil/fontconfig-ultimate/issues/171.
'';
+ # 2020-07-21
+ fontconfig_210 = throw ''
+ fontconfig 2.10.x hasn't had a release in years, is vulnerable to CVE-2016-5384
+ and has only been used for old fontconfig caches.
+ '';
font-droid = throw "font-droid has been deprecated by noto-fonts"; # 2019-04-12
foomatic_filters = foomatic-filters; # 2016-08
fuse_exfat = exfat; # 2015-09-11
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 933a7544fb77..878615936ce5 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12066,8 +12066,6 @@ in
cfitsio = callPackage ../development/libraries/cfitsio { };
- fontconfig_210 = callPackage ../development/libraries/fontconfig/2.10.nix { };
-
fontconfig = callPackage ../development/libraries/fontconfig { };
fontconfig-penultimate = callPackage ../data/fonts/fontconfig-penultimate {};