nvi: cleanup and fix darwin build (#462214)

This commit is contained in:
Aleksana
2025-11-17 00:46:11 +00:00
committed by GitHub
2 changed files with 48 additions and 7 deletions

View File

@@ -0,0 +1,17 @@
let
url = "https://github.com/macports/macports-ports/raw/abae7e550897dc13b7a48763a7a022b709d8793f/editors/nvi/files";
hashes = {
"dynamic_lookup-11.patch" = "sha256-eXLSMUtslSXLYd1HZRD6pfqcYMIA3EtixWL1yvx4ook=";
"patch-common_key.h.diff" = "sha256-AAO/2lHpmFJMYb9fyQrWnGPaJYLdwhrp87tbHu5hr/k=";
"patch-dist_port.h.in.diff" = "sha256-GPKgIm9pDGtN6CNqbX3+hANkZbYFql5K5JyjCr5TIKI=";
"patch-ex_script.c.diff" = "sha256-IUuJ7b6A5O3q6qQCwZsrc9Bt1LpjU3DgxHTwtMp16Qc=";
"patch-includes.diff" = "sha256-j3V4LmcJEFqnTlTHFZFd8NtycEa+GKM+ZIUwZHjq15w=";
};
in
builtins.attrValues (
builtins.mapAttrs (n: v: {
url = "${url}/${n}";
hash = v;
extraPrefix = "";
}) hashes
)

View File

@@ -5,6 +5,7 @@
fetchpatch,
ncurses,
db,
libiconv,
}:
stdenv.mkDerivation rec {
@@ -13,31 +14,54 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://deb.debian.org/debian/pool/main/n/nvi/nvi_${version}.orig.tar.gz";
sha256 = "13cp9iz017bk6ryi05jn7drbv7a5dyr201zqd3r4r8srj644ihwb";
hash = "sha256-i8NIiJFZo0zyaPgHILJvRZ29cjtWFhB9NnOdAH5Ml40=";
};
patches =
# Apply patches from debian package
map fetchurl (import ./debian-patches.nix);
(map fetchurl (import ./debian-patches.nix))
++
# Also select patches from macports
# They don't interfere with Linux build
# https://github.com/macports/macports-ports/tree/master/editors/nvi/files
(map fetchpatch (import ./macports-patches.nix));
buildInputs = [
ncurses
db
];
]
++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
preConfigure = ''
cd build.unix
'';
configureScript = "../dist/configure";
configureFlags = [
"vi_cv_path_preserve=/tmp"
"--enable-widechar"
];
meta = with lib; {
env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv";
meta = {
description = "Berkeley Vi Editor";
license = licenses.free;
platforms = platforms.unix;
broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/trunk/nvi.x86_64-darwin
longDescription = ''
nvi ("new vi") is a re-implementation of the
classic Berkeley text editor vi, written by
Keith Bostic at UC Berkeley for 4BSD. Created
to replace Unix-derived code in BSD, it provides
a clean, unencumbered version of the original
editor and is the default vi on all major BSD
systems as well as MINIX.
'';
license = lib.licenses.bsd3;
platforms = lib.platforms.unix;
mainProgram = "vi";
maintainers = with lib.maintainers; [
suominen
aleksana
];
};
}