From 56ec4b7d1671aba5d77052225c758dbabfbe75fa Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:29:15 +0000 Subject: [PATCH 1/9] adns: format with `nixfmt-rfc-style` --- pkgs/by-name/ad/adns/package.nix | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index eeb6c07bf11d..22088853570a 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -1,4 +1,10 @@ -{ stdenv, lib, fetchurl, gnum4, gitUpdater }: +{ + stdenv, + lib, + fetchurl, + gnum4, + gitUpdater, +}: stdenv.mkDerivation rec { pname = "adns"; @@ -16,8 +22,7 @@ stdenv.mkDerivation rec { configureFlags = lib.optional stdenv.hostPlatform.isStatic "--disable-dynamic"; - preConfigure = - lib.optionalString stdenv.hostPlatform.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure"; + preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure"; # Autogenerated headers miss interdependencies in Makefile, fail parallel build: # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51329 @@ -26,10 +31,13 @@ stdenv.mkDerivation rec { # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details. doCheck = false; - postInstall = let suffix = lib.versions.majorMinor version; - in lib.optionalString stdenv.hostPlatform.isDarwin '' - install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix} - ''; + postInstall = + let + suffix = lib.versions.majorMinor version; + in + lib.optionalString stdenv.hostPlatform.isDarwin '' + install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix} + ''; # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib doInstallCheck = !stdenv.hostPlatform.isDarwin; From bf65989fe97f87f6ceb896a5384482566211891a Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:29:37 +0000 Subject: [PATCH 2/9] adns: use `finalAttrs` --- pkgs/by-name/ad/adns/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index 22088853570a..f956cea6be2a 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -6,14 +6,14 @@ gitUpdater, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "adns"; version = "1.6.1"; src = fetchurl { urls = [ - "https://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-${version}.tar.gz" - "mirror://gnu/adns/adns-${version}.tar.gz" + "https://www.chiark.greenend.org.uk/~ian/adns/ftp/adns-${finalAttrs.version}.tar.gz" + "mirror://gnu/adns/adns-${finalAttrs.version}.tar.gz" ]; hash = "sha256-cTizeJt1Br1oP0UdT32FMHepGAO3s12G7GZ/D5zUAc0="; }; @@ -61,4 +61,4 @@ stdenv.mkDerivation rec { platforms = platforms.unix; }; -} +}) From 9a071c952059168b1d4b4a00f71de76012e0b64e Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:29:55 +0000 Subject: [PATCH 3/9] adns: remove `with lib;` --- pkgs/by-name/ad/adns/package.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index f956cea6be2a..9deede12da33 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -54,11 +54,10 @@ stdenv.mkDerivation (finalAttrs: { rev-prefix = "adns-"; }; - meta = with lib; { + meta = { homepage = "http://www.chiark.greenend.org.uk/~ian/adns/"; description = "Asynchronous DNS Resolver Library"; - license = licenses.lgpl2; - - platforms = platforms.unix; + license = lib.licenses.lgpl2; + platforms = lib.platforms.unix; }; }) From cf3ff2dd370b7371cb2f09ec3364b75cdfcbf635 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:59:59 +0000 Subject: [PATCH 4/9] adns: rearrange furniture --- pkgs/by-name/ad/adns/package.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index 9deede12da33..8570de37f8a4 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -1,6 +1,6 @@ { - stdenv, lib, + stdenv, fetchurl, gnum4, gitUpdater, @@ -22,8 +22,6 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = lib.optional stdenv.hostPlatform.isStatic "--disable-dynamic"; - preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure"; - # Autogenerated headers miss interdependencies in Makefile, fail parallel build: # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51329 enableParallelBuilding = false; @@ -31,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: { # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details. doCheck = false; + # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib + doInstallCheck = !stdenv.hostPlatform.isDarwin; + + preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure"; + postInstall = let suffix = lib.versions.majorMinor version; @@ -39,8 +42,6 @@ stdenv.mkDerivation (finalAttrs: { install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix} ''; - # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib - doInstallCheck = !stdenv.hostPlatform.isDarwin; installCheckPhase = '' set -eo pipefail From 3f94e7e68c682c9269f2d5a9857fe77d84657944 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:30:21 +0000 Subject: [PATCH 5/9] adns: update licence --- pkgs/by-name/ad/adns/package.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index 8570de37f8a4..509f2ed7fd3e 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -58,7 +58,12 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "http://www.chiark.greenend.org.uk/~ian/adns/"; description = "Asynchronous DNS Resolver Library"; - license = lib.licenses.lgpl2; + license = [ + lib.licenses.gpl3Plus + + # `adns.h` only + lib.licenses.lgpl2Plus + ]; platforms = lib.platforms.unix; }; }) From 9bac1ec6850749fe691f0d617bc2a620566228b5 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:06:47 +0000 Subject: [PATCH 6/9] adns: use title case for `meta.description` --- pkgs/by-name/ad/adns/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index 509f2ed7fd3e..eff5c17fc7ef 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: { meta = { homepage = "http://www.chiark.greenend.org.uk/~ian/adns/"; - description = "Asynchronous DNS Resolver Library"; + description = "Asynchronous DNS resolver library"; license = [ lib.licenses.gpl3Plus From 6ae57a56dcfb8603debae92111d0e35f23e8c7c5 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 10:02:39 +0000 Subject: [PATCH 7/9] adns: modernize `installCheckPhase` --- pkgs/by-name/ad/adns/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index eff5c17fc7ef..1e9bac183dab 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -43,11 +43,13 @@ stdenv.mkDerivation (finalAttrs: { ''; installCheckPhase = '' - set -eo pipefail + runHook preInstallCheck for prog in $out/bin/*; do $prog --help > /dev/null && echo $(basename $prog) shows usage done + + runHook postInstallCheck ''; passthru.updateScript = gitUpdater { From e7e4bcc65b3fba6334b4d4b5f16573968d3c633e Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:06:47 +0000 Subject: [PATCH 8/9] adns: enable parallel building The bug was fixed in the latest version. --- pkgs/by-name/ad/adns/package.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index 1e9bac183dab..d57c8768ceed 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -22,9 +22,7 @@ stdenv.mkDerivation (finalAttrs: { configureFlags = lib.optional stdenv.hostPlatform.isStatic "--disable-dynamic"; - # Autogenerated headers miss interdependencies in Makefile, fail parallel build: - # https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51329 - enableParallelBuilding = false; + enableParallelBuilding = true; # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details. doCheck = false; From 4f0ff90a95d69f9ba314f198c79454f95a3643f0 Mon Sep 17 00:00:00 2001 From: Emily Date: Mon, 11 Nov 2024 09:06:47 +0000 Subject: [PATCH 9/9] adns: fix Darwin properly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The post‐facto install name replacement was unpredictably running out of space; just patch the build system to do the right thing instead. And don’t use `.so` on Darwin, either. --- pkgs/by-name/ad/adns/darwin.patch | 21 +++++++++++++++++++++ pkgs/by-name/ad/adns/package.nix | 21 ++++++++------------- 2 files changed, 29 insertions(+), 13 deletions(-) create mode 100644 pkgs/by-name/ad/adns/darwin.patch diff --git a/pkgs/by-name/ad/adns/darwin.patch b/pkgs/by-name/ad/adns/darwin.patch new file mode 100644 index 000000000000..9c44f89d462e --- /dev/null +++ b/pkgs/by-name/ad/adns/darwin.patch @@ -0,0 +1,21 @@ +diff --git a/configure.in b/configure.in +index b753a5bb3e..ee7d546984 100644 +--- a/configure.in ++++ b/configure.in +@@ -134,12 +134,12 @@ + AC_SUBST(SHLIBFILE) + AC_SUBST(SHLIBSONAME) + +-SHLIBFORLINK='libadns.so' +-SHLIBSONAME='$(SHLIBFORLINK).$(MAJOR)' +-SHLIBFILE='$(SHLIBSONAME).$(MINOR)' ++SHLIBFORLINK='libadns.dylib' ++SHLIBSONAME='libadns.$(MAJOR).dylib' ++SHLIBFILE='libadns.$(MAJOR).$(MINOR).dylib' + + SHLIBCC='$(CC) $(CFLAGS) -fpic' +-MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME) -o' ++MKSHLIB_1='$(CC) $(LDFLAGS) -shared -Wl,-install_name,$(libdir)/$(SHLIBFILE) -o' + MKSHLIB_2='' + MKSHLIB_3='-lc' + diff --git a/pkgs/by-name/ad/adns/package.nix b/pkgs/by-name/ad/adns/package.nix index d57c8768ceed..70c04d94aadd 100644 --- a/pkgs/by-name/ad/adns/package.nix +++ b/pkgs/by-name/ad/adns/package.nix @@ -3,6 +3,7 @@ stdenv, fetchurl, gnum4, + autoreconfHook, gitUpdater, }: @@ -18,7 +19,12 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-cTizeJt1Br1oP0UdT32FMHepGAO3s12G7GZ/D5zUAc0="; }; - nativeBuildInputs = [ gnum4 ]; + patches = lib.optionals stdenv.hostPlatform.isDarwin [ ./darwin.patch ]; + + nativeBuildInputs = [ + gnum4 + autoreconfHook + ]; configureFlags = lib.optional stdenv.hostPlatform.isStatic "--disable-dynamic"; @@ -27,18 +33,7 @@ stdenv.mkDerivation (finalAttrs: { # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details. doCheck = false; - # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib - doInstallCheck = !stdenv.hostPlatform.isDarwin; - - preConfigure = lib.optionalString stdenv.hostPlatform.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure"; - - postInstall = - let - suffix = lib.versions.majorMinor version; - in - lib.optionalString stdenv.hostPlatform.isDarwin '' - install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix} - ''; + doInstallCheck = true; installCheckPhase = '' runHook preInstallCheck