From 26d0fd4b685539be2be59a93e2bc1f85ab7c73df Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 16 Jan 2026 09:06:10 -0600 Subject: [PATCH 1/3] libpng: migrate to pkgs/by-name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This moves libpng to the by-name directory layout: pkgs/development/libraries/libpng → pkgs/by-name/li/libpng The package is renamed to package.nix. The previous Darwin-specific stdenv override (using darwin.bootstrapStdenv to avoid xcbuild recursion) is preserved by introducing a local stdenv' binding and using it for mkDerivation. This keeps the bootstrap behavior identical to the old location. The old libpng entry in all-packages.nix is removed, since by-name packages are now auto-discovered. --- pkgs/{development/libraries => by-name/li}/libpng/12.nix | 0 .../libpng/default.nix => by-name/li/libpng/package.nix} | 5 +++-- pkgs/top-level/all-packages.nix | 7 ------- 3 files changed, 3 insertions(+), 9 deletions(-) rename pkgs/{development/libraries => by-name/li}/libpng/12.nix (100%) rename pkgs/{development/libraries/libpng/default.nix => by-name/li/libpng/package.nix} (92%) diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/by-name/li/libpng/12.nix similarity index 100% rename from pkgs/development/libraries/libpng/12.nix rename to pkgs/by-name/li/libpng/12.nix diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/by-name/li/libpng/package.nix similarity index 92% rename from pkgs/development/libraries/libpng/default.nix rename to pkgs/by-name/li/libpng/package.nix index c16b6d4a17a2..ddb7e305a837 100644 --- a/pkgs/development/libraries/libpng/default.nix +++ b/pkgs/by-name/li/libpng/package.nix @@ -5,6 +5,7 @@ zlib, apngSupport ? true, testers, + darwin, }: assert zlib != null; @@ -16,9 +17,9 @@ let hash = "sha256-aH3cDHyxKKPqWOFZtRKSUlN8J+3gwyqT8R8DEn8MAWU="; }; whenPatched = lib.optionalString apngSupport; - + stdenv' = if stdenv.hostPlatform.isDarwin then darwin.bootstrapStdenv else stdenv; in -stdenv.mkDerivation (finalAttrs: { +stdenv'.mkDerivation (finalAttrs: { pname = "libpng" + whenPatched "-apng"; version = "1.6.53"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 33d2fdea20f6..4b7faaff7894 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7151,13 +7151,6 @@ with pkgs; libpeas = callPackage ../development/libraries/libpeas { }; libpeas2 = callPackage ../development/libraries/libpeas/2.x.nix { }; - libpng = callPackage ../development/libraries/libpng { - stdenv = - # libpng is a dependency of xcbuild. Avoid an infinite recursion by using a bootstrap stdenv - # that does not propagate xcrun. - if stdenv.hostPlatform.isDarwin then darwin.bootstrapStdenv else stdenv; - }; - libpng12 = callPackage ../development/libraries/libpng/12.nix { }; inherit From a310cb20e2a2a399eb639b4d79ea80230eaa44c2 Mon Sep 17 00:00:00 2001 From: Guy Chronister Date: Fri, 16 Jan 2026 09:11:24 -0600 Subject: [PATCH 2/3] libpng12: migrate to pkgs/by-name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This moves libpng12 to the by-name directory layout: pkgs/by-name/li/libpng/12.nix → pkgs/by-name/li/libpng12/package.nix The file is renamed to package.nix to follow by-name conventions, and the fixed-output hash is updated to the modern `hash =` form. The old libpng12 entry in all-packages.nix is removed, since by-name packages are now auto-discovered. --- pkgs/by-name/li/{libpng/12.nix => libpng12/package.nix} | 2 +- pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) rename pkgs/by-name/li/{libpng/12.nix => libpng12/package.nix} (93%) diff --git a/pkgs/by-name/li/libpng/12.nix b/pkgs/by-name/li/libpng12/package.nix similarity index 93% rename from pkgs/by-name/li/libpng/12.nix rename to pkgs/by-name/li/libpng12/package.nix index 3ab92139ab9e..62ffbf0cbdcb 100644 --- a/pkgs/by-name/li/libpng/12.nix +++ b/pkgs/by-name/li/libpng12/package.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchurl { url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz"; - sha256 = "1izw9ybm27llk8531w6h4jp4rk2rxy2s9vil16nwik5dp0amyqxl"; + hash = "sha256-tGNfFbitzMitCTTupIXvWcxMriTQ8DAKmpQeUZdP/Mc="; }; postPatch = lib.optionalString stdenv.hostPlatform.isDarwin '' diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4b7faaff7894..6ee1eb2c3301 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7151,8 +7151,6 @@ with pkgs; libpeas = callPackage ../development/libraries/libpeas { }; libpeas2 = callPackage ../development/libraries/libpeas/2.x.nix { }; - libpng12 = callPackage ../development/libraries/libpng/12.nix { }; - inherit (callPackages ../development/libraries/prometheus-client-c { stdenv = gccStdenv; # Required for darwin From 3598316c3f91281906612ef9095450df01e34304 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Mon, 2 Feb 2026 09:42:14 +0100 Subject: [PATCH 3/3] libpng: restore comment explaining the stdenv override --- pkgs/by-name/li/libpng/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/li/libpng/package.nix b/pkgs/by-name/li/libpng/package.nix index ddb7e305a837..fa8ef30cf583 100644 --- a/pkgs/by-name/li/libpng/package.nix +++ b/pkgs/by-name/li/libpng/package.nix @@ -17,6 +17,9 @@ let hash = "sha256-aH3cDHyxKKPqWOFZtRKSUlN8J+3gwyqT8R8DEn8MAWU="; }; whenPatched = lib.optionalString apngSupport; + + # libpng is a dependency of xcbuild. Avoid an infinite recursion by using a bootstrap stdenv + # that does not propagate xcrun. stdenv' = if stdenv.hostPlatform.isDarwin then darwin.bootstrapStdenv else stdenv; in stdenv'.mkDerivation (finalAttrs: {