From 305bb109a8d98e43aa0bfb3edd2b78f8b9906935 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Tue, 13 Feb 2024 09:51:14 -0300 Subject: [PATCH] libedit: refactor and adopt - finalAttrs design pattern - remove pname parameterization - split man output - postFixup instead of postInstall - remove nested with - adopt by AndersonTorres --- pkgs/by-name/li/libedit/package.nix | 61 +++++++++++++++++------------ 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/li/libedit/package.nix b/pkgs/by-name/li/libedit/package.nix index 97636e36e848..aeb79811d6e7 100644 --- a/pkgs/by-name/li/libedit/package.nix +++ b/pkgs/by-name/li/libedit/package.nix @@ -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; }; -} +})