From 0b402f072535c1ecd9e96ac279bf2d2c466cb33d Mon Sep 17 00:00:00 2001 From: quantenzitrone Date: Sat, 23 Aug 2025 13:16:31 +0200 Subject: [PATCH] libxft: refactor, move to pkgs/by-name and rename from xorg.libXft relevant changes: - remove the patched in 'Requires: freetype2' as it does not matter since the dependency is propagated anyway - remove 'inherit freetype fontconfig' from passthru because that was probably there through an error anyways. It was added here https://github.com/NixOS/nixpkgs/commit/9454f71fefcbe413fdfcb61b510256f1301c5f5c --- pkgs/by-name/li/libxft/package.nix | 76 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 44 +---------- .../x11/xorg/generate-expr-from-tarballs.pl | 3 + pkgs/servers/x11/xorg/overrides.nix | 21 ----- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 81 insertions(+), 64 deletions(-) create mode 100644 pkgs/by-name/li/libxft/package.nix diff --git a/pkgs/by-name/li/libxft/package.nix b/pkgs/by-name/li/libxft/package.nix new file mode 100644 index 000000000000..3f5955be00ac --- /dev/null +++ b/pkgs/by-name/li/libxft/package.nix @@ -0,0 +1,76 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + fontconfig, + freetype, + libx11, + libxrender, + xorgproto, + writeScript, + testers, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxft"; + version = "2.3.9"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXft-${finalAttrs.version}.tar.xz"; + hash = "sha256-YKJbeJRe1pMmNbO7GJmlF9Md90VuaYZ/+6J/if85dvU="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + fontconfig + freetype + libx11 + libxrender + xorgproto + ]; + + propagatedBuildInputs = [ + xorgproto + # header file dependencies + freetype + fontconfig + libxrender + ]; + + configureFlags = lib.optional ( + stdenv.hostPlatform != stdenv.buildPlatform + ) "--enable-malloc0returnsnull"; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXft \ + --url https://xorg.freedesktop.org/releases/individual/lib/ \ + | sort -V | tail -n1)" + update-source-version ${finalAttrs.pname} "$version" + ''; + tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + }; + + meta = { + description = "X FreeType library"; + longDescription = '' + libXft is the client side font rendering library, using libfreetype, libX11, and the + X Render extension to display anti-aliased text. + ''; + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxft"; + license = lib.licenses.hpndSellVariant; + maintainers = [ ]; + pkgConfigModules = [ "xft" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index b41b8d631691..470a7319989b 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -38,6 +38,7 @@ libxfixes, libxfont_1, libxfont_2, + libxft, libxmu, libxpm, libxrandr, @@ -142,6 +143,7 @@ self: with self; { libXfixes = libxfixes; libXfont2 = libxfont_2; libXfont = libxfont_1; + libXft = libxft; libXmu = libxmu; libXpm = libxpm; libXrandr = libxrandr; @@ -1766,48 +1768,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXft = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - fontconfig, - freetype, - libX11, - xorgproto, - libXrender, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXft"; - version = "2.3.9"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXft-2.3.9.tar.xz"; - sha256 = "1xbn77zqjzx2zdzqcsbf8pvivlqplnciifxk6lk97mjyjiw5p8k0"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - fontconfig - freetype - libX11 - xorgproto - libXrender - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xft" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! libXi = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index a163122e191f..974d338324b7 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -69,6 +69,7 @@ $pcMap{"xext"} = "libXext"; $pcMap{"xfixes"} = "libXfixes"; $pcMap{"xfont"} = "libXfont"; $pcMap{"xfont2"} = "libXfont2"; +$pcMap{"xft"} = "libXft"; $pcMap{"xmu"} = "libXmu"; $pcMap{"xmuu"} = "libXmu"; $pcMap{"xpm"} = "libXpm"; @@ -358,6 +359,7 @@ print OUT <