aboutsummaryrefslogtreecommitdiff
path: root/pkgs/development/libraries/ncurses
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2016-07-16 23:29:30 +0300
committerTuomas Tynkkynen <tuomas@tuxera.com>2016-07-16 23:47:28 +0300
commitb0cc1cd729ad22d6aeac00c0f2bd5209dd833cb4 (patch)
tree7f0baf0cb0a55941d664919183047fc7f43e619a /pkgs/development/libraries/ncurses
parent2eb6300b8752b269f6e4329f1ac84456e7312b04 (diff)
ncurses: Add explicit 'ncurses5' and 'ncurses6' attrs
Also reinstate the gcc5 patch to make it build on Linux.
Diffstat (limited to 'pkgs/development/libraries/ncurses')
-rw-r--r--pkgs/development/libraries/ncurses/default.nix9
-rw-r--r--pkgs/development/libraries/ncurses/gcc-5.patch46
2 files changed, 50 insertions, 5 deletions
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 7133634f2eb6..c1037a81c85e 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -1,15 +1,14 @@
{ lib, stdenv, fetchurl, pkgconfig
+, abiVersion
, mouseSupport ? false
, unicode ? true
, gpm
}:
let
- inherit (stdenv) isDarwin;
- abiVersion = if isDarwin then "5" else "6";
- version = if isDarwin then "5.9" else "6.0";
- sha256 = if isDarwin
+ version = if abiVersion == "5" then "5.9" else "6.0";
+ sha256 = if abiVersion == "5"
then "0fsn7xis81za62afan0vvm38bvgzg5wfmv1m86flqcj0nj7jjilh"
else "0q3jck7lna77z5r42f13c4xglc7azd19pxfrjrpgp2yf615w4lgm";
in
@@ -21,7 +20,7 @@ stdenv.mkDerivation rec {
inherit sha256;
};
- patches = [ ./clang.patch ];
+ patches = [ ./clang.patch ] ++ lib.optional (abiVersion == "5" && stdenv.cc.isGNU) ./gcc-5.patch;
outputs = [ "dev" "out" "man" ];
setOutputFlags = false; # some aren't supported
diff --git a/pkgs/development/libraries/ncurses/gcc-5.patch b/pkgs/development/libraries/ncurses/gcc-5.patch
new file mode 100644
index 000000000000..2448229b88e1
--- /dev/null
+++ b/pkgs/development/libraries/ncurses/gcc-5.patch
@@ -0,0 +1,46 @@
+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 \