Skip to content

Commit

Permalink
libtool: drop unused auto* dependencies
Browse files Browse the repository at this point in the history
Autoreconf was initially added in e44dd84 ("libtool2: macOS 11
support") for configure patches. The patches were removed since 2.4.7
release. Let's drop these dependencies to make boostrap tree leaner.

The diff of bootstrap tree before and after the change:

    $ nix-store --query --graph $(nix-instantiate -A stdenv) |
        fgrep ' -> ' | awk '{print $3}' | sort -u |
        sed 's/"[0-9a-z]\{32\}-/"/g' | sort > before

    $ nix-store --query --graph $(nix-instantiate -A stdenv) |
        fgrep ' -> ' | awk '{print $3}' | sort -u |
        sed 's/"[0-9a-z]\{32\}-/"/g' | sort > after

    $ diff -U0 before after

    --- before
    +++ after
    @@ -64,2 +63,0 @@
    -"help2man-1.49.2.drv"
    -"help2man-1.49.2.drv"
    @@ -77 +74,0 @@
    -"libxcrypt-4.4.33.drv"
    @@ -88,4 +84,0 @@
    -"perl-5.36.0.drv"
    -"perl-5.36.0.drv"
    -"perl5.36.0-gettext-1.07.drv"
    -"perl5.36.0-gettext-1.07.drv"

This removes 2 of 3 builds of `perl` and `help2man` dependencies.

Co-authored-by: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com>
  • Loading branch information
trofi and Adam Joseph committed Jan 13, 2023
1 parent 2add5f0 commit 6becbd3
Showing 1 changed file with 8 additions and 14 deletions.
22 changes: 8 additions & 14 deletions pkgs/development/tools/misc/libtool/libtool2.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchurl, fetchpatch, autoconf, automake, m4, perl, help2man
{ lib, stdenv, fetchurl, fetchpatch, m4
, runtimeShell
, file
}:
Expand All @@ -23,28 +23,22 @@ stdenv.mkDerivation rec {
# https://lists.gnu.org/archive/html/autotools-announce/2022-03/msg00000.html
FILECMD = "${file}/bin/file";

# Normally we'd use autoreconfHook, but that includes libtoolize.
postPatch = ''
aclocal -I m4
automake
autoconf
pushd libltdl
aclocal -I ../m4
automake
autoconf
popd
'' +
postPatch =
# libtool commit da2e352735722917bf0786284411262195a6a3f6 changed
# the shebang from `/bin/sh` (which is a special sandbox exception)
# to `/usr/bin/env sh`, meaning that we now need to patch shebangs
# in libtoolize.in:
''
substituteInPlace libtoolize.in --replace '#! /usr/bin/env sh' '#!${runtimeShell}'
# avoid help2man run after 'libtoolize.in' update
touch doc/libtoolize.1
'';

strictDeps = true;
nativeBuildInputs = [ autoconf automake help2man m4 perl ];
# As libtool is an early bootstrap dependency try hard not to
# add autoconf and automake or help2man dependencies here. That way we can
# avoid pulling in perl and get away with just an `m4` depend.
nativeBuildInputs = [ m4 file ];
propagatedBuildInputs = [ m4 file ];

# Don't fixup "#! /bin/sh" in Libtool, otherwise it will use the
Expand Down

0 comments on commit 6becbd3

Please sign in to comment.