diff options
author | Tuomas Tynkkynen <tuomas@tuxera.com> | 2018-01-28 03:22:41 +0200 |
---|---|---|
committer | Tuomas Tynkkynen <tuomas@tuxera.com> | 2018-01-28 03:27:38 +0200 |
commit | 3d24ae9b4426bb8adfcb08de57be21fdf0a377f8 (patch) | |
tree | 1a7c82e013bb040c312a7dd2547b25d38f74acd3 /pkgs/development/libraries/ncurses | |
parent | 11e98eaae728906cdef324c5070d5e4ce1176388 (diff) | |
download | nixlib-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.nix | 22 | ||||
-rw-r--r-- | pkgs/development/libraries/ncurses/gcc-5.patch | 46 |
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 \ |