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 {};