nvi: 1.79 -> 1.81.6; unbreak; name -> pname

Most other distributions seem to use Debian as upstream, so let's do
that too.  There doesn't seem to be any extant homepage.
This commit is contained in:
Alyssa Ross 2021-04-25 21:27:21 +00:00
parent 8f166b95c9
commit 35b4ca8dd5

View file

@ -1,56 +1,39 @@
{ fetchurl, lib, stdenv, ncurses }:
{ lib, stdenv, fetchurl, fetchpatch, ncurses, db }:
stdenv.mkDerivation {
name = "nvi-1.79";
stdenv.mkDerivation rec {
pname = "nvi";
version = "1.81.6";
src = fetchurl {
urls =
[ "ftp://ftp.eenet.ee/pub/cpan/src/misc/nvi-1.79.tar.gz"
"ftp://ftp.saintjoe.edu/pub/CPAN/src/misc/nvi-1.79.tar.gz"
"ftp://ftp.free.fr/.mirrors1/ftp.netbsd.org/packages/distfiles/nvi-1.79.tar.gz"
];
sha256 = "0cvf56rbylz7ksny6g2256sjg8yrsxrmbpk82r64rhi53sm8fnvm";
url = "https://deb.debian.org/debian/pool/main/n/nvi/nvi_${version}.orig.tar.gz";
sha256 = "13cp9iz017bk6ryi05jn7drbv7a5dyr201zqd3r4r8srj644ihwb";
};
buildInputs = [ ncurses ];
patches = [
# Fix runtime error with modern versions of db.
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-03-db4.patch";
sha256 = "1vpnly3dcldwl8gwl0jrh5yh0vhgbdhsh6xn7lnwhrawlvk6d55y";
})
# nvi tries to write to a usual tmp directory (/var/tmp),
# so we will force it to use /tmp.
patchPhase = ''
sed -i build/configure \
-e s@vi_cv_path_preserve=no@vi_cv_path_preserve=/tmp/vi.recover@ \
-e s@/var/tmp@@ \
-e s@-lcurses@-lncurses@
# Fix build with Glibc.
(fetchpatch {
url = "https://src.fedoraproject.org/rpms/nvi/raw/f33/f/nvi-20-glibc_has_grantpt.patch";
sha256 = "1ypqj263wh53m5rgiag5c4gy1rksj2waginny1lcj34n72p2dsml";
})
];
buildInputs = [ ncurses db ];
preConfigure = ''
cd build.unix
'';
configureScript = "../dist/configure";
configureFlags = [ "vi_cv_path_preserve=/tmp" ];
configurePhase = ''
mkdir mybuild
cd mybuild
../build/configure --prefix=$out --disable-curses
'';
installPhase = ''
mkdir -p $out/bin $out/share/vi/catalog
for a in dutch english french german ru_SU.KOI8-R spanish swedish; do
cp ../catalog/$a $out/share/vi/catalog
done
cp nvi $out/bin/nvi
ln -s $out/bin/nvi $out/bin/vi
ln -s $out/bin/nvi $out/bin/ex
ln -s $out/bin/nvi $out/bin/view
mkdir -p $out/share/man/man1
cp ../docs/USD.doc/vi.man/vi.1 $out/share/man/man1/nvi.1
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/vi
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/ex
ln -s $out/share/man/man1/nvi.1 $out/share/man/man1/view
ln -s $out/bin/{,vi-}nvi # create a symlink so that all vi(m) users will find it
'';
meta = {
homepage = "http://www.bostic.com/vi/";
meta = with lib; {
description = "The Berkeley Vi Editor";
license = lib.licenses.free;
broken = true; # since 2020-02-08
license = licenses.free;
platforms = platforms.unix;
};
}