From d3e3c7aaf473b3cc065ef19a2651fbfacf5776f0 Mon Sep 17 00:00:00 2001 From: quantenzitrone Date: Sat, 23 Aug 2025 07:01:15 +0200 Subject: [PATCH 1/5] libxcomposite: refactor, move to pkgs/by-name and rename from xorg.libXcomposite --- pkgs/by-name/li/libxcomposite/package.nix | 65 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 42 +----------- .../x11/xorg/generate-expr-from-tarballs.pl | 5 +- pkgs/servers/x11/xorg/overrides.nix | 8 --- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 72 insertions(+), 49 deletions(-) create mode 100644 pkgs/by-name/li/libxcomposite/package.nix diff --git a/pkgs/by-name/li/libxcomposite/package.nix b/pkgs/by-name/li/libxcomposite/package.nix new file mode 100644 index 000000000000..b141e7eece76 --- /dev/null +++ b/pkgs/by-name/li/libxcomposite/package.nix @@ -0,0 +1,65 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + xorgproto, + libx11, + libxfixes, + writeScript, + testers, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxcomposite"; + version = "0.4.6"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXcomposite-${finalAttrs.version}.tar.xz"; + hash = "sha256-/kC88K4aCQcOuiQIil65gQ7+V0U3eeweIKVQgMbcLIc="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + xorgproto + libx11 + libxfixes + ]; + + propagatedBuildInputs = [ + xorgproto + # header file dependencies + libxfixes + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXcomposite \ + --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 = "Client library for the Composite extension to the X11 protocol"; + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxcomposite"; + license = with lib.licenses; [ + hpndSellVariant + mit + ]; + maintainers = [ ]; + pkgConfigModules = [ "xcomposite" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 15acd52e9e48..a624e138cc0c 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -29,8 +29,9 @@ libxcb-render-util, libxcb-util, libxcb-wm, - libxcvt, + libxcomposite, libxcursor, + libxcvt, libxdmcp, libxext, libxfixes, @@ -130,6 +131,7 @@ self: with self; { libX11 = libx11; libXau = libxau; libXaw = libxaw; + libXcomposite = libxcomposite; libXcursor = libxcursor; libXdmcp = libxdmcp; libXext = libxext; @@ -1758,44 +1760,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXcomposite = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - xorgproto, - libX11, - libXfixes, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXcomposite"; - version = "0.4.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXcomposite-0.4.6.tar.xz"; - sha256 = "11rcvk380l5540gfqy9p8mbzw3l1p5g8l214p870f28smvqbqh7y"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - xorgproto - libX11 - libXfixes - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xcomposite" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! libXdamage = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 0abd26780af1..677d521fdd77 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -61,6 +61,7 @@ $pcMap{"xcb-keysyms"} = "xcbutilkeysyms"; $pcMap{"xcb-proto"} = "xcbproto"; $pcMap{"xcb-renderutil"} = "xcbutilrenderutil"; $pcMap{"xcb-util"} = "xcbutil"; +$pcMap{"xcomposite"} = "libXcomposite"; $pcMap{"xcursor"} = "libXcursor"; $pcMap{"xdmcp"} = "libXdmcp"; $pcMap{"xext"} = "libXext"; @@ -345,8 +346,9 @@ print OUT < Date: Mon, 18 Aug 2025 21:50:17 +0200 Subject: [PATCH 2/5] libxdamage: refactor, move to pkgs/by-name and rename from xorg.libXdamage --- pkgs/by-name/li/libxdamage/package.nix | 58 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 40 +------------ .../x11/xorg/generate-expr-from-tarballs.pl | 3 + pkgs/servers/x11/xorg/overrides.nix | 7 --- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 63 insertions(+), 46 deletions(-) create mode 100644 pkgs/by-name/li/libxdamage/package.nix diff --git a/pkgs/by-name/li/libxdamage/package.nix b/pkgs/by-name/li/libxdamage/package.nix new file mode 100644 index 000000000000..39c34e3530fa --- /dev/null +++ b/pkgs/by-name/li/libxdamage/package.nix @@ -0,0 +1,58 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + xorgproto, + libx11, + libxfixes, + writeScript, + testers, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxdamage"; + version = "1.1.6"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXdamage-${finalAttrs.version}.tar.xz"; + hash = "sha256-UnM8H1Ji/KNfZOfVBgxvzYGogLqOHmXJYhzwcnr7XRE="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + xorgproto + libx11 + libxfixes + ]; + + propagatedBuildInputs = [ xorgproto ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXdamage \ + --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 Damage Extension library"; + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxdamage"; + license = lib.licenses.hpndSellVariant; + maintainers = [ ]; + pkgConfigModules = [ "xdamage" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index a624e138cc0c..0024c39765cc 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -32,6 +32,7 @@ libxcomposite, libxcursor, libxcvt, + libxdamage, libxdmcp, libxext, libxfixes, @@ -133,6 +134,7 @@ self: with self; { libXaw = libxaw; libXcomposite = libxcomposite; libXcursor = libxcursor; + libXdamage = libxdamage; libXdmcp = libxdmcp; libXext = libxext; libXfixes = libxfixes; @@ -1760,44 +1762,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXdamage = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - xorgproto, - libX11, - libXfixes, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXdamage"; - version = "1.1.6"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXdamage-1.1.6.tar.xz"; - sha256 = "04axzdx75w0wcb4na7lfpa0ai0fddw60dmg7cigs7z32a8gkqwsj"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - xorgproto - libX11 - libXfixes - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xdamage" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! libXfont = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 677d521fdd77..5ca2415e875d 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -63,6 +63,7 @@ $pcMap{"xcb-renderutil"} = "xcbutilrenderutil"; $pcMap{"xcb-util"} = "xcbutil"; $pcMap{"xcomposite"} = "libXcomposite"; $pcMap{"xcursor"} = "libXcursor"; +$pcMap{"xdamage"} = "libXdamage"; $pcMap{"xdmcp"} = "libXdmcp"; $pcMap{"xext"} = "libXext"; $pcMap{"xfixes"} = "libXfixes"; @@ -349,6 +350,7 @@ print OUT < Date: Sat, 23 Aug 2025 14:53:09 +0200 Subject: [PATCH 3/5] libxfont_{1,2}: refactor, move to pkgs/by-name and rename from xorg.libXfont{,2} relevant changes: - this removes freetype from propagatedBuildInputs of libxfont_1 since it is not in 'Requires:' of xfont.pc nor imported in the header files The comment on the line said "propagate link reqs", however, if i understand this correctly, link requirements don't need to be propagated --- pkgs/by-name/li/libxfont_1/package.nix | 73 +++++++++++++++ pkgs/by-name/li/libxfont_2/package.nix | 60 +++++++++++++ pkgs/servers/x11/xorg/default.nix | 88 +------------------ .../x11/xorg/generate-expr-from-tarballs.pl | 6 ++ pkgs/servers/x11/xorg/overrides.nix | 10 --- pkgs/servers/x11/xorg/tarballs.list | 2 - 6 files changed, 143 insertions(+), 96 deletions(-) create mode 100644 pkgs/by-name/li/libxfont_1/package.nix create mode 100644 pkgs/by-name/li/libxfont_2/package.nix diff --git a/pkgs/by-name/li/libxfont_1/package.nix b/pkgs/by-name/li/libxfont_1/package.nix new file mode 100644 index 000000000000..421f34dd9afe --- /dev/null +++ b/pkgs/by-name/li/libxfont_1/package.nix @@ -0,0 +1,73 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + libfontenc, + xorgproto, + freetype, + xtrans, + zlib, + writeScript, + testers, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxfont_1"; + version = "1.5.4"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXfont-${finalAttrs.version}.tar.bz2"; + hash = "sha256-Gn90kHdMh/IFLRRtHg5kUY0y5oSBhKGGVOjQu1eIMkI="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + libfontenc + xorgproto + freetype + xtrans + zlib + ]; + + propagatedBuildInputs = [ xorgproto ]; + + # prevents "misaligned_stack_error_entering_dyld_stub_binder" + configureFlags = lib.optional stdenv.hostPlatform.isDarwin "CFLAGS=-O0"; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXfont \ + --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 font handling library for server & utilities"; + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxfont"; + license = with lib.licenses; [ + mit + mitOpenGroup + hpnd + hpndSellVariant + # this was originally BSD-3-Clause-UC, however the University of California rescinded + # clause 3, the advertising clause, in 1999 effectively reverting it to a BSD-3-Clause + bsd3 + ]; + maintainers = [ ]; + pkgConfigModules = [ "xfont" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/by-name/li/libxfont_2/package.nix b/pkgs/by-name/li/libxfont_2/package.nix new file mode 100644 index 000000000000..2902d682931f --- /dev/null +++ b/pkgs/by-name/li/libxfont_2/package.nix @@ -0,0 +1,60 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + libfontenc, + xorgproto, + freetype, + xtrans, + zlib, + writeScript, + testers, + # for inheriting the meta attributes + libxfont_1, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxfont_2"; + version = "2.0.7"; + + outputs = [ + "out" + "dev" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXfont2-${finalAttrs.version}.tar.xz"; + hash = "sha256-i3uC/eukh2m2lDPo4/u5hKX2vzaLDV9Hq+7EnePljvs="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + libfontenc + xorgproto + freetype + xtrans + zlib + ]; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXfont2 \ + --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 = { + inherit (libxfont_1.meta) description homepage license; + maintainers = [ ]; + pkgConfigModules = [ "xfont2" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 0024c39765cc..b41b8d631691 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -36,6 +36,8 @@ libxdmcp, libxext, libxfixes, + libxfont_1, + libxfont_2, libxmu, libxpm, libxrandr, @@ -138,6 +140,8 @@ self: with self; { libXdmcp = libxdmcp; libXext = libxext; libXfixes = libxfixes; + libXfont2 = libxfont_2; + libXfont = libxfont_1; libXmu = libxmu; libXpm = libxpm; libXrandr = libxrandr; @@ -1762,90 +1766,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXfont = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libfontenc, - xorgproto, - freetype, - xtrans, - zlib, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXfont"; - version = "1.5.4"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXfont-1.5.4.tar.bz2"; - sha256 = "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libfontenc - xorgproto - freetype - xtrans - zlib - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xfont" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXfont2 = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - libfontenc, - xorgproto, - freetype, - xtrans, - zlib, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXfont2"; - version = "2.0.7"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXfont2-2.0.7.tar.xz"; - sha256 = "1ywfwpirvi7fmd3my3cb6szzd9c4p7xy7s1kjjv6k1x4xgyq4ywb"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - libfontenc - xorgproto - freetype - xtrans - zlib - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xfont2" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! libXft = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 5ca2415e875d..a163122e191f 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -67,6 +67,8 @@ $pcMap{"xdamage"} = "libXdamage"; $pcMap{"xdmcp"} = "libXdmcp"; $pcMap{"xext"} = "libXext"; $pcMap{"xfixes"} = "libXfixes"; +$pcMap{"xfont"} = "libXfont"; +$pcMap{"xfont2"} = "libXfont2"; $pcMap{"xmu"} = "libXmu"; $pcMap{"xmuu"} = "libXmu"; $pcMap{"xpm"} = "libXpm"; @@ -354,6 +356,8 @@ print OUT < Date: Sat, 23 Aug 2025 13:16:31 +0200 Subject: [PATCH 4/5] 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 < Date: Sat, 23 Aug 2025 13:52:48 +0200 Subject: [PATCH 5/5] libxi: refactor, move to pkgs/by-name and rename from xorg.libXi --- pkgs/by-name/li/libxi/package.nix | 76 +++++++++++++++++++ pkgs/servers/x11/xorg/default.nix | 42 +--------- .../x11/xorg/generate-expr-from-tarballs.pl | 3 + pkgs/servers/x11/xorg/overrides.nix | 18 ----- pkgs/servers/x11/xorg/tarballs.list | 1 - 5 files changed, 81 insertions(+), 59 deletions(-) create mode 100644 pkgs/by-name/li/libxi/package.nix diff --git a/pkgs/by-name/li/libxi/package.nix b/pkgs/by-name/li/libxi/package.nix new file mode 100644 index 000000000000..3cbac22c36f3 --- /dev/null +++ b/pkgs/by-name/li/libxi/package.nix @@ -0,0 +1,76 @@ +{ + lib, + stdenv, + fetchurl, + pkg-config, + xorgproto, + libx11, + libxext, + libxfixes, + writeScript, + testers, +}: +stdenv.mkDerivation (finalAttrs: { + pname = "libxi"; + version = "1.8.2"; + + outputs = [ + "out" + "dev" + "man" + "doc" + ]; + + src = fetchurl { + url = "mirror://xorg/individual/lib/libXi-${finalAttrs.version}.tar.xz"; + hash = "sha256-0OBVXlPW4hFOq/pEImuhYtJwhQGiXhjZnPs1wJTGwQQ="; + }; + + strictDeps = true; + + nativeBuildInputs = [ pkg-config ]; + + buildInputs = [ + xorgproto + libx11 + libxext + libxfixes + ]; + + propagatedBuildInputs = [ + xorgproto + # header file dependencies + libx11 + libxext + libxfixes + ]; + + configureFlags = + lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "xorg_cv_malloc0_returns_null=no" + ++ lib.optional stdenv.hostPlatform.isStatic "--disable-shared"; + + passthru = { + updateScript = writeScript "update-${finalAttrs.pname}" '' + #!/usr/bin/env nix-shell + #!nix-shell -i bash -p common-updater-scripts + version="$(list-directory-versions --pname libXi \ + --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 = "library for the X Input Extension"; + homepage = "https://gitlab.freedesktop.org/xorg/lib/libxi"; + license = with lib.licenses; [ + mitOpenGroup + hpnd + mit + ]; + maintainers = [ ]; + pkgConfigModules = [ "xi" ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix index 470a7319989b..f9014e1b707b 100644 --- a/pkgs/servers/x11/xorg/default.nix +++ b/pkgs/servers/x11/xorg/default.nix @@ -39,6 +39,7 @@ libxfont_1, libxfont_2, libxft, + libxi, libxmu, libxpm, libxrandr, @@ -144,6 +145,7 @@ self: with self; { libXfont2 = libxfont_2; libXfont = libxfont_1; libXft = libxft; + libXi = libxi; libXmu = libxmu; libXpm = libxpm; libXrandr = libxrandr; @@ -1768,46 +1770,6 @@ self: with self; { }) ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! - libXi = callPackage ( - { - stdenv, - pkg-config, - fetchurl, - xorgproto, - libX11, - libXext, - libXfixes, - testers, - }: - stdenv.mkDerivation (finalAttrs: { - pname = "libXi"; - version = "1.8.2"; - builder = ./builder.sh; - src = fetchurl { - url = "mirror://xorg/individual/lib/libXi-1.8.2.tar.xz"; - sha256 = "0161qsac0dgvkkcihpm2062p1lk2l5mj4i7smd713qnnadg5bq6h"; - }; - hardeningDisable = [ - "bindnow" - "relro" - ]; - strictDeps = true; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - xorgproto - libX11 - libXext - libXfixes - ]; - passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; - meta = { - pkgConfigModules = [ "xi" ]; - platforms = lib.platforms.unix; - }; - }) - ) { }; - # THIS IS A GENERATED FILE. DO NOT EDIT! libXinerama = callPackage ( { diff --git a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl index 974d338324b7..7707038ca648 100755 --- a/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl +++ b/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl @@ -70,6 +70,7 @@ $pcMap{"xfixes"} = "libXfixes"; $pcMap{"xfont"} = "libXfont"; $pcMap{"xfont2"} = "libXfont2"; $pcMap{"xft"} = "libXft"; +$pcMap{"xi"} = "libXi"; $pcMap{"xmu"} = "libXmu"; $pcMap{"xmuu"} = "libXmu"; $pcMap{"xpm"} = "libXpm"; @@ -360,6 +361,7 @@ print OUT <