Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkgs/development/python-modules/awslambdaric/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
, fetchpatch
, isPy27
, pytestCheckHook
, autoconf
, autoconf271
, automake
, cmake
, gcc
Expand Down Expand Up @@ -44,7 +44,7 @@ buildPythonPackage rec {

propagatedBuildInputs = [ simplejson ];

nativeBuildInputs = [ autoconf automake cmake libtool perl setuptools ];
nativeBuildInputs = [ autoconf271 automake cmake libtool perl setuptools ];

buildInputs = [ gcc ];

Expand Down
69 changes: 69 additions & 0 deletions pkgs/development/tools/misc/autoconf/2.71.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{ lib, stdenv, fetchurl, m4, perl, texinfo }:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we take this opportunity to add a common.nix file and share some of this code across versions?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I personally find it slightly easier to reason about the packages when they don't reuse parts of their implementation. A few pros from the top of my head:

  • deletion becomes just file (or directory) deletion
  • package update touches a single version, makes it easier to reason about the impact for packages that are stdenv dependencies
  • change history in default.nix is linear and does not get cluttered by occasional backports to older versions
  • ofborg gets sad to assign reviewers until pos attributes (and extra pending fixes: nix: point nix edit and ofborg at the original version attribute #276892 ) are applied

It feels to me like autoconf does not contain much code to share and does not expect much churn in previous versions.

But if deduplication is a strong requirement I can try to reshuffle things a bit.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean we can keep it like this, no strong feelings on my side.


# Note: this package is used for bootstrapping fetchurl, and thus
# cannot use fetchpatch! All mutable patches (generated by GitHub or
# cgit) that are needed here should be included directly in Nixpkgs as
# files.

stdenv.mkDerivation rec {
pname = "autoconf";
version = "2.71";
outputs = [ "out" "doc" ];

src = fetchurl {
url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i";
};
patches = [
# fix stale autom4te cache race condition:
# https://savannah.gnu.org/support/index.php?110521
./2.71-fix-race.patch
];

strictDeps = true;
nativeBuildInputs = [ m4 perl texinfo ];
buildInputs = [ m4 ];
postBuild = "
make html
";

postInstall = "
make install-html
";

# Work around a known issue in Cygwin. See
# http://thread.gmane.org/gmane.comp.sysutils.autoconf.bugs/6822 for
# details.
# There are many test failures on `i386-pc-solaris2.11'.
doCheck = ((!stdenv.isCygwin) && (!stdenv.isSunOS));

# Don't fixup "#! /bin/sh" in Autoconf, otherwise it will use the
# "fixed" path in generated files!
dontPatchShebangs = true;

enableParallelBuilding = true;

# Make the Autotest test suite run in parallel.
preCheck =''
export TESTSUITEFLAGS="-j$NIX_BUILD_CORES"
'';

meta = {
homepage = "https://www.gnu.org/software/autoconf/";
description = "Part of the GNU Build System";

longDescription = ''
GNU Autoconf is an extensible package of M4 macros that produce
shell scripts to automatically configure software source code
packages. These scripts can adapt the packages to many kinds of
UNIX-like systems without manual user intervention. Autoconf
creates a configuration script for a package from a template
file that lists the operating system features that the package
can use, in the form of M4 macro calls.
'';

license = lib.licenses.gpl3Plus;

platforms = lib.platforms.all;
};
}
9 changes: 2 additions & 7 deletions pkgs/development/tools/misc/autoconf/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,13 @@

stdenv.mkDerivation rec {
pname = "autoconf";
version = "2.71";
version = "2.72";
outputs = [ "out" "doc" ];

src = fetchurl {
url = "mirror://gnu/autoconf/autoconf-${version}.tar.xz";
sha256 = "197sl23irn6s9pd54rxj5vcp5y8dv65jb9yfqgr2g56cxg7q6k7i";
hash = "sha256-uohcExlXjWyU1G6bDc60AUyq/iSQ5Deg28o/JwoiP1o=";
};
patches = [
# fix stale autom4te cache race condition:
# https://savannah.gnu.org/support/index.php?110521
./2.71-fix-race.patch
];

strictDeps = true;
nativeBuildInputs = [ m4 perl texinfo ];
Expand Down
4 changes: 2 additions & 2 deletions pkgs/servers/firebird/default.nix
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:
{ lib, stdenv, fetchFromGitHub, libedit, autoreconfHook271, zlib, unzip, libtommath, libtomcrypt, icu, superServer ? false }:

let base = {
pname = "firebird";
Expand All @@ -13,7 +13,7 @@ let base = {
maintainers = with maintainers; [ marcweber ];
};

nativeBuildInputs = [ autoreconfHook ];
nativeBuildInputs = [ autoreconfHook271 ];

buildInputs = [ libedit icu ];

Expand Down
8 changes: 5 additions & 3 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,9 @@ with pkgs;
autoreconfHook269 = autoreconfHook.override {
autoconf = autoconf269;
};
autoreconfHook271 = autoreconfHook.override {
autoconf = autoconf271;
};

autorestic = callPackage ../tools/backup/autorestic { };

Expand Down Expand Up @@ -18478,14 +18481,13 @@ with pkgs;

autobuild = callPackage ../development/tools/misc/autobuild { };

autoconf = autoconf271;

autoconf-archive = callPackage ../development/tools/misc/autoconf-archive { };

autoconf = callPackage ../development/tools/misc/autoconf { };
autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { };
autoconf264 = callPackage ../development/tools/misc/autoconf/2.64.nix { };
autoconf269 = callPackage ../development/tools/misc/autoconf/2.69.nix { };
autoconf271 = callPackage ../development/tools/misc/autoconf { };
autoconf271 = callPackage ../development/tools/misc/autoconf/2.71.nix { };

acr = callPackage ../development/tools/misc/acr { };

Expand Down