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.

323 lines
12 KiB

gnu: Remove ".git" from "https://github/…/….git". Until now, 'lookup-origin' and thus 'lookup-origin-revision' in (guix swh) would sometimes return #f for these because the ".git" URLs are redirects to the non-".git" URLs. Consequently, 'guix lint -c archival' would keep saying "scheduled Software Heritage archival"; likewise, the fallback download code would fail. * gnu/packages/ada.scm, gnu/packages/admin.scm, gnu/packages/aidc.scm, gnu/packages/algebra.scm, gnu/packages/android.scm, gnu/packages/animation.scm, gnu/packages/arcan.scm, gnu/packages/assembly.scm, gnu/packages/audio.scm, gnu/packages/authentication.scm, gnu/packages/avr.scm, gnu/packages/axoloti.scm, gnu/packages/backup.scm, gnu/packages/bash.scm, gnu/packages/benchmark.scm, gnu/packages/bioconductor.scm, gnu/packages/bioinformatics.scm, gnu/packages/bittorrent.scm, gnu/packages/boost.scm, gnu/packages/build-tools.scm, gnu/packages/c.scm, gnu/packages/calendar.scm, gnu/packages/cdrom.scm, gnu/packages/check.scm, gnu/packages/chemistry.scm, gnu/packages/chez.scm, gnu/packages/clojure.scm, gnu/packages/code.scm, gnu/packages/compression.scm, gnu/packages/compton.scm, gnu/packages/coq.scm, gnu/packages/cpp.scm, gnu/packages/cran.scm, gnu/packages/crypto.scm, gnu/packages/curl.scm, gnu/packages/databases.scm, gnu/packages/datastructures.scm, gnu/packages/debug.scm, gnu/packages/disk.scm, gnu/packages/distributed.scm, gnu/packages/django.scm, gnu/packages/dlang.scm, gnu/packages/dns.scm, gnu/packages/docker.scm, gnu/packages/education.scm, gnu/packages/efi.scm, gnu/packages/elixir.scm, gnu/packages/emacs-xyz.scm, gnu/packages/embedded.scm, gnu/packages/emulators.scm, gnu/packages/engineering.scm, gnu/packages/erlang.scm, gnu/packages/fabric-management.scm, gnu/packages/file-systems.scm, gnu/packages/finance.scm, gnu/packages/firmware.scm, gnu/packages/flashing-tools.scm, gnu/packages/fonts.scm, gnu/packages/fontutils.scm, gnu/packages/fpga.scm, gnu/packages/game-development.scm, gnu/packages/games.scm, gnu/packages/genealogy.scm, gnu/packages/genimage.scm, gnu/packages/geo.scm, gnu/packages/gimp.scm, gnu/packages/gl.scm, gnu/packages/gnome-xyz.scm, gnu/packages/gnome.scm, gnu/packages/gnuzilla.scm, gnu/packages/golang.scm, gnu/packages/gpodder.scm, gnu/packages/graph.scm, gnu/packages/graphics.scm, gnu/packages/graphviz.scm, gnu/packages/groff.scm, gnu/packages/groovy.scm, gnu/packages/gtk.scm, gnu/packages/guile-xyz.scm, gnu/packages/guile.scm, gnu/packages/hardware.scm, gnu/packages/haskell-apps.scm, gnu/packages/haskell-xyz.scm, gnu/packages/hexedit.scm, gnu/packages/i2p.scm, gnu/packages/ibus.scm, gnu/packages/image-processing.scm, gnu/packages/image-viewers.scm, gnu/packages/image.scm, gnu/packages/ipfs.scm, gnu/packages/java-graphics.scm, gnu/packages/java-maths.scm, gnu/packages/java.scm, gnu/packages/javascript.scm, gnu/packages/jrnl.scm, gnu/packages/julia.scm, gnu/packages/jupyter.scm, gnu/packages/kodi.scm, gnu/packages/language.scm, gnu/packages/lego.scm, gnu/packages/less.scm, gnu/packages/libusb.scm, gnu/packages/linux.scm, gnu/packages/lirc.scm, gnu/packages/lisp-xyz.scm, gnu/packages/llvm.scm, gnu/packages/logging.scm, gnu/packages/lolcode.scm, gnu/packages/lua.scm, gnu/packages/lxde.scm, gnu/packages/lxqt.scm, gnu/packages/machine-learning.scm, gnu/packages/mail.scm, gnu/packages/markup.scm, gnu/packages/maths.scm, gnu/packages/maven.scm, gnu/packages/mes.scm, gnu/packages/messaging.scm, gnu/packages/monitoring.scm, gnu/packages/mpd.scm, gnu/packages/music.scm, gnu/packages/networking.scm, gnu/packages/node-xyz.scm, gnu/packages/ocaml.scm, gnu/packages/ocr.scm, gnu/packages/onc-rpc.scm, gnu/packages/opencl.scm, gnu/packages/opencog.scm, gnu/packages/pantheon.scm, gnu/packages/password-utils.scm, gnu/packages/patchutils.scm, gnu/packages/pdf.scm, gnu/packages/perl6.scm, gnu/packages/phabricator.scm, gnu/packages/popt.scm, gnu/packages/printers.scm, gnu/packages/prolog.scm, gnu/packages/protobuf.scm, gnu/packages/pulseaudio.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/python-xyz.scm, gnu/packages/qt.scm, gnu/packages/radio.scm, gnu/packages/rails.scm, gnu/packages/rdf.scm, gnu/packages/rednotebook.scm, gnu/packages/rpc.scm, gnu/packages/rsync.scm, gnu/packages/ruby.scm, gnu/packages/rust.scm, gnu/packages/scheme.scm, gnu/packages/screen.scm, gnu/packages/security-token.scm, gnu/packages/selinux.scm, gnu/packages/serialization.scm, gnu/packages/shells.scm, gnu/packages/shellutils.scm, gnu/packages/simh.scm, gnu/packages/sml.scm, gnu/packages/ssh.scm, gnu/packages/statistics.scm, gnu/packages/stenography.scm, gnu/packages/sync.scm, gnu/packages/syncthing.scm, gnu/packages/synergy.scm, gnu/packages/telephony.scm, gnu/packages/terminals.scm, gnu/packages/tex.scm, gnu/packages/texinfo.scm, gnu/packages/text-editors.scm, gnu/packages/textutils.scm, gnu/packages/time.scm, gnu/packages/tmux.scm, gnu/packages/tor.scm, gnu/packages/toys.scm, gnu/packages/version-control.scm, gnu/packages/video.scm, gnu/packages/vim.scm, gnu/packages/virtualization.scm, gnu/packages/vlang.scm, gnu/packages/vnc.scm, gnu/packages/vpn.scm, gnu/packages/web-browsers.scm, gnu/packages/web.scm, gnu/packages/wireservice.scm, gnu/packages/wm.scm, gnu/packages/wxwidgets.scm, gnu/packages/xdisorg.scm, gnu/packages/xml.scm, gnu/packages/xorg.scm, tests/lint.scm: Remove trailing ".git" from 'git-reference' URL.
1 year ago
  1. ;;; GNU Guix --- Functional package management for GNU
  2. ;;; Copyright © 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
  3. ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
  4. ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
  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 mes)
  21. #:use-module (gnu packages)
  22. #:use-module (gnu packages base)
  23. #:use-module (gnu packages bash)
  24. #:use-module (gnu packages bootstrap)
  25. #:use-module (gnu packages compression)
  26. #:use-module (gnu packages cross-base)
  27. #:use-module (gnu packages gcc)
  28. #:use-module (gnu packages graphviz)
  29. #:use-module (gnu packages guile)
  30. #:use-module (gnu packages man)
  31. #:use-module (gnu packages package-management)
  32. #:use-module (gnu packages perl)
  33. #:use-module (gnu packages pkg-config)
  34. #:use-module (gnu packages texinfo)
  35. #:use-module (guix build-system gnu)
  36. #:use-module (guix download)
  37. #:use-module (guix git-download)
  38. #:use-module (guix licenses)
  39. #:use-module (guix packages)
  40. #:use-module (guix utils))
  41. (define-public nyacc-0.86
  42. ;; Nyacc used for bootstrap.
  43. (package
  44. (name "nyacc")
  45. (version "0.86.0")
  46. (source (origin
  47. (method url-fetch)
  48. (uri (string-append "mirror://savannah/nyacc/"
  49. name "-" version ".tar.gz"))
  50. (patches (search-patches "nyacc-binary-literals.patch"))
  51. (sha256
  52. (base32
  53. "0lkd9lyspvhxlfs0496gsllwinh62jk9wij6gpadvx9gwz6yavd9"))))
  54. (build-system gnu-build-system)
  55. (native-inputs
  56. `(("guile" ,guile-2.2)))
  57. (synopsis "LALR(1) Parser Generator in Guile")
  58. (description
  59. "NYACC is an LALR(1) parser generator implemented in Guile.
  60. The syntax and nomenclature should be considered not stable. It comes with
  61. extensive examples, including parsers for the Javascript and C99 languages.")
  62. (home-page "https://savannah.nongnu.org/projects/nyacc")
  63. (license (list gpl3+ lgpl3+))))
  64. (define-public nyacc
  65. (package
  66. (inherit nyacc-0.86)
  67. (version "0.99.0")
  68. (source (origin
  69. (method url-fetch)
  70. (uri (string-append "mirror://savannah/nyacc/nyacc-"
  71. version ".tar.gz"))
  72. (sha256
  73. (base32
  74. "0hl5qxx19i4x1r0839sxm19ziqq65g4hy97yik81cc2yb9yvgyv3"))
  75. (modules '((guix build utils)))
  76. (snippet
  77. '(begin
  78. (substitute* (find-files "." "^Makefile\\.in$")
  79. (("^SITE_SCM_DIR =.*")
  80. "SITE_SCM_DIR = \
  81. @prefix@/share/guile/site/@GUILE_EFFECTIVE_VERSION@\n")
  82. (("^SITE_SCM_GO_DIR =.*")
  83. "SITE_SCM_GO_DIR = \
  84. @prefix@/lib/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")
  85. (("^INFODIR =.*")
  86. "INFODIR = @prefix@/share/info\n")
  87. (("^DOCDIR =.*")
  88. "DOCDIR = @prefix@/share/doc/$(PACKAGE_TARNAME)\n"))
  89. #t))))
  90. (native-inputs
  91. `(("pkg-config" ,pkg-config)))
  92. (inputs
  93. `(("guile" ,guile-2.2)))))
  94. (define-public mes-0.19
  95. ;; Mes used for bootstrap.
  96. (package
  97. (name "mes")
  98. (version "0.19")
  99. (source (origin
  100. (method url-fetch)
  101. (uri (string-append "mirror://gnu/mes/"
  102. "mes-" version ".tar.gz"))
  103. (sha256
  104. (base32
  105. "15h4yhaywdc0djpjlin2jz1kzahpqxfki0r0aav1qm9nxxmnp1l0"))))
  106. (build-system gnu-build-system)
  107. (supported-systems '("i686-linux" "x86_64-linux"))
  108. (propagated-inputs
  109. `(("mescc-tools" ,mescc-tools-0.5.2)
  110. ("nyacc" ,nyacc-0.86)))
  111. (native-inputs
  112. `(("guile" ,guile-2.2)
  113. ,@(let ((target-system (or (%current-target-system)
  114. (%current-system))))
  115. (cond
  116. ((string-prefix? "x86_64-linux" target-system)
  117. ;; Use cross-compiler rather than #:system "i686-linux" to get
  118. ;; MesCC 64 bit .go files installed ready for use with Guile.
  119. `(("i686-linux-binutils" ,(cross-binutils "i686-unknown-linux-gnu"))
  120. ("i686-linux-gcc" ,(cross-gcc "i686-unknown-linux-gnu"))))
  121. (else
  122. '())))
  123. ("graphviz" ,graphviz)
  124. ("help2man" ,help2man)
  125. ("perl" ,perl) ; build-aux/gitlog-to-changelog
  126. ("texinfo" ,texinfo)))
  127. (arguments
  128. `(#:strip-binaries? #f)) ; binutil's strip b0rkes MesCC/M1/hex2 binaries
  129. (synopsis "Scheme interpreter and C compiler for full source bootstrapping")
  130. (description
  131. "GNU Mes--Maxwell Equations of Software--brings the Reduced Binary Seed
  132. bootstrap to Guix and aims to help create full source bootstrapping for
  133. GNU/Linux distributions. It consists of a mutual self-hosting Scheme
  134. interpreter in C and a Nyacc-based C compiler in Scheme and is compatible with
  135. Guile.")
  136. (home-page "https://www.gnu.org/software/mes/")
  137. (license gpl3+)))
  138. (define-public mes
  139. (package
  140. (inherit mes-0.19)
  141. (version "0.22")
  142. (source (origin
  143. (method url-fetch)
  144. (uri (string-append "mirror://gnu/mes/"
  145. "mes-" version ".tar.gz"))
  146. (sha256
  147. (base32
  148. "0p1jsrrmcbc0zrvbvnjbb6iyxr0in71km293q8qj6gnar6bw09av"))))
  149. (propagated-inputs
  150. `(("mescc-tools" ,mescc-tools)
  151. ("nyacc" ,nyacc)))
  152. (native-search-paths
  153. (list (search-path-specification
  154. (variable "C_INCLUDE_PATH")
  155. (files '("include")))
  156. (search-path-specification
  157. (variable "LIBRARY_PATH")
  158. (files '("lib")))
  159. (search-path-specification
  160. (variable "MES_PREFIX")
  161. (separator #f)
  162. (files '("")))))))
  163. (define-public mes-rb5
  164. ;; This is the Reproducible-Builds summit 5's Mes, also built on Debian
  165. ;; GNU/Linux and NixOS to produce the same, bit-for-bit identical result.
  166. (package
  167. (inherit mes)
  168. (name "mes-rb5")
  169. (inputs '())
  170. (propagated-inputs '())
  171. (native-inputs
  172. `(("bash" ,bash)
  173. ("coreutils" ,coreutils)
  174. ("grep" ,grep)
  175. ("guile" ,guile-2.2)
  176. ("gzip" ,gzip)
  177. ("libc" ,glibc)
  178. ("locales" ,glibc-utf8-locales)
  179. ("make" ,gnu-make)
  180. ("mes" ,mes)
  181. ("mescc-tools" ,mescc-tools)
  182. ("nyacc" ,nyacc)
  183. ("sed" ,sed)
  184. ("tar" ,tar)))
  185. (supported-systems '("i686-linux"))
  186. (arguments
  187. `(#:implicit-inputs? #f
  188. #:strip-binaries? #f ; binutil's strip b0rkes MesCC/M1/hex2 binaries
  189. #:modules ((guix build gnu-build-system)
  190. (guix build utils)
  191. (ice-9 popen)
  192. (ice-9 rdelim))
  193. #:phases
  194. (modify-phases %standard-phases
  195. (add-before 'configure 'setenv
  196. (lambda _
  197. (setenv "AR" "mesar")
  198. (setenv "CC" "mescc")
  199. (setenv "GUILD" "true")
  200. (setenv "SCHEME" "mes")
  201. (setenv "LC_ALL" "en_US.UTF-8")
  202. #t))
  203. (replace 'configure
  204. (lambda _
  205. (let ((out (assoc-ref %outputs "out")))
  206. (invoke "sh" "configure.sh"
  207. (string-append "--prefix=" out)
  208. "--host=i686-unkown-linux-gnu"
  209. "--with-courage"))))
  210. (replace 'build
  211. (lambda _
  212. (invoke "sh" "bootstrap.sh")))
  213. (replace 'check
  214. (lambda _
  215. (copy-file "bin/mes-mescc" "bin/mes-mescc-0.21")
  216. (system* "sed" "-i" "s/0\\.22/0\\.21/" "bin/mes-mescc-0.21")
  217. (let ((sha256sum
  218. (read-delimited
  219. " "
  220. (open-pipe* OPEN_READ "sha256sum" "bin/mes-mescc-0.21"))))
  221. (unless
  222. (equal?
  223. sha256sum
  224. "9e0bcb1633c58e7bc415f6ea27cee7951d6b0658e13cdc147e992b31a14625fb")
  225. (throw 'error "mes checksum failure"))
  226. #t)))
  227. (replace 'install
  228. (lambda _
  229. (invoke "sh" "install.sh"))))))))
  230. (define-public mescc-tools-0.5.2
  231. ;; Mescc-tools used for bootstrap.
  232. (let ((commit "bb062b0da7bf2724ca40f9002b121579898d4ef7")
  233. (revision "0")
  234. (version "0.5.2"))
  235. (package
  236. (name "mescc-tools")
  237. (version (git-version version revision commit))
  238. (source (origin
  239. (method git-fetch)
  240. (uri (git-reference
  241. (url "https://git.savannah.nongnu.org/r/mescc-tools.git")
  242. (commit commit)))
  243. (file-name (git-file-name name version))
  244. (sha256
  245. (base32
  246. "1nc6rnax66vmhqsjg0kgx23pihdcxmww6v325ywf59vsq1jqjvff"))))
  247. (build-system gnu-build-system)
  248. (supported-systems '("i686-linux" "x86_64-linux"))
  249. (arguments
  250. `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
  251. #:test-target "test"
  252. #:phases (modify-phases %standard-phases
  253. (delete 'configure))))
  254. (synopsis "Tools for the full source bootstrapping process")
  255. (description
  256. "Mescc-tools is a collection of tools for use in a full source
  257. bootstrapping process. It consists of the M1 macro assembler, the hex2
  258. linker, the blood-elf symbol table generator, the kaem shell, exec_enable and
  259. get_machine.")
  260. (home-page "https://savannah.nongnu.org/projects/mescc-tools")
  261. (license gpl3+))))
  262. (define-public mescc-tools
  263. (package
  264. (inherit mescc-tools-0.5.2)
  265. (name "mescc-tools")
  266. (version "0.6.1")
  267. (source (origin
  268. (method git-fetch)
  269. (uri (git-reference
  270. (url "https://git.savannah.nongnu.org/r/mescc-tools.git")
  271. (commit (string-append "Release_" version))))
  272. (file-name (string-append "mescc-tools-" version "-checkout"))
  273. (sha256
  274. (base32
  275. "1cgxcdza6ws725x84i31la7jxmlk5a3nsij5shz1zljg0i36kj99"))))
  276. (arguments
  277. (substitute-keyword-arguments (package-arguments mescc-tools-0.5.2)
  278. ((#:make-flags _)
  279. `(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
  280. "CC=gcc"))))))
  281. (define-public m2-planet
  282. (let ((commit "b87ddb0051b168ea45f8d49a610dcd069263336a")
  283. (revision "2"))
  284. (package
  285. (name "m2-planet")
  286. (version (string-append "1.4.0-" revision "." (string-take commit 7)))
  287. (source (origin
  288. (method git-fetch)
  289. (uri (git-reference
  290. (url "https://github.com/oriansj/m2-planet")
  291. (commit commit)))
  292. (file-name (git-file-name name version))
  293. (sha256
  294. (base32
  295. "0yyc0fcbbxi9jqa1n76x0rwspdrwmc8g09jlmsw9c35nflrhmz8q"))))
  296. (native-inputs
  297. `(("mescc-tools" ,mescc-tools)))
  298. (build-system gnu-build-system)
  299. (arguments
  300. `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
  301. #:tests? #f
  302. #:phases (modify-phases %standard-phases
  303. (delete 'bootstrap)
  304. (delete 'configure))))
  305. (synopsis "The PLAtform NEutral Transpiler")
  306. (description
  307. "M2-Planet, the PLAtform NEutral Transpiler, when combined with
  308. mescc-tools, compiles a subset of the C language into working binaries with
  309. introspective steps in between. It is self-hosting and for bootstrapping it
  310. also has an implementation in the M1 macro assembly language. M2-Planet is
  311. built as Phase-5 of the full source bootstrapping process and is capable of
  312. building GNU Mes.")
  313. (home-page "https://github.com/oriansj/m2-planet")
  314. (license gpl3+))))