summary refs log tree commit diff
path: root/pkgs/development/libraries/ncurses
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2018-01-28 03:22:41 +0200
committerTuomas Tynkkynen <tuomas@tuxera.com>2018-01-28 03:27:38 +0200
commit3d24ae9b4426bb8adfcb08de57be21fdf0a377f8 (patch)
tree1a7c82e013bb040c312a7dd2547b25d38f74acd3 /pkgs/development/libraries/ncurses
parent11e98eaae728906cdef324c5070d5e4ce1176388 (diff)
downloadnixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar.gz
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar.bz2
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar.lz
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar.xz
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.tar.zst
nixlib-3d24ae9b4426bb8adfcb08de57be21fdf0a377f8.zip
ncurses5: Use v6 sources but compiled with --with-abi-version=5
So we don't have to dig out why ncurses5.9 stops compiling with newer
compiler versions again and again.

Inspired by:

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ncurses5-compat-libs
Diffstat (limited to 'pkgs/development/libraries/ncurses')
-rw-r--r--pkgs/development/libraries/ncurses/default.nix22
-rw-r--r--pkgs/development/libraries/ncurses/gcc-5.patch46
2 files changed, 9 insertions, 59 deletions
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 0dd7b37e1a66..308a916b0bd0 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -11,23 +11,18 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = if abiVersion == "5" then "5.9" else "6.0-20171125";
-  name = "ncurses-${version}";
+  version = "6.0-20171125";
+  name = "ncurses-${version}" + lib.optionalString (abiVersion == "5") "-abi5-compat";
 
-  src = fetchurl (if abiVersion == "5" then {
-    url = "mirror://gnu/ncurses/${name}.tar.gz";
-    sha256 = "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh";
-  } else {
+  src = fetchurl {
     urls = [
-      "ftp://ftp.invisible-island.net/ncurses/current/${name}.tgz"
-      "https://invisible-mirror.net/archives/ncurses/current/${name}.tgz"
+      "ftp://ftp.invisible-island.net/ncurses/current/ncurses-${version}.tgz"
+      "https://invisible-mirror.net/archives/ncurses/current/ncurses-${version}.tgz"
     ];
     sha256 = "11adzj0k82nlgpfrflabvqn2m7fmhp2y6pd7ivmapynxqb9vvb92";
-  });
+  };
 
-  # Unnecessarily complicated in order to avoid mass-rebuilds
-  patches = lib.optional (!stdenv.cc.isClang || abiVersion == "5") ./clang.patch
-    ++ lib.optional (stdenv.cc.isGNU && abiVersion == "5") ./gcc-5.patch;
+  patches = lib.optional (!stdenv.cc.isClang) ./clang.patch;
 
   outputs = [ "out" "dev" "man" ];
   setOutputFlags = false; # some aren't supported
@@ -37,7 +32,8 @@ stdenv.mkDerivation rec {
     "--without-debug"
     "--enable-pc-files"
     "--enable-symlinks"
-  ] ++ lib.optional unicode "--enable-widec";
+  ] ++ lib.optional unicode "--enable-widec"
+    ++ lib.optional (abiVersion == "5") "--with-abi-version=5";
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
diff --git a/pkgs/development/libraries/ncurses/gcc-5.patch b/pkgs/development/libraries/ncurses/gcc-5.patch
deleted file mode 100644
index 2448229b88e1..000000000000
--- a/pkgs/development/libraries/ncurses/gcc-5.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-https://bugs.gentoo.org/545114
-
-extracted from the upstream change (which had many unrelated commits in one)
-
-From 97bb4678dc03e753290b39bbff30ba2825df9517 Mon Sep 17 00:00:00 2001
-From: "Thomas E. Dickey" <dickey@invisible-island.net>
-Date: Sun, 7 Dec 2014 03:10:09 +0000
-Subject: [PATCH] ncurses 5.9 - patch 20141206
-
-+ modify MKlib_gen.sh to work around change in development version of
-  gcc introduced here:
-	  https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
-	  https://gcc.gnu.org/ml/gcc-patches/2014-07/msg00236.html
-  (reports by Marcus Shawcroft, Maohui Lei).
-
-diff --git a/ncurses/base/MKlib_gen.sh b/ncurses/base/MKlib_gen.sh
-index d8cc3c9..b91398c 100755
---- a/ncurses/base/MKlib_gen.sh
-+++ b/ncurses/base/MKlib_gen.sh
-@@ -474,11 +474,22 @@ sed -n -f $ED1 \
- 	-e 's/gen_$//' \
- 	-e 's/  / /g' >>$TMP
- 
-+cat >$ED1 <<EOF
-+s/  / /g
-+s/^ //
-+s/ $//
-+s/P_NCURSES_BOOL/NCURSES_BOOL/g
-+EOF
-+
-+# A patch discussed here:
-+#	https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02185.html
-+# introduces spurious #line markers.  Work around that by ignoring the system's
-+# attempt to define "bool" and using our own symbol here.
-+sed -e 's/bool/P_NCURSES_BOOL/g' $TMP > $ED2
-+cat $ED2 >$TMP
-+
- $preprocessor $TMP 2>/dev/null \
--| sed \
--	-e 's/  / /g' \
--	-e 's/^ //' \
--	-e 's/_Bool/NCURSES_BOOL/g' \
-+| sed -f $ED1 \
- | $AWK -f $AW2 \
- | sed -f $ED3 \
- | sed \