summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2018-02-19 09:33:34 -0500
committerShea Levy <shea@shealevy.com>2018-02-19 09:33:34 -0500
commitfb8a09e8f0bf3eedcea908b89b4769094857a446 (patch)
tree47bc1810c3e179e80fcb00bef1c1a18c5c1fe2fe /pkgs/development/tools/build-managers
parentcfa3e7e6339ad4e96077e8099dc2193fadb5371b (diff)
downloadnixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar.gz
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar.bz2
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar.lz
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar.xz
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.tar.zst
nixpkgs-fb8a09e8f0bf3eedcea908b89b4769094857a446.zip
gnumake: Add 4.2.90pre2491_38c8a11 for proper glibc 2.27 support.
Diffstat (limited to 'pkgs/development/tools/build-managers')
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/head.nix69
-rw-r--r--pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch31
2 files changed, 100 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/head.nix b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix
new file mode 100644
index 00000000000..5f3ae10c3e5
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/head.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl, texinfo, guileSupport ? false, pkgconfig , guile ? null, autoreconfHook }:
+
+assert guileSupport -> ( guile != null );
+
+let
+  version = "4.2.90";
+  revision = "48c8a116a914a325a0497721f5d8b58d5bba34d4";
+  revCount = "2491";
+  shortRev = "48c8a11";
+
+  baseVersion = "4.2.1";
+  baseTarball = fetchurl {
+    url = "mirror://gnu/make/make-${baseVersion}.tar.bz2";
+    sha256 = "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn";
+  };
+in
+stdenv.mkDerivation {
+  name = "gnumake-${version}pre${revCount}_${shortRev}";
+
+  src = fetchurl {
+    url = "http://git.savannah.gnu.org/cgit/make.git/snapshot/make-${revision}.tar.gz";
+    sha256 = "0k6yvhr2a5lh1qhflv02dyvq5p20ikgaakm8w6gr4xmkspljwpwx";
+  };
+
+  postUnpack = ''
+    unpackFile ${baseTarball}
+    cp make-${baseVersion}/po/*.po $sourceRoot/po
+    cp make-${baseVersion}/doc/{fdl,make-stds}.texi $sourceRoot/doc
+  '';
+
+  patches = [
+    # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+    # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+    # included Makefiles, don't look in /usr/include and friends.
+    ./impure-dirs-head.patch
+  ];
+
+  postPatch = ''
+    # These aren't in the 4.2.1 tarball yet.
+    sed -i -e 's/sr//' -e 's/zh_TW//' po/LINGUAS
+  '';
+
+  nativeBuildInputs = [ autoreconfHook pkgconfig texinfo ];
+  buildInputs = stdenv.lib.optional guileSupport guile;
+
+  configureFlags = stdenv.lib.optional guileSupport "--with-guile";
+
+  outputs = [ "out" "man" "info" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://www.gnu.org/software/make/;
+    description = "A tool to control the generation of non-source files from sources";
+    license = licenses.gpl3Plus;
+
+    longDescription = ''
+      Make is a tool which controls the generation of executables and
+      other non-source files of a program from the program's source files.
+
+      Make gets its knowledge of how to build your program from a file
+      called the makefile, which lists each of the non-source files and
+      how to compute it from other files. When you write a program, you
+      should write a makefile for it, so that it is possible to use Make
+      to build and install the program.
+    '';
+
+    platforms = platforms.all;
+    maintainers = [ maintainers.vrthra ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch
new file mode 100644
index 00000000000..06d39e13ce3
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/4.2/impure-dirs-head.patch
@@ -0,0 +1,31 @@
+diff -Naur a/src/read.c b/src/read.c
+--- a/src/read.c	2017-11-19 15:17:47.000000000 -0500
++++ b/src/read.c	2018-02-19 08:53:51.548755213 -0500
+@@ -109,10 +109,12 @@
+ #endif
+     INCLUDEDIR,
+ #ifndef _AMIGA
++#if 0
+     "/usr/gnu/include",
+     "/usr/local/include",
+     "/usr/include",
+ #endif
++#endif
+     0
+   };
+ 
+diff -Naur a/src/remake.c b/src/remake.c
+--- a/src/remake.c	2017-11-19 15:17:47.000000000 -0500
++++ b/src/remake.c	2018-02-19 08:54:08.304101943 -0500
+@@ -1601,9 +1601,11 @@
+   static const char *dirs[] =
+     {
+ #ifndef _AMIGA
++#if 0
+       "/lib",
+       "/usr/lib",
+ #endif
++#endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
+  * This is completely up to the user at product install time. Just define