Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
134 lines
3.2 KiB
Nix
134 lines
3.2 KiB
Nix
{
|
|
stdenv,
|
|
lib,
|
|
fetchurl,
|
|
pkg-config,
|
|
python3,
|
|
freetype,
|
|
expat,
|
|
libxslt,
|
|
gperf,
|
|
dejavu_fonts,
|
|
autoreconfHook,
|
|
versionCheckHook,
|
|
testers,
|
|
gitUpdater,
|
|
}:
|
|
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
pname = "fontconfig";
|
|
version = "2.17.1";
|
|
|
|
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-n1yuk/T//B+8Ba6ZzfxwjNYN/WYS/8BRKCcCXAJvpUE=";
|
|
};
|
|
|
|
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 \
|
|
doc/check-missing-doc.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" ];
|
|
};
|
|
})
|