Skip to content

Commit

Permalink
ncurses5: Use v6 sources but compiled with --with-abi-version=5
Browse files Browse the repository at this point in the history
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
  • Loading branch information
dezgeg committed Jan 28, 2018
1 parent 11e98ea commit 3d24ae9
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 60 deletions.
22 changes: 9 additions & 13 deletions pkgs/development/libraries/ncurses/default.nix
Expand Up @@ -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
Expand All @@ -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";
Expand Down
46 changes: 0 additions & 46 deletions pkgs/development/libraries/ncurses/gcc-5.patch

This file was deleted.

1 change: 0 additions & 1 deletion pkgs/top-level/all-packages.nix
Expand Up @@ -10297,7 +10297,6 @@ with pkgs;
notify-sharp = callPackage ../development/libraries/notify-sharp { };

ncurses5 = callPackage ../development/libraries/ncurses {
stdenv = if stdenv.cc.isGNU then overrideCC stdenv gcc6 else stdenv; # Hacky!
abiVersion = "5";
};
ncurses6 = callPackage ../development/libraries/ncurses {
Expand Down

1 comment on commit 3d24ae9

@dezgeg
Copy link
Contributor Author

@dezgeg dezgeg commented on 3d24ae9 Feb 23, 2018

Choose a reason for hiding this comment

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

Should be fixed by 8afcfb2.

Please sign in to comment.