projects/guix·blob javascript-team · refs

149 lines · 6.2 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Ludovic Courtès <[email protected]>
3;;; Copyright © 2021 Arun Isaac <[email protected]>
4;;; Copyright © 2025 Artyom V. Poptsov <[email protected]>
5;;; Copyright © 2025-2026 Sharlatan Hellseher <[email protected]>
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages uucp)
23 #:use-module (gnu packages gcc)
24 #:use-module (gnu packages golang)
25 #:use-module (gnu packages golang-build)
26 #:use-module (gnu packages golang-compression)
27 #:use-module (gnu packages golang-crypto)
28 #:use-module (gnu packages golang-web)
29 #:use-module (gnu packages golang-xyz)
30 #:use-module (gnu packages texinfo)
31 #:use-module (guix licenses)
32 #:use-module (guix packages)
33 #:use-module (guix download)
34 #:use-module (guix gexp)
35 #:use-module (guix build-system gnu)
36 #:use-module (guix build-system go))
37
38(define-public uucp
39 (package
40 (name "uucp")
41 (version "1.07")
42 (source (origin
43 (method url-fetch)
44 (uri (string-append "mirror://gnu/uucp/uucp-"
45 version ".tar.gz"))
46 (sha256
47 (base32
48 "0b5nhl9vvif1w3wdipjsk8ckw49jj1w85xw1mmqi3zbcpazia306"))))
49 (build-system gnu-build-system)
50 (arguments
51 (list #:phases
52 #~(modify-phases %standard-phases
53 (replace 'configure
54 (lambda _
55 ;; The old 'configure' script doesn't support the arguments
56 ;; that we pass by default.
57 (setenv "CONFIG_SHELL" (which "sh"))
58 (invoke "./configure"
59 (string-append "--prefix=" #$output)
60 (string-append "--infodir=" #$output
61 "/share/info")))))))
62 (native-inputs (list gcc-13))
63 (home-page "https://www.gnu.org/software/uucp/uucp.html")
64 (synopsis "UUCP protocol implementation")
65 (description
66 "Taylor UUCP is the GNU implementation of UUCP (Unix-to-Unix Copy), a
67set of utilities for remotely transferring files, email and net news
68between computers.")
69 (license gpl2+)))
70
71(define-public nncp
72 (package
73 (name "nncp")
74 (version "8.13.0")
75 (source
76 (origin
77 (method url-fetch)
78 (uri (string-append "http://www.nncpgo.org/download/nncp-"
79 version ".tar.xz"))
80 (sha256
81 (base32
82 "1x057liwly7pk73l866nsbk3pcx9ndh1f0syjzc9hl80k076iqwc"))
83 (modules '((ice-9 ftw)
84 (guix build utils)))
85 (snippet
86 #~(begin
87 ;; TODO: Find out how to obtain sources for go.cypherpunks.ru and
88 ;; go.cypherpunks.su.
89 (with-directory-excursion "src/vendor"
90 (for-each delete-file-recursively
91 (list "github.com"
92 "go.uber.org"
93 "golang.org"
94 "gvisor.dev"
95 "lukechampine.com")))
96 ;; The hack to trick go-build-system.
97 (rename-file "src" "v8")))))
98 (build-system go-build-system)
99 (arguments
100 (list
101 #:install-source? #f
102 #:import-path "go.cypherpunks.su/nncp/v8/cmd/..."
103 #:unpack-path "go.cypherpunks.su/nncp"
104 #:phases
105 #~(modify-phases %standard-phases
106 (add-after 'unpack 'fix-paths
107 (lambda* (#:key inputs unpack-path #:allow-other-keys)
108 (with-directory-excursion (string-append "src/" unpack-path "/v8")
109 (substitute* (list "pipe.go" "toss_test.go")
110 (("/bin/sh")
111 (search-input-file inputs "/bin/sh"))
112 (("; cat")
113 (format #f "; ~a" (search-input-file inputs "/bin/cat"))))))))))
114 (inputs
115 (list go-github-com-arceliar-ironwood
116 go-github-com-davecgh-go-xdr
117 go-github-com-dustin-go-humanize
118 go-github-com-flynn-noise
119 go-github-com-fsnotify-fsnotify
120 go-github-com-gologme-log
121 go-github-com-gorhill-cronexpr
122 go-github-com-hjson-hjson-go-v4
123 go-github-com-klauspost-compress
124 go-github-com-yggdrasil-network-yggdrasil-go
125 ;; go-go-cypherpunks-ru-balloon ; sourcing from vendor
126 ;; go-go-cypherpunks-su-recfile-v2 ; sourcing from vendor
127 go-golang-org-x-crypto
128 go-golang-org-x-net
129 go-golang-org-x-sys
130 go-golang-org-x-term
131 go-gvisor-dev-gvisor-source
132 go-lukechampine-com-blake3))
133 (native-inputs
134 (list texinfo))
135 (home-page "http://www.nncpgo.org/")
136 (synopsis "Store and forward utilities")
137 (description "NNCP (Node to Node copy) is a collection of utilities
138simplifying secure store-and-forward files, mail and command exchanging.
139These utilities are intended to help build up small size (dozens of nodes)
140ad-hoc friend-to-friend (F2F) statically routed darknet delay-tolerant
141networks for fire-and-forget secure reliable files, file requests, Internet
142mail and commands transmission. All packets are integrity checked, end-to-end
143encrypted, explicitly authenticated by known participants public keys. Onion
144encryption is applied to relayed packets. Each node acts both as a client and
145server, can use push and poll behaviour model. Multicasting areas, offline
146sneakernet/floppynet, dead drops, sequential and append-only CD-ROM/tape
147storages, air-gapped computers and online TCP daemon with full-duplex
148resumable data transmission exists are all supported.")
149 (license gpl3)))