rc: fix build with "editline" library (#543003)

This commit is contained in:
Peder Bergebakken Sundt
2026-07-22 07:09:20 +00:00
committed by GitHub
+25 -8
View File
@@ -4,15 +4,17 @@
fetchFromGitHub,
fetchpatch2,
pkgsStatic,
rc,
byacc,
ed,
ncurses,
readline,
editline,
installShellFiles,
historySupport ? true,
readlineSupport ? true,
lineEditingLibrary ?
if (stdenv.hostPlatform.isDarwin || stdenv.hostPlatform.isStatic) then "null" else "readline",
editlineSupport ? false,
lineEditingLibrary ? if stdenv.hostPlatform.isDarwin then "null" else "readline",
}:
assert lib.elem lineEditingLibrary [
@@ -25,10 +27,10 @@ assert lib.elem lineEditingLibrary [
assert
!(lib.elem lineEditingLibrary [
"edit"
"editline"
"vrl"
]); # broken
assert (lineEditingLibrary == "readline") -> readlineSupport;
assert (lineEditingLibrary == "editline") -> editlineSupport;
stdenv.mkDerivation (finalAttrs: {
pname = "rc";
version = "unstable-2025-10-01";
@@ -61,9 +63,8 @@ stdenv.mkDerivation (finalAttrs: {
buildInputs = [
ncurses
]
++ lib.optionals readlineSupport [
readline
];
++ lib.optional readlineSupport readline
++ lib.optional editlineSupport editline;
strictDeps = true;
@@ -73,7 +74,9 @@ stdenv.mkDerivation (finalAttrs: {
"MANPREFIX=${placeholder "man"}/share/man"
"CPPFLAGS=\"-DSIGCLD=SIGCHLD\""
"EDIT=${lineEditingLibrary}"
];
]
# Required to fix static build, harmless for dynamic builds.
++ lib.optional (lineEditingLibrary == "readline") "LDLIBS=-lncurses";
buildFlags = [
"all"
@@ -88,7 +91,21 @@ stdenv.mkDerivation (finalAttrs: {
passthru = {
shellPath = "/bin/rc";
tests.static = pkgsStatic.rc;
tests = {
static = pkgsStatic.rc;
readline = lib.optionalDrvAttr (!stdenv.hostPlatform.isDarwin) (
rc.override {
readlineSupport = true;
lineEditingLibrary = "readline";
}
);
editline = lib.optionalDrvAttr (!stdenv.hostPlatform.isDarwin) (
rc.override {
editlineSupport = true;
lineEditingLibrary = "editline";
}
);
};
};
meta = {