libedit: refactor and adopt
- finalAttrs design pattern - remove pname parameterization - split man output - postFixup instead of postInstall - remove nested with - adopt by AndersonTorres
This commit is contained in:
parent
7047d0dbf8
commit
305bb109a8
@ -1,43 +1,56 @@
|
||||
{ lib, stdenv, fetchurl, ncurses }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, ncurses
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "libedit";
|
||||
version = "20230828-3.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://thrysoee.dk/editline/${pname}-${version}.tar.gz";
|
||||
sha256 = "sha256-TugYK25WkpDn0fRPD3jayHFrNfZWt2Uo9pnGnJiBTa0=";
|
||||
url = "https://thrysoee.dk/editline/libedit-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-TugYK25WkpDn0fRPD3jayHFrNfZWt2Uo9pnGnJiBTa0=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
# Have `configure' avoid `/usr/bin/nroff' in non-chroot builds.
|
||||
# NROFF = "${groff}/bin/nroff";
|
||||
patches = [
|
||||
./01-cygwin.patch
|
||||
];
|
||||
|
||||
# GCC automatically include `stdc-predefs.h` while Clang does not do
|
||||
# this by default. While Musl is ISO 10646 compliant, doesn't define
|
||||
# __STDC_ISO_10646__. This definition is in `stdc-predefs.h` that's
|
||||
# why libedit builds just fine with GCC and Musl.
|
||||
# There is a DR to fix this issue with Clang which is not merged
|
||||
# yet.
|
||||
propagatedBuildInputs = [
|
||||
ncurses
|
||||
];
|
||||
|
||||
# GCC automatically include `stdc-predefs.h` while Clang does not do this by
|
||||
# default. While Musl is ISO 10646 compliant, it does not define
|
||||
# __STDC_ISO_10646__.
|
||||
# This definition is in `stdc-predefs.h` -- that's why libedit builds just
|
||||
# fine with GCC and Musl.
|
||||
# There is a DR to fix this issue with Clang which is not merged yet.
|
||||
# https://reviews.llvm.org/D137043
|
||||
env.NIX_CFLAGS_COMPILE =
|
||||
lib.optionalString (stdenv.targetPlatform.isMusl && stdenv.cc.isClang)
|
||||
"-D__STDC_ISO_10646__=201103L";
|
||||
|
||||
patches = [ ./01-cygwin.patch ];
|
||||
|
||||
propagatedBuildInputs = [ ncurses ];
|
||||
|
||||
postInstall = ''
|
||||
find $out/lib -type f | grep '\.\(la\|pc\)''$' | xargs sed -i \
|
||||
-e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g'
|
||||
postFixup = ''
|
||||
find $out/lib -type f | \
|
||||
grep '\.\(la\|pc\)''$' | \
|
||||
xargs sed -i -e 's,-lncurses[a-z]*,-L${ncurses.out}/lib -lncursesw,g'
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "http://www.thrysoee.dk/editline/";
|
||||
description = "A port of the NetBSD Editline library (libedit)";
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.all;
|
||||
longDescription = ''
|
||||
This is an autotool- and libtoolized port of the NetBSD Editline library
|
||||
(libedit). This Berkeley-style licensed command line editor library
|
||||
provides generic line editing, history, and tokenization functions,
|
||||
similar to those found in GNU Readline.
|
||||
'';
|
||||
license = with lib.licenses; [ bsd3 ];
|
||||
maintainers = with lib.maintainers; [ AndersonTorres ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user