Mirror of GNU Guix
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3203 lines
127 KiB

Correct name and email address for ng0. * .mailmap, Makefile.am, doc/guix.de.texi, doc/guix.fr.texi, doc/guix.texi, etc/completion/fish/guix.fish, gnu/packages/accessibility.scm, gnu/packages/admin.scm, gnu/packages/audio.scm, gnu/packages/autotools.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/cinnamon.scm, gnu/packages/compression.scm, gnu/packages/crypto.scm, gnu/packages/databases.scm, gnu/packages/django.scm, gnu/packages/dns.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/emacs.scm, gnu/packages/enlightenment.scm, gnu/packages/erlang.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/forth.scm, gnu/packages/fvwm.scm, gnu/packages/games.scm, gnu/packages/gl.scm, gnu/packages/gnome.scm, gnu/packages/gnunet.scm, gnu/packages/gnupg.scm, gnu/packages/gnuzilla.scm, gnu/packages/gtk.scm, gnu/packages/guile-wm.scm,gnu/packages/guile-xyz.scm, gnu/packages/haskell-check.scm, gnu/packages/haskell-crypto.scm, gnu/packages/haskell.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/language.scm, gnu/packages/libcanberra.scm, gnu/packages/linux.scm, gnu/packages/lisp.scm, gnu/packages/lolcode.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/mate.scm, gnu/packages/maths.scm, gnu/packages/mc.scm, gnu/packages/messaging.scm, gnu/packages/music.scm, gnu/packages/ncurses.scm, gnu/packages/networking.scm, gnu/packages/nickle.scm, gnu/packages/openbox.scm, gnu/packages/pdf.scm, gnu/packages/perl-check.scm, gnu/packages/perl.scm, gnu/packages/python-compression.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/python.scm, gnu/packages/qt.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/ssh.scm, gnu/packages/suckless.scm, gnu/packages/tbb.scm, gnu/packages/telephony.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/web.scm, gnu/packages/wm.scm, gnu/packages/xdisorg.scm, gnu/packages/xfce.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, gnu/services/certbot.scm, gnu/services/desktop.scm, gnu/services/version-control.scm, gnu/services/web.scm, guix/import/hackage.scm, guix/licenses.scm: Correct name and email address for ng0. Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
3 years ago
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
  3. ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
  4. ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
  5. ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
  6. ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
  7. ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
  8. ;;; Copyright © 2016, 2019 Eraim Flashner <efraim@flashner.co.il>
  9. ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
  10. ;;; Copyright © 2016, 2017 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
  11. ;;; Copyright © 2016 Amirouche <amirouche@hypermove.net>
  12. ;;; Copyright © 2016, 2019 Jan Nieuwenhuizen <janneke@gnu.org>
  13. ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
  14. ;;; Copyright © 2017 David Thompson <davet@gnu.org>
  15. ;;; Copyright © 2017, 2018, 2019 Mathieu Othacehe <m.othacehe@gmail.com>
  16. ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
  17. ;;; Copyright © 2017 ng0 <ng0@n0.is>
  18. ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
  19. ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com>
  20. ;;; Copyright © 2018, 2019, 2020 Arun Isaac <arunisaac@systemreboot.net>
  21. ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
  22. ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
  23. ;;; Copyright © 2019 swedebugia <swedebugia@riseup.net>
  24. ;;; Copyright © 2019, 2020 Amar Singh <nly@disroot.org>
  25. ;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
  26. ;;;
  27. ;;; This file is part of GNU Guix.
  28. ;;;
  29. ;;; GNU Guix is free software; you can redistribute it and/or modify it
  30. ;;; under the terms of the GNU General Public License as published by
  31. ;;; the Free Software Foundation; either version 3 of the License, or (at
  32. ;;; your option) any later version.
  33. ;;;
  34. ;;; GNU Guix is distributed in the hope that it will be useful, but
  35. ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
  36. ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  37. ;;; GNU General Public License for more details.
  38. ;;;
  39. ;;; You should have received a copy of the GNU General Public License
  40. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
  41. (define-module (gnu packages guile-xyz)
  42. #:use-module ((guix licenses) #:prefix license:)
  43. #:use-module (gnu packages)
  44. #:use-module (gnu packages algebra)
  45. #:use-module (gnu packages aspell)
  46. #:use-module (gnu packages autotools)
  47. #:use-module (gnu packages base)
  48. #:use-module (gnu packages bash)
  49. #:use-module (gnu packages compression)
  50. #:use-module (gnu packages databases)
  51. #:use-module (gnu packages disk)
  52. #:use-module (gnu packages emacs)
  53. #:use-module (gnu packages emacs-xyz)
  54. #:use-module (gnu packages gawk)
  55. #:use-module (gnu packages gettext)
  56. #:use-module (gnu packages gl)
  57. #:use-module (gnu packages glib)
  58. #:use-module (gnu packages gnome)
  59. #:use-module (gnu packages gnupg)
  60. #:use-module (gnu packages gperf)
  61. #:use-module (gnu packages gtk)
  62. #:use-module (gnu packages guile)
  63. #:use-module (gnu packages hurd)
  64. #:use-module (gnu packages image)
  65. #:use-module (gnu packages imagemagick)
  66. #:use-module (gnu packages libffi)
  67. #:use-module (gnu packages libunistring)
  68. #:use-module (gnu packages linux)
  69. #:use-module (gnu packages man)
  70. #:use-module (gnu packages maths)
  71. #:use-module (gnu packages multiprecision)
  72. #:use-module (gnu packages ncurses)
  73. #:use-module (gnu packages networking)
  74. #:use-module (gnu packages noweb)
  75. #:use-module (gnu packages nss)
  76. #:use-module (gnu packages password-utils)
  77. #:use-module (gnu packages perl)
  78. #:use-module (gnu packages pkg-config)
  79. #:use-module (gnu packages python)
  80. #:use-module (gnu packages readline)
  81. #:use-module (gnu packages sdl)
  82. #:use-module (gnu packages search)
  83. #:use-module (gnu packages slang)
  84. #:use-module (gnu packages sqlite)
  85. #:use-module (gnu packages swig)
  86. #:use-module (gnu packages tex)
  87. #:use-module (gnu packages texinfo)
  88. #:use-module (gnu packages tls)
  89. #:use-module (gnu packages version-control)
  90. #:use-module (gnu packages webkit)
  91. #:use-module (gnu packages xdisorg)
  92. #:use-module (gnu packages xorg)
  93. #:use-module (guix packages)
  94. #:use-module (guix download)
  95. #:use-module (guix git-download)
  96. #:use-module (guix hg-download)
  97. #:use-module (guix build-system gnu)
  98. #:use-module (guix build-system guile)
  99. #:use-module (guix utils)
  100. #:use-module (ice-9 match)
  101. #:use-module ((srfi srfi-1) #:select (alist-delete)))
  102. (define-public artanis
  103. (package
  104. (name "artanis")
  105. (version "0.4.1")
  106. (source (origin
  107. (method url-fetch)
  108. (uri (string-append "mirror://gnu/artanis/artanis-"
  109. version ".tar.gz"))
  110. (sha256
  111. (base32
  112. "0nnmdfx5xwcc3kck64var7msz7g3qk817d7bv9l159nkmic0v9w4"))
  113. (modules '((guix build utils)))
  114. (snippet
  115. '(begin
  116. ;; Unbundle guile-redis and guile-json
  117. (delete-file-recursively "artanis/third-party/json.scm")
  118. (delete-file-recursively "artanis/third-party/json")
  119. (delete-file-recursively "artanis/third-party/redis.scm")
  120. (delete-file-recursively "artanis/third-party/redis")
  121. (substitute* '("artanis/artanis.scm"
  122. "artanis/lpc.scm"
  123. "artanis/oht.scm")
  124. (("(#:use-module \\()artanis third-party (json\\))" _
  125. use-module json)
  126. (string-append use-module json)))
  127. (substitute* '("artanis/lpc.scm"
  128. "artanis/session.scm")
  129. (("(#:use-module \\()artanis third-party (redis\\))" _
  130. use-module redis)
  131. (string-append use-module redis)))
  132. (substitute* "artanis/oht.scm"
  133. (("([[:punct:][:space:]]+)(->json-string)([[:punct:][:space:]]+)"
  134. _ pre json-string post)
  135. (string-append pre
  136. "scm" json-string
  137. post)))
  138. (substitute* "artanis/artanis.scm"
  139. (("[[:punct:][:space:]]+->json-string[[:punct:][:space:]]+")
  140. ""))
  141. #t))))
  142. (build-system gnu-build-system)
  143. (inputs
  144. `(("guile" ,guile-2.2)
  145. ("nss" ,nss)))
  146. ;; FIXME the bundled csv contains one more exported procedure
  147. ;; (sxml->csv-string) than guile-csv. The author is maintainer of both
  148. ;; projects.
  149. ;; TODO: Add guile-dbi and guile-dbd optional dependencies.
  150. (propagated-inputs
  151. `(("guile-json" ,guile-json-1)
  152. ("guile-readline" ,guile-readline)
  153. ("guile-redis" ,guile-redis)))
  154. (native-inputs
  155. `(("bash" ,bash) ;for the `source' builtin
  156. ("pkgconfig" ,pkg-config)
  157. ("util-linux" ,util-linux))) ;for the `script' command
  158. (arguments
  159. '(#:make-flags
  160. ;; TODO: The documentation must be built with the `docs' target.
  161. (let* ((out (assoc-ref %outputs "out"))
  162. (scm (string-append out "/share/guile/site/2.2"))
  163. (go (string-append out "/lib/guile/2.2/site-ccache")))
  164. ;; Don't use (%site-dir) for site paths.
  165. (list (string-append "MOD_PATH=" scm)
  166. (string-append "MOD_COMPILED_PATH=" go)))
  167. #:test-target "test"
  168. #:phases
  169. (modify-phases %standard-phases
  170. (add-after 'unpack 'patch-site-dir
  171. (lambda* (#:key outputs #:allow-other-keys)
  172. (substitute* "artanis/commands/help.scm"
  173. (("\\(%site-dir\\)")
  174. (string-append "\""
  175. (assoc-ref outputs "out")
  176. "/share/guile/site/2.2\"")))))
  177. (add-after 'unpack 'patch-reference-to-libnss
  178. (lambda* (#:key inputs #:allow-other-keys)
  179. (substitute* "artanis/security/nss.scm"
  180. (("ffi-binding \"libnss3\"")
  181. (string-append
  182. "ffi-binding \""
  183. (assoc-ref inputs "nss") "/lib/nss/libnss3.so"
  184. "\"")))
  185. #t))
  186. (add-before 'install 'substitute-root-dir
  187. (lambda* (#:key outputs #:allow-other-keys)
  188. (let ((out (assoc-ref outputs "out")))
  189. (substitute* "Makefile" ;ignore the execution of bash.bashrc
  190. ((" /etc/bash.bashrc") " /dev/null"))
  191. (substitute* "Makefile" ;set the root of config files to OUT
  192. ((" /etc") (string-append " " out "/etc")))
  193. (mkdir-p (string-append out "/bin")) ;for the `art' executable
  194. #t)))
  195. (add-after 'install 'wrap-art
  196. (lambda* (#:key inputs outputs #:allow-other-keys)
  197. (let* ((out (assoc-ref outputs "out"))
  198. (bin (string-append out "/bin"))
  199. (scm (string-append out "/share/guile/site/2.2"))
  200. (go (string-append out "/lib/guile/2.2/site-ccache")))
  201. (wrap-program (string-append bin "/art")
  202. `("GUILE_LOAD_PATH" ":" prefix
  203. (,scm ,(getenv "GUILE_LOAD_PATH")))
  204. `("GUILE_LOAD_COMPILED_PATH" ":" prefix
  205. (,go ,(getenv "GUILE_LOAD_COMPILED_PATH"))))
  206. #t))))))
  207. (synopsis "Web application framework written in Guile")
  208. (description "GNU Artanis is a web application framework written in Guile
  209. Scheme. A web application framework (WAF) is a software framework that is
  210. designed to support the development of dynamic websites, web applications, web
  211. services and web resources. The framework aims to alleviate the overhead
  212. associated with common activities performed in web development. Artanis
  213. provides several tools for web development: database access, templating
  214. frameworks, session management, URL-remapping for RESTful, page caching, and
  215. more.")
  216. (home-page "https://www.gnu.org/software/artanis/")
  217. (license (list license:gpl3+ license:lgpl3+)))) ;dual license
  218. ;; There has not been any release yet.
  219. (define-public guildhall
  220. (let ((commit "2fe2cc539f4b811bbcd69e58738db03eb5a2b778")
  221. (revision "1"))
  222. (package
  223. (name "guildhall")
  224. (version (string-append "0-" revision "." (string-take commit 9)))
  225. (source (origin
  226. (method git-fetch)
  227. (uri (git-reference
  228. (url "https://github.com/ijp/guildhall.git")
  229. (commit commit)))
  230. (file-name (string-append name "-" version "-checkout"))
  231. (sha256
  232. (base32
  233. "115bym7bg66h3gs399yb2vkzc2ygriaqsn4zbrg8f054mgy8wzn1"))))
  234. (build-system gnu-build-system)
  235. (arguments
  236. `(#:phases
  237. (modify-phases %standard-phases
  238. ;; Tests fail without this fix because they try to load the bash
  239. ;; executable as a Scheme file. See bug report at
  240. ;; https://github.com/ijp/guildhall/issues/22
  241. (add-after 'unpack 'fix-bug-22
  242. (lambda _
  243. (substitute* "Makefile.am"
  244. (("TESTS_ENVIRONMENT=.*")
  245. "AM_TESTS_ENVIRONMENT=srcdir=$(abs_top_srcdir)/tests/
  246. TEST_EXTENSIONS = .scm
  247. SCM_LOG_COMPILER= $(top_builddir)/env $(GUILE)
  248. AM_SCM_LOG_FLAGS = --no-auto-compile -s")
  249. ;; FIXME: one of the database tests fails for unknown
  250. ;; reasons. It does not fail when run outside of Guix.
  251. (("tests/database.scm") ""))
  252. #t)))))
  253. (inputs
  254. `(("guile" ,guile-2.0)))
  255. (native-inputs
  256. `(("zip" ,zip) ; for tests
  257. ("autoconf" ,autoconf)
  258. ("automake" ,automake)
  259. ("texinfo" ,texinfo)))
  260. (synopsis "Package manager for Guile")
  261. (description
  262. "Guildhall is a package manager written for Guile Scheme. A guild is
  263. an association of independent craftspeople. A guildhall is where they meet.
  264. This Guildhall aims to make a virtual space for Guile wizards and journeyfolk
  265. to share code.
  266. On a practical level, Guildhall lets you share Scheme modules and programs
  267. over the internet, and install code that has been shared by others. Guildhall
  268. can handle dependencies, so when a program requires several libraries, and
  269. each of those has further dependencies, all of the prerequisites for the
  270. program can be installed in one go.")
  271. (home-page "https://github.com/ijp/guildhall")
  272. (license license:gpl3+))))
  273. (define-public guile-aspell
  274. (package
  275. (name "guile-aspell")
  276. (version "0.4")
  277. (source (origin
  278. (method url-fetch)
  279. (uri (string-append
  280. "http://lonelycactus.com/tarball/guile_aspell-"
  281. version ".tar.gz"))
  282. (sha256
  283. (base32
  284. "0vpk5xj9m9qc702z3khmkwhgpb949qbsyz8kw2qycda6qnxk0077"))))
  285. (build-system gnu-build-system)
  286. (arguments
  287. '(#:phases (modify-phases %standard-phases
  288. (add-before 'configure 'set-guilesitedir
  289. (lambda _
  290. (substitute* "Makefile.in"
  291. (("^guilesitedir =.*$")
  292. "guilesitedir = \
  293. $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
  294. #t))
  295. (add-before 'build 'set-libaspell-file-name
  296. (lambda* (#:key inputs #:allow-other-keys)
  297. (let ((aspell (assoc-ref inputs "aspell")))
  298. (substitute* "aspell.scm"
  299. (("\"libaspell\\.so\"")
  300. (string-append "\"" aspell
  301. "/lib/libaspell\"")))
  302. #t))))))
  303. (native-inputs `(("pkg-config" ,pkg-config)))
  304. (inputs `(("guile" ,guile-2.2)
  305. ("aspell" ,aspell)))
  306. (home-page "https://github.com/spk121/guile-aspell")
  307. (synopsis "Spell-checking from Guile")
  308. (description
  309. "guile-aspell is a Guile Scheme library for comparing a string against a
  310. dictionary and suggesting spelling corrections.")
  311. (license license:gpl3+)))
  312. (define-public guile-bash
  313. ;; This project is currently retired. It was initially announced here:
  314. ;; <https://lists.gnu.org/archive/html/guile-user/2015-02/msg00003.html>.
  315. (let ((commit "1eabc563ca5692b3e08d84f1f0e6fd2283284469")
  316. (revision "0"))
  317. (package
  318. (name "guile-bash")
  319. (version (string-append "0.1.6-" revision "." (string-take commit 7)))
  320. (home-page
  321. "https://anonscm.debian.org/cgit/users/kaction-guest/retired/dev.guile-bash.git")
  322. (source (origin
  323. (method git-fetch)
  324. (uri (git-reference
  325. (commit commit)
  326. (url home-page)))
  327. (sha256
  328. (base32
  329. "097vny990wp2qpjij6a5a5gwc6fxzg5wk56inhy18iki5v6pif1p"))
  330. (file-name (string-append name "-" version "-checkout"))))
  331. (build-system gnu-build-system)
  332. (arguments
  333. '(#:configure-flags
  334. ;; Add -I to match 'bash.pc' of Bash 4.4.
  335. (list (string-append "CPPFLAGS=-I"
  336. (assoc-ref %build-inputs "bash:include")
  337. "/include/bash/include")
  338. ;; The '.a' file is useless.
  339. "--disable-static"
  340. ;; Install 'lib/bash' as Bash 4.4 expects.
  341. (string-append "--libdir=" (assoc-ref %outputs "out")
  342. "/lib/bash"))))
  343. (native-inputs `(("pkg-config" ,pkg-config)
  344. ("autoconf" ,autoconf-wrapper)
  345. ("automake" ,automake)
  346. ("libtool" ,libtool)
  347. ;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
  348. ("gettext" ,gettext-minimal)
  349. ;; Bash with loadable module support, for the test
  350. ;; suite.
  351. ("bash-full" ,bash)))
  352. (inputs `(("guile" ,guile-2.0)
  353. ("bash:include" ,bash "include")))
  354. (synopsis "Extend Bash using Guile")
  355. (description
  356. "Guile-Bash provides a shared library and set of Guile modules,
  357. allowing you to extend Bash in Scheme. Scheme interfaces allow you to access
  358. the following aspects of Bash:
  359. @itemize
  360. @item aliases;
  361. @item setting and getting Bash variables;
  362. @item creating dynamic variables;
  363. @item creating Bash functions with a Scheme implementation;
  364. @item reader macro for output capturing;
  365. @item reader macro for evaluating raw Bash commands.
  366. @end itemize
  367. To enable it, run:
  368. @example
  369. enable -f ~/.guix-profile/lib/bash/libguile-bash.so scm
  370. @end example
  371. and then run @command{scm example.scm}.")
  372. (license license:gpl3+))))
  373. (define-public guile-8sync
  374. (package
  375. (name "guile-8sync")
  376. (version "0.4.2")
  377. (source (origin
  378. (method url-fetch)
  379. (uri (string-append "mirror://gnu/8sync/8sync-" version
  380. ".tar.gz"))
  381. (sha256
  382. (base32
  383. "031wm13srak3wsnll7j2mbbi29g1pcm4swdb71ds9yn567pn20qw"))))
  384. (build-system gnu-build-system)
  385. (native-inputs `(("autoconf" ,autoconf)
  386. ("automake" ,automake)
  387. ("guile" ,guile-2.2)
  388. ("pkg-config" ,pkg-config)
  389. ("texinfo" ,texinfo)))
  390. (arguments
  391. `(#:phases (modify-phases %standard-phases
  392. (add-before 'configure 'setenv
  393. (lambda _
  394. ;; quiet warnings
  395. (setenv "GUILE_AUTO_COMPILE" "0")
  396. #t)))))
  397. (home-page "https://gnu.org/s/8sync/")
  398. (synopsis "Asynchronous actor model library for Guile")
  399. (description
  400. "GNU 8sync (pronounced \"eight-sync\") is an asynchronous programming
  401. library for GNU Guile based on the actor model.
  402. Note that 8sync is only available for Guile 2.2.")
  403. (license license:lgpl3+)))
  404. (define-public guile-daemon
  405. (package
  406. (name "guile-daemon")
  407. (version "0.1.3")
  408. (source (origin
  409. (method url-fetch)
  410. (uri (string-append "https://github.com/alezost/" name
  411. "/releases/download/v" version
  412. "/" name "-" version ".tar.gz"))
  413. (sha256
  414. (base32
  415. "08gaqrgjlly9k5si72vvpbr4xhq5v52l5ma5y6a7spid5dd057cy"))))
  416. (build-system gnu-build-system)
  417. (native-inputs
  418. `(("pkg-config" ,pkg-config)))
  419. (inputs
  420. `(("guile" ,guile-2.2)))
  421. (home-page "https://github.com/alezost/guile-daemon")
  422. (synopsis "Evaluate code in a running Guile process")
  423. (description
  424. "Guile-Daemon is a small Guile program that loads your initial
  425. configuration file, and then reads and evaluates Guile expressions that
  426. you send to a FIFO file.")
  427. (license license:gpl3+)))
  428. (define-public guile-dsv
  429. (package
  430. (name "guile-dsv")
  431. (version "0.2.1")
  432. (source (origin
  433. (method git-fetch)
  434. (uri (git-reference
  435. (url "https://github.com/artyom-poptsov/guile-dsv")
  436. (commit "bdc5267d007478abc20ea96d7c459b7dd9560b3d")))
  437. (file-name (string-append name "-" version "-checkout"))
  438. (sha256
  439. (base32
  440. "1irw6mz8998nwyhzrw9g94jcz60b9zljgqfmipaz1ybn8579qjx0"))))
  441. (build-system gnu-build-system)
  442. (native-inputs
  443. `(("autoconf" ,autoconf)
  444. ("automake" ,automake)
  445. ("pkg-config" ,pkg-config)
  446. ("texinfo" ,texinfo)))
  447. (inputs `(("guile" ,guile-2.2)))
  448. (propagated-inputs `(("guile-lib" ,guile-lib)))
  449. (arguments
  450. '(#:phases (modify-phases %standard-phases
  451. (add-before 'configure 'set-guilesitedir
  452. (lambda _
  453. (substitute* "Makefile.in"
  454. (("^guilesitedir =.*$")
  455. "guilesitedir = \
  456. $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
  457. (substitute* "modules/Makefile.in"
  458. (("^guilesitedir =.*$")
  459. "guilesitedir = \
  460. $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
  461. (substitute* "modules/dsv/Makefile.in"
  462. (("^guilesitedir =.*$")
  463. "guilesitedir = \
  464. $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
  465. #t)))))
  466. (home-page "https://github.com/artyom-poptsov/guile-dsv")
  467. (synopsis "DSV module for Guile")
  468. (description
  469. "Guile-DSV is a GNU Guile module for working with the
  470. delimiter-separated values (DSV) data format. Guile-DSV supports the
  471. Unix-style DSV format and RFC 4180 format.")
  472. (license license:gpl3+)))
  473. (define-public guile-fibers
  474. (package
  475. (name "guile-fibers")
  476. (version "1.0.0")
  477. (source (origin
  478. (method url-fetch)
  479. (uri (string-append "https://wingolog.org/pub/fibers/fibers-"
  480. version ".tar.gz"))
  481. (sha256
  482. (base32
  483. "0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))
  484. (modules '((guix build utils)))
  485. (snippet
  486. '(begin
  487. ;; Allow builds with Guile 3.0.
  488. (substitute* "configure"
  489. (("search=\"2\\.2\"")
  490. "search=\"3.0 2.2\""))
  491. ;; Explicitly include system headers rather than relying on
  492. ;; <libguile.h> to do it for us.
  493. (substitute* "epoll.c"
  494. (("#include.*libguile\\.h.*$" all)
  495. (string-append "#include <unistd.h>\n"
  496. "#include <string.h>\n"
  497. all "\n")))
  498. ;; Import (ice-9 threads) for 'current-processor-count'.
  499. (substitute* "tests/channels.scm"
  500. (("#:use-module \\(fibers\\)")
  501. (string-append "#:use-module (fibers)\n"
  502. "#:use-module (ice-9 threads)\n")))
  503. #t))))
  504. (build-system gnu-build-system)
  505. (arguments
  506. '(#:phases (modify-phases %standard-phases
  507. (add-after 'install 'mode-guile-objects
  508. (lambda* (#:key outputs #:allow-other-keys)
  509. ;; .go files are installed to "lib/guile/X.Y/cache".
  510. ;; This phase moves them to "…/site-ccache".
  511. (let* ((out (assoc-ref outputs "out"))
  512. (lib (string-append out "/lib/guile"))
  513. (old (car (find-files lib "^ccache$"
  514. #:directories? #t)))
  515. (new (string-append (dirname old)
  516. "/site-ccache")))
  517. (rename-file old new)
  518. #t))))))
  519. (native-inputs
  520. `(("texinfo" ,texinfo)
  521. ("pkg-config" ,pkg-config)))
  522. (inputs
  523. `(("guile" ,guile-2.2)))
  524. (synopsis "Lightweight concurrency facility for Guile")
  525. (description
  526. "Fibers is a Guile library that implements a a lightweight concurrency
  527. facility, inspired by systems like Concurrent ML, Go, and Erlang. A fiber is
  528. like a \"goroutine\" from the Go language: a lightweight thread-like
  529. abstraction. Systems built with Fibers can scale up to millions of concurrent
  530. fibers, tens of thousands of concurrent socket connections, and many parallel
  531. cores. The Fibers library also provides Concurrent ML-like channels for
  532. communication between fibers.
  533. Note that Fibers makes use of some Guile 2.1/2.2-specific features and
  534. is not available for Guile 2.0.")
  535. (home-page "https://github.com/wingo/fibers")
  536. (license license:lgpl3+)))
  537. (define-public guile3.0-fibers
  538. (package
  539. (inherit guile-fibers)
  540. (name "guile3.0-fibers")
  541. (arguments
  542. ;; The code uses 'scm_t_uint64' et al., which are deprecated in 3.0.
  543. `(#:configure-flags '("CFLAGS=-Wno-error=deprecated-declarations")
  544. ,@(package-arguments guile-fibers)))
  545. (inputs `(("guile" ,guile-3.0)))))
  546. (define-public guile-syntax-highlight
  547. (package
  548. (name "guile-syntax-highlight")
  549. (version "0.1")
  550. (source (origin
  551. (method url-fetch)
  552. (uri (string-append "https://files.dthompson.us/"
  553. "guile-syntax-highlight/"
  554. "guile-syntax-highlight-"
  555. version ".tar.gz"))
  556. (sha256
  557. (base32
  558. "1p771kq15x83483m23bhah1sz6vkalg3drm7x279f4j1cxligkzi"))
  559. (modules '((guix build utils)))
  560. (snippet
  561. '(begin
  562. ;; Allow builds with Guile 3.0.
  563. (substitute* "configure"
  564. (("2\\.2 2\\.0")
  565. "3.0 2.2 2.0"))
  566. #t))))
  567. (build-system gnu-build-system)
  568. (native-inputs
  569. `(("pkg-config" ,pkg-config)))
  570. (inputs
  571. `(("guile" ,guile-2.2)))
  572. (synopsis "General-purpose syntax highlighter for GNU Guile")
  573. (description "Guile-syntax-highlight is a general-purpose syntax
  574. highlighting library for GNU Guile. It can parse code written in various
  575. programming languages into a simple s-expression that can be converted to
  576. HTML (via SXML) or any other format for rendering.")
  577. (home-page "http://dthompson.us/projects/guile-syntax-highlight.html")
  578. (license license:lgpl3+)))
  579. (define-public guile3.0-syntax-highlight
  580. (package
  581. (inherit guile-syntax-highlight)
  582. (name "guile3.0-syntax-highlight")
  583. (inputs `(("guile" ,guile-3.0)))))
  584. (define-public guile-sjson
  585. (package
  586. (name "guile-sjson")
  587. (version "0.2.1")
  588. (source (origin
  589. (method url-fetch)
  590. (uri (string-append "https://dustycloud.org/misc/sjson-" version
  591. ".tar.gz"))
  592. (sha256
  593. (base32
  594. "1mzmapln79vv10qxaggz9qwcdbag3jnrj19xx8bgkmxss8h03sv3"))))
  595. (build-system gnu-build-system)
  596. (native-inputs
  597. `(("autoconf" ,autoconf)
  598. ("automake" ,automake)
  599. ("pkg-config" ,pkg-config)))
  600. (inputs
  601. `(("guile" ,guile-2.2)))
  602. (home-page "https://gitlab.com/dustyweb/guile-sjson")
  603. (synopsis "S-expression based json reader/writer for Guile")
  604. (description "guile-sjson is a json reader/writer for Guile.
  605. It has a nice, simple s-expression based syntax.")
  606. (license license:lgpl3+)))
  607. (define-public guile-squee
  608. (let ((commit "a85902a92bf6f58a1d35fd974a01ade163deda8d")
  609. (revision "0"))
  610. (package
  611. (name "guile-squee")
  612. (version (string-append "0-" revision "." (string-take commit 7)))
  613. (source (origin
  614. (method git-fetch)
  615. (uri (git-reference
  616. (url "https://notabug.org/cwebber/guile-squee.git")
  617. (commit commit)))
  618. (file-name (git-file-name name version))
  619. (sha256
  620. (base32
  621. "0p1lpsp4kx57j3ai1dkxilm4ziavzzx8wbbc42m3hpziq0a7qz5z"))))
  622. (build-system guile-build-system)
  623. (arguments
  624. '(#:phases
  625. (modify-phases %standard-phases
  626. (add-after 'unpack 'patch
  627. (lambda* (#:key inputs #:allow-other-keys)
  628. (substitute* "squee.scm"
  629. (("dynamic-link \"libpq\"")
  630. (string-append
  631. "dynamic-link \""
  632. (assoc-ref inputs "postgresql") "/lib/libpq.so"
  633. "\"")))
  634. #t)))))
  635. (inputs
  636. `(("postgresql" ,postgresql)))
  637. (native-inputs
  638. `(("guile" ,guile-2.2)))
  639. (home-page "https://notabug.org/cwebber/guile-squee")
  640. (synopsis "Connect to PostgreSQL using Guile")
  641. (description
  642. "@code{squee} is a Guile library for connecting to PostgreSQL databases
  643. using Guile's foreign function interface.")
  644. (license license:lgpl3+))))
  645. (define-public guile3.0-squee
  646. (package
  647. (inherit guile-squee)
  648. (name "guile3.0-squee")
  649. (native-inputs `(("guile" ,guile-next)
  650. ,@(alist-delete "guile"
  651. (package-native-inputs guile-squee))))))
  652. (define-public guile-colorized
  653. (package
  654. (name "guile-colorized")
  655. (version "0.1")
  656. (source
  657. (origin
  658. (method git-fetch)
  659. (uri (git-reference
  660. (url "https://gitlab.com/NalaGinrut/guile-colorized.git")
  661. (commit (string-append "v" version))))
  662. (file-name (git-file-name name version))
  663. (sha256
  664. (base32 "10mv8c63159r3qvwwdvsgnsvdg7nc2ghak85zapwqpv4ywrqp9zc"))))
  665. (build-system guile-build-system)
  666. (native-inputs
  667. `(("guile" ,guile-2.2)))
  668. (home-page "https://gitlab.com/NalaGinrut/guile-colorized")
  669. (synopsis "Colorized REPL for Guile")
  670. (description
  671. "Guile-colorized provides you with a colorized REPL for GNU Guile.")
  672. (license license:gpl3+)))
  673. (define-public guile3.0-colorized
  674. (package
  675. (inherit guile-colorized)
  676. (name "guile3.0-colorized")
  677. (native-inputs `(("guile" ,guile-next)))))
  678. (define-public guile-pfds
  679. (package
  680. (name "guile-pfds")
  681. (version "0.3")
  682. (home-page "https://github.com/ijp/pfds")
  683. (source (origin
  684. (method git-fetch)
  685. (uri (git-reference
  686. (url home-page)
  687. (commit (string-append "v" version))))
  688. (sha256
  689. (base32
  690. "19y33wg94pf0n98dkfqd1zbw93fgky4sawxsxl6s3vyqwl0yi5vh"))
  691. (file-name (string-append name "-" version "-checkout"))))
  692. (build-system guile-build-system)
  693. (arguments
  694. '(#:source-directory "src"
  695. #:phases (modify-phases %standard-phases
  696. (add-after 'unpack 'move-files-around
  697. (lambda _
  698. ;; Move files under a pfds/ directory to reflect the
  699. ;; module hierarchy.
  700. (mkdir-p "src/pfds")
  701. (for-each (lambda (file)
  702. (rename-file file
  703. (string-append "src/pfds/"
  704. file)))
  705. '("bbtrees.sls"
  706. "deques"
  707. "deques.sls"
  708. "dlists.sls"
  709. "fingertrees.sls"
  710. "hamts.sls"
  711. "heaps.sls"
  712. "private"
  713. "psqs.sls"
  714. "queues"
  715. "queues.sls"
  716. "sequences.sls"
  717. "sets.sls"))
  718. ;; In Guile <= 2.2.4, there's no way to tell 'guild
  719. ;; compile' to accept the ".sls" extension. So...
  720. (for-each (lambda (file)
  721. (rename-file file
  722. (string-append
  723. (string-drop-right file 4)
  724. ".scm")))
  725. (find-files "." "\\.sls$"))
  726. #t)))))
  727. (native-inputs
  728. `(("guile" ,guile-2.2)))
  729. (synopsis "Purely functional data structures for Guile")
  730. (description
  731. "This package provides purely functional data structures written in R6RS
  732. Scheme and compiled for Guile. It has been tested with Racket, Guile 2,
  733. Vicare Scheme and IronScheme. Right now it contains:
  734. @itemize
  735. @item queues
  736. @item deques
  737. @item bbtrees
  738. @item sets
  739. @item dlists
  740. @item priority search queues (PSQs)
  741. @item finger trees
  742. @item sequences
  743. @item heaps
  744. @item hash array mapped tries (HAMTs).
  745. @end itemize\n")
  746. (license license:bsd-3)))
  747. (define-public guile3.0-pfds
  748. (package
  749. (inherit guile-pfds)
  750. (name "guile3.0-pfds")
  751. (native-inputs `(("guile" ,guile-3.0)))
  752. (arguments
  753. (substitute-keyword-arguments (package-arguments guile-pfds)
  754. ((#:phases phases)
  755. `(modify-phases ,phases
  756. (add-after 'unpack 'work-around-guile-bug
  757. (lambda _
  758. ;; See bug #39210.
  759. (substitute* '("fingertrees.sls"
  760. "queues/private/condition.sls"
  761. "deques/private/condition.sls")
  762. (("&assertion") "&violation"))
  763. #t))))))))
  764. (define-public guile-aa-tree
  765. (package
  766. (name "guile-aa-tree")
  767. (version "3.1.1")
  768. (source (origin
  769. (method url-fetch)
  770. (uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-"
  771. version ".tar.gz"))
  772. (sha256
  773. (base32
  774. "0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh"))))
  775. (build-system guile-build-system)
  776. (native-inputs `(("guile" ,guile-2.2)))
  777. ;; https://savannah.nongnu.org/projects/guile-aa-tree
  778. (home-page "https://qlfiles.net/guile-aa-tree/")
  779. (synopsis "AA tree data structure for Guile")
  780. (description
  781. "This package provides an implementation of @dfn{AA trees}, a
  782. self-balancing binary tree data structure, for Guile. It ensure @math{O(log
  783. n)} worst case performance for core operations. The module provides
  784. non-mutating insert, delete, and search operations, with support for
  785. convenient nested tree operations.")
  786. (license license:gpl3+)))
  787. (define-public guile-simple-zmq
  788. (let ((commit "68bedb6679716214fb9d3472da57544526f7a618")
  789. (revision "3"))
  790. (package
  791. (name "guile-simple-zmq")
  792. (version (git-version "0.0.0" revision commit))
  793. (source
  794. (origin
  795. (method git-fetch)
  796. (uri (git-reference
  797. (url "https://github.com/jerry40/guile-simple-zmq")
  798. (commit commit)))
  799. (sha256
  800. (base32
  801. "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli"))
  802. (file-name (git-file-name name version))))
  803. (build-system guile-build-system)
  804. (arguments
  805. `(#:source-directory "src"
  806. #:phases (modify-phases %standard-phases
  807. (add-after 'unpack 'set-libzmq-file-name
  808. (lambda* (#:key inputs #:allow-other-keys)
  809. (substitute* "src/simple-zmq.scm"
  810. (("\\(dynamic-link \"libzmq\"\\)")
  811. (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
  812. (assoc-ref inputs "zeromq"))))
  813. #t)))))
  814. (native-inputs
  815. `(("guile" ,guile-2.2)))
  816. (inputs
  817. `(("zeromq" ,zeromq)))
  818. (home-page "https://github.com/jerry40/guile-simple-zmq")
  819. (synopsis "Guile wrapper over ZeroMQ library")
  820. (description
  821. "This package provides a Guile programming interface to the ZeroMQ
  822. messaging library.")
  823. (license license:gpl3+))))
  824. (define-public guile3.0-simple-zmq
  825. (package
  826. (inherit guile-simple-zmq)
  827. (name "guile3.0-simple-zmq")
  828. (native-inputs `(("guile" ,guile-next)))))
  829. (define-public jupyter-guile-kernel
  830. (let ((commit "a7db9245a886e104138474df46c3e88b95cff629")
  831. (revision "1"))
  832. (package
  833. (name "jupyter-guile-kernel")
  834. (version (git-version "0.0.0" revision commit))
  835. (source
  836. (origin
  837. (method git-fetch)
  838. (uri (git-reference
  839. (url "https://github.com/jerry40/guile-kernel")
  840. (commit commit)))
  841. (file-name (git-file-name name version))
  842. (sha256
  843. (base32
  844. "0aj04853bqm47ivfcmrgpb7w3wkis847kc7qrwsa5zcn9h38qh2f"))))
  845. (build-system guile-build-system)
  846. (arguments
  847. '(#:phases (modify-phases %standard-phases
  848. (add-after 'unpack 'set-openssl-file-name
  849. (lambda* (#:key inputs #:allow-other-keys)
  850. ;; Record the absolute file name of the 'openssl'
  851. ;; command.
  852. (substitute* "src/hmac.scm"
  853. (("openssl")
  854. (string-append (assoc-ref inputs "openssl")
  855. "/bin/openssl")))
  856. #t))
  857. ;; XXX: The code uses 'include' to include its own source
  858. ;; files, and "-L src" isn't enough in this case.
  859. (add-before 'build 'chdir
  860. (lambda _ (chdir "src") #t))
  861. (add-after 'build 'chdir-back
  862. (lambda _ (chdir "..") #t))
  863. (add-after 'install 'install-kernel
  864. (lambda* (#:key inputs outputs #:allow-other-keys)
  865. (let* ((out (assoc-ref outputs "out"))
  866. (json (assoc-ref inputs "guile-json"))
  867. (zmq (assoc-ref inputs "guile-simple-zmq"))
  868. (deps (list json zmq))
  869. (dir (string-append
  870. out "/share/jupyter/kernels/guile"))
  871. (effective (target-guile-effective-version)))
  872. ;; Install kernel.
  873. (install-file "src/kernel.json" dir)
  874. ;; Fix hard-coded file name in the kernel.
  875. (substitute* (string-append dir "/kernel.json")
  876. (("/home/.*/guile-jupyter-kernel.scm")
  877. (string-append out "/share/guile/site/"
  878. (target-guile-effective-version)
  879. "/guile-jupyter-kernel.scm"))
  880. (("\"guile\"")
  881. (string-append "\"" (assoc-ref inputs "guile")
  882. "/bin/guile\""))
  883. (("-s")
  884. ;; Add '-L' and '-C' flags so that the kernel
  885. ;; finds its dependencies.
  886. (let ((-L (map (lambda (item)
  887. (string-append "\"" item
  888. "/share/guile/site/"
  889. effective "\""))
  890. deps))
  891. (-C (map (lambda (item)
  892. (string-append "\"" item
  893. "/lib/guile/"
  894. effective
  895. "/site-ccache\""))
  896. deps)))
  897. (string-append "--no-auto-compile\""
  898. (string-join -L ", \"-L\", "
  899. 'prefix)
  900. (string-join -C ", \"-C\", "
  901. 'prefix)
  902. ", \"-s"))))
  903. #t))))))
  904. (inputs
  905. `(("openssl" ,openssl)
  906. ("guile" ,guile-2.2)
  907. ("guile-json" ,guile-json-1)
  908. ("guile-simple-zmq" ,guile-simple-zmq)))
  909. (synopsis "Guile kernel for the Jupyter Notebook")
  910. (description
  911. "This package provides a Guile 2.x kernel for the Jupyter Notebook. It
  912. allows users to interact with the Guile REPL through Jupyter.")
  913. (home-page "https://github.com/jerry40/guile-kernel")
  914. (license license:gpl3+))))
  915. (define-public guile-sparql
  916. (package
  917. (name "guile-sparql")
  918. (version "0.0.7")
  919. (source (origin
  920. (method url-fetch)
  921. (uri (string-append
  922. "https://github.com/roelj/guile-sparql/releases/download/"
  923. version "/guile-sparql-" version ".tar.gz"))
  924. (sha256
  925. (base32 "1drnvhsgl0gc5crmb16yyw1j98nkhwwcgssv9vgm36ng43nnzffd"))))
  926. (build-system gnu-build-system)
  927. (arguments `(#:tests? #f)) ; There are no tests.
  928. (native-inputs
  929. `(("pkg-config" ,pkg-config)))
  930. (inputs
  931. `(("guile" ,guile-2.2)))
  932. (home-page "https://github.com/roelj/guile-sparql")
  933. (synopsis "SPARQL module for Guile")
  934. (description "This package provides the functionality to query a SPARQL
  935. endpoint. Additionally, it provides an interface to write SPARQL queries
  936. using S-expressions.")
  937. (license license:gpl3+)))
  938. (define-public guile-debbugs
  939. (package
  940. (name "guile-debbugs")
  941. (version "0.0.3")
  942. (source (origin
  943. (method url-fetch)
  944. (uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-"
  945. version ".tar.gz"))
  946. (sha256
  947. (base32
  948. "1cc63nw3xdfjrfk8c58r6d5lidmfq5cpqcy32yd5xp81yccprvn9"))))
  949. (build-system gnu-build-system)
  950. (propagated-inputs
  951. `(("guile-email" ,guile-email)))
  952. (native-inputs
  953. `(("guile" ,guile-2.2)
  954. ("pkg-config" ,pkg-config)))
  955. (home-page "https://savannah.gnu.org/projects/guile-debbugs/")
  956. (synopsis "Guile interface to the Debbugs bug tracking service")
  957. (description
  958. "This package provides a Guile library to communicate with a Debbugs bug
  959. tracker's SOAP service, such as @url{https://bugs.gnu.org}.")
  960. (license license:gpl3+)))
  961. (define-public guile-email
  962. (package
  963. (name "guile-email")
  964. (version "0.2.2")
  965. (source
  966. (origin
  967. (method url-fetch)
  968. (uri (string-append
  969. "https://guile-email.systemreboot.net/releases/guile-email-"
  970. version ".tar.lz"))
  971. (sha256
  972. (base32
  973. "1rc8r0fgvflnyq5ckl7ii8sghpsgpkzxa8vskjr1ak2kyar6m35k"))))
  974. (build-system gnu-build-system)
  975. (native-inputs
  976. `(("pkg-config" ,pkg-config)
  977. ("lzip" ,lzip)))
  978. (inputs
  979. `(("guile" ,guile-2.2)))
  980. (arguments
  981. '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings
  982. (home-page "https://guile-email.systemreboot.net")
  983. (synopsis "Guile email parser")
  984. (description "guile-email is a collection of email utilities implemented
  985. in pure guile. It supports parsing MIME (Multipurpose Internet Mail
  986. Extensions) compliant email messages and reading emails from the mbox
  987. format.")
  988. (license license:agpl3+)))
  989. (define-public guile3.0-email
  990. (package
  991. (inherit guile-email)
  992. (name "guile3.0-email")
  993. (inputs `(("guile" ,guile-next)
  994. ,@(alist-delete "guile" (package-inputs guile-email))))))
  995. (define-public guile-newt
  996. (package
  997. (name "guile-newt")
  998. (version "0.0.1")
  999. (source (origin
  1000. (method git-fetch)
  1001. (uri (git-reference
  1002. (url "https://gitlab.com/mothacehe/guile-newt")
  1003. (commit version)))
  1004. (file-name (git-file-name name version))
  1005. (sha256
  1006. (base32
  1007. "1w7qy4dw1f4bx622l6hw8mv49sf1ha8kch8j4nganyk8fj0wn695"))
  1008. (modules '((guix build utils)))
  1009. (snippet
  1010. '(begin
  1011. ;; Allow builds with Guile 3.0.
  1012. (substitute* "configure.ac"
  1013. (("^GUILE_PKG.*")
  1014. "GUILE_PKG([3.0 2.2 2.0])\n"))
  1015. ;; Remove "guile.m4" since it contains an obsolete version
  1016. ;; of 'GUILE_PKG' that doesn't work with development
  1017. ;; versions such as 2.9.
  1018. (delete-file "m4/guile.m4")
  1019. #t))))
  1020. (build-system gnu-build-system)
  1021. (arguments
  1022. '(#:make-flags
  1023. '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
  1024. (inputs
  1025. `(("guile" ,guile-2.2)
  1026. ("newt" ,newt)))
  1027. (native-inputs
  1028. `(("autoconf" ,autoconf)
  1029. ("automake" ,automake)
  1030. ("pkg-config" ,pkg-config)))
  1031. (synopsis "Guile bindings to Newt")
  1032. (description
  1033. "This package provides bindings for Newt, a programming library for
  1034. color text mode, widget based user interfaces. The bindings are written in pure
  1035. Scheme by using Guiles foreign function interface.")
  1036. (home-page "https://gitlab.com/mothacehe/guile-newt")
  1037. (license license:gpl3+)))
  1038. (define-public guile3.0-newt
  1039. (package
  1040. (inherit guile-newt)
  1041. (name "guile3.0-newt")
  1042. (inputs `(("guile" ,guile-next)
  1043. ,@(alist-delete "guile" (package-inputs guile-newt))))))
  1044. (define-public guile-mastodon
  1045. (package
  1046. (name "guile-mastodon")
  1047. (version "0.0.1")
  1048. (source (origin
  1049. (method git-fetch)
  1050. (uri (git-reference
  1051. (url "https://framagit.org/prouby/guile-mastodon.git")
  1052. (commit (string-append "v" version))))
  1053. (file-name (git-file-name name version))
  1054. (sha256
  1055. (base32
  1056. "1vblf3d1bbwna3l09p2ap5y8ycvl549bz6whgk78imyfmn28ygry"))))
  1057. (build-system gnu-build-system)
  1058. (native-inputs
  1059. `(("autoconf" ,autoconf)
  1060. ("automake" ,automake)
  1061. ("pkg-config" ,pkg-config)))
  1062. (inputs
  1063. `(("guile" ,guile-2.2)
  1064. ("gnutls" ,gnutls)
  1065. ("guile-json" ,guile-json-1)))
  1066. (home-page "https://framagit.org/prouby/guile-mastodon")
  1067. (synopsis "Guile Mastodon REST API module")
  1068. (description "This package provides Guile modules to access the
  1069. @uref{https://docs.joinmastodon.org/api/, REST API of Mastodon}, a federated
  1070. microblogging service.")
  1071. (license license:gpl3+)))
  1072. (define-public guile-parted
  1073. (package
  1074. (name "guile-parted")
  1075. (version "0.0.2")
  1076. (source (origin
  1077. (method git-fetch)
  1078. (uri (git-reference
  1079. (url "https://gitlab.com/mothacehe/guile-parted")
  1080. (commit version)))
  1081. (file-name (git-file-name name version))
  1082. (sha256
  1083. (base32
  1084. "01qmv6xnbbq3wih0dl9bscvca2d7zx7bjiqf35y6dkaqsp8nvdxf"))
  1085. (modules '((guix build utils)))
  1086. (snippet
  1087. '(begin
  1088. ;; Allow builds with Guile 3.0.
  1089. (substitute* "configure.ac"
  1090. (("^GUILE_PKG.*")
  1091. "GUILE_PKG([3.0 2.2 2.0])\n"))
  1092. ;; Remove "guile.m4" since it contains an obsolete version
  1093. ;; of 'GUILE_PKG' that doesn't work with development
  1094. ;; versions such as 2.9.
  1095. (delete-file "m4/guile.m4")
  1096. #t))))
  1097. (build-system gnu-build-system)
  1098. (arguments
  1099. '(#:make-flags
  1100. '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings
  1101. (inputs
  1102. `(("guile" ,guile-2.2)
  1103. ("parted" ,parted)))
  1104. (propagated-inputs
  1105. `(("guile-bytestructures" ,guile-bytestructures)))
  1106. (native-inputs
  1107. `(("autoconf" ,autoconf)
  1108. ("automake" ,automake)
  1109. ("pkg-config" ,pkg-config)))
  1110. (synopsis "Guile bindings to GNU Parted")
  1111. (description
  1112. "This package provides bindings for GNU Parted library, a C library
  1113. allowing disk partition tables creation and manipulation. The bindings are
  1114. written in pure Scheme by using Guile's foreign function interface.")
  1115. (home-page "https://gitlab.com/mothacehe/guile-parted")
  1116. (license license:gpl3+)))