summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/admin.scm4
-rw-r--r--gnu/packages/bioinformatics.scm8
-rw-r--r--gnu/packages/cpp.scm2
-rw-r--r--gnu/packages/emacs.scm39
-rw-r--r--gnu/packages/enlightenment.scm35
-rw-r--r--gnu/packages/games.scm8
-rw-r--r--gnu/packages/gnu-pw-mgr.scm4
-rw-r--r--gnu/packages/linux.scm43
-rw-r--r--gnu/packages/mail.scm4
-rw-r--r--gnu/packages/messaging.scm15
-rw-r--r--gnu/packages/monitoring.scm83
-rw-r--r--gnu/packages/music.scm7
-rw-r--r--gnu/packages/patches/haskell-mode-make-check.patch35
-rw-r--r--gnu/packages/patches/haskell-mode-unused-variables.patch44
-rw-r--r--gnu/packages/patches/rust-1.19-mrustc.patch28
-rw-r--r--gnu/packages/python.scm12
-rw-r--r--gnu/packages/ruby.scm871
-rw-r--r--gnu/packages/rust.scm335
-rw-r--r--gnu/packages/wine.scm6
19 files changed, 1404 insertions, 179 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 3d58780b95..8807ab18b5 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -963,7 +963,7 @@ system administrator.")
(define-public sudo
(package
(name "sudo")
- (version "1.8.24")
+ (version "1.8.25")
(source (origin
(method url-fetch)
(uri
@@ -973,7 +973,7 @@ system administrator.")
version ".tar.gz")))
(sha256
(base32
- "1s2v49n905wf3phmdnaa6v1dwck2lrcin0flg85z7klf35x5b25l"))
+ "0hfw6pcwjvv1vvnhb4n1p210306jm4npz99p9cfhbd33yrhhzkwx"))
(modules '((guix build utils)))
(snippet
'(begin
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 22a00894c2..f60fc4c84c 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3602,7 +3602,7 @@ experiments and provide highly stable thresholds based on reproducibility.")
(define-public jellyfish
(package
(name "jellyfish")
- (version "2.2.7")
+ (version "2.2.10")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/gmarcais/Jellyfish/"
@@ -3610,7 +3610,7 @@ experiments and provide highly stable thresholds based on reproducibility.")
"/jellyfish-" version ".tar.gz"))
(sha256
(base32
- "1a1iwq9pq54k2m9ypvwl5s0bqfl64gwh9dx5af9i382ajas2016q"))))
+ "1k4pc3fvv6w1km2yph4m5sd78fbxp21d6xyzgmy0gjihzc6mb249"))))
(build-system gnu-build-system)
(outputs '("out" ;for library
"ruby" ;for Ruby bindings
@@ -3647,8 +3647,8 @@ DNA sequences. It outputs its k-mer counts in a binary format, which can be
translated into a human-readable text format using the @code{jellyfish dump}
command, or queried for specific k-mers with @code{jellyfish query}.")
(home-page "http://www.genome.umd.edu/jellyfish.html")
- ;; From their website: JELLYFISH runs on 64-bit Intel-compatible processors
- (supported-systems '("x86_64-linux"))
+ ;; JELLYFISH seems to be 64-bit only.
+ (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux"))
;; The combined work is published under the GPLv3 or later. Individual
;; files such as lib/jsoncpp.cpp are released under the Expat license.
(license (list license:gpl3+ license:expat))))
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 0160e42f6a..d591e6a884 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -236,7 +236,7 @@ as ordering relation.")
(build-system cmake-build-system)
(synopsis "JSON parser and printer library for C++")
(description "JSON for Modern C++ is a C++ JSON library that provides
-intutive syntax and trivial integration.")
+intuitive syntax and trivial integration.")
(license license:expat)))
(define-public xtl
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index a1ce64ffaa..8f0c564f88 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -646,7 +646,11 @@ only a handful of functions that are not resource-specific.")
"https://github.com/haskell/haskell-mode/archive/v"
version ".tar.gz"))
(sha256
- (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))))
+ (base32 "0g6lcjw7lcgavv3yrd8xjcyqgfyjl787y32r1z14amw2f009m78h"))
+ (patches
+ (search-patches ; backport test failure fixes
+ "haskell-mode-unused-variables.patch"
+ "haskell-mode-make-check.patch"))))
(inputs
`(("emacs-el-search" ,emacs-el-search) ; for tests
("emacs-stream" ,emacs-stream))) ; for tests
@@ -686,12 +690,11 @@ only a handful of functions that are not resource-specific.")
(_ ""))
inputs)))
(substitute* (find-files "." "\\.el") (("/bin/sh") sh))
- (substitute* "tests/haskell-code-conventions.el"
- ;; Function name recently changed in "emacs-el-search".
- (("el-search--search-pattern") "el-search-forward")
- ;; Don't contact home.
- (("\\(when \\(>= emacs-major-version 25\\)")
- "(require 'el-search) (when nil"))
+ ;; embed filename to fix test failure
+ (let ((file "tests/haskell-cabal-tests.el"))
+ (substitute* file
+ (("\\(buffer-file-name\\)")
+ (format #f "(or (buffer-file-name) ~s)" file))))
#t)))
(replace
'install
@@ -9003,7 +9006,7 @@ continue.")
(define-public emacs-elisp-refs
(package
(name "emacs-elisp-refs")
- (version "1.2")
+ (version "1.3")
(source
(origin
(method url-fetch)
@@ -9012,14 +9015,15 @@ continue.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "0fj6wphwrvbslw46w7wgdk3b4bfr312ygj3lbgr9qw63lpqw26nl"))))
+ "02nzcn3v14n7mp7q32j5r4wdlpsw3zixzh6cf0cdyarfir6dly3p"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-f" ,emacs-f)
("emacs-list-utils" ,emacs-list-utils)
("emacs-loop" ,emacs-loop)
- ("emacs-s" ,emacs-s)))
+ ("emacs-s" ,emacs-s)
+ ("emacs-shut-up" ,emacs-shut-up)))
(home-page "https://github.com/Wilfred/elisp-refs")
(synopsis "Find callers of elisp functions or macros")
(description "Find references to functions, macros or variables. Unlike a
@@ -9563,11 +9567,12 @@ duplicate hook and function names further into a single declarative call.")
"0rf2rnzg82pdqch041yyx3f9ddixffkk9s2ydzg8hwy66sg3385n"))))
(build-system emacs-build-system)
(home-page "https://github.com/Malabarba/fancy-narrow/releases")
- (synopsis "Immitate narrow-to-region with more eye-candy")
- (description "Unlike narrow-to-region, which completely hides text outside
-the narrowed region, this package simply deemphasizes the text, makes it
-readonly, and makes it unreachable. This leads to a much more natural
-feeling, where the region stays static (instead of being brutally moved to a
+ (synopsis "Imitate @code{narrow-to-region} with more eye candy")
+ (description
+ "Unlike @code{narrow-to-region}, which completely hides text outside
+the narrowed region, this package simply de-emphasizes the text, makes it
+read-only, and makes it unreachable. This leads to a much more natural
+feeling where the region stays static (instead of being brutally moved to a
blank slate) and is clearly highlighted with respect to the rest of the
buffer.")
(license license:gpl2+)))
@@ -9659,7 +9664,7 @@ downloading manager for Emacs.")
(define-public emacs-helpful
(package
(name "emacs-helpful")
- (version "0.1")
+ (version "0.13")
(source (origin
(method url-fetch)
(uri (string-append
@@ -9668,7 +9673,7 @@ downloading manager for Emacs.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "16dx566qzrjj0bf43lnw7h1qlvgs94brqplamw8kppp2ylr72qs9"))))
+ "11kj04y1fa3vnw2991cyqf6adz6bb3hlrdkvypjnmpb0s64q64b6"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-elisp-refs" ,emacs-elisp-refs)))
diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm
index 15ec492793..40a5ec1cf4 100644
--- a/gnu/packages/enlightenment.scm
+++ b/gnu/packages/enlightenment.scm
@@ -62,7 +62,7 @@
(define-public efl
(package
(name "efl")
- (version "1.20.7")
+ (version "1.21.0")
(source (origin
(method url-fetch)
(uri (string-append
@@ -70,7 +70,7 @@
version ".tar.xz"))
(sha256
(base32
- "1zkn5ix81xck3n84dxvkjh4alwc6zj8x989d0zqi5c6ppijvgadh"))))
+ "0jxfrcz2aq1synxzd6sh9nhxz7fg9qgz0idr8zj6gaiplmwbwrby"))))
(outputs '("out" ; 49 MB
"include")) ; 17 MB
(build-system gnu-build-system)
@@ -312,35 +312,36 @@ embedded systems.")
(define-public python-efl
(package
(name "python-efl")
- (version "1.20.0")
+ (version "1.21.0")
(source
(origin
(method url-fetch)
- (uri (list
- (pypi-uri "python-efl" version)
- (string-append "http://download.enlightenment.org/rel/bindings/"
- "python/python-efl-" version ".tar.gz")))
+ (uri (string-append "http://download.enlightenment.org/rel/bindings/"
+ "python/python-efl-" version ".tar.xz"))
(sha256
(base32
- "1680pgpf501nhbc9arm0nfj6rpcw17aryh0pgmmmszxlgpifpdzy"))))
+ "08x2cv8hnf004c3711250wrax21ffj5y8951pvk77h98als4pq47"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
- (replace 'build
- (lambda _
- (zero?
- (system* "env" "ENABLE_CYTHON=1" "python" "setup.py" "build"))))
+ (replace 'build
+ (lambda _
+ (setenv "ENABLE_CYTHON" "1")
+ (invoke "python" "setup.py" "build")))
(add-before 'build 'set-flags
- (lambda _
- (setenv "CFLAGS"
- (string-append "-I" (assoc-ref %build-inputs "python-dbus")
- "/include/dbus-1.0"))
- #t))
+ (lambda _
+ (setenv "CFLAGS"
+ (string-append "-I" (assoc-ref %build-inputs "python-dbus")
+ "/include/dbus-1.0"))
+ #t))
(add-before 'check 'set-environment
(lambda _
;; Some tests require write access to HOME.
(setenv "HOME" "/tmp")
+ ;; These tests try to connect to the internet.
+ (delete-file "tests/ecore/test_09_file_download.py")
+ (delete-file "tests/ecore/test_11_con.py")
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 3c5063f69b..728f763806 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -2470,7 +2470,7 @@ Transport Tycoon Deluxe.")
(define openrct2-objects
(package
(name "openrct2-objects")
- (version "1.0.2")
+ (version "1.0.6")
(source
(origin
(method url-fetch)
@@ -2479,7 +2479,7 @@ Transport Tycoon Deluxe.")
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
- "1z92afhbv13j1ig6fz0x8w9vdmfchssv16vwwhb0vj40pn1g1rwy"))))
+ "00kfy95zx6g4ldr6br5p7bwkwfx6pw9v78fd3rvghjnwyvf5fhki"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -2511,7 +2511,7 @@ Transport Tycoon Deluxe.")
(define-public openrct2
(package
(name "openrct2")
- (version "0.2.0")
+ (version "0.2.1")
(source
(origin
(method url-fetch)
@@ -2519,7 +2519,7 @@ Transport Tycoon Deluxe.")
version ".tar.gz"))
(sha256
(base32
- "1yrbjra27n2xxb1x47v962lc3qi8gwm5ws4f97952nvn533zrwxz"))
+ "1fxzk037xphpyk7vv5jfrcz739zrj86p43pnf5gjjv9rjxwv7m8f"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(arguments
diff --git a/gnu/packages/gnu-pw-mgr.scm b/gnu/packages/gnu-pw-mgr.scm
index 38f9e8187a..a56bc09e61 100644
--- a/gnu/packages/gnu-pw-mgr.scm
+++ b/gnu/packages/gnu-pw-mgr.scm
@@ -30,7 +30,7 @@
(define-public gnu-pw-mgr
(package
(name "gnu-pw-mgr")
- (version "2.3.3")
+ (version "2.4.2")
(source
(origin
(method url-fetch)
@@ -38,7 +38,7 @@
version ".tar.xz"))
(sha256
(base32
- "04xh38j7l0sfnb01kp05xc908pvqfc0lph94k7n9bi46zy3qy7ma"))))
+ "1yvdzc5w37qrjrkby5699ygj9bhkvgi3zk9k9jcjry1j6b7wdl17"))))
(build-system gnu-build-system)
(arguments
'(#:phases
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 63b3ece8e1..02d723316d 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -29,6 +29,7 @@
;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
+;;; Copyright © 2018 Manuel Graf <graf@init.at>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3622,6 +3623,48 @@ The following service daemons are also provided:
license:cc0 ; most files in ccan/
license:bsd-3)))) ; providers/hfi1verbs are dual GPL2/BSD-3
+(define-public perftest
+ (package
+ (name "perftest")
+ (version "4.2-0.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/linux-rdma/perftest/releases/download/V"
+ version "/perftest-" version ".g0e24e67.tar.gz"))
+ (sha256
+ (base32 "1r3pxn7cx3grb8myb4q1b0pk447pc06cifd0v7ym13xw00372dlx"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-header-paths
+ (lambda _
+ (substitute* '("src/raw_ethernet_fs_rate.c"
+ "src/raw_ethernet_resources.c"
+ "src/raw_ethernet_resources.h"
+ "src/raw_ethernet_send_burst_lat.c"
+ "src/raw_ethernet_send_bw.c"
+ "src/raw_ethernet_send_lat.c")
+ (("/usr/include/netinet/ip.h") "netinet/ip.h"))
+ #t)))))
+ (inputs `(("rdma-core" ,rdma-core)))
+ (home-page "https://github.com/linux-rdma/perftest/")
+ (synopsis "Open Fabrics Enterprise Distribution (OFED) Performance Tests")
+ (description "This is a collection of tests written over uverbs intended for
+use as a performance micro-benchmark. The tests may be used for hardware or
+software tuning as well as for functional testing.
+
+The collection contains a set of bandwidth and latency benchmark such as:
+@enumerate
+@item Send - @code{ib_send_bw} and @code{ib_send_lat}
+@item RDMA Read - @code{ib_read_bw} and @code{ib_read_lat}
+@item RDMA Write - @code{ib_write_bw} and @code{ib_wriet_lat}
+@item RDMA Atomic - @code{ib_atomic_bw} and @code{ib_atomic_lat}
+@item Native Ethernet (when working with MOFED2) - @code{raw_ethernet_bw}, @code{raw_ethernet_lat}
+@end enumerate")
+ (license license:gpl2)))
+
(define-public rng-tools
(package
(name "rng-tools")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 1f7e971d60..4944dd7622 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -706,9 +706,9 @@ attachments, create new maildirs, and so on.")
("python2-pygpgme" ,python2-pygpgme)
("python2-notmuch" ,python2-notmuch)))
(home-page "https://github.com/pazz/alot")
- (synopsis "Commandline MUA using notmuch")
+ (synopsis "Command-line MUA using @code{notmuch}")
(description
- "Alot is an experimental terminal mail user agent (MUA) based on
+ "Alot is an experimental terminal mail user agent (@dfn{MUA}) based on
@code{notmuch} mail. It is written in Python using the @code{urwid} toolkit.")
(license gpl3+)))
diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b03cb8f03a..42a0847b7a 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -548,14 +548,14 @@ simultaneously and therefore appear under the same nickname on IRC.")
(define-public python-nbxmpp
(package
(name "python-nbxmpp")
- (version "0.6.6")
+ (version "0.6.7")
(source
(origin
(method url-fetch)
(uri (pypi-uri "nbxmpp" version))
(sha256
(base32
- "0bp60syqc3qp2i28phvadxlpwizjbr6bxw4m363p9yn5fl687qnh"))))
+ "0fas4iawjfdmkz8vr042wpq6b2qispi6fy35g4a62jw50jb1saav"))))
(build-system python-build-system)
(arguments
`(#:tests? #f)) ; no tests
@@ -873,7 +873,7 @@ protocols.")
(define-public c-toxcore
(package
(name "c-toxcore")
- (version "0.2.6")
+ (version "0.2.7")
(source
(origin
(method url-fetch)
@@ -882,7 +882,7 @@ protocols.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "04b3ifkj64yy06vph0hlq24mw9fh24zmq1qdf40fmj24vvgfmjpl"))))
+ "1lcw979zakyb5kzy8yfk87js3bzfz3k2jxidda6ga6ljdnqdpxmy"))))
(arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now.
@@ -1565,7 +1565,7 @@ using ncurses and libmesode, inspired by Irssi.")
(define-public libircclient
(package
(name "libircclient")
- (version "1.9")
+ (version "1.10")
(source
(origin
(method url-fetch)
@@ -1573,7 +1573,7 @@ using ncurses and libmesode, inspired by Irssi.")
version "/libircclient-" version ".tar.gz"))
(sha256
(base32
- "0r60i76jh4drjh2jgp5sx71chagqllmkaq49zv67nrhqwvp9ghw1"))))
+ "0b9wa0h3xc31wpqlvgxgnvqp5wgx3kwsf5s9432m5cj8ycx6zcmv"))))
(build-system gnu-build-system)
(inputs
`(("openssl" ,openssl)))
@@ -1584,8 +1584,7 @@ using ncurses and libmesode, inspired by Irssi.")
"--enable-shared"
"--enable-ipv6"
"--enable-openssl")
- ;; no test suite
- #:tests? #f))
+ #:tests? #f)) ; no test suite
(home-page "https://www.ulduzsoft.com/libircclient/")
(synopsis "Library implementing the client IRC protocol")
(description "Libircclient is a library which implements the client IRC
diff --git a/gnu/packages/monitoring.scm b/gnu/packages/monitoring.scm
index fae62d5493..12d736a76a 100644
--- a/gnu/packages/monitoring.scm
+++ b/gnu/packages/monitoring.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,18 +30,25 @@
#:use-module (guix build-system python)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
+ #:use-module (guix utils)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages databases)
#:use-module (gnu packages django)
#:use-module (gnu packages gd)
#:use-module (gnu packages image)
#:use-module (gnu packages mail)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
- #:use-module (gnu packages time))
+ #:use-module (gnu packages time)
+ #:use-module (gnu packages tls))
(define-public nagios
(package
@@ -138,6 +146,79 @@ etc. via a Web interface. Features include:
@end itemize\n")
(license license:gpl2)))
+(define-public zabbix-agentd
+ (package
+ (name "zabbix-agentd")
+ (version "3.4.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/zabbix/ZABBIX%20Latest%20Stable/" version
+ "/zabbix-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0qxgf6hx7ibhjmxd2sxizkjc8df4c9d31wz5hhql409ws98qf173"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "--enable-agent"
+ (string-append "--with-iconv="
+ (assoc-ref %build-inputs "libiconv"))
+ (string-append "--with-libpcre="
+ (assoc-ref %build-inputs "pcre")))))
+ (inputs
+ `(("libiconv" ,libiconv)
+ ("pcre" ,pcre)))
+ (home-page "https://www.zabbix.com/")
+ (synopsis "Distributed monitoring solution (client-side agent)")
+ (description "This package provides a distributed monitoring
+solution (client-side agent)")
+ (license license:gpl2)))
+
+(define-public zabbix-server
+ (package
+ (inherit zabbix-agentd)
+ (name "zabbix-server")
+ (arguments
+ (substitute-keyword-arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-frontend
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((php (string-append (assoc-ref outputs "out")
+ "/share/zabbix/php"))
+ (front-end-conf (string-append php "/conf"))
+ (etc (string-append php "/etc")))
+ (mkdir-p php)
+ (copy-recursively "./frontends/php" php)
+ (rename-file front-end-conf
+ (string-append front-end-conf "-example"))
+ (symlink "/etc/zabbix" front-end-conf)))))
+ ,@(package-arguments zabbix-agentd))
+ ((#:configure-flags flags)
+ `(cons* "--enable-server"
+ "--with-postgresql"
+ (string-append "--with-libevent="
+ (assoc-ref %build-inputs "libevent"))
+ "--with-net-snmp"
+ (string-append "--with-gnutls="
+ (assoc-ref %build-inputs "gnutls"))
+ "--with-libcurl"
+ ,flags))))
+ (inputs
+ `(("curl" ,curl)
+ ("libevent" ,libevent)
+ ("gnutls" ,gnutls)
+ ("postgresql" ,postgresql)
+ ("zlib" ,zlib)
+ ("net-snmp" ,net-snmp)
+ ("curl" ,curl)
+ ,@(package-inputs zabbix-agentd)))
+ (synopsis "Distributed monitoring solution (server-side)")
+ (description "This package provides a distributed monitoring
+solution (server-side)")))
+
(define-public darkstat
(package
(name "darkstat")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index edffcfce96..ba21e5da2b 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -3685,7 +3685,7 @@ specification and header.")
(define-public rosegarden
(package
(name "rosegarden")
- (version "17.04")
+ (version "18.06")
(source (origin
(method url-fetch)
(uri (string-append
@@ -3693,7 +3693,7 @@ specification and header.")
version "/rosegarden-" version ".tar.bz2"))
(sha256
(base32
- "1khfcj22asdhjh0jvhkqsz200wgmigkhsrcz09ffia5hqm0n32lq"))))
+ "04qc80sqb2ji42pq3mayhvqqn39hlxzymsywpbpzfpchr19chxx7"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DUSE_QT5=1") ; "-DCMAKE_BUILD_TYPE=Release"
@@ -3747,6 +3747,7 @@ specification and header.")
;; Tests create files in $HOME/.local/share/rosegarden .
(mkdir-p "/tmp/foo")
(setenv "HOME" "/tmp/foo")
+ (setenv "XDG_RUNTIME_DIR" "/tmp/foo")
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
@@ -3773,7 +3774,7 @@ sequencer")
(description "Rosegarden is a music composition and editing environment
based around a MIDI sequencer that features a rich understanding of music
notation and includes basic support for digital audio.")
- (home-page "http://www.rosegardenmusic.com/")
+ (home-page "https://www.rosegardenmusic.com/")
(license license:gpl2)))
(define-public patchmatrix
diff --git a/gnu/packages/patches/haskell-mode-make-check.patch b/gnu/packages/patches/haskell-mode-make-check.patch
new file mode 100644
index 0000000000..a4d4d525f2
--- /dev/null
+++ b/gnu/packages/patches/haskell-mode-make-check.patch
@@ -0,0 +1,35 @@
+Copied from upstream repository.
+Hunk #2 is removed since it cannot be applied and it is not needed.
+
+From 7cead7137bf54851c1b7df5a3854351296d21276 Mon Sep 17 00:00:00 2001
+From: Vasantha Ganesh K <vasanthaganesh.k@tuta.io>
+Date: Thu, 22 Jun 2017 23:38:40 +0530
+Subject: [PATCH] removed `check-conventions' from make
+
+---
+ Makefile | 7 +-
+ tests/haskell-code-conventions.el | 165 ------------------------------
+ 2 files changed, 1 insertion(+), 171 deletions(-)
+ delete mode 100644 tests/haskell-code-conventions.el
+
+diff --git a/Makefile b/Makefile
+index b2c89d6..aa907c5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -79,12 +79,7 @@ build-$(EMACS_VERSION)/build-flag : build-$(EMACS_VERSION) $(patsubst %.el,build
+ check-%: tests/%-tests.el
+ $(BATCH) -l "$<" -f ert-run-tests-batch-and-exit;
+
+-check: compile $(AUTOLOADS) check-ert check-conventions
+-
+-check-conventions :
+- $(BATCH) -l tests/haskell-code-conventions.el \
+- -f haskell-check-conventions-batch-and-exit
+- @echo "conventions are okay"
++check: compile $(AUTOLOADS) check-ert
+
+ check-ert: $(ELCHECKS)
+ $(BATCH) --eval "(when (= emacs-major-version 24) \
+--
+2.18.0
+
diff --git a/gnu/packages/patches/haskell-mode-unused-variables.patch b/gnu/packages/patches/haskell-mode-unused-variables.patch
new file mode 100644
index 0000000000..b175fae28c
--- /dev/null
+++ b/gnu/packages/patches/haskell-mode-unused-variables.patch
@@ -0,0 +1,44 @@
+Copied verbatim from upstream repository.
+
+From cee22450ee30e79952f594796721dc6b17798ee6 Mon Sep 17 00:00:00 2001
+From: Sascha Wilde <wilde@sha-bang.de>
+Date: Fri, 23 Sep 2016 15:35:59 +0200
+Subject: [PATCH] Removed unused lexical variables.
+
+---
+ haskell-lexeme.el | 3 +--
+ haskell-process.el | 4 +---
+ 2 files changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/haskell-lexeme.el b/haskell-lexeme.el
+index 4256a79..b832560 100644
+--- a/haskell-lexeme.el
++++ b/haskell-lexeme.el
+@@ -138,8 +138,7 @@ When match is successful, match-data will contain:
+ (match-text 2) - whole qualified identifier
+ (match-text 3) - unqualified part of identifier
+ (match-text 4) - closing backtick"
+- (let ((begin (point))
+- (match-data-old (match-data))
++ (let ((match-data-old (match-data))
+ first-backtick-start
+ last-backtick-start
+ qid-start
+diff --git a/haskell-process.el b/haskell-process.el
+index b4efba2..4f3f859 100644
+--- a/haskell-process.el
++++ b/haskell-process.el
+@@ -160,9 +160,7 @@ HPTYPE is the result of calling `'haskell-process-type`' function."
+ (defun haskell-process-log (msg)
+ "Effective append MSG to the process log (if enabled)."
+ (when haskell-process-log
+- (let* ((append-to (get-buffer-create "*haskell-process-log*"))
+- (windows (get-buffer-window-list append-to t t))
+- move-point-in-windows)
++ (let* ((append-to (get-buffer-create "*haskell-process-log*")))
+ (with-current-buffer append-to
+ ;; point should follow insertion so that it stays at the end
+ ;; of the buffer
+--
+2.18.0
+
diff --git a/gnu/packages/patches/rust-1.19-mrustc.patch b/gnu/packages/patches/rust-1.19-mrustc.patch
new file mode 100644
index 0000000000..261162172e
--- /dev/null
+++ b/gnu/packages/patches/rust-1.19-mrustc.patch
@@ -0,0 +1,28 @@
+See https://github.com/thepowersgang/mrustc/archive/v0.8.0.tar.gz
+
+--- rustc-1.19.0-src-orig/src/libcore/intrinsics.rs
++++ rustc-1.19.0-src/src/libcore/intrinsics.rs
+@@ -678,5 +678,9 @@
+ pub fn min_align_of_val<T: ?Sized>(_: &T) -> usize;
+
++ /// Obtain the length of a slice pointer
++ #[cfg(rust_compiler="mrustc")]
++ pub fn mrustc_slice_len<T>(pointer: *const [T]) -> usize;
++
+ /// Gets a static string slice containing the name of a type.
+ pub fn type_name<T: ?Sized>() -> &'static str;
+
+--- rustc-1.19.0-src-orig/src/libcore/slice/mod.rs
++++ rustc-1.19.0-src/src/libcore/slice/mod.rs
+@@ -413,6 +413,8 @@
+ #[inline]
+ fn len(&self) -> usize {
+- unsafe {
+- mem::transmute::<&[T], Repr<T>>(self).len
+- }
++ #[cfg(not(rust_compiler="mrustc"))]
++ let rv = unsafe { mem::transmute::<&[T], Repr<T>>(self).len };
++ #[cfg(rust_compiler="mrustc")]
++ let rv = unsafe { ::intrinsics::mrustc_slice_len(self) };
++ rv
+ }
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index fd1fdbf82d..9fdadfbd73 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -3755,6 +3755,18 @@ functions.")
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'disable-broken-tests
+ (lambda _
+ (substitute* "scipy/sparse/linalg/dsolve/tests/test_linsolve.py"
+ (("^( +)def test_threads_parallel\\(self\\):" m indent)
+ (string-append indent
+ "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ m)))
+ (substitute* "scipy/sparse/linalg/eigen/arpack/tests/test_arpack.py"
+ (("^def test_parallel_threads\\(\\):" m)
+ (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ m)))
+ #t))
(add-before 'build 'configure-openblas
(lambda* (#:key inputs #:allow-other-keys)
(call-with-output-file "site.cfg"
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index 908dfd5751..616b86934d 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -37,6 +37,7 @@
#:use-module (gnu packages java)
#:use-module (gnu packages libffi)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
#:use-module (gnu packages python)
#:use-module (gnu packages ragel)
@@ -193,6 +194,25 @@ a focus on simplicity and productivity.")
(("/bin/sh") (which "sh")))
#t)))))))
+(define-public ruby-concurrent
+ (package
+ (name "ruby-concurrent")
+ (version "1.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "concurrent-ruby" version))
+ (sha256
+ (base32
+ "183lszf5gx84kcpb779v6a2y0mx9sssy8dgppng1z9a505nj1qcf"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://github.com/ruby-concurrency/concurrent-ruby")
+ (synopsis "Concurrency tools for Ruby")
+ (description "This gem provides concurrency tools for Ruby. It provides
+a library of common thread-safe types and data-structures as well as abstractions
+for concurrency and communication between threads.")
+ (license license:expat)))
+
(define-public ruby-highline
(package
(name "ruby-highline")
@@ -262,16 +282,17 @@ packaging native C and Java extensions in Ruby.")
(define-public ruby-i18n
(package
(name "ruby-i18n")
- (version "0.7.0")
+ (version "1.1.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "i18n" version))
(sha256
(base32
- "1i5z1ykl8zhszsxcs8mzl8d0dxgs3ylz8qlzrw74jb0gplkx6758"))))
+ "0ppvmla21hssvrfm8g1n2fnb4lxn4yhy9qmmba0imanflgldrjmr"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; no tests
+ (propagated-inputs `(("concurrent-ruby" ,ruby-concurrent)))
(synopsis "Internationalization library for Ruby")
(description "Ruby i18n is an internationalization and localization
solution for Ruby programs. It features translation and localization,
@@ -3013,17 +3034,28 @@ you about the changes.")
(home-page "https://github.com/guard/listen")
(license license:expat)))
+(define-public ruby-listen-3.0
+ (package
+ (inherit ruby-listen)
+ (version "3.0.8")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "listen" version))
+ (sha256
+ (base32
+ "1l0y7hbyfiwpvk172r28hsdqsifq1ls39hsfmzi1vy4ll0smd14i"))))))
+
(define-public ruby-activesupport
(package
(name "ruby-activesupport")
- (version "5.1.4")
+ (version "5.2.1")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "activesupport" version))
(sha256
(base32
- "0sgf4rsfr7jcaqsx0wwzx4l4k9xsjlwv0mzl08pxiyp1qzyx8scr"))))
+ "0ziy6xk31k4fs115cdkba1ys4i8nzcyri7a2jig7nx7k5h7li6l2"))))
(build-system ruby-build-system)
(arguments
`(#:phases
@@ -4658,7 +4690,7 @@ binary-to-text encoding. The main modern use of Ascii85 is in PostScript and
(define-public ruby-ttfunk
(package
(name "ruby-ttfunk")
- (version "1.4.0")
+ (version "1.5.1")
(source
(origin
(method url-fetch)
@@ -4669,12 +4701,18 @@ binary-to-text encoding. The main modern use of Ascii85 is in PostScript and
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "1izq84pnm9niyvkzp8k0vl232q9zj41hwmp9na9fzycfh1pbnsl6"))))
+ "1ymcn12n5iws401yz03zsj8rr653fdqq13czsrciq09phgh9jzc5"))))
(build-system ruby-build-system)
(arguments
`(#:test-target "spec"
#:phases
(modify-phases %standard-phases
+ (add-before 'build 'remove-ssh
+ (lambda _
+ ;; remove dependency on an ssh key pair that doesn't exist
+ (substitute* "ttfunk.gemspec"
+ (("spec.signing_key.*") ""))
+ #t))
(add-before 'check 'remove-rubocop
(lambda _
;; remove rubocop as a dependency as not needed for testing
@@ -4682,10 +4720,11 @@ binary-to-text encoding. The main modern use of Ascii85 is in PostScript and
(("spec.add_development_dependency\\('rubocop'.*") ""))
(substitute* "Rakefile"
(("require 'rubocop/rake_task'") "")
- (("Rubocop::RakeTask.new") ""))
+ (("RuboCop::RakeTask.new") ""))
#t)))))
(native-inputs
`(("ruby-rspec" ,ruby-rspec)
+ ("ruby-yard" ,ruby-yard)
("bundler" ,bundler)))
(synopsis "Font metrics parser for the Prawn PDF generator")
(description
@@ -5070,3 +5109,821 @@ programs running in the background, in Ruby.")
(sha256
(base32
"0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"))))))
+
+(define-public ruby-public-suffix
+ (package
+ (name "ruby-public-suffix")
+ (version "3.0.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "public_suffix" version))
+ (sha256
+ (base32
+ "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; Tests require network
+ `(#:tests? #f))
+ (home-page "https://simonecarletti.com/code/publicsuffix-ruby/")
+ (synopsis "Domain name parser")
+ (description "The gem @code{public_suffix} is a domain name parser,
+written in Ruby, and based on the @dfn{Public Suffix List}. A public suffix
+is one under which Internet users can (or historically could) directly
+register names. Some examples of public suffixes are @code{.com},
+@code{.co.uk} and @code{pvt.k12.ma.us}. The Public Suffix List is a list of
+all known public suffixes.")
+ (license license:expat)))
+
+(define-public ruby-addressable
+ (package
+ (name "ruby-addressable")
+ (version "2.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "addressable" version))
+ (sha256
+ (base32
+ "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-public-suffix" ,ruby-public-suffix)))
+ (arguments
+ ;; No test target
+ `(#:tests? #f))
+ (home-page "https://github.com/sporkmonger/addressable")
+ (synopsis "Alternative URI implementation")
+ (description "Addressable is a replacement for the URI implementation that
+is part of Ruby's standard library. It more closely conforms to RFC 3986,
+RFC 3987, and RFC 6570 (level 4), providing support for IRIs and URI templates.")
+ (license license:asl2.0)))
+
+(define-public ruby-colorator
+ (package
+ (name "ruby-colorator")
+ (version "1.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "colorator" version))
+ (sha256
+ (base32
+ "0f7wvpam948cglrciyqd798gdc6z3cfijciavd0dfixgaypmvy72"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No test target
+ `(#:tests? #f))
+ (home-page "http://octopress.org/colorator/")
+ (synopsis "Terminal color library")
+ (description "Colorator is a Ruby gem that helps you colorize your text
+for the terminal.")
+ (license license:expat)))
+
+(define-public ruby-command-line-reporter
+ (package
+ (name "ruby-command-line-reporter")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "command_line_reporter" version))
+ (sha256
+ (base32
+ "1qma35xrb772whxwy1rs9bicb9d6lvz0s2dd2dnn4fr6zcbcxc0a"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No Rakefile
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-dependencies
+ (lambda _
+ (substitute* ".gemspec"
+ ;; colored is unmaintained
+ (("colored") "colorator")
+ ;; colorator version
+ (("= 1.2") "= 1.1"))
+ #t)))))
+ (propagated-inputs `(("ruby-colorator" ,ruby-colorator)))
+ (home-page "https://github.com/wbailey/command_line_reporter")
+ (synopsis "Report production while executing Ruby scripts")
+ (description "This gem provides a DSL that makes it easy to write reports
+of various types in ruby. It eliminates the need to litter your source with
+puts statements, instead providing a more readable, expressive interface to
+your application.")
+ (license license:asl2.0)))
+
+(define-public ruby-command-line-reporter-3
+ (package
+ (inherit ruby-command-line-reporter)
+ (version "3.3.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "command_line_reporter" version))
+ (sha256
+ (base32
+ "1h39zqqxp3k4qk49ajpx0jps1vmvxgkh43mqkb6znk583bl0fv71"))))))
+
+(define-public ruby-rdoc
+ (package
+ (name "ruby-rdoc")
+ (version "6.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rdoc" version))
+ (sha256
+ (base32
+ "0anv42cqcdc6g4n386mrva7mgav5i0c2ry3yzvzzc6z6hymkmcr7"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (home-page "https://ruby.github.io/rdoc/")
+ (synopsis "HTML and command-line documentation utility")
+ (description "RDoc produces HTML and command-line documentation for Ruby
+projects. RDoc includes the +rdoc+ and +ri+ tools for generating and displaying
+documentation from the command-line.")
+ (license license:gpl2+)))
+
+(define-public ruby-sass-listen
+ (package
+ (name "ruby-sass-listen")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sass-listen" version))
+ (sha256
+ (base32
+ "0xw3q46cmahkgyldid5hwyiwacp590zj2vmswlll68ryvmvcp7df"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No test target
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("ruby-rb-fsevent" ,ruby-rb-fsevent)
+ ("ruby-rb-inotify" ,ruby-rb-inotify)))
+ (home-page "https://github.com/sass/listen")
+ (synopsis "File modification notification library")
+ (description "The Listen gem listens to file modifications and notifies you
+about the changes.")
+ (license license:expat)))
+
+(define-public ruby-terminfo
+ (package
+ (name "ruby-terminfo")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "ruby-terminfo" version))
+ (sha256
+ (base32
+ "0rl4ic5pzvrpgd42z0c1s2n3j39c9znksblxxvmhkzrc0ckyg2cm"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:test-target "test"
+ ;; Rakefile requires old packages and would need modification to
+ ;; work with current software.
+ #:tests? #f))
+ (inputs
+ `(("ncurses" ,ncurses)))
+ (native-inputs
+ `(("ruby-rubygems-tasks" ,ruby-rubygems-tasks)
+ ("ruby-rdoc" ,ruby-rdoc)))
+ (home-page "http://www.a-k-r.org/ruby-terminfo/")
+ (synopsis "Terminfo binding for Ruby")
+ (description "Ruby-terminfo provides terminfo binding for Ruby.")
+ (license license:bsd-3)))
+
+(define-public ruby-diffy
+ (package
+ (name "ruby-diffy")
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "diffy" version))
+ (sha256
+ (base32
+ "119imrkn01agwhx5raxhknsi331y5i4yda7r0ws0an6905ximzjg"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)))
+ (home-page "https://github.com/samg/diffy")
+ (synopsis "Convenient diffing in ruby")
+ (description "Diffy provides a convenient way to generate a diff from two
+strings or files.")
+ (license license:expat)))
+
+(define-public ruby-sass-spec
+ (package
+ (name "ruby-sass-spec")
+ (version "3.5.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/sass/sass-spec/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nx8lp7c9qa58w489crgqa3c489xsyarn1a8h4np9mwwfqm1h3rr"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-command-line-reporter-3" ,ruby-command-line-reporter-3)
+ ("ruby-diffy" ,ruby-diffy)
+ ("ruby-terminfo" ,ruby-terminfo)))
+ (arguments
+ ;; No Rakefile
+ `(#:tests? #f))
+ (home-page "https://github.com/sass/sass-spec")
+ (synopsis "Test suite for Sass")
+ (description "Sass Spec is a test suite for Sass. Test cases are all in
+the @file{spec} directory.")
+ (license license:expat)))
+
+(define-public ruby-sass
+ (package
+ (name "ruby-sass")
+ (version "3.5.7")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "sass" version))
+ (sha256
+ (base32
+ "1sy7xsbgpcy90j5ynbq967yplffp74pvph3r8ivn2sv2b44q6i61"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-sass-listen" ,ruby-sass-listen)))
+ (native-inputs
+ `(("ruby-sass-spec" ,ruby-sass-spec)))
+ (home-page "http://sass-lang.com/")
+ (synopsis "CSS extension language")
+ (description "Sass is a CSS extension language. It extends CSS with
+features that don't exist yet like variables, nesting, mixins and inheritance.")
+ (license license:expat)))
+
+(define-public ruby-jekyll-sass-converter
+ (package
+ (name "ruby-jekyll-sass-converter")
+ (version "1.5.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll-sass-converter" version))
+ (sha256
+ (base32
+ "008ikh5fk0n6ri54mylcl8jn0mq8p2nfyfqif2q3pp0lwilkcxsk"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-sass" ,ruby-sass)))
+ (arguments
+ ;; No rakefile
+ `(#:tests? #f))
+ (home-page "https://github.com/jekyll/jekyll-sass-converter")
+ (synopsis "Sass converter for Jekyll")
+ (description "This gem provide built-in support for the Sass converter
+in Jekyll.")
+ (license license:expat)))
+
+(define-public ruby-jekyll-watch
+ (package
+ (name "ruby-jekyll-watch")
+ (version "2.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll-watch" version))
+ (sha256
+ (base32
+ "0m7scvj3ki8bmyx5v8pzibpg6my10nycnc28lip98dskf8iakprp"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-listen-3.0" ,ruby-listen-3.0)))
+ (arguments
+ ;; No rakefile
+ `(#:tests? #f))
+ (home-page "https://github.com/jekyll/jekyll-watch")
+ (synopsis "Jekyll auto-rebuild support")
+ (description "This gems add the @code{--watch} switch to the jekyll CLI
+interface. It allows Jekyll to rebuild your site when a file changes.")
+ (license license:expat)))
+
+(define-public ruby-parallel
+ (package
+ (name "ruby-parallel")
+ (version "1.12.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "parallel" version))
+ (sha256
+ (base32
+ "01hj8v1qnyl5ndrs33g8ld8ibk0rbcqdpkpznr04gkbxd11pqn67"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://github.com/grosser/parallel")
+ (synopsis "Parallel processing in Ruby")
+ (description "Parallel allows you to run any code in parallel Processes
+(to use all CPUs) or Threads(to speedup blocking operations). It is best
+suited for map-reduce or e.g. parallel downloads/uploads.")
+ (license license:expat)))
+
+(define-public ruby-cane
+ (package
+ (name "ruby-cane")
+ (version "3.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "cane" version))
+ (sha256
+ (base32
+ "0yf5za3l7lhrqa3g56sah73wh33lbxy5y3cb7ij0a2bp1b4kwhih"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://github.com/square/cane")
+ (propagated-inputs
+ `(("ruby-parallel" ,ruby-parallel)))
+ (synopsis "Code quality threshold checking")
+ (description "Cane fails your build if code quality thresholds are not met.")
+ (license license:asl2.0)))
+
+(define-public ruby-morecane
+ (package
+ (name "ruby-morecane")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "morecane" version))
+ (sha256
+ (base32
+ "0w70vb8z5bdhvr21h660aa43m5948pv0bd27z7ngai2iwdvqd771"))))
+ (build-system ruby-build-system)
+ (home-page "https://github.com/yob/morecane")
+ (arguments `(#:tests? #f)); No rakefile
+ (propagated-inputs
+ `(("ruby-parallel" ,ruby-parallel)))
+ (synopsis "Extra checks for cane")
+ (description "The cane gem provides a great framework for running quality
+checks over your ruby project as part of continuous integration build. It
+comes with a few checks out of the box, but also provides an API for loading
+custom checks. This gem provides a set of additional checks.")
+ (license license:expat)))
+
+(define-public ruby-pdf-reader
+ (package
+ (name "ruby-pdf-reader")
+ (version "2.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pdf-reader" version))
+ (sha256
+ (base32
+ "1b3ig4wpcgdbqa7yw0ahwbmikkkywn2a22bfmrknl5ls7g066x45"))))
+ (build-system ruby-build-system)
+ (arguments `(#:test-target "spec"))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-cane" ,ruby-cane)
+ ("ruby-morecane" ,ruby-morecane)))
+ (propagated-inputs
+ `(("ruby-afm" ,ruby-afm)
+ ("ruby-ascii85" ,ruby-ascii85)
+ ("ruby-hashery" ,ruby-hashery)
+ ("ruby-rc4" ,ruby-rc4)
+ ("ruby-ttfunk" ,ruby-ttfunk)))
+ (home-page "https://github.com/yob/pdf-reader")
+ (synopsis "PDF parser in Ruby")
+ (description "The PDF::Reader library implements a PDF parser conforming as
+much as possible to the PDF specification from Adobe. It provides programmatic
+access to the contents of a PDF file with a high degree of flexibility.")
+ (license license:gpl3+)))
+
+(define-public ruby-pdf-inspector
+ (package
+ (name "ruby-pdf-inspector")
+ (version "1.3.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pdf-inspector" version))
+ (sha256
+ (base32
+ "1g853az4xzgqxr5xiwhb76g4sqmjg4s79mm35mp676zjsrwpa47w"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-pdf-reader" ,ruby-pdf-reader)))
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://github.com/prawnpdf/pdf-inspector")
+ (synopsis "Analysis classes for inspecting PDF output")
+ (description "This library provides a number of PDF::Reader based tools for
+use in testing PDF output. Presently, the primary purpose of this tool is to
+support the tests found in Prawn, a pure Ruby PDF generation library.")
+ (license license:gpl3+)))
+
+(define-public ruby-pdf-core
+ (package
+ (name "ruby-pdf-core")
+ (version "0.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pdf-core" version))
+ (sha256
+ (base32
+ "15d6m99bc8bbzlkcg13qfpjjzphfg5x905pjbfygvpcxsm8gnsvg"))))
+ (build-system ruby-build-system)
+ (arguments
+ ; No test target
+ `(#:tests? #f))
+ (home-page "https://github.com/prawnpdf/pdf-core")
+ (synopsis "Low level PDF features for Prawn")
+ (description "This is an experimental gem that extracts low-level PDF
+functionality from Prawn.")
+ (license license:gpl3+)))
+
+(define-public ruby-yard
+ (package
+ (name "ruby-yard")
+ (version "0.9.16")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "yard" version))
+ (sha256
+ (base32
+ "0lmmr1839qgbb3zxfa7jf5mzy17yjl1yirwlgzdhws4452gqhn67"))))
+ (build-system ruby-build-system)
+ (arguments `(#:test-target "spec"))
+ (home-page "https://yardoc.org/")
+ (synopsis "Ruby documentation tool")
+ (description "YARD is a documentation generation tool for the Ruby
+programming language. It enables the user to generate consistent, usable
+documentation that can be exported to a number of formats very easily, and
+also supports extending for custom Ruby constructs such as custom class level
+definitions.")
+ (license license:expat)))
+
+(define-public ruby-prawn
+ (package
+ (name "ruby-prawn")
+ (version "2.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "prawn" version))
+ (sha256
+ (base32
+ "1qdjf1v6sfl44g3rqxlg8k4jrzkwaxgvh2l4xws97a8f3xv4na4m"))))
+ (build-system ruby-build-system)
+ (arguments
+ ; No tests
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-dependencies
+ (lambda _
+ (substitute* "prawn.gemspec"
+ (("~> 0.7.0") "~> 0.7"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-pdf-core" ,ruby-pdf-core)
+ ("ruby-ttfunk" ,ruby-ttfunk)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-pdf-inspector" ,ruby-pdf-inspector)
+ ("ruby-rspec" ,ruby-rspec)
+ ("ruby-simplecov" ,ruby-simplecov)
+ ("ruby-yard" ,ruby-yard)))
+ (home-page "http://prawnpdf.org/api-docs/2.0/")
+ (synopsis "PDF generation for Ruby")
+ (description "Prawn is a pure Ruby PDF generation library.")
+ (license license:gpl3+)))
+
+(define-public ruby-prawn-table
+ (package
+ (name "ruby-prawn-table")
+ (version "0.2.2")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "prawn-table" version))
+ (sha256
+ (base32
+ "1nxd6qmxqwl850icp18wjh5k0s3amxcajdrkjyzpfgq0kvilcv9k"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (propagated-inputs
+ `(("ruby-prawn" ,ruby-prawn)))
+ (home-page "https://github.com/prawnpdf/prawn-table")
+ (synopsis "Tables support for Prawn")
+ (description "This gem provides tables support for Prawn.")
+ (license license:gpl3+)))
+
+(define-public ruby-kramdown
+ (package
+ (name "ruby-kramdown")
+ (version "1.17.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "kramdown" version))
+ (sha256
+ (base32
+ "1n1c4jmrh5ig8iv1rw81s4mw4xsp4v97hvf8zkigv4hn5h542qjq"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); FIXME: some test failures
+ (native-inputs
+ `(("ruby-prawn" ,ruby-prawn)
+ ("ruby-prawn-table" ,ruby-prawn-table)))
+ (home-page "https://kramdown.gettalong.org/")
+ (synopsis "Markdown parsing and converting library")
+ (description "Kramdown is a library for parsing and converting a superset
+of Markdown. It is completely written in Ruby, supports standard Markdown
+(with some minor modifications) and various extensions that have been made
+popular by the PHP @code{Markdown Extra} package and @code{Maruku}.")
+ (license license:expat)))
+
+(define-public ruby-http-parser.rb
+ (package
+ (name "ruby-http-parser.rb")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "http_parser.rb" version))
+ (sha256
+ (base32
+ "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (native-inputs
+ `(("ruby-rake-compiler" ,ruby-rake-compiler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (home-page "https://github.com/tmm1/http_parser.rb")
+ (synopsis "HTTP parser un Ruby")
+ (description "This gem is a simple callback-based HTTP request/response
+parser for writing http servers, clients and proxies.")
+ (license license:expat)))
+
+(define-public ruby-em-websocket
+ (package
+ (name "ruby-em-websocket")
+ (version "0.5.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "em-websocket" version))
+ (sha256
+ (base32
+ "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No tests
+ `(#:tests? #f))
+ (propagated-inputs
+ `(("ruby-eventmachine" ,ruby-eventmachine)
+ ("ruby-http-parser.rb" ,ruby-http-parser.rb)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ (home-page "https://github.com/igrigorik/em-websocket")
+ (synopsis "EventMachine based WebSocket server")
+ (description "Em-websocket is an EventMachine based WebSocket server
+implementation.")
+ (license license:expat)))
+
+(define-public ruby-rouge
+ (package
+ (name "ruby-rouge")
+ (version "3.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rouge" version))
+ (sha256
+ (base32
+ "0h79gn2wmn1wix2d27lgiaimccyj8gvizrllyym500pir408x62f"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "http://rouge.jneen.net/")
+ (synopsis "Code highlighter")
+ (description "Rouge is a code highlighter written in Ruby. It supports more
+than 100 languages and outputs HTML or ANSI 256-color text. Its HTML output
+is compatible with stylesheets designed for pygments.")
+ (license (list
+ ;; rouge is licensed under expat
+ license:expat
+ ;; pygments is licensed under bsd-2
+ license:bsd-2))))
+
+(define-public ruby-rouge-2
+ (package
+ (inherit ruby-rouge)
+ (version "2.2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rouge" version))
+ (sha256
+ (base32
+ "02kpahk5nkc33yxnn75649kzxaz073wvazr2zyg491nndykgnvcs"))))))
+
+(define-public ruby-hashie
+ (package
+ (name "ruby-hashie")
+ (version "3.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "hashie" version))
+ (sha256
+ (base32
+ "13bdzfp25c8k51ayzxqkbzag3wj5gc1jd8h7d985nsq6pn57g5xh"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (arguments `(#:tests? #f)); FIXME: Could not locate Gemfile or .bundle/ directory
+ (home-page "https://github.com/intridea/hashie")
+ (synopsis "Extensions to Ruby Hashes")
+ (description "Hashie is a collection of classes and mixins that make Ruby
+hashes more powerful.")
+ (license license:expat)))
+
+(define-public ruby-heredoc-unindent
+ (package
+ (name "ruby-heredoc-unindent")
+ (version "1.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "heredoc_unindent" version))
+ (sha256
+ (base32
+ "14ijr2fsjwhrkjkcaz81d5xnfa4vvgvcflrff83avqw9klm011yw"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-hoe" ,ruby-hoe)))
+ (home-page "https://github.com/adrianomitre/heredoc_unindent")
+ (synopsis "Heredoc indentation cleaner")
+ (description "This gem removes common margin from indented strings, such
+as the ones produced by indented heredocs. In other words, it strips out
+leading whitespace chars at the beggining of each line, but only as much as
+the line with the smallest margin.
+
+It is acknowledged that many strings defined by heredocs are just code and
+fact is that most parsers are insensitive to indentation. If, however, the
+strings are to be used otherwise, be it for printing or testing, the extra
+indentation will probably be an issue and hence this gem.")
+ (license license:expat)))
+
+(define-public ruby-safe-yaml
+ (package
+ (name "ruby-safe-yaml")
+ (version "1.0.4")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "safe_yaml" version))
+ (sha256
+ (base32
+ "1hly915584hyi9q9vgd968x2nsi5yag9jyf5kq60lwzi5scr7094"))))
+ (build-system ruby-build-system)
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec)
+ ("ruby-hashie" ,ruby-hashie)
+ ("ruby-heredoc-unindent" ,ruby-heredoc-unindent)))
+ (arguments `(#:test-target "spec"
+ #:tests? #f));; FIXME: one failure
+ (home-page "https://github.com/dtao/safe_yaml")
+ (synopsis "YAML parser")
+ (description "The SafeYAML gem provides an alternative implementation of
+YAML.load suitable for accepting user input in Ruby applications.")
+ (license license:expat)))
+
+(define-public ruby-mercenary
+ (package
+ (name "ruby-mercenary")
+ (version "0.3.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "mercenary" version))
+ (sha256
+ (base32
+ "10la0xw82dh5mqab8bl0dk21zld63cqxb1g16fk8cb39ylc4n21a"))))
+ (build-system ruby-build-system)
+ (arguments `(#:test-target "spec"))
+ (native-inputs
+ `(("bundler" ,bundler)))
+ (home-page "https://github.com/jekyll/mercenary")
+ (synopsis "Command-line apps library in Ruby")
+ (description "Mercenary is a lightweight and flexible library for writing
+command-line apps in Ruby.")
+ (license license:expat)))
+
+(define-public ruby-liquid
+ (package
+ (name "ruby-liquid")
+ (version "4.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "liquid" version))
+ (sha256
+ (base32
+ "17fa0jgwm9a935fyvzy8bysz7j5n1vf1x2wzqkdfd5k08dbw3x2y"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); No rakefile
+ (home-page "https://shopify.github.io/liquid/")
+ (synopsis "Template language")
+ (description "Liquid is a template language written in Ruby. It is used
+to load dynamic content on storefronts.")
+ (license license:expat)))
+
+(define-public ruby-forwardable-extended
+ (package
+ (name "ruby-forwardable-extended")
+ (version "2.6.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "forwardable-extended" version))
+ (sha256
+ (base32
+ "15zcqfxfvsnprwm8agia85x64vjzr2w0xn9vxfnxzgcv8s699v0v"))))
+ (build-system ruby-build-system)
+ (arguments `(#:tests? #f)); Cyclic dependency on luna-rspec-formatters
+ (home-page "https://github.com/envygeeks/forwardable-extended")
+ (synopsis "Delegation to hashes and instance variables in Forwardable")
+ (description "Forwardable Extended provides more @code{Forwardable}
+methods for your source as @code{Forwardable::Extended}.")
+ (license license:expat)))
+
+(define-public ruby-pathutil
+ (package
+ (name "ruby-pathutil")
+ (version "0.16.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pathutil" version))
+ (sha256
+ (base32
+ "0wc18ms1rzi44lpjychyw2a96jcmgxqdvy2949r4vvb5f4p0lgvz"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("ruby-forwardable-extended" ,ruby-forwardable-extended)))
+ (native-inputs
+ `(("bundler" ,bundler)
+ ("ruby-rspec" ,ruby-rspec)))
+ ;; Fails with: cannot load such file --
+ ;; /tmp/guix-build-ruby-pathutil-0.16.0.drv-0/gem/benchmark/support/task
+ (arguments `(#:tests? #f))
+ (home-page "https://github.com/envygeeks/pathutil")
+ (synopsis "Extended implementation of Pathname")
+ (description "Pathutil tries to be a faster pure Ruby implementation of
+Pathname.")
+ (license license:expat)))
+
+(define-public jekyll
+ (package
+ (name "jekyll")
+ (version "3.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll" version))
+ (sha256
+ (base32
+ "1iw90wihk9dscgmppf5v6lysg3kjmnx50mjyl4gghkdb4spw97xk"))))
+ (build-system ruby-build-system)
+ (arguments
+ ;; No rakefile, but a test subdirectory
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-i18n
+ (lambda _
+ (substitute* ".gemspec"
+ (("~> 0.7") ">= 0.7"))
+ #t)))))
+ (propagated-inputs
+ `(("ruby-addressable" ,ruby-addressable)
+ ("ruby-colorator" ,ruby-colorator)
+ ("ruby-em-websocket" ,ruby-em-websocket)
+ ("ruby-i18n" ,ruby-i18n)
+ ("ruby-jekyll-sass-converter" ,ruby-jekyll-sass-converter)
+ ("ruby-jekyll-watch" ,ruby-jekyll-watch)
+ ("ruby-kramdown" ,ruby-kramdown)
+ ("ruby-liquid" ,ruby-liquid)
+ ("ruby-mercenary" ,ruby-mercenary)
+ ("ruby-pathutil" ,ruby-pathutil)
+ ("ruby-rouge" ,ruby-rouge-2)
+ ("ruby-safe-yaml" ,ruby-safe-yaml)))
+ (home-page "https://jekyllrb.com/")
+ (synopsis "Static site generator")
+ (description "Jekyll is a simple, blog aware, static site generator.")
+ (license license:expat)))
+
+(define-public ruby-jekyll-paginate-v2
+ (package
+ (name "ruby-jekyll-paginate-v2")
+ (version "2.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "jekyll-paginate-v2" version))
+ (sha256
+ (base32
+ "154bfpyml6abxww9868hhyfvxasl8qhsc5zy2q30c7dxaj0igdib"))))
+ (build-system ruby-build-system)
+ (propagated-inputs
+ `(("jekyll" ,jekyll)))
+ (home-page "https://github.com/sverrirs/jekyll-paginate-v2")
+ (synopsis "Pagination Generator for Jekyll 3")
+ (description "The Pagination Generator forms the core of the pagination
+logic in Jekyll. It calculates and generates the pagination pages.")
+ (license license:expat)))
diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm
index 0695f8c7d2..631dcfd67c 100644
--- a/gnu/packages/rust.scm
+++ b/gnu/packages/rust.scm
@@ -167,14 +167,120 @@ in turn be used to build the final Rust.")
(snippet '(begin (delete-file-recursively "src/llvm") #t))
(patches (map search-patch patches))))
+(define* (rust-bootstrapped-package base-rust version checksum
+ #:key (patches '()))
+ "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST."
+ (package
+ (inherit base-rust)
+ (version version)
+ (source
+ (rust-source version checksum #:patches patches))
+ (native-inputs
+ (alist-replace "cargo-bootstrap" (list base-rust "cargo")
+ (alist-replace "rustc-bootstrap" (list base-rust)
+ (package-native-inputs base-rust))))))
+
+(define-public mrustc
+ (let ((rustc-version "1.19.0"))
+ (package
+ (name "mrustc")
+ (version "0.8.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/thepowersgang/mrustc.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i"))))
+ (outputs '("out" "cargo"))
+ (build-system gnu-build-system)
+ (inputs
+ `(("llvm" ,llvm-3.9.1)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("flex" ,flex)
+ ;; Required for the libstd sources.
+ ("rustc"
+ ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
+ (arguments
+ `(#:tests? #f
+ #:make-flags (list (string-append "LLVM_CONFIG="
+ (assoc-ref %build-inputs "llvm")
+ "/bin/llvm-config"))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-date
+ (lambda _
+ (substitute* "Makefile"
+ (("shell date") "shell date -d @1"))
+ #t))
+ (add-after 'patch-date 'unpack-target-compiler
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "minicargo.mk"
+ ;; Don't try to build LLVM.
+ (("^[$][(]LLVM_CONFIG[)]:") "xxx:")
+ ;; Build for the correct target architecture.
+ (("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
+ (string-append "RUSTC_TARGET := "
+ ,(or (%current-target-system)
+ (nix-system->gnu-triplet-for-rust)))))
+ (invoke "tar" "xf" (assoc-ref inputs "rustc"))
+ (chdir "rustc-1.19.0-src")
+ (invoke "patch" "-p0" "../rust_src.patch")
+ (chdir "..")
+ #t))
+ (replace 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
+ #t))
+ (add-after 'build 'build-minicargo
+ (lambda _
+ (for-each (lambda (target)
+ (invoke "make" "-f" "minicargo.mk" target))
+ '("output/libstd.hir" "output/libpanic_unwind.hir"
+ "output/libproc_macro.hir" "output/libtest.hir"))
+ ;; Technically the above already does it - but we want to be clear.
+ (invoke "make" "-C" "tools/minicargo")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (tools-bin (string-append out "/tools/bin"))
+ (cargo-out (assoc-ref outputs "cargo"))
+ (cargo-bin (string-append cargo-out "/bin"))
+ (lib (string-append out "/lib"))
+ (lib/rust (string-append lib "/mrust"))
+ (gcc (assoc-ref inputs "gcc")))
+ ;; These files are not reproducible.
+ (for-each delete-file (find-files "output" "\\.txt$"))
+ (mkdir-p lib)
+ (copy-recursively "output" lib/rust)
+ (mkdir-p bin)
+ (mkdir-p tools-bin)
+ (install-file "bin/mrustc" bin)
+ ;; minicargo uses relative paths to resolve mrustc.
+ (install-file "tools/bin/minicargo" tools-bin)
+ (install-file "tools/bin/minicargo" cargo-bin)
+ #t))))))
+ (synopsis "Compiler for the Rust progamming language")
+ (description "Rust is a systems programming language that provides memory
+safety and thread safety guarantees.")
+ (home-page "https://github.com/thepowersgang/mrustc")
+ ;; Dual licensed.
+ (license (list license:asl2.0 license:expat)))))
+
(define rust-1.19
(package
(name "rust")
(version "1.19.0")
- (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))
+ (source (rust-source version "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"
+ #:patches '("rust-1.19-mrustc.patch")))
(outputs '("out" "cargo"))
(arguments
`(#:imported-modules ,%cargo-build-system-modules ;for `generate-checksums'
+ #:modules ((guix build utils) (ice-9 match) (guix build gnu-build-system))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-env
@@ -187,6 +293,24 @@ in turn be used to build the final Rust.")
;; guix llvm-3.9.1 package installs only shared libraries
(setenv "LLVM_LINK_SHARED" "1")
#t))
+ (add-after 'unpack 'patch-cargo-tomls
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (substitute* "src/librustc_errors/Cargo.toml"
+ (("[[]dependencies[]]") "
+[dependencies]
+term = \"0.4.4\"
+"))
+ (substitute* "src/librustc/Cargo.toml"
+ (("[[]dependencies[]]") "
+[dependencies]
+getopts = { path = \"../libgetopts\" }
+"))
+ (substitute* "src/librustdoc/Cargo.toml"
+ (("[[]dependencies[]]") "
+[dependencies]
+test = { path = \"../libtest\" }
+"))
+ #t))
(add-after 'unpack 'patch-tests
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
@@ -243,12 +367,97 @@ in turn be used to build the final Rust.")
(generate-checksums dir ,%cargo-reference-project-file)))
(find-files "src/vendor" ".cargo-checksum.json"))
#t))
+ ;; This phase is overridden by newer versions.
(replace 'configure
(const #t))
+ ;; This phase is overridden by newer versions.
+ (replace 'build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((rustc-bootstrap (assoc-ref inputs "rustc-bootstrap")))
+ (setenv "CFG_COMPILER_HOST_TRIPLE"
+ ,(nix-system->gnu-triplet (%current-system)))
+ (setenv "CFG_RELEASE" "")
+ (setenv "CFG_RELEASE_CHANNEL" "stable")
+ (setenv "CFG_LIBDIR_RELATIVE" "lib")
+ (setenv "CFG_VERSION" "1.19.0-stable-mrustc")
+ ; bad: (setenv "CFG_PREFIX" "mrustc") ; FIXME output path.
+ (mkdir-p "output")
+ (invoke (string-append rustc-bootstrap "/tools/bin/minicargo")
+ "src/rustc" "--vendor-dir" "src/vendor"
+ "--output-dir" "output/rustc-build"
+ "-L" (string-append rustc-bootstrap "/lib/mrust")
+ "-j" "1")
+ (install-file "output/rustc-build/rustc" "output") ; FIXME: Remove?
+ (setenv "CFG_COMPILER_HOST_TRIPLE" #f)
+ (setenv "CFG_RELEASE" #f)
+ (setenv "CFG_RELEASE_CHANNEL" #f)
+ (setenv "CFG_VERSION" #f)
+ (setenv "CFG_PREFIX" #f)
+ (setenv "CFG_LIBDIR_RELATIVE" #f)
+ (invoke (string-append rustc-bootstrap "/tools/bin/minicargo")
+ "src/tools/cargo" "--vendor-dir" "src/vendor"
+ "--output-dir" "output/cargo-build"
+ "-L" "output/"
+ "-L" (string-append rustc-bootstrap "/lib/mrust")
+ "-j" "1")
+ ;; Now use the newly-built rustc to build the libraries.
+ ;; One day that could be replaced by:
+ ;; (invoke "output/cargo-build/cargo" "build"
+ ;; "--manifest-path" "src/bootstrap/Cargo.toml"
+ ;; "--verbose") ; "--locked" "--frozen"
+ ;; but right now, Cargo has problems with libstd's circular
+ ;; dependencies.
+ (mkdir-p "output/target-libs")
+ (for-each ((@ (ice-9 match) match-lambda)
+ ((name . flags)
+ (write name)
+ (newline)
+ (apply invoke
+ "output/rustc-build/rustc"
+ "-C" (string-append "linker="
+ (getenv "CC"))
+ "-L" "output/target-libs"
+ (string-append "src/" name "/lib.rs")
+ "-o"
+ (string-append "output/target-libs/"
+ (car (string-split name #\/))
+ ".rlib")
+ flags)))
+ '(("libcore")
+ ("libstd_unicode")
+ ("liballoc")
+ ("libcollections")
+ ("librand")
+ ("liblibc/src" "--cfg" "stdbuild")
+ ("libunwind" "-l" "gcc_s")
+ ("libcompiler_builtins")
+ ("liballoc_system")
+ ("libpanic_unwind")
+ ;; Uses "cc" to link.
+ ("libstd" "-l" "dl" "-l" "rt" "-l" "pthread")
+ ("libarena")))
+ #t)))
+ ;; This phase is overridden by newer versions.
(replace 'check
(const #t))
+ ;; This phase is overridden by newer versions.
(replace 'install
- (const #t)))))
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (target-system ,(or (%current-target-system)
+ (nix-system->gnu-triplet
+ (%current-system))))
+ (out-libs (string-append out "/lib/rustlib/"
+ target-system "/lib")))
+ ;(setenv "CFG_PREFIX" out)
+ (mkdir-p out-libs)
+ (copy-recursively "output/target-libs" out-libs)
+ (install-file "output/rustc-build/rustc"
+ (string-append out "/bin"))
+ (install-file "output/cargo-build/cargo"
+ (string-append (assoc-ref outputs "cargo")
+ "/bin")))
+ #t)))))
(build-system gnu-build-system)
(native-inputs
`(("bison" ,bison) ; For the tests
@@ -258,8 +467,8 @@ in turn be used to build the final Rust.")
("git" ,git)
("procps" ,procps) ; For the tests
("python-2" ,python-2)
- ("rustc-bootstrap" ,rust-bootstrap)
- ("cargo-bootstrap" ,rust-bootstrap "cargo")
+ ("rustc-bootstrap" ,mrustc)
+ ("cargo-bootstrap" ,mrustc "cargo")
("pkg-config" ,pkg-config) ; For "cargo"
("which" ,which)))
(inputs
@@ -289,110 +498,6 @@ safety and thread safety guarantees.")
;; Dual licensed.
(license (list license:asl2.0 license:expat))))
-(define* (rust-bootstrapped-package base-rust version checksum
- #:key (patches '()))
- "Bootstrap rust VERSION with source checksum CHECKSUM patched with PATCHES using BASE-RUST."
- (package
- (inherit base-rust)
- (version version)
- (source
- (rust-source version checksum #:patches patches))
- (native-inputs
- (alist-replace "cargo-bootstrap" (list base-rust "cargo")
- (alist-replace "rustc-bootstrap" (list base-rust)
- (package-native-inputs base-rust))))))
-
-(define-public mrustc
- (let ((rustc-version "1.19.0"))
- (package
- (name "mrustc")
- (version "0.8.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/thepowersgang/mrustc.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0a7v8ccyzp1sdkwni8h1698hxpfz2sxhcpx42n6l2pbm0rbjp08i"))))
- (outputs '("out" "cargo"))
- (build-system gnu-build-system)
- (inputs
- `(("llvm" ,llvm-3.9.1)))
- (native-inputs
- `(("bison" ,bison)
- ("flex" ,flex)
- ;; Required for the libstd sources.
- ("rustc"
- ,(rust-source "1.19.0" "0l8c14qsf42rmkqy92ahij4vf356dbyspxcips1aswpvad81y8qm"))))
- (arguments
- `(#:tests? #f
- #:make-flags (list (string-append "LLVM_CONFIG="
- (assoc-ref %build-inputs "llvm")
- "/bin/llvm-config"))
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-date
- (lambda _
- (substitute* "Makefile"
- (("shell date") "shell date -d @1"))
- #t))
- (add-after 'patch-date 'unpack-target-compiler
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (substitute* "minicargo.mk"
- ;; Don't try to build LLVM.
- (("^[$][(]LLVM_CONFIG[)]:") "xxx:")
- ;; Build for the correct target architecture.
- (("^RUSTC_TARGET := x86_64-unknown-linux-gnu")
- (string-append "RUSTC_TARGET := "
- ,(or (%current-target-system)
- (nix-system->gnu-triplet-for-rust)))))
- (invoke "tar" "xf" (assoc-ref inputs "rustc"))
- (chdir "rustc-1.19.0-src")
- (invoke "patch" "-p0" "../rust_src.patch")
- (chdir "..")
- #t))
- (replace 'configure
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
- #t))
- (add-after 'build 'build-minicargo
- (lambda _
- (for-each (lambda (target)
- (invoke "make" "-f" "minicargo.mk" target))
- '("output/libstd.hir" "output/libpanic_unwind.hir"
- "output/libproc_macro.hir" "output/libtest.hir"))
- ;; Technically the above already does it - but we want to be clear.
- (invoke "make" "-C" "tools/minicargo")))
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (tools-bin (string-append out "/tools/bin"))
- (cargo-out (assoc-ref outputs "cargo"))
- (cargo-bin (string-append cargo-out "/bin"))
- (lib (string-append out "/lib"))
- (lib/rust (string-append lib "/mrust"))
- (gcc (assoc-ref inputs "gcc")))
- ;; These files are not reproducible.
- (for-each delete-file (find-files "output" "\\.txt$"))
- (mkdir-p lib)
- (copy-recursively "output" lib/rust)
- (mkdir-p bin)
- (mkdir-p tools-bin)
- (install-file "bin/mrustc" bin)
- ;; minicargo uses relative paths to resolve mrustc.
- (install-file "tools/bin/minicargo" tools-bin)
- (install-file "tools/bin/minicargo" cargo-bin)
- #t))))))
- (synopsis "Compiler for the Rust progamming language")
- (description "Rust is a systems programming language that provides memory
-safety and thread safety guarantees.")
- (home-page "https://github.com/thepowersgang/mrustc")
- ;; Dual licensed.
- (license (list license:asl2.0 license:expat)))))
-
(define-public rust-1.23
(package
(inherit rust-1.19)
@@ -400,6 +505,18 @@ safety and thread safety guarantees.")
(version "1.23.0")
(source (rust-source version "14fb8vhjzsxlbi6yrn1r6fl5dlbdd1m92dn5zj5gmzfwf4w9ar3l"))
(outputs '("out" "doc" "cargo"))
+ (native-inputs
+ `(("bison" ,bison) ; For the tests
+ ("cmake" ,cmake)
+ ("flex" ,flex) ; For the tests
+ ("gdb" ,gdb) ; For the tests
+ ("git" ,git)
+ ("procps" ,procps) ; For the tests
+ ("python-2" ,python-2)
+ ("rustc-bootstrap" ,rust-bootstrap)
+ ("cargo-bootstrap" ,rust-bootstrap "cargo")
+ ("pkg-config" ,pkg-config) ; For "cargo"
+ ("which" ,which)))
(arguments
(substitute-keyword-arguments (package-arguments rust-1.19)
((#:phases phases)
@@ -410,6 +527,8 @@ safety and thread safety guarantees.")
(substitute* "src/binaryen/CMakeLists.txt"
(("ADD_COMPILE_FLAG\\(\\\"-march=native\\\"\\)") ""))
#t))
+ ;; TODO: Revisit this and find out whether that's needed after all.
+ (delete 'patch-cargo-tomls)
(add-after 'patch-tests 'patch-cargo-tests
(lambda _
(substitute* "src/tools/cargo/tests/build.rs"
diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm
index 9c1257b2a1..b818a3ccb5 100644
--- a/gnu/packages/wine.scm
+++ b/gnu/packages/wine.scm
@@ -225,7 +225,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data
(package
(name "wine-staging-patchset-data")
- (version "3.14")
+ (version "3.15")
(source
(origin
(method git-fetch)
@@ -235,7 +235,7 @@ integrate Windows applications into your desktop.")
(file-name (git-file-name name version))
(sha256
(base32
- "0h6gck0p92hin0m13q1hnlfnqs4vy474w66ppinvqms2zn3vibgi"))))
+ "1rgbx4qnxaarkq5n8nvj57q0rhxcqbwm5897ws962fgxh6zymg9n"))))
(build-system trivial-build-system)
(native-inputs
`(("bash" ,bash)
@@ -281,7 +281,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
- "01dhn3a6k3dwnrbz4bxvszhh5sxwy6s89y459g805hjmq8s6d2a7"))))
+ "07mmd8r70ciqrxzdg2m2mg34kcnb43dk9nw1ljm8jbcznsawv8ic"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+)
("libva" ,libva)