Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
3.2 kB · 132 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133{ stdenv, lib, fetchurl, pkg-config, python3, freetype, expat, libxslt, gperf, dejavu_fonts, autoreconfHook, versionCheckHook, testers, gitUpdater,}:
stdenv.mkDerivation (finalAttrs: { pname = "fontconfig"; version = "2.16.2";
outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
# GitLab repositrory does not include pre-generated man pages. # ref: https://github.com/NixOS/nixpkgs/pull/401037#discussion_r2055430206 src = fetchurl { url = "https://gitlab.freedesktop.org/api/v4/projects/890/packages/generic/fontconfig/${finalAttrs.version}/fontconfig-${finalAttrs.version}.tar.xz"; hash = "sha256-FluP0qEZhkyHRksjOYbEobwJ77CcZd4cpAzB6F/7d+I="; };
nativeBuildInputs = [ autoreconfHook gperf libxslt pkg-config python3 ];
buildInputs = [ expat ];
propagatedBuildInputs = [ freetype ];
postPatch = '' # Requires networking. sed -i '/check_PROGRAMS += test-crbug1004254/d' test/Makefile.am
# Test causes error without patch shebangs. patchShebangs doc/check-whitespace-in-args.py '';
configureFlags = [ "--sysconfdir=/etc" "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/ # just <1MB; this is what you get when loading config fails for some reason "--with-default-fonts=${dejavu_fonts.minimal}" ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}" ];
enableParallelBuilding = true;
doCheck = true;
installFlags = [ # Don't try to write to /var/cache/fontconfig at install time. "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 includes /etc/fonts/conf.d \ --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 # We don't keep section 3 of the manpages, as they are quite large and # probably not so useful. rm -r $bin/share/man/man3 '';
nativeInstallCheckInputs = [ versionCheckHook ]; doInstallCheck = true; versionCheckProgram = "${placeholder "bin"}/bin/fc-list"; versionCheckProgramArg = "--version";
installCheckPhase = '' runHook preInstallCheck
[ -d "$bin/share/man/man1" ] [ -d "$bin/share/man/man5" ] echo "man pages exist"
runHook postInstallCheck '';
passthru = { tests = { pkg-config = testers.hasPkgConfigModules { package = finalAttrs.finalPackage; }; };
updateScript = gitUpdater { url = "https://gitlab.freedesktop.org/fontconfig/fontconfig.git"; }; };
meta = with lib; { description = "Library for font customization and configuration"; homepage = "http://fontconfig.org/"; license = licenses.bsd2; # custom but very bsd-like platforms = platforms.all; teams = [ teams.freedesktop ]; pkgConfigModules = [ "fontconfig" ]; };})