readline: Cleanup further
`CFLAGS` is now always defined, but this is a mass rebuild. We can also make the indentation go back ot the way it was before by inlining the `let inherit (finalAttrs) ... in` too.
This commit is contained in:
parent
b38353e7af
commit
5d7df29633
@ -9,121 +9,114 @@
|
||||
curses-library ? if stdenv.hostPlatform.isWindows then termcap else ncurses,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (
|
||||
finalAttrs:
|
||||
let
|
||||
inherit (finalAttrs) upstreamPatches meta;
|
||||
in
|
||||
{
|
||||
pname = "readline";
|
||||
version = "8.2p${toString (builtins.length upstreamPatches)}";
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "readline";
|
||||
version = "8.2p${toString (builtins.length finalAttrs.upstreamPatches)}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${meta.branch}.tar.gz";
|
||||
sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU=";
|
||||
};
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${finalAttrs.meta.branch}.tar.gz";
|
||||
sha256 = "sha256-P+txcfFqhO6CyhijbXub4QmlLAT0kqBTMx19EJUAfDU=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"man"
|
||||
"doc"
|
||||
"info"
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
"man"
|
||||
"doc"
|
||||
"info"
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
propagatedBuildInputs = [ curses-library ];
|
||||
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
|
||||
|
||||
patchFlags = [ "-p0" ];
|
||||
|
||||
upstreamPatches = (
|
||||
let
|
||||
patch =
|
||||
nr: sha256:
|
||||
fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${finalAttrs.meta.branch}-patches/readline82-${nr}";
|
||||
inherit sha256;
|
||||
};
|
||||
in
|
||||
import ./readline-8.2-patches.nix patch
|
||||
);
|
||||
|
||||
patches =
|
||||
lib.optionals (curses-library.pname == "ncurses") [
|
||||
./link-against-ncurses.patch
|
||||
]
|
||||
++ [
|
||||
./no-arch_only-8.2.patch
|
||||
]
|
||||
++ finalAttrs.upstreamPatches
|
||||
++ lib.optionals stdenv.hostPlatform.isWindows [
|
||||
(fetchpatch {
|
||||
name = "0001-sigwinch.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0002-event-hook.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0003-fd_set.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0004-locale.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
propagatedBuildInputs = [ curses-library ];
|
||||
nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
|
||||
# Make mingw-w64 provide a dummy alarm() function
|
||||
#
|
||||
# Method borrowed from
|
||||
# https://github.com/msys2/MINGW-packages/commit/35830ab27e5ed35c2a8d486961ab607109f5af50
|
||||
CFLAGS = lib.optionalString stdenv.hostPlatform.isMinGW "-D__USE_MINGW_ALARM -D_POSIX";
|
||||
|
||||
patchFlags = [ "-p0" ];
|
||||
# This install error is caused by a very old libtool. We can't autoreconfHook this package,
|
||||
# so this is the best we've got!
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isOpenBSD ''
|
||||
ln -s $out/lib/libhistory.so* $out/lib/libhistory.so
|
||||
ln -s $out/lib/libreadline.so* $out/lib/libreadline.so
|
||||
'';
|
||||
|
||||
upstreamPatches = (
|
||||
let
|
||||
patch =
|
||||
nr: sha256:
|
||||
fetchurl {
|
||||
url = "mirror://gnu/readline/readline-${meta.branch}-patches/readline82-${nr}";
|
||||
inherit sha256;
|
||||
};
|
||||
in
|
||||
import ./readline-8.2-patches.nix patch
|
||||
);
|
||||
meta = with lib; {
|
||||
description = "Library for interactive line editing";
|
||||
|
||||
patches =
|
||||
lib.optionals (curses-library.pname == "ncurses") [
|
||||
./link-against-ncurses.patch
|
||||
]
|
||||
++ [
|
||||
./no-arch_only-8.2.patch
|
||||
]
|
||||
++ upstreamPatches
|
||||
++ lib.optionals stdenv.hostPlatform.isWindows [
|
||||
(fetchpatch {
|
||||
name = "0001-sigwinch.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/90e7536e3b9c3af55c336d929cfcc32468b2f135/mingw-w64-readline/0001-sigwinch.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-sFK6EJrSNl0KLWqFv5zBXaQRuiQoYIZVoZfa8BZqfKA=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0002-event-hook.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/3476319d2751a676b911f3de9e1ec675081c03b8/mingw-w64-readline/0002-event-hook.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-F8ytYuIjBtH83ZCJdf622qjwSw+wZEVyu53E/mPsoAo=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0003-fd_set.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/35830ab27e5ed35c2a8d486961ab607109f5af50/mingw-w64-readline/0003-fd_set.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-UiaXZRPjKecpSaflBMCphI2kqOlcz1JkymlCrtpMng4=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "0004-locale.patch";
|
||||
url = "https://github.com/msys2/MINGW-packages/raw/f768c4b74708bb397a77e3374cc1e9e6ef647f20/mingw-w64-readline/0004-locale.patch";
|
||||
stripLen = 1;
|
||||
hash = "sha256-dk4343KP4EWXdRRCs8GRQlBgJFgu1rd79RfjwFD/nJc=";
|
||||
})
|
||||
];
|
||||
longDescription = ''
|
||||
The GNU Readline library provides a set of functions for use by
|
||||
applications that allow users to edit command lines as they are
|
||||
typed in. Both Emacs and vi editing modes are available. The
|
||||
Readline library includes additional functions to maintain a
|
||||
list of previously-entered command lines, to recall and perhaps
|
||||
reedit those lines, and perform csh-like history expansion on
|
||||
previous commands.
|
||||
|
||||
# This install error is caused by a very old libtool. We can't autoreconfHook this package,
|
||||
# so this is the best we've got!
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isOpenBSD ''
|
||||
ln -s $out/lib/libhistory.so* $out/lib/libhistory.so
|
||||
ln -s $out/lib/libreadline.so* $out/lib/libreadline.so
|
||||
The history facilities are also placed into a separate library,
|
||||
the History library, as part of the build process. The History
|
||||
library may be used without Readline in applications which
|
||||
desire its capabilities.
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Library for interactive line editing";
|
||||
homepage = "https://savannah.gnu.org/projects/readline/";
|
||||
|
||||
longDescription = ''
|
||||
The GNU Readline library provides a set of functions for use by
|
||||
applications that allow users to edit command lines as they are
|
||||
typed in. Both Emacs and vi editing modes are available. The
|
||||
Readline library includes additional functions to maintain a
|
||||
list of previously-entered command lines, to recall and perhaps
|
||||
reedit those lines, and perform csh-like history expansion on
|
||||
previous commands.
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
The history facilities are also placed into a separate library,
|
||||
the History library, as part of the build process. The History
|
||||
library may be used without Readline in applications which
|
||||
desire its capabilities.
|
||||
'';
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
|
||||
homepage = "https://savannah.gnu.org/projects/readline/";
|
||||
|
||||
license = licenses.gpl3Plus;
|
||||
|
||||
maintainers = with maintainers; [ dtzWill ];
|
||||
|
||||
platforms = platforms.unix ++ platforms.windows;
|
||||
branch = "8.2";
|
||||
};
|
||||
}
|
||||
// lib.optionalAttrs stdenv.hostPlatform.isMinGW {
|
||||
# Make mingw-w64 provide a dummy alarm() function
|
||||
#
|
||||
# Method borrowed from
|
||||
# https://github.com/msys2/MINGW-packages/commit/35830ab27e5ed35c2a8d486961ab607109f5af50
|
||||
CFLAGS = "-D__USE_MINGW_ALARM -D_POSIX";
|
||||
}
|
||||
)
|
||||
platforms = platforms.unix ++ platforms.windows;
|
||||
branch = "8.2";
|
||||
};
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user