summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/nvi.scm101
-rw-r--r--gnu/packages/text-editors.scm87
-rw-r--r--gnu/system.scm1
3 files changed, 91 insertions, 98 deletions
diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm
index 114a7490731..613df6992bb 100644
--- a/gnu/packages/nvi.scm
+++ b/gnu/packages/nvi.scm
@@ -1,8 +1,4 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
3;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
4;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
5;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
6;;; 2;;;
7;;; This file is part of GNU Guix. 3;;; This file is part of GNU Guix.
8;;; 4;;;
@@ -20,97 +16,8 @@
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. 16;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21 17
22(define-module (gnu packages nvi) 18(define-module (gnu packages nvi)
23 #:use-module (gnu packages) 19 #:use-module (gnu packages text-editors)
24 #:use-module (gnu packages autotools) 20 #:use-module (guix deprecation))
25 #:use-module (gnu packages dbm)
26 #:use-module (gnu packages ncurses)
27 #:use-module (guix packages)
28 #:use-module (guix download)
29 #:use-module (guix build-system gnu)
30 #:use-module (guix gexp)
31 #:use-module ((guix licenses) #:prefix license:)
32 #:use-module (guix utils))
33 21
34(define-public nvi 22(define-deprecated/public-alias nvi
35 (package 23 (@ (gnu packages text-editors) nvi))
36 (name "nvi")
37 (version "1.81.6")
38 (source
39 (origin
40 (method url-fetch)
41 ;; The home-page does not provide the latest version.
42 (uri (string-append "http://harrier.slackbuilds.org/misc/nvi-"
43 version ".tar.bz2"))
44 (sha256
45 (base32 "0nbbs1inyrqds0ywn3ln5slv54v5zraq7lszkg8nsavv4kivhh9l"))
46 (patches (search-patches "nvi-assume-preserve-path.patch"
47 "nvi-dbpagesize-binpower.patch"
48 "nvi-add-function-prototypes.patch"
49 "nvi-db4.patch"))
50 (modules '((guix build utils)))
51 (snippet
52 ;; Create a wrapper for the configure script, make it executable.
53 #~(let ((conf-wrap (open-output-file "configure")))
54 (display "#!/bin/sh" conf-wrap)
55 (newline conf-wrap)
56 (display
57 "../nvi-1.81.6/dist/configure --srcdir=../nvi-1.81.6/dist $@"
58 conf-wrap)
59 (newline conf-wrap)
60 (close-output-port conf-wrap)
61 (chmod "configure" #o0755)
62
63 ;; Glibc 2.30 removed the deprecated <sys/stropts.h>, so fall back
64 ;; to the internal PTY allocation logic.
65 (substitute* "ex/ex_script.c"
66 (("#ifdef HAVE_SYS5_PTY")
67 "#if defined(HAVE_SYS5_PTY) && !defined(__GLIBC__)"))))))
68 (build-system gnu-build-system)
69 (arguments
70 (list
71 #:out-of-source? #t
72 #:configure-flags
73 #~'("--enable-widechar"
74 #$@(if (%current-target-system)
75 '("vi_cv_sprintf_count=yes")
76 '()))
77 #:make-flags
78 #~(list
79 ;; Add CFLAGS to relax gcc-14's strictness.
80 ;; nvi's configure chokes on passing CFLAGS and ignores
81 ;; CFLAGS set in the environment.
82 (string-append "CFLAGS=-g -O2"
83 " -Wno-error=incompatible-pointer-types"))
84 #:phases
85 #~(modify-phases %standard-phases
86 (add-before 'configure 'fix-configure
87 (lambda* (#:key inputs native-inputs #:allow-other-keys)
88 ;; Replace outdated config.sub and config.guess:
89 (with-directory-excursion "dist"
90 (for-each
91 (lambda (file)
92 (chmod file #o755)
93 (install-file
94 (format #f "~a/share/automake-~a/~a"
95 (assoc-ref (or native-inputs inputs)
96 "automake")
97 #$(version-major+minor
98 (package-version automake))
99 file)
100 "."))
101 '("config.sub" "config.guess"))))))))
102 (inputs (list bdb ncurses))
103 (native-inputs
104 (list automake)) ;Up to date 'config.guess' and 'config.sub'.
105 (synopsis "The Berkeley Vi Editor")
106 (description
107 "Vi is the original screen based text editor for Unix systems. It
108is considered the standard text editor, and is available on almost all
109Unix systems. Nvi is intended as a \"bug-for-bug compatible\" clone of
110the original BSD vi editor. As such, it doesn't have a lot of snazzy
111features as do some of the other vi clones such as elvis and vim.
112However, if all you want is vi, this is the one to get.")
113 (home-page
114 (string-append "https://sites.google.com/a/bostic.com/keithbostic/"
115 "the-berkeley-vi-editor-home-page"))
116 (license license:bsd-3)))
diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm
index d1d44232fa3..c9252839a86 100644
--- a/gnu/packages/text-editors.scm
+++ b/gnu/packages/text-editors.scm
@@ -1,6 +1,7 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> 2;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
3;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> 3;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
4;;; Copyright © 2014 Marek Benc <merkur32@gmail.com>
4;;; Copyright © 2015-2022, 2025 Efraim Flashner <efraim@flashner.co.il> 5;;; Copyright © 2015-2022, 2025 Efraim Flashner <efraim@flashner.co.il>
5;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> 6;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
6;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au> 7;;; Copyright © 2016 Carlo Zancanaro <carlo@zancanaro.id.au>
@@ -42,6 +43,7 @@
42;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com> 43;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
43;;; Copyright © 2025 Junker <dk@junkeria.club> 44;;; Copyright © 2025 Junker <dk@junkeria.club>
44;;; Copyright © 2025 benjamin wil <hey@benjaminwil.info> 45;;; Copyright © 2025 benjamin wil <hey@benjaminwil.info>
46;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
45;;; Copyright © 2026 Ignatius Menzies <ignatius.menzies@gmail.com> 47;;; Copyright © 2026 Ignatius Menzies <ignatius.menzies@gmail.com>
46;;; 48;;;
47;;; This file is part of GNU Guix. 49;;; This file is part of GNU Guix.
@@ -92,6 +94,7 @@
92 #:use-module (gnu packages crypto) 94 #:use-module (gnu packages crypto)
93 #:use-module (gnu packages curl) 95 #:use-module (gnu packages curl)
94 #:use-module (gnu packages datastructures) 96 #:use-module (gnu packages datastructures)
97 #:use-module (gnu packages dbm)
95 #:use-module (gnu packages documentation) 98 #:use-module (gnu packages documentation)
96 #:use-module (gnu packages enchant) 99 #:use-module (gnu packages enchant)
97 #:use-module (gnu packages fontutils) 100 #:use-module (gnu packages fontutils)
@@ -987,6 +990,90 @@ justifying, auto-indentation, bracket matching, interactive search-and-replace
987(with regular expressions), and the editing of multiple files.") 990(with regular expressions), and the editing of multiple files.")
988 (license license:gpl3+))) ; some files are under GPLv2+ 991 (license license:gpl3+))) ; some files are under GPLv2+
989 992
993(define-public nvi
994 (package
995 (name "nvi")
996 (version "1.81.6")
997 (source
998 (origin
999 (method url-fetch)
1000 ;; The home-page does not provide the latest version.
1001 (uri (string-append "http://harrier.slackbuilds.org/misc/nvi-"
1002 version ".tar.bz2"))
1003 (sha256
1004 (base32 "0nbbs1inyrqds0ywn3ln5slv54v5zraq7lszkg8nsavv4kivhh9l"))
1005 (patches (search-patches "nvi-assume-preserve-path.patch"
1006 "nvi-dbpagesize-binpower.patch"
1007 "nvi-add-function-prototypes.patch"
1008 "nvi-db4.patch"))
1009 (modules '((guix build utils)))
1010 (snippet
1011 ;; Create a wrapper for the configure script, make it executable.
1012 #~(let ((conf-wrap (open-output-file "configure")))
1013 (display "#!/bin/sh" conf-wrap)
1014 (newline conf-wrap)
1015 (display
1016 "../nvi-1.81.6/dist/configure --srcdir=../nvi-1.81.6/dist $@"
1017 conf-wrap)
1018 (newline conf-wrap)
1019 (close-output-port conf-wrap)
1020 (chmod "configure" #o0755)
1021
1022 ;; Glibc 2.30 removed the deprecated <sys/stropts.h>, so fall back
1023 ;; to the internal PTY allocation logic.
1024 (substitute* "ex/ex_script.c"
1025 (("#ifdef HAVE_SYS5_PTY")
1026 "#if defined(HAVE_SYS5_PTY) && !defined(__GLIBC__)"))))))
1027 (build-system gnu-build-system)
1028 (arguments
1029 (list
1030 #:out-of-source? #t
1031 #:configure-flags
1032 #~'("--enable-widechar"
1033 #$@(if (%current-target-system)
1034 '("vi_cv_sprintf_count=yes")
1035 '()))
1036 #:make-flags
1037 #~(list
1038 ;; Add CFLAGS to relax gcc-14's strictness.
1039 ;; nvi's configure chokes on passing CFLAGS and ignores
1040 ;; CFLAGS set in the environment.
1041 (string-append "CFLAGS=-g -O2"
1042 " -Wno-error=incompatible-pointer-types"))
1043 #:phases
1044 #~(modify-phases %standard-phases
1045 (add-before 'configure 'fix-configure
1046 (lambda* (#:key inputs native-inputs #:allow-other-keys)
1047 ;; Replace outdated config.sub and config.guess:
1048 (with-directory-excursion "dist"
1049 (for-each
1050 (lambda (file)
1051 (chmod file #o755)
1052 (install-file
1053 (format #f "~a/share/automake-~a/~a"
1054 (assoc-ref (or native-inputs inputs)
1055 "automake")
1056 #$(version-major+minor
1057 (package-version automake))
1058 file)
1059 "."))
1060 '("config.sub" "config.guess"))))))))
1061 (inputs (list bdb ncurses))
1062 (native-inputs
1063 (list automake)) ;Up to date 'config.guess' and 'config.sub'.
1064 (synopsis "The Berkeley Vi Editor")
1065 (description
1066 "Vi is the original screen based text editor for Unix systems. It
1067is considered the standard text editor, and is available on almost all
1068Unix systems. Nvi is intended as a \"bug-for-bug compatible\" clone of
1069the original BSD vi editor. As such, it doesn't have a lot of snazzy
1070features as do some of the other vi clones such as elvis and vim.
1071However, if all you want is vi, this is the one to get.")
1072 (home-page
1073 (string-append "https://sites.google.com/a/bostic.com/keithbostic/"
1074 "the-berkeley-vi-editor-home-page"))
1075 (license license:bsd-3)))
1076
990(define-public qemacs 1077(define-public qemacs
991 (package 1078 (package
992 (name "qemacs") 1079 (name "qemacs")
diff --git a/gnu/system.scm b/gnu/system.scm
index d3b0cd30dad..c161961be19 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -62,7 +62,6 @@
62 #:use-module (gnu packages less) 62 #:use-module (gnu packages less)
63 #:use-module (gnu packages linux) 63 #:use-module (gnu packages linux)
64 #:use-module (gnu packages man) 64 #:use-module (gnu packages man)
65 #:use-module (gnu packages nvi)
66 #:use-module (gnu packages package-management) 65 #:use-module (gnu packages package-management)
67 #:use-module (gnu packages pciutils) 66 #:use-module (gnu packages pciutils)
68 #:use-module (gnu packages texinfo) 67 #:use-module (gnu packages texinfo)