skarnet.scm 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
  3. ;;; Copyright © 2016 Eric Le Bihan <eric.le.bihan.dev@free.fr>
  4. ;;; Copyright © 2017 Z. Ren <zren@dlut.edu.cn>
  5. ;;;
  6. ;;; This file is part of GNU Guix.
  7. ;;;
  8. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  9. ;;; under the terms of the GNU General Public License as published by
  10. ;;; the Free Software Foundation; either version 3 of the License, or (at
  11. ;;; your option) any later version.
  12. ;;;
  13. ;;; GNU Guix is distributed in the hope that it will be useful, but
  14. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  15. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16. ;;; GNU General Public License for more details.
  17. ;;;
  18. ;;; You should have received a copy of the GNU General Public License
  19. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  20. (define-module (gnu packages skarnet)
  21. #:use-module (gnu packages)
  22. #:use-module (guix licenses)
  23. #:use-module (guix packages)
  24. #:use-module (guix download)
  25. #:use-module (guix build-system gnu))
  26. (define-public skalibs
  27. (package
  28. (name "skalibs")
  29. (version "2.3.10.0")
  30. (source
  31. (origin
  32. (method url-fetch)
  33. (uri (string-append "http://skarnet.org/software/skalibs/skalibs-"
  34. version ".tar.gz"))
  35. (sha256
  36. (base32
  37. "0i7af224kl1crxgml09wx0x6q8ab79vnyrllfwv2lnq585wi9mg4"))))
  38. (build-system gnu-build-system)
  39. (arguments
  40. '(#:configure-flags '("--enable-force-devr") ; do not analyze /dev/random
  41. #:tests? #f ; no tests exist
  42. #:phases (modify-phases %standard-phases
  43. (add-after 'unpack 'reproducible
  44. (lambda _
  45. ;; Sort source files deterministically so that the *.a
  46. ;; and *.so files are reproducible.
  47. (substitute* "Makefile"
  48. (("\\$\\(ALL_SRCS:%.c=%.o\\)")
  49. "$(sort $(ALL_SRCS:%.c=%.o))"))
  50. #t)))))
  51. (home-page "http://skarnet.org/software/skalibs/")
  52. (synopsis "Platform abstraction libraries for skarnet.org software")
  53. (description
  54. "This package provides lightweight C libraries isolating the developer
  55. from portability issues, providing a unified systems API on all platforms,
  56. including primitive data types, cryptography, and POSIX concepts like sockets
  57. and file system operations. It is used by all skarnet.org software.")
  58. (license isc)))
  59. (define-public execline
  60. (package
  61. (name "execline")
  62. (version "2.1.5.0")
  63. (source
  64. (origin
  65. (method url-fetch)
  66. (uri (string-append "http://skarnet.org/software/execline/execline-"
  67. version ".tar.gz"))
  68. (sha256
  69. (base32
  70. "0hhirdmyh3sj9qagkis7addmmdvyic717wkb6ym3n63kvfk0adla"))))
  71. (build-system gnu-build-system)
  72. (inputs `(("skalibs" ,skalibs)))
  73. (arguments
  74. '(#:configure-flags (list
  75. (string-append "--with-lib="
  76. (assoc-ref %build-inputs "skalibs")
  77. "/lib/skalibs")
  78. (string-append "--with-sysdeps="
  79. (assoc-ref %build-inputs "skalibs")
  80. "/lib/skalibs/sysdeps"))
  81. #:phases (modify-phases %standard-phases
  82. (add-after
  83. 'install 'post-install
  84. (lambda* (#:key inputs outputs #:allow-other-keys)
  85. (let* ((out (assoc-ref outputs "out"))
  86. (bin (string-append out "/bin")))
  87. (wrap-program (string-append bin "/execlineb")
  88. `("PATH" ":" prefix (,bin)))))))
  89. #:tests? #f)) ; No tests exist.
  90. (home-page "http://skarnet.org/software/execline/")
  91. (license isc)
  92. (synopsis "Non-interactive shell-like language with minimal overhead")
  93. (description
  94. "Execline is a (non-interactive) scripting language, separated into a
  95. parser (execlineb) and a set of commands meant to execute one another in a
  96. chain-execution fashion, storing the whole script in the argument array.
  97. It features conditional loops, getopt-style option handling, file name
  98. globbing, redirection and other shell concepts, expressed as discrete commands
  99. rather than in special syntax, minimizing runtime footprint and
  100. complexity.")))
  101. (define-public s6
  102. (package
  103. (name "s6")
  104. (version "2.3.0.0")
  105. (source
  106. (origin
  107. (method url-fetch)
  108. (uri (string-append "http://skarnet.org/software/s6/s6-"
  109. version ".tar.gz"))
  110. (sha256
  111. (base32
  112. "1rp8i228zxzbia1799pdav1kkzdk96fax9bcfyf2gilkdm3s1ja9"))))
  113. (build-system gnu-build-system)
  114. (inputs `(("skalibs" ,skalibs)
  115. ("execline" ,execline)))
  116. (arguments
  117. '(#:configure-flags (list
  118. (string-append "--with-lib="
  119. (assoc-ref %build-inputs "skalibs")
  120. "/lib/skalibs")
  121. (string-append "--with-lib="
  122. (assoc-ref %build-inputs "execline")
  123. "/lib/execline")
  124. (string-append "--with-sysdeps="
  125. (assoc-ref %build-inputs "skalibs")
  126. "/lib/skalibs/sysdeps"))
  127. #:tests? #f))
  128. (home-page "http://skarnet.org/software/s6")
  129. (license isc)
  130. (synopsis "Small suite of programs for process supervision")
  131. (description
  132. "s6 is a small suite of programs for UNIX, designed to allow process
  133. supervision (a.k.a. service supervision), in the line of daemontools and
  134. runit, as well as various operations on processes and daemons. It is meant to
  135. be a toolbox for low-level process and service administration, providing
  136. different sets of independent tools that can be used within or without the
  137. framework, and that can be assembled together to achieve powerful
  138. functionality with a very small amount of code.")))
  139. (define-public s6-dns
  140. (package
  141. (name "s6-dns")
  142. (version "2.0.1.0")
  143. (source
  144. (origin
  145. (method url-fetch)
  146. (uri (string-append "http://skarnet.org/software/s6-dns/s6-dns-"
  147. version ".tar.gz"))
  148. (sha256
  149. (base32
  150. "1ji47iy8czx4jmi763dxd6lgjbnp4vqqgcijh46ym65l0a97z04w"))))
  151. (build-system gnu-build-system)
  152. (inputs `(("skalibs" ,skalibs)))
  153. (arguments
  154. '(#:configure-flags (list
  155. (string-append "--with-lib="
  156. (assoc-ref %build-inputs "skalibs")
  157. "/lib/skalibs")
  158. (string-append "--with-sysdeps="
  159. (assoc-ref %build-inputs "skalibs")
  160. "/lib/skalibs/sysdeps"))
  161. #:tests? #f))
  162. (home-page "http://skarnet.org/software/s6-dns")
  163. (license isc)
  164. (synopsis "Suite of DNS client programs")
  165. (description
  166. "s6-dns is a suite of DNS client programs and libraries for Unix systems,
  167. as an alternative to the BIND, djbdns or other DNS clients.")))
  168. (define-public s6-networking
  169. (package
  170. (name "s6-networking")
  171. (version "2.1.1.0")
  172. (source
  173. (origin
  174. (method url-fetch)
  175. (uri (string-append "http://skarnet.org/software/s6-networking/s6-networking-"
  176. version ".tar.gz"))
  177. (sha256
  178. (base32
  179. "0r8gfv0l2k449nacjy919gqlgn25q7fjxaqra5r37k7kiikkgqfw"))))
  180. (build-system gnu-build-system)
  181. (inputs `(("skalibs" ,skalibs)
  182. ("execline" ,execline)
  183. ("s6" ,s6)
  184. ("s6-dns" ,s6-dns)))
  185. (arguments
  186. '(#:configure-flags (list
  187. (string-append "--with-lib="
  188. (assoc-ref %build-inputs "skalibs")
  189. "/lib/skalibs")
  190. (string-append "--with-lib="
  191. (assoc-ref %build-inputs "execline")
  192. "/lib/execline")
  193. (string-append "--with-lib="
  194. (assoc-ref %build-inputs "s6")
  195. "/lib/s6")
  196. (string-append "--with-lib="
  197. (assoc-ref %build-inputs "s6-dns")
  198. "/lib/s6-dns")
  199. (string-append "--with-sysdeps="
  200. (assoc-ref %build-inputs "skalibs")
  201. "/lib/skalibs/sysdeps"))
  202. #:tests? #f))
  203. (home-page "http://skarnet.org/software/s6-networking")
  204. (license isc)
  205. (synopsis "Suite of network utilities for Unix systems")
  206. (description
  207. "s6-networking is a suite of small networking utilities for Unix systems.
  208. It includes command-line client and server management, TCP access control,
  209. privilege escalation across UNIX domain sockets, IDENT protocol management and
  210. clock synchronization.")))
  211. (define-public s6-rc
  212. (package
  213. (name "s6-rc")
  214. (version "0.0.3.0")
  215. (source
  216. (origin
  217. (method url-fetch)
  218. (uri (string-append "http://skarnet.org/software/s6-rc/s6-rc-"
  219. version ".tar.gz"))
  220. (sha256
  221. (base32
  222. "0bl94lbaphbpaaj4wbb86xqgp5bcgrf3m7p80mimw1qsjrvlxfay"))))
  223. (build-system gnu-build-system)
  224. (inputs `(("skalibs" ,skalibs)
  225. ("execline" ,execline)
  226. ("s6" ,s6)))
  227. (arguments
  228. '(#:configure-flags (list
  229. (string-append "--with-lib="
  230. (assoc-ref %build-inputs "skalibs")
  231. "/lib/skalibs")
  232. (string-append "--with-lib="
  233. (assoc-ref %build-inputs "execline")
  234. "/lib/execline")
  235. (string-append "--with-lib="
  236. (assoc-ref %build-inputs "s6")
  237. "/lib/s6")
  238. (string-append "--with-sysdeps="
  239. (assoc-ref %build-inputs "skalibs")
  240. "/lib/skalibs/sysdeps"))
  241. #:tests? #f))
  242. (home-page "http://skarnet.org/software/s6-rc")
  243. (license isc)
  244. (synopsis "Service manager for s6-based systems")
  245. (description
  246. "s6-rc is a service manager for s6-based systems, i.e. a suite of
  247. programs that can start and stop services, both long-running daemons and
  248. one-time initialization scripts, in the proper order according to a dependency
  249. tree. It ensures that long-running daemons are supervised by the s6
  250. infrastructure, and that one-time scripts are also run in a controlled
  251. environment.")))
  252. (define-public s6-portable-utils
  253. (package
  254. (name "s6-portable-utils")
  255. (version "2.0.6.0")
  256. (source
  257. (origin
  258. (method url-fetch)
  259. (uri (string-append
  260. "http://skarnet.org/software/s6-portable-utils/s6-portable-utils-"
  261. version ".tar.gz"))
  262. (sha256
  263. (base32
  264. "0jwxj0ma4zd1h6i3i98nsp0miidr54phap7dqwf6c8vafq9psfr3"))))
  265. (build-system gnu-build-system)
  266. (inputs `(("skalibs" ,skalibs)))
  267. (arguments
  268. '(#:configure-flags (list
  269. (string-append "--with-lib="
  270. (assoc-ref %build-inputs "skalibs")
  271. "/lib/skalibs")
  272. (string-append "--with-sysdeps="
  273. (assoc-ref %build-inputs "skalibs")
  274. "/lib/skalibs/sysdeps"))
  275. #:tests? #f))
  276. (home-page "http://skarnet.org/software/s6-portable-utils")
  277. (license isc)
  278. (synopsis "Tiny command-line Unix utilities")
  279. (description
  280. "s6-portable-utils is a set of tiny general Unix utilities, often
  281. performing well-known tasks such as @command{cut} and @command{grep}, but
  282. optimized for simplicity and small size. They were designed for embedded
  283. systems and other constrained environments, but they work everywhere.")))
  284. (define-public s6-linux-utils
  285. (package
  286. (name "s6-linux-utils")
  287. (version "2.1.0.0")
  288. (source
  289. (origin
  290. (method url-fetch)
  291. (uri (string-append
  292. "http://skarnet.org/software/s6-linux-utils/s6-linux-utils-"
  293. version ".tar.gz"))
  294. (sha256
  295. (base32
  296. "1bby751blynb7p8wd3npjm71lf10ysmfvqrd3dqrhhajpa2bl8rm"))))
  297. (build-system gnu-build-system)
  298. (inputs `(("skalibs" ,skalibs)))
  299. (arguments
  300. '(#:configure-flags (list
  301. (string-append "--with-lib="
  302. (assoc-ref %build-inputs "skalibs")
  303. "/lib/skalibs")
  304. (string-append "--with-sysdeps="
  305. (assoc-ref %build-inputs "skalibs")
  306. "/lib/skalibs/sysdeps"))
  307. #:tests? #f))
  308. (home-page "http://skarnet.org/software/s6-linux-utils")
  309. (license isc)
  310. (synopsis "Set of minimalistic Linux-specific system utilities")
  311. (description
  312. "s6-linux-utils is a set of minimalistic Linux-specific system utilities,
  313. such as @command{mount}, @command{umount}, and @command{chroot} commands,
  314. Linux uevent listeners, a @command{devd} device hotplug daemon, and more.")))