From 7047d0dbf873f5c9e5e08227e12a52f4edd24351 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 1 Jan 2024 10:06:10 -0300 Subject: libedit: migrate to by-name hierarchy --- pkgs/by-name/li/libedit/01-cygwin.patch | 25 +++++++++++++++++++ pkgs/by-name/li/libedit/package.nix | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 pkgs/by-name/li/libedit/01-cygwin.patch create mode 100644 pkgs/by-name/li/libedit/package.nix (limited to 'pkgs/by-name') diff --git a/pkgs/by-name/li/libedit/01-cygwin.patch b/pkgs/by-name/li/libedit/01-cygwin.patch new file mode 100644 index 000000000000..33bd39ed61e5 --- /dev/null +++ b/pkgs/by-name/li/libedit/01-cygwin.patch @@ -0,0 +1,25 @@ +--- libedit-20120311-3.0/src/chartype.h 2012-03-11 10:54:58.000000000 +0100 ++++ libedit-20120311-3.0/src/chartype.h 2012-05-03 19:00:20.651847423 +0200 +@@ -56,9 +56,11 @@ + /* Oh for a with char32_t and __STDC_UTF_32__ in it... + * ref: ISO/IEC DTR 19769 + */ ++#ifndef __CYGWIN__ + #if WCHAR_MAX < INT32_MAX + #warning Build environment does not support non-BMP characters + #endif ++#endif + + #ifndef HAVE_WCSDUP + wchar_t *wcsdup(const wchar_t *s); +--- libedit-20120311-3.0/src/editline/readline.h 2011-02-26 23:42:59.000000000 +0100 ++++ libedit-20120311-3.0/src/editline/readline.h 2012-05-03 19:00:49.211244803 +0200 +@@ -75,7 +75,7 @@ typedef KEYMAP_ENTRY *Keymap; + + #ifndef CTRL + #include +-#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) ++#if !defined(__sun) && !defined(__hpux) && !defined(_AIX) && !defined(__CYGWIN__) + #include + #endif + #ifndef CTRL diff --git a/pkgs/by-name/li/libedit/package.nix b/pkgs/by-name/li/libedit/package.nix new file mode 100644 index 000000000000..97636e36e848 --- /dev/null +++ b/pkgs/by-name/li/libedit/package.nix @@ -0,0 +1,43 @@ +{ lib, stdenv, fetchurl, ncurses }: + +stdenv.mkDerivation rec { + pname = "libedit"; + version = "20230828-3.1"; + + src = fetchurl { + url = "https://thrysoee.dk/editline/${pname}-${version}.tar.gz"; + sha256 = "sha256-TugYK25WkpDn0fRPD3jayHFrNfZWt2Uo9pnGnJiBTa0="; + }; + + outputs = [ "out" "dev" ]; + + # Have `configure' avoid `/usr/bin/nroff' in non-chroot builds. + # NROFF = "${groff}/bin/nroff"; + + # 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. + # 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' + ''; + + meta = with lib; { + homepage = "http://www.thrysoee.dk/editline/"; + description = "A port of the NetBSD Editline library (libedit)"; + license = licenses.bsd3; + platforms = platforms.all; + }; +} -- cgit 1.4.1 From 305bb109a8d98e43aa0bfb3edd2b78f8b9906935 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Tue, 13 Feb 2024 09:51:14 -0300 Subject: 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(-) (limited to 'pkgs/by-name') 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; }; -} +}) -- cgit 1.4.1