summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJakub Kądziołka <kuba@kadziolka.net>2020-06-22 02:56:22 +0200
committerJakub Kądziołka <kuba@kadziolka.net>2020-06-22 02:56:22 +0200
commit43bc7855113bd725d464dd9eaa1e54e78edfaab1 (patch)
tree2655f85e9946ececdb4fb052c2f3e31375c41e0f
parentgnu: bison: Update to 3.6.3. (diff)
parentgnu: bison-3.6: Don't change the name of the package. (diff)
downloadguix-43bc7855113bd725d464dd9eaa1e54e78edfaab1.tar.gz
guix-43bc7855113bd725d464dd9eaa1e54e78edfaab1.tar.bz2
guix-43bc7855113bd725d464dd9eaa1e54e78edfaab1.tar.xz
Merge branch 'master' into core-updates
-rw-r--r--.dir-locals.el1
-rw-r--r--.guix-channel4
-rw-r--r--Makefile.am1
-rw-r--r--build-aux/git-authenticate.scm31
-rw-r--r--configure.ac1
-rw-r--r--doc/contributing.texi54
-rw-r--r--doc/guix.texi200
-rwxr-xr-xetc/committer.scm.in250
-rw-r--r--etc/news.scm74
-rw-r--r--gnu/build/hurd-boot.scm190
-rw-r--r--gnu/build/image.scm13
-rw-r--r--gnu/build/vm.scm13
-rw-r--r--gnu/installer/final.scm6
-rw-r--r--gnu/installer/newt/final.scm8
-rw-r--r--gnu/local.mk14
-rw-r--r--gnu/machine/ssh.scm7
-rw-r--r--gnu/packages/admin.scm8
-rw-r--r--gnu/packages/audio.scm72
-rw-r--r--gnu/packages/base.scm13
-rw-r--r--gnu/packages/bioinformatics.scm4
-rw-r--r--gnu/packages/bison.scm12
-rw-r--r--gnu/packages/bittorrent.scm9
-rw-r--r--gnu/packages/build-tools.scm79
-rw-r--r--gnu/packages/cdrom.scm51
-rw-r--r--gnu/packages/ci.scm6
-rw-r--r--gnu/packages/convmv.scm60
-rw-r--r--gnu/packages/cran.scm111
-rw-r--r--gnu/packages/crates-io.scm217
-rw-r--r--gnu/packages/cups.scm8
-rw-r--r--gnu/packages/databases.scm4
-rw-r--r--gnu/packages/diffoscope.scm10
-rw-r--r--gnu/packages/dns.scm4
-rw-r--r--gnu/packages/docbook.scm58
-rw-r--r--gnu/packages/efi.scm4
-rw-r--r--gnu/packages/emacs-xyz.scm514
-rw-r--r--gnu/packages/emulators.scm162
-rw-r--r--gnu/packages/engineering.scm89
-rw-r--r--gnu/packages/enlightenment.scm9
-rw-r--r--gnu/packages/fonts.scm120
-rw-r--r--gnu/packages/game-development.scm26
-rw-r--r--gnu/packages/games.scm374
-rw-r--r--gnu/packages/gnome-xyz.scm10
-rw-r--r--gnu/packages/gnome.scm52
-rw-r--r--gnu/packages/gnunet.scm10
-rw-r--r--gnu/packages/gnuzilla.scm6
-rw-r--r--gnu/packages/golang.scm52
-rw-r--r--gnu/packages/graphics.scm8
-rw-r--r--gnu/packages/guile-xyz.scm4
-rw-r--r--gnu/packages/guile.scm13
-rw-r--r--gnu/packages/haskell-apps.scm56
-rw-r--r--gnu/packages/haskell-web.scm22
-rw-r--r--gnu/packages/haskell-xyz.scm46
-rw-r--r--gnu/packages/inkscape.scm11
-rw-r--r--gnu/packages/ipfs.scm5
-rw-r--r--gnu/packages/irc.scm3
-rw-r--r--gnu/packages/kde-multimedia.scm43
-rw-r--r--gnu/packages/kodi.scm4
-rw-r--r--gnu/packages/linphone.scm8
-rw-r--r--gnu/packages/linux.scm20
-rw-r--r--gnu/packages/lisp-xyz.scm257
-rw-r--r--gnu/packages/machine-learning.scm3
-rw-r--r--gnu/packages/mail.scm43
-rw-r--r--gnu/packages/mate.scm12
-rw-r--r--gnu/packages/messaging.scm86
-rw-r--r--gnu/packages/music.scm4
-rw-r--r--gnu/packages/networking.scm147
-rw-r--r--gnu/packages/package-management.scm25
-rw-r--r--gnu/packages/patches/emacs-hyperbole-toggle-messaging.patch86
-rw-r--r--gnu/packages/patches/ffmpeg-prefer-dav1d.patch43
-rw-r--r--gnu/packages/patches/iputils-libcap-compat.patch37
-rw-r--r--gnu/packages/patches/lib2geom-fix-tests.patch172
-rw-r--r--gnu/packages/patches/lib2geom-link-tests-against-glib.patch34
-rw-r--r--gnu/packages/patches/lib2geom-use-system-googletest.patch94
-rw-r--r--gnu/packages/patches/python-memcached-syntax-warnings.patch24
-rw-r--r--gnu/packages/patches/quassel-qt-514-compat.patch130
-rw-r--r--gnu/packages/patches/tup-unbundle-dependencies.patch66
-rw-r--r--gnu/packages/patches/xmoto-remove-glext.patch23
-rw-r--r--gnu/packages/patches/xmoto-reproducible.patch24
-rw-r--r--gnu/packages/patches/xmoto-utf8.patch16
-rw-r--r--gnu/packages/perl.scm122
-rw-r--r--gnu/packages/python-xyz.scm27
-rw-r--r--gnu/packages/radio.scm38
-rw-r--r--gnu/packages/sdl.scm15
-rw-r--r--gnu/packages/shells.scm6
-rw-r--r--gnu/packages/statistics.scm21
-rw-r--r--gnu/packages/tls.scm6
-rw-r--r--gnu/packages/tor.scm25
-rw-r--r--gnu/packages/toys.scm6
-rw-r--r--gnu/packages/video.scm69
-rw-r--r--gnu/packages/wm.scm4
-rw-r--r--gnu/services/shepherd.scm3
-rw-r--r--gnu/services/virtualization.scm145
-rw-r--r--gnu/system.scm3
-rw-r--r--gnu/system/hurd.scm5
-rw-r--r--gnu/system/image.scm22
-rw-r--r--gnu/system/uuid.scm2
-rw-r--r--guix/build-system/cmake.scm5
-rw-r--r--guix/build-system/gnu.scm30
-rw-r--r--guix/build/gnu-dist.scm46
-rw-r--r--guix/build/lisp-utils.scm22
-rw-r--r--guix/build/profiles.scm6
-rw-r--r--guix/channels.scm255
-rw-r--r--guix/ci.scm34
-rw-r--r--guix/download.scm2
-rw-r--r--guix/git-authenticate.scm41
-rw-r--r--guix/inferior.scm9
-rw-r--r--guix/nar.scm8
-rw-r--r--guix/profiles.scm34
-rw-r--r--guix/scripts/environment.scm3
-rw-r--r--guix/scripts/pack.scm21
-rw-r--r--guix/scripts/pull.scm24
-rw-r--r--guix/scripts/repl.scm77
-rw-r--r--guix/scripts/system.scm4
-rw-r--r--guix/scripts/time-machine.scm15
-rw-r--r--guix/store/database.scm98
-rw-r--r--guix/tests/gnupg.scm32
-rw-r--r--guix/ui.scm25
-rw-r--r--tests/channels.scm126
-rw-r--r--tests/git-authenticate.scm27
-rw-r--r--tests/guix-environment-container.sh2
-rw-r--r--tests/guix-repl.sh84
121 files changed, 4840 insertions, 1299 deletions
diff --git a/.dir-locals.el b/.dir-locals.el
index b88ec7a..92979fc 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -99,6 +99,7 @@
99 (eval . (put 'eventually 'scheme-indent-function 1)) 99 (eval . (put 'eventually 'scheme-indent-function 1))
100 100
101 (eval . (put 'call-with-progress-reporter 'scheme-indent-function 1)) 101 (eval . (put 'call-with-progress-reporter 'scheme-indent-function 1))
102 (eval . (put 'with-repository 'scheme-indent-function 2))
102 (eval . (put 'with-temporary-git-repository 'scheme-indent-function 2)) 103 (eval . (put 'with-temporary-git-repository 'scheme-indent-function 2))
103 (eval . (put 'with-environment-variables 'scheme-indent-function 1)) 104 (eval . (put 'with-environment-variables 'scheme-indent-function 1))
104 (eval . (put 'with-fresh-gnupg-setup 'scheme-indent-function 1)) 105 (eval . (put 'with-fresh-gnupg-setup 'scheme-indent-function 1))
diff --git a/.guix-channel b/.guix-channel
index 3e618d7..b852180 100644
--- a/.guix-channel
+++ b/.guix-channel
@@ -2,4 +2,6 @@
2 2
3(channel 3(channel
4 (version 0) 4 (version 0)
5 (news-file "etc/news.scm")) 5 (news-file "etc/news.scm")
6 (keyring-reference "keyring")
7 (url "https://git.savannah.gnu.org/git/guix.git")) ;the primary URL
diff --git a/Makefile.am b/Makefile.am
index 9cf9318..8988cdf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -477,6 +477,7 @@ SH_TESTS = \
477 tests/guix-environment-container.sh \ 477 tests/guix-environment-container.sh \
478 tests/guix-graph.sh \ 478 tests/guix-graph.sh \
479 tests/guix-describe.sh \ 479 tests/guix-describe.sh \
480 tests/guix-repl.sh \
480 tests/guix-lint.sh 481 tests/guix-lint.sh
481 482
482TESTS = $(SCM_TESTS) $(SH_TESTS) 483TESTS = $(SCM_TESTS) $(SH_TESTS)
diff --git a/build-aux/git-authenticate.scm b/build-aux/git-authenticate.scm
index 5e1fdaa..e670264 100644
--- a/build-aux/git-authenticate.scm
+++ b/build-aux/git-authenticate.scm
@@ -218,6 +218,17 @@
218 (string-downcase (string-filter char-set:graphic fingerprint))))) 218 (string-downcase (string-filter char-set:graphic fingerprint)))))
219 %historical-committers)) 219 %historical-committers))
220 220
221(define %use-historical-authorizations?
222 ;; Whether to allow authentication of past commits using
223 ;; %HISTORICAL-AUTHORIZED-SIGNING-KEYS for when '.guix-authorizations' was
224 ;; missing.
225 (getenv "GUIX_USE_HISTORICAL_AUTHORIZATIONS"))
226
227(define %introductory-commit
228 ;; This is the commit that appears in the official 'guix' channel
229 ;; introduction. XXX: Keep in sync with (guix channels)!
230 "9edb3f66fd807b096b48283debdcddccfea34bad")
231
221(define %commits-with-bad-signature 232(define %commits-with-bad-signature
222 ;; Commits with a known-bad signature. 233 ;; Commits with a known-bad signature.
223 '("6a34f4ccc8a5d4a48e25ad3c9c512f8634928b91")) ;2016-12-29 234 '("6a34f4ccc8a5d4a48e25ad3c9c512f8634928b91")) ;2016-12-29
@@ -242,7 +253,10 @@
242 (match args 253 (match args
243 ((_ start end) 254 ((_ start end)
244 (define start-commit 255 (define start-commit
245 (commit-lookup repository (string->oid start))) 256 (commit-lookup repository
257 (string->oid (if %use-historical-authorizations?
258 start
259 %introductory-commit))))
246 (define end-commit 260 (define end-commit
247 (commit-lookup repository (string->oid end))) 261 (commit-lookup repository (string->oid end)))
248 262
@@ -252,7 +266,7 @@
252 (filter-map (lambda (id) 266 (filter-map (lambda (id)
253 (false-if-exception 267 (false-if-exception
254 (commit-lookup repository (string->oid id)))) 268 (commit-lookup repository (string->oid id))))
255 (previously-authenticated-commits))) 269 (previously-authenticated-commits "channels/guix")))
256 270
257 (define commits 271 (define commits
258 ;; Commits to authenticate, excluding the closure of 272 ;; Commits to authenticate, excluding the closure of
@@ -263,6 +277,14 @@
263 (define reporter 277 (define reporter
264 (progress-reporter/bar (length commits))) 278 (progress-reporter/bar (length commits)))
265 279
280 (define historical-authorizations
281 ;; List of authorizations in effect before '.guix-authorizations' was
282 ;; introduced. By default, assume there were no authorizations; this
283 ;; is what 'guix pull' does.
284 (if %use-historical-authorizations?
285 %historical-authorized-signing-keys
286 '()))
287
266 (format #t (G_ "Authenticating ~a to ~a (~a commits)...~%") 288 (format #t (G_ "Authenticating ~a to ~a (~a commits)...~%")
267 (commit-short-id start-commit) 289 (commit-short-id start-commit)
268 (commit-short-id end-commit) 290 (commit-short-id end-commit)
@@ -272,9 +294,10 @@
272 (lambda (report) 294 (lambda (report)
273 (authenticate-commits repository commits 295 (authenticate-commits repository commits
274 #:default-authorizations 296 #:default-authorizations
275 %historical-authorized-signing-keys 297 historical-authorizations
276 #:report-progress report))))) 298 #:report-progress report)))))
277 (cache-authenticated-commit (oid->string (commit-id end-commit))) 299 (cache-authenticated-commit "channels/guix"
300 (oid->string (commit-id end-commit)))
278 301
279 (unless (null? stats) 302 (unless (null? stats)
280 (format #t (G_ "Signing statistics:~%")) 303 (format #t (G_ "Signing statistics:~%"))
diff --git a/configure.ac b/configure.ac
index cbf92da..7675eef 100644
--- a/configure.ac
+++ b/configure.ac
@@ -301,6 +301,7 @@ AC_CONFIG_FILES([Makefile
301 etc/guix-daemon.cil 301 etc/guix-daemon.cil
302 guix/config.scm]) 302 guix/config.scm])
303 303
304AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
304AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env]) 305AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
305AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in], 306AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
306 [chmod +x pre-inst-env]) 307 [chmod +x pre-inst-env])
diff --git a/doc/contributing.texi b/doc/contributing.texi
index 88128e5..2a73d2c 100644
--- a/doc/contributing.texi
+++ b/doc/contributing.texi
@@ -67,21 +67,6 @@ gpg: using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
67@code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch 67@code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch
68this key from a key server, if you have not done it yet). 68this key from a key server, if you have not done it yet).
69 69
70From there on, you can authenticate all the commits included in your
71checkout by running:
72
73@example
74make authenticate
75@end example
76
77The first run takes a couple of minutes, but subsequent runs are faster.
78
79@quotation Note
80You are advised to run @command{make authenticate} after every
81@command{git pull} invocation. This ensures you keep receiving valid
82changes to the repository
83@end quotation
84
85The easiest way to set up a development environment for Guix is, of 70The easiest way to set up a development environment for Guix is, of
86course, by using Guix! The following command starts a new shell where 71course, by using Guix! The following command starts a new shell where
87all the dependencies and appropriate environment variables are set up to 72all the dependencies and appropriate environment variables are set up to
@@ -146,6 +131,21 @@ Finally, you have to invoke @code{make check} to run tests
146fails, take a look at installation instructions (@pxref{Installation}) 131fails, take a look at installation instructions (@pxref{Installation})
147or send a message to the @email{guix-devel@@gnu.org, mailing list}. 132or send a message to the @email{guix-devel@@gnu.org, mailing list}.
148 133
134From there on, you can authenticate all the commits included in your
135checkout by running:
136
137@example
138make authenticate
139@end example
140
141The first run takes a couple of minutes, but subsequent runs are faster.
142
143@quotation Note
144You are advised to run @command{make authenticate} after every
145@command{git pull} invocation. This ensures you keep receiving valid
146changes to the repository.
147@end quotation
148
149 149
150@node Running Guix Before It Is Installed 150@node Running Guix Before It Is Installed
151@section Running Guix Before It Is Installed 151@section Running Guix Before It Is Installed
@@ -991,16 +991,16 @@ rebuilding induced, commits go to different branches, along these lines:
991@item 300 dependent packages or less 991@item 300 dependent packages or less
992@code{master} branch (non-disruptive changes). 992@code{master} branch (non-disruptive changes).
993 993
994@item between 300 and 1,200 dependent packages 994@item between 300 and 1,800 dependent packages
995@code{staging} branch (non-disruptive changes). This branch is intended 995@code{staging} branch (non-disruptive changes). This branch is intended
996to be merged in @code{master} every 3 weeks or so. Topical changes 996to be merged in @code{master} every 6 weeks or so. Topical changes
997(e.g., an update of the GNOME stack) can instead go to a specific branch 997(e.g., an update of the GNOME stack) can instead go to a specific branch
998(say, @code{gnome-updates}). 998(say, @code{gnome-updates}).
999 999
1000@item more than 1,200 dependent packages 1000@item more than 1,800 dependent packages
1001@code{core-updates} branch (may include major and potentially disruptive 1001@code{core-updates} branch (may include major and potentially disruptive
1002changes). This branch is intended to be merged in @code{master} every 1002changes). This branch is intended to be merged in @code{master} every
10032.5 months or so. 10036 months or so.
1004@end table 1004@end table
1005 1005
1006All these branches are @uref{@value{SUBSTITUTE-SERVER}, 1006All these branches are @uref{@value{SUBSTITUTE-SERVER},
@@ -1128,18 +1128,20 @@ browse issues:
1128 1128
1129@itemize 1129@itemize
1130@item 1130@item
1131@url{https://issues.guix.gnu.org} provides a pleasant
1132interface@footnote{The web interface at
1133@url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
1134software written in Guile, and you can help! See
1135@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse
1136bug reports and patches, and to participate in discussions;
1137@item
1131@url{https://bugs.gnu.org/guix} lists bug reports; 1138@url{https://bugs.gnu.org/guix} lists bug reports;
1132@item 1139@item
1133@url{https://bugs.gnu.org/guix-patches} lists patch submissions. 1140@url{https://bugs.gnu.org/guix-patches} lists patch submissions.
1134@end itemize 1141@end itemize
1135 1142
1136You can also access both of these @i{via} the (nicer) 1143To view discussions related to issue number @var{n}, go to
1137@url{https://issues.guix.gnu.org} interface@footnote{The web interface 1144@indicateurl{https://issues.guix.gnu.org/@var{n}} or
1138at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
1139software written in Guile, and you can help! See
1140@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. To view
1141discussions related to issue number @var{n}, go to
1142@indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or
1143@indicateurl{https://bugs.gnu.org/@var{n}}. 1145@indicateurl{https://bugs.gnu.org/@var{n}}.
1144 1146
1145If you use Emacs, you may find it more convenient to interact with 1147If you use Emacs, you may find it more convenient to interact with
diff --git a/doc/guix.texi b/doc/guix.texi
index 333dd70..5b854cc 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -239,7 +239,7 @@ Programming Interface
239* Derivations:: Low-level interface to package derivations. 239* Derivations:: Low-level interface to package derivations.
240* The Store Monad:: Purely functional interface to the store. 240* The Store Monad:: Purely functional interface to the store.
241* G-Expressions:: Manipulating build expressions. 241* G-Expressions:: Manipulating build expressions.
242* Invoking guix repl:: Fiddling with Guix interactively. 242* Invoking guix repl:: Programming Guix in Guile
243 243
244Defining Packages 244Defining Packages
245 245
@@ -3721,13 +3721,17 @@ this option is primarily useful when the daemon was running with
3721@cindex updating Guix 3721@cindex updating Guix
3722@cindex @command{guix pull} 3722@cindex @command{guix pull}
3723@cindex pull 3723@cindex pull
3724@cindex security, @command{guix pull}
3725@cindex authenticity, of code obtained with @command{guix pull}
3724Packages are installed or upgraded to the latest version available in 3726Packages are installed or upgraded to the latest version available in
3725the distribution currently available on your local machine. To update 3727the distribution currently available on your local machine. To update
3726that distribution, along with the Guix tools, you must run @command{guix 3728that distribution, along with the Guix tools, you must run @command{guix
3727pull}: the command downloads the latest Guix source code and package 3729pull}: the command downloads the latest Guix source code and package
3728descriptions, and deploys it. Source code is downloaded from a 3730descriptions, and deploys it. Source code is downloaded from a
3729@uref{https://git-scm.com, Git} repository, by default the official 3731@uref{https://git-scm.com, Git} repository, by default the official
3730GNU@tie{}Guix repository, though this can be customized. 3732GNU@tie{}Guix repository, though this can be customized. @command{guix
3733pull} ensures that the code it downloads is @emph{authentic} by
3734verifying that commits are signed by Guix developers.
3731 3735
3732Specifically, @command{guix pull} downloads code from the @dfn{channels} 3736Specifically, @command{guix pull} downloads code from the @dfn{channels}
3733(@pxref{Channels}) specified by one of the followings, in this order: 3737(@pxref{Channels}) specified by one of the followings, in this order:
@@ -3925,14 +3929,25 @@ Make sure you understand its security implications before using
3925@option{--allow-downgrades}. 3929@option{--allow-downgrades}.
3926@end quotation 3930@end quotation
3927 3931
3932@item --disable-authentication
3933Allow pulling channel code without authenticating it.
3934
3935@cindex authentication, of channel code
3936By default, @command{guix pull} authenticates code downloaded from
3937channels by verifying that its commits are signed by authorized
3938developers, and raises an error if this is not the case. This option
3939instructs it to not perform any such verification.
3940
3941@quotation Note
3942Make sure you understand its security implications before using
3943@option{--disable-authentication}.
3944@end quotation
3945
3928@item --system=@var{system} 3946@item --system=@var{system}
3929@itemx -s @var{system} 3947@itemx -s @var{system}
3930Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of 3948Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
3931the system type of the build host. 3949the system type of the build host.
3932 3950
3933@item --verbose
3934Produce verbose output, writing build logs to the standard error output.
3935
3936@item --bootstrap 3951@item --bootstrap
3937Use the bootstrap Guile to build the latest Guix. This option is only 3952Use the bootstrap Guile to build the latest Guix. This option is only
3938useful to Guix developers. 3953useful to Guix developers.
@@ -4135,6 +4150,28 @@ add a meta-data file @file{.guix-channel} that contains:
4135 (directory "guix")) 4150 (directory "guix"))
4136@end lisp 4151@end lisp
4137 4152
4153@cindex primary URL, channels
4154@subsection Primary URL
4155
4156Channel authors can indicate the primary URL of their channel's Git
4157repository in the @file{.guix-channel} file, like so:
4158
4159@lisp
4160(channel
4161 (version 0)
4162 (url "https://example.org/guix.git"))
4163@end lisp
4164
4165This allows @command{guix pull} to determine whether it is pulling code
4166from a mirror of the channel; when that is the case, it warns the user
4167that the mirror might be stale and displays the primary URL. That way,
4168users cannot be tricked into fetching code from a stale mirror that does
4169not receive security updates.
4170
4171This feature only makes sense for authenticated repositories, such as
4172the official @code{guix} channel, for which @command{guix pull} ensures
4173the code it fetches is authentic.
4174
4138@cindex news, for channels 4175@cindex news, for channels
4139@subsection Writing Channel News 4176@subsection Writing Channel News
4140 4177
@@ -5345,7 +5382,8 @@ configuration triplets,, autoconf, Autoconf}).
5345@item --compression=@var{tool} 5382@item --compression=@var{tool}
5346@itemx -C @var{tool} 5383@itemx -C @var{tool}
5347Compress the resulting tarball using @var{tool}---one of @code{gzip}, 5384Compress the resulting tarball using @var{tool}---one of @code{gzip},
5348@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression. 5385@code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no
5386compression.
5349 5387
5350@item --symlink=@var{spec} 5388@item --symlink=@var{spec}
5351@itemx -S @var{spec} 5389@itemx -S @var{spec}
@@ -5474,7 +5512,7 @@ package definitions.
5474* Derivations:: Low-level interface to package derivations. 5512* Derivations:: Low-level interface to package derivations.
5475* The Store Monad:: Purely functional interface to the store. 5513* The Store Monad:: Purely functional interface to the store.
5476* G-Expressions:: Manipulating build expressions. 5514* G-Expressions:: Manipulating build expressions.
5477* Invoking guix repl:: Fiddling with Guix interactively. 5515* Invoking guix repl:: Programming Guix in Guile
5478@end menu 5516@end menu
5479 5517
5480@node Package Modules 5518@node Package Modules
@@ -8248,12 +8286,47 @@ has an associated gexp compiler, such as a @code{<package>}.
8248@node Invoking guix repl 8286@node Invoking guix repl
8249@section Invoking @command{guix repl} 8287@section Invoking @command{guix repl}
8250 8288
8251@cindex REPL, read-eval-print loop 8289@cindex REPL, read-eval-print loop, script
8252The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop} 8290The @command{guix repl} command makes it easier to program Guix in Guile
8253(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile, 8291by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive
8254GNU Guile Reference Manual}). Compared to just launching the @command{guile} 8292programming (@pxref{Using Guile Interactively,,, guile,
8293GNU Guile Reference Manual}), or by running Guile scripts
8294(@pxref{Running Guile Scripts,,, guile,
8295GNU Guile Reference Manual}).
8296Compared to just launching the @command{guile}
8255command, @command{guix repl} guarantees that all the Guix modules and all its 8297command, @command{guix repl} guarantees that all the Guix modules and all its
8256dependencies are available in the search path. You can use it this way: 8298dependencies are available in the search path.
8299
8300The general syntax is:
8301
8302@example
8303guix repl @var{options} [@var{file} @var{args}]
8304@end example
8305
8306When a @var{file} argument is provided, @var{file} is
8307executed as a Guile scripts:
8308
8309@example
8310guix repl my-script.scm
8311@end example
8312
8313To pass arguments to the script, use @code{--} to prevent them from
8314being interpreted as arguments to @command{guix repl} itself:
8315
8316@example
8317guix repl -- my-script.scm --input=foo.txt
8318@end example
8319
8320To make a script executable directly from the shell, using the guix
8321executable that is on the user's search path, add the following two
8322lines at the top of the script:
8323
8324@example
8325@code{#!/usr/bin/env -S guix repl --}
8326@code{!#}
8327@end example
8328
8329Without a file name argument, a Guile REPL is started:
8257 8330
8258@example 8331@example
8259$ guix repl 8332$ guix repl
@@ -8302,7 +8375,7 @@ Add @var{directory} to the front of the package module search path
8302(@pxref{Package Modules}). 8375(@pxref{Package Modules}).
8303 8376
8304This allows users to define their own packages and make them visible to 8377This allows users to define their own packages and make them visible to
8305the command-line tool. 8378the script or REPL.
8306 8379
8307@item -q 8380@item -q
8308Inhibit loading of the @file{~/.guile} file. By default, that 8381Inhibit loading of the @file{~/.guile} file. By default, that
@@ -24594,6 +24667,107 @@ Return true if @var{obj} is a platform object.
24594Return the name of @var{platform}---a string such as @code{"arm"}. 24667Return the name of @var{platform}---a string such as @code{"arm"}.
24595@end deffn 24668@end deffn
24596 24669
24670
24671@subsubheading The Hurd in a Virtual Machine
24672
24673@cindex @code{hurd}
24674@cindex the Hurd
24675
24676Service @code{hurd-vm} provides support for running GNU/Hurd in a
24677virtual machine (VM), a so-called ``Childhurd''. The virtual machine is
24678a Shepherd service that can be referred to by the names @code{hurd-vm}
24679and @code{childhurd} and be controlled with commands such as:
24680
24681@example
24682herd start hurd-vm
24683herd stop childhurd
24684@end example
24685
24686The given GNU/Hurd operating system configuration is cross-compiled.
24687
24688@defvr {Scheme Variable} hurd-vm-service-type
24689This is the type of the Hurd in a Virtual Machine service. Its value
24690must be a @code{hurd-vm-configuration} object, which specifies the
24691operating system (@pxref{operating-system Reference}) and the disk size
24692for the Hurd Virtual Machine, the QEMU package to use as well as the
24693options for running it.
24694
24695For example:
24696
24697@lisp
24698(service hurd-vm-service-type
24699 (hurd-vm-configuration
24700 (disk-size (* 5000 (expt 2 20))) ;5G
24701 (memory-size 1024))) ;1024MiB
24702@end lisp
24703
24704would create a disk image big enough to build GNU@tie{}Hello, with some
24705extra memory.
24706@end defvr
24707
24708@deftp {Data Type} hurd-vm-configuration
24709The data type representing the configuration for
24710@code{hurd-vm-service-type}.
24711
24712@table @asis
24713@item @code{os} (default: @var{%hurd-vm-operating-system})
24714The operating system to instantiate. This default is bare-bones with a
24715permissive OpenSSH secure shell daemon listening on port 2222
24716(@pxref{Networking Services, @code{openssh-service-type}}).
24717
24718@item @code{qemu} (default: @code{qemu-minimal})
24719The QEMU package to use.
24720
24721@item @code{image} (default: @var{hurd-vm-disk-image})
24722The procedure used to build the disk-image built from this
24723configuration.
24724
24725@item @code{disk-size} (default: @code{'guess})
24726The size of the disk image.
24727
24728@item @code{memory-size} (default: @code{512})
24729The memory size of the Virtual Machine in mebibytes.
24730
24731@item @code{options} (default: @code{'("--snapshot")})
24732The extra options for running QEMU.
24733
24734@item @code{id} (default: @code{#f})
24735If set, a non-zero positive integer used to parameterize Childhurd
24736instances. It is appended to the service's name,
24737e.g. @code{childhurd1}.
24738
24739@item @code{net-options} (default: @var{hurd-vm-net-options})
24740The procedure used to produce the list of QEMU networking options.
24741
24742By default, it produces
24743
24744@lisp
24745'("--device" "rtl8139,netdev=net0"
24746 "--netdev" "user,id=net0\
24747 ,hostfwd=tcp:127.0.0.1:<ssh-port>-:2222\
24748 ,hostfwd=tcp:127.0.0.1:<vnc-port>-:5900")
24749@end lisp
24750with forwarded ports
24751@example
24752<ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))}
24753<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
24754@end example
24755
24756@end table
24757@end deftp
24758
24759Note that by default the VM image is volatile, i.e., once stopped the
24760contents are lost. If you want a stateful image instead, override the
24761configuration's @code{image} and @code{options} without
24762the @code{--snapshot} flag using something along these lines:
24763
24764@lisp
24765(service hurd-vm-service-type
24766 (hurd-vm-configuration
24767 (image (const "/out/of/store/writable/hurd.img"))
24768 (options '("--hda"))))
24769@end lisp
24770
24597@node Version Control Services 24771@node Version Control Services
24598@subsection Version Control Services 24772@subsection Version Control Services
24599 24773
diff --git a/etc/committer.scm.in b/etc/committer.scm.in
new file mode 100755
index 0000000..2f24783
--- /dev/null
+++ b/etc/committer.scm.in
@@ -0,0 +1,250 @@
1#!@GUILE@ \
2--no-auto-compile -s
3!#
4
5;;; GNU Guix --- Functional package management for GNU
6;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
23;;; Commentary:
24
25;; This script stages and commits changes to package definitions.
26
27;;; Code:
28
29(import (sxml xpath)
30 (srfi srfi-1)
31 (srfi srfi-9)
32 (ice-9 format)
33 (ice-9 popen)
34 (ice-9 match)
35 (ice-9 rdelim)
36 (ice-9 textual-ports))
37
38(define (read-excursion port)
39 "Read an expression from PORT and reset the port position before returning
40the expression."
41 (let ((start (ftell port))
42 (result (read port)))
43 (seek port start SEEK_SET)
44 result))
45
46(define (surrounding-sexp port line-no)
47 "Return the top-level S-expression surrounding the change at line number
48LINE-NO in PORT."
49 (let loop ((i (1- line-no))
50 (last-top-level-sexp #f))
51 (if (zero? i)
52 last-top-level-sexp
53 (match (peek-char port)
54 (#\(
55 (let ((sexp (read-excursion port)))
56 (read-line port)
57 (loop (1- i) sexp)))
58 (_
59 (read-line port)
60 (loop (1- i) last-top-level-sexp))))))
61
62(define-record-type <hunk>
63 (make-hunk file-name
64 old-line-number
65 new-line-number
66 diff)
67 hunk?
68 (file-name hunk-file-name)
69 ;; Line number before the change
70 (old-line-number hunk-old-line-number)
71 ;; Line number after the change
72 (new-line-number hunk-new-line-number)
73 ;; The full diff to be used with "git apply --cached"
74 (diff hunk-diff))
75
76(define* (hunk->patch hunk #:optional (port (current-output-port)))
77 (let ((file-name (hunk-file-name hunk)))
78 (format port
79 "diff --git a/~a b/~a~%--- a/~a~%+++ b/~a~%~a"
80 file-name file-name file-name file-name
81 (hunk-diff hunk))))
82
83(define (diff-info)
84 "Read the diff and return a list of <hunk> values."
85 (let ((port (open-pipe* OPEN_READ
86 "git" "diff"
87 "--no-prefix"
88 ;; Do not include any context lines. This makes it
89 ;; easier to find the S-expression surrounding the
90 ;; change.
91 "--unified=0")))
92 (define (extract-line-number line-tag)
93 (abs (string->number
94 (car (string-split line-tag #\,)))))
95 (define (read-hunk)
96 (reverse
97 (let loop ((lines '()))
98 (let ((line (read-line port 'concat)))
99 (cond
100 ((eof-object? line) lines)
101 ((or (string-prefix? "@@ " line)
102 (string-prefix? "diff --git" line))
103 (unget-string port line)
104 lines)
105 (else (loop (cons line lines))))))))
106 (define info
107 (let loop ((acc '())
108 (file-name #f))
109 (let ((line (read-line port)))
110 (cond
111 ((eof-object? line) acc)
112 ((string-prefix? "--- " line)
113 (match (string-split line #\space)
114 ((_ file-name)
115 (loop acc file-name))))
116 ((string-prefix? "@@ " line)
117 (match (string-split line #\space)
118 ((_ old-start new-start . _)
119 (loop (cons (make-hunk file-name
120 (extract-line-number old-start)
121 (extract-line-number new-start)
122 (string-join (cons* line "\n"
123 (read-hunk)) ""))
124 acc)
125 file-name))))
126 (else (loop acc file-name))))))
127 (close-pipe port)
128 info))
129
130(define (old-sexp hunk)
131 "Using the diff information in HUNK return the unmodified S-expression
132corresponding to the top-level definition containing the staged changes."
133 ;; TODO: We can't seek with a pipe port...
134 (let* ((port (open-pipe* OPEN_READ
135 "git" "show" (string-append "HEAD:"
136 (hunk-file-name hunk))))
137 (contents (get-string-all port)))
138 (close-pipe port)
139 (call-with-input-string contents
140 (lambda (port)
141 (surrounding-sexp port (hunk-old-line-number hunk))))))
142
143(define (new-sexp hunk)
144 "Using the diff information in HUNK return the modified S-expression
145corresponding to the top-level definition containing the staged changes."
146 (call-with-input-file (hunk-file-name hunk)
147 (lambda (port)
148 (surrounding-sexp port
149 (hunk-new-line-number hunk)))))
150
151(define* (commit-message file-name old new #:optional (port (current-output-port)))
152 "Print ChangeLog commit message for changes between OLD and NEW."
153 (define (get-values expr field)
154 (match ((sxpath `(// ,field quasiquote *)) expr)
155 (() '())
156 ((first . rest)
157 (map cadadr first))))
158 (define (listify items)
159 (match items
160 ((one) one)
161 ((one two)
162 (string-append one " and " two))
163 ((one two . more)
164 (string-append (string-join (drop-right items 1) ", ")
165 ", and " (first (take-right items 1))))))
166 (define variable-name
167 (second old))
168 (define version
169 (and=> ((sxpath '(// version *any*)) new)
170 first))
171 (format port
172 "gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
173 variable-name version file-name variable-name version)
174 (for-each (lambda (field)
175 (let ((old-values (get-values old field))
176 (new-values (get-values new field)))
177 (or (equal? old-values new-values)
178 (let ((removed (lset-difference eq? old-values new-values))
179 (added (lset-difference eq? new-values old-values)))
180 (format port
181 "[~a]: ~a~%" field
182 (match (list (map symbol->string removed)
183 (map symbol->string added))
184 ((() added)
185 (format #f "Add ~a."
186 (listify added)))
187 ((removed ())
188 (format #f "Remove ~a."
189 (listify removed)))
190 ((removed added)
191 (format #f "Remove ~a; add ~a."
192 (listify removed)
193 (listify added)))))))))
194 '(inputs propagated-inputs native-inputs)))
195
196(define (group-hunks-by-sexp hunks)
197 "Return a list of pairs associating all hunks with the S-expression they are
198modifying."
199 (fold (lambda (sexp hunk acc)
200 (match acc
201 (((previous-sexp . hunks) . rest)
202 (if (equal? sexp previous-sexp)
203 (cons (cons previous-sexp
204 (cons hunk hunks))
205 rest)
206 (cons (cons sexp (list hunk))
207 acc)))
208 (_
209 (cons (cons sexp (list hunk))
210 acc))))
211 '()
212 (map new-sexp hunks)
213 hunks))
214
215(define (new+old+hunks hunks)
216 (map (match-lambda
217 ((new . hunks)
218 (cons* new (old-sexp (first hunks)) hunks)))
219 (group-hunks-by-sexp hunks)))
220
221(define (main . args)
222 (match (diff-info)
223 (()
224 (display "Nothing to be done." (current-error-port)))
225 (hunks
226 (for-each (match-lambda
227 ((new old . hunks)
228 (for-each (lambda (hunk)
229 (let ((port (open-pipe* OPEN_WRITE
230 "git" "apply"
231 "--cached"
232 "--unidiff-zero")))
233 (hunk->patch hunk port)
234 (unless (eqv? 0 (status:exit-val (close-pipe port)))
235 (error "Cannot apply")))
236 (sleep 1))
237 hunks)
238 (commit-message (hunk-file-name (first hunks))
239 old new
240 (current-output-port))
241 (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
242 (commit-message (hunk-file-name (first hunks))
243 old new
244 port)
245 (sleep 1)
246 (unless (eqv? 0 (status:exit-val (close-pipe port)))
247 (error "Cannot commit")))))
248 (new+old+hunks hunks)))))
249
250(main)
diff --git a/etc/news.scm b/etc/news.scm
index 6bf88cc..62ec68b 100644
--- a/etc/news.scm
+++ b/etc/news.scm
@@ -13,6 +13,80 @@
13(channel-news 13(channel-news
14 (version 0) 14 (version 0)
15 15
16 (entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835")
17 (title (en "@command{guix pull} authenticates channels")
18 (de "@command{guix pull} authentifiziert Kanäle")
19 (fr "@command{guix pull} authentifie les canaux"))
20 (body
21 (en "The @command{guix pull} and @command{guix time-machine} commands
22now authenticate the source code that they pull, unless the new
23@option{--disable-authentication} option is passed. What this means is that
24Guix ensures that each commit received is cryptographically signed by an
25authorized developer. This protects you from attempts to tamper with the Guix
26repository and from attempts to ship malicious code to users.
27
28This feature is currently limited to the @code{guix} channel but will soon be
29available to third-party channel authors.")
30 (de "Die Befehle @command{guix pull} und @command{guix time-machine}
31prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die
32neue Befehlszeilenoption @option{--disable-authentication} angegeben
33wurde. Das bedeutet, Guix stellt sicher, dass jeder empfangene Commit durch
34einen autorisierten Entwickler kryptografisch signiert wurde. Das schützt Sie
35vor Versuchen, das Guix-Repository zu manipulieren oder bösartigen Code an die
36Nutzer auszuliefern.
37
38Diese Funktionalität ist auf den @code{guix}-Kanal beschränkt, sie wird jedoch
39bald auch Autoren dritter Kanäle zur Verfügung stehen.")
40 (fr "Les commandes @command{guix pull} et @command{guix time-machine}
41authentifient dorénavant le code source qu'elles obtiennent, à moins que la
42nouvelle option @option{--disable-authentication} soit utilisée. Cela
43signifie que Guix s'assure que chaque soumission (@i{commit}) récupéré dispose
44d'une signature cryptographique par un·e développeur·euse autorisé·e. Cela te
45protège de tentatives de modifications du dépôt Guix et de tentatives de
46livrer du code malintentionné.
47
48Cette fonctionnalité n'est actuellement disponible que pour le canal
49@code{guix} mais le sera bientôt pour les canaux tiers.")))
50
51 (entry (commit "c924e541390f9595d819edc33c19d979917c15ec")
52 (title (en "@command{guix repl} adds support for running Guile scripts")
53 (de "@command{guix repl} kann Guile-Skripte ausführen")
54 (fr "@command{guix repl} permet d'exécuter des scripts en langage Guile"))
55 (body
56 (en "The @command{guix repl} command can now be used to run
57Guile scripts. Compared to just launching the @command{guile} command,
58@command{guix repl} guarantees that all the Guix modules and all its
59dependencies are available in the search path. Scripts are run like this:
60
61@example
62guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
63@end example
64
65Run @command{info \"(guix) Invoking guix repl\"} for more information.")
66 (de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von
67Guile-Skripten verwendet werden. Im Vergleich zum Befehl
68@command{guile} garantiert @command{guix repl}, dass alle Guix-Module und
69alle seine Abhängigkeiten im Suchpfad verfügbar sind. Skripte werden wie
70folgt ausgeführt:
71
72@example
73guix repl -- my-script,scm --option1 --option2 --option2=option-arg arg1 arg2
74@end example
75
76Weitere Informationen erhalten Sie mit
77@command{info \"(guix.de) Aufruf von guix repl\"}.")
78 (fr "La commande @command{guix repl} peut maintenant être utilisée
79pour exécuter des scripts en langage Guile. Par rapport au simple lancement
80de la commande @command{guile}, @command{guix repl} garantit que tous les
81modules Guix et toutes ses dépendances sont disponibles dans le chemin
82de recherche. Les scripts sont exécutés comme ceci :
83
84@example
85guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
86@end example
87
88Exécutez @command{info \"(guix.fr) Invoquer guix repl\"} pour plus d'informations.")))
89
16 (entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b") 90 (entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b")
17 (title (en "Add support to boot from a Btrfs subvolume") 91 (title (en "Add support to boot from a Btrfs subvolume")
18 (de "Unterstützung für Systemstart von einem 92 (de "Unterstützung für Systemstart von einem
diff --git a/gnu/build/hurd-boot.scm b/gnu/build/hurd-boot.scm
index 0932623..aea2ac3 100644
--- a/gnu/build/hurd-boot.scm
+++ b/gnu/build/hurd-boot.scm
@@ -80,16 +80,8 @@ Return the value associated with OPTION, or #f on failure."
80 (string-append root (if (string-suffix? "/" root) "" "/") dir)) 80 (string-append root (if (string-suffix? "/" root) "" "/") dir))
81 81
82 (mkdir (scope "dev")) 82 (mkdir (scope "dev"))
83 (for-each (lambda (file) 83 ;; Don't create /dev/null etc just yet; the store
84 (call-with-output-file (scope file) 84 ;; messes-up the permission bits.
85 (lambda (port)
86 (display file port) ;avoid hard-linking
87 (chmod port #o666))))
88 '("dev/null"
89 "dev/zero"
90 "dev/full"
91 "dev/random"
92 "dev/urandom"))
93 ;; Don't create /dev/console, /dev/vcs, etc.: they are created by 85 ;; Don't create /dev/console, /dev/vcs, etc.: they are created by
94 ;; console-run on first boot. 86 ;; console-run on first boot.
95 87
@@ -115,6 +107,143 @@ Return the value associated with OPTION, or #f on failure."
115 ;; settings? 107 ;; settings?
116 ) 108 )
117 109
110(define (passive-translator-xattr? file-name)
111 "Return true if FILE-NAME has an extended @code{gnu.translator} attribute
112set."
113 (catch 'system-error
114 (lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
115 (lambda args
116 (if (= ENODATA (system-error-errno args))
117 #f
118 (apply throw args)))))
119
120(define (passive-translator-installed? file-name)
121 "Return true if @file{showtrans} finds a translator installed on FILE-NAME."
122 (with-output-to-port (%make-void-port "w")
123 (lambda _
124 (with-error-to-port (%make-void-port "w")
125 (lambda _
126 (zero? (system* "showtrans" "--silent" file-name)))))))
127
128(define (translated? file-name)
129 "Return true if a translator is installed on FILE-NAME."
130 (if (string-contains %host-type "linux-gnu")
131 (passive-translator-xattr? file-name)
132 (passive-translator-installed? file-name)))
133
134(define* (set-translator file-name command #:optional (mode #o600))
135 "Setup translator COMMAND on FILE-NAME."
136 (unless (translated? file-name)
137 (let ((dir (dirname file-name)))
138 (unless (directory-exists? dir)
139 (mkdir-p dir))
140 (unless (file-exists? file-name)
141 (call-with-output-file file-name
142 (lambda (port)
143 (display file-name port) ;avoid hard-linking
144 (chmod port mode)))))
145 (catch 'system-error
146 (lambda _
147 (setxattr file-name "gnu.translator" (string-join command "\0" 'suffix)))
148 (lambda (key . args)
149 (let ((errno (system-error-errno (cons key args))))
150 (format (current-error-port) "~a: ~a\n"
151 (strerror errno) file-name)
152 (format (current-error-port) "Ignoring...Good Luck!\n"))))))
153
154(define-syntax-rule (false-if-EEXIST exp)
155 "Evaluate EXP but return #f if it raises to 'system-error with EEXIST."
156 (catch 'system-error
157 (lambda () exp)
158 (lambda args
159 (if (= EEXIST (system-error-errno args))
160 #f
161 (apply throw args)))))
162
163(define* (set-hurd-device-translators #:optional (root "/"))
164 "Make some of the device nodes needed on GNU/Hurd."
165
166 (define (scope dir)
167 (string-append root (if (string-suffix? "/" root) "" "/") dir))
168
169 (define scope-set-translator
170 (match-lambda
171 ((file-name command)
172 (scope-set-translator (list file-name command #o600)))
173 ((file-name command mode)
174 (let ((mount-point (scope file-name)))
175 (set-translator mount-point command mode)))))
176
177 (define (mkdir* dir)
178 (let ((dir (scope dir)))
179 (unless (file-exists? dir)
180 (mkdir-p dir))))
181
182 (define servers
183 '(("servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
184 ("servers/crash-kill" ("/hurd/crash" "--kill"))
185 ("servers/crash-suspend" ("/hurd/crash" "--suspend"))
186 ("servers/password" ("/hurd/password"))
187 ("servers/socket/1" ("/hurd/pflocal"))
188 ("servers/socket/2" ("/hurd/pfinet"
189 "--interface" "eth0"
190 "--address"
191 "10.0.2.15" ;the default QEMU guest IP
192 "--netmask" "255.255.255.0"
193 "--gateway" "10.0.2.2"
194 "--ipv6" "/servers/socket/16"))))
195
196 (define devices
197 '(("dev/full" ("/hurd/null" "--full") #o666)
198 ("dev/null" ("/hurd/null") #o666)
199 ("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed")
200 #o644)
201 ("dev/zero" ("/hurd/storeio" "--store-type=zero") #o666)
202
203 ("dev/console" ("/hurd/term" "/dev/console" "device" "console"))
204
205 ("dev/klog" ("/hurd/streamio" "kmsg"))
206 ("dev/mem" ("/hurd/storeio" "--no-cache" "mem") #o660)
207 ("dev/shm" ("/hurd/tmpfs" "--mode=1777" "50%") #o644)
208 ("dev/time" ("/hurd/storeio" "--no-cache" "time") #o644)
209
210 ("dev/vcs" ("/hurd/console"))
211 ("dev/tty" ("/hurd/magic" "tty") #o666)
212
213 ("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
214 #o666)
215 ("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
216 #o666)
217 ("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console")
218 #o666)
219
220 ("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0")
221 #o666)
222 ("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1")
223 #o666)
224 ("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2")
225 #o666)
226
227 ("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0")
228 #o666)
229 ("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1")
230 #o666)
231 ("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2")
232 #o666)))
233
234 (for-each scope-set-translator servers)
235 (mkdir* (scope "dev/vcs/1"))
236 (mkdir* (scope "dev/vcs/2"))
237 (mkdir* (scope "dev/vcs/2"))
238 (rename-file (scope "/dev/console") (scope "/dev/console-"))
239 (for-each scope-set-translator devices)
240
241 (false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
242 (mkdir* (scope "dev/fd"))
243 (false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
244 (false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
245 (false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr"))))
246
118 247
119(define* (boot-hurd-system #:key (on-error 'debug)) 248(define* (boot-hurd-system #:key (on-error 'debug))
120 "This procedure is meant to be called from an early RC script. 249 "This procedure is meant to be called from an early RC script.
@@ -126,20 +255,9 @@ starting the Shepherd.
126XXX TODO: see linux-boot.scm:boot-system. 255XXX TODO: see linux-boot.scm:boot-system.
127XXX TODO: add proper file-system checking, mounting 256XXX TODO: add proper file-system checking, mounting
128XXX TODO: move bits to (new?) (hurd?) (activation?) services 257XXX TODO: move bits to (new?) (hurd?) (activation?) services
129XXX TODO: use settrans/setxattr instead of MAKEDEV 258XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
130 259
131" 260"
132 (define translators
133 '(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
134 ("/servers/crash-kill" ("/hurd/crash" "--kill"))
135 ("/servers/crash-suspend" ("/hurd/crash" "--suspend"))
136 ("/servers/password" ("/hurd/password"))
137 ("/servers/socket/1" ("/hurd/pflocal"))
138 ("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0"
139 "--address" "10.0.2.15" ;the default QEMU guest IP
140 "--netmask" "255.255.255.0"
141 "--gateway" "10.0.2.2"
142 "--ipv6" "/servers/socket/16"))))
143 261
144 (display "Welcome, this is GNU's early boot Guile.\n") 262 (display "Welcome, this is GNU's early boot Guile.\n")
145 (display "Use '--repl' for an initrd REPL.\n\n") 263 (display "Use '--repl' for an initrd REPL.\n\n")
@@ -147,35 +265,13 @@ XXX TODO: use settrans/setxattr instead of MAKEDEV
147 (call-with-error-handling 265 (call-with-error-handling
148 (lambda () 266 (lambda ()
149 267
150 (define (translated? node)
151 ;; Return true if a translator is installed on NODE.
152 (with-output-to-port (%make-void-port "w")
153 (lambda ()
154 (with-error-to-port (%make-void-port "w")
155 (lambda ()
156 (zero? (system* "showtrans" "--silent" node)))))))
157
158 (let* ((args (command-line)) 268 (let* ((args (command-line))
159 (system (find-long-option "--system" args)) 269 (system (find-long-option "--system" args))
160 (to-load (find-long-option "--load" args))) 270 (to-load (find-long-option "--load" args)))
161 271
162 (format #t "Creating essential servers...\n") 272 (format #t "Setting-up essential translators...\n")
163 (setenv "PATH" (string-append system "/profile/bin" 273 (setenv "PATH" (string-append system "/profile/bin"))
164 ":" system "/profile/sbin")) 274 (set-hurd-device-translators)
165 (for-each (match-lambda
166 ((node command)
167 (unless (translated? node)
168 (mkdir-p (dirname node))
169 (apply invoke "settrans" "--create" node command))))
170 translators)
171
172 (format #t "Creating essential device nodes...\n")
173 (with-directory-excursion "/dev"
174 (invoke "MAKEDEV" "--devdir=/dev" "std")
175 (invoke "MAKEDEV" "--devdir=/dev" "vcs")
176 (invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6")
177 (invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2")
178 (invoke "MAKEDEV" "--devdir=/dev" "console"))
179 275
180 (false-if-exception (delete-file "/hurd")) 276 (false-if-exception (delete-file "/hurd"))
181 (let ((hurd/hurd (readlink* (string-append system "/profile/hurd")))) 277 (let ((hurd/hurd (readlink* (string-append system "/profile/hurd"))))
diff --git a/gnu/build/image.scm b/gnu/build/image.scm
index 893b846..e8df586 100644
--- a/gnu/build/image.scm
+++ b/gnu/build/image.scm
@@ -137,12 +137,13 @@ produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
137true, reset timestamps on store files and, if DEDUPLICATE? is true, 137true, reset timestamps on store files and, if DEDUPLICATE? is true,
138deduplicates files common to CLOSURE and the rest of PREFIX." 138deduplicates files common to CLOSURE and the rest of PREFIX."
139 (let ((items (call-with-input-file closure read-reference-graph))) 139 (let ((items (call-with-input-file closure read-reference-graph)))
140 (register-items items 140 (parameterize ((sql-schema schema))
141 #:prefix prefix 141 (with-database (store-database-file #:prefix prefix) db
142 #:deduplicate? deduplicate? 142 (register-items db items
143 #:reset-timestamps? reset-timestamps? 143 #:prefix prefix
144 #:registration-time %epoch 144 #:deduplicate? deduplicate?
145 #:schema schema))) 145 #:reset-timestamps? reset-timestamps?
146 #:registration-time %epoch)))))
146 147
147(define* (initialize-efi-partition root 148(define* (initialize-efi-partition root
148 #:key 149 #:key
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm
index 0f0ceae..287d099 100644
--- a/gnu/build/vm.scm
+++ b/gnu/build/vm.scm
@@ -223,12 +223,13 @@ produced by #:references-graphs.. As a side effect, if RESET-TIMESTAMPS? is
223true, reset timestamps on store files and, if DEDUPLICATE? is true, 223true, reset timestamps on store files and, if DEDUPLICATE? is true,
224deduplicates files common to CLOSURE and the rest of PREFIX." 224deduplicates files common to CLOSURE and the rest of PREFIX."
225 (let ((items (call-with-input-file closure read-reference-graph))) 225 (let ((items (call-with-input-file closure read-reference-graph)))
226 (register-items items 226 (parameterize ((sql-schema schema))
227 #:prefix prefix 227 (with-database (store-database-file #:prefix prefix) db
228 #:deduplicate? deduplicate? 228 (register-items db items
229 #:reset-timestamps? reset-timestamps? 229 #:prefix prefix
230 #:registration-time %epoch 230 #:deduplicate? deduplicate?
231 #:schema schema))) 231 #:reset-timestamps? reset-timestamps?
232 #:registration-time %epoch)))))
232 233
233 234
234;;; 235;;;
diff --git a/gnu/installer/final.scm b/gnu/installer/final.scm
index a742c2a..685aa81 100644
--- a/gnu/installer/final.scm
+++ b/gnu/installer/final.scm
@@ -137,12 +137,6 @@ USERS."
137 "Remove the store overlay and the bind-mount on /tmp created by the 137 "Remove the store overlay and the bind-mount on /tmp created by the
138cow-store service. This procedure is very fragile and a better approach would 138cow-store service. This procedure is very fragile and a better approach would
139be much appreciated." 139be much appreciated."
140
141 ;; Remove when integrated in (gnu services herd).
142 (define (restart-service name)
143 (with-shepherd-action name ('restart) result
144 result))
145
146 (catch #t 140 (catch #t
147 (lambda () 141 (lambda ()
148 (let ((tmp-dir "/remove")) 142 (let ((tmp-dir "/remove"))
diff --git a/gnu/installer/newt/final.scm b/gnu/installer/newt/final.scm
index 5cb4f68..fa8d6fe 100644
--- a/gnu/installer/newt/final.scm
+++ b/gnu/installer/newt/final.scm
@@ -25,6 +25,7 @@
25 #:use-module (gnu installer newt page) 25 #:use-module (gnu installer newt page)
26 #:use-module (gnu installer newt utils) 26 #:use-module (gnu installer newt utils)
27 #:use-module (guix i18n) 27 #:use-module (guix i18n)
28 #:use-module (guix colors)
28 #:use-module (srfi srfi-34) 29 #:use-module (srfi srfi-34)
29 #:use-module (srfi srfi-35) 30 #:use-module (srfi srfi-35)
30 #:use-module (ice-9 match) 31 #:use-module (ice-9 match)
@@ -101,6 +102,13 @@ a specific step, or restart the installer."))
101 #:key (users '())) 102 #:key (users '()))
102 (clear-screen) 103 (clear-screen)
103 (newt-suspend) 104 (newt-suspend)
105 ;; XXX: Force loading 'bold' font files before mouting the
106 ;; cow-store. Otherwise, if the file is loaded by kmscon after the cow-store
107 ;; in mounted, it will be necessary to kill kmscon to umount to cow-store.
108 (display
109 (colorize-string
110 (format #f (G_ "Installing Guix System ...~%"))
111 (color BOLD)))
104 (let ((install-ok? (install-system locale #:users users))) 112 (let ((install-ok? (install-system locale #:users users)))
105 (newt-resume) 113 (newt-resume)
106 install-ok?)) 114 install-ok?))
diff --git a/gnu/local.mk b/gnu/local.mk
index c6e6609..5a57e60 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -35,6 +35,7 @@
35# Copyright © 2020 Ryan Prior <rprior@protonmail.com> 35# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
36# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl> 36# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
37# Copyright © 2020 Brice Waegeneire <brice@waegenei.re> 37# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
38# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
38# 39#
39# This file is part of GNU Guix. 40# This file is part of GNU Guix.
40# 41#
@@ -133,6 +134,7 @@ GNU_SYSTEM_MODULES = \
133 %D%/packages/compton.scm \ 134 %D%/packages/compton.scm \
134 %D%/packages/conky.scm \ 135 %D%/packages/conky.scm \
135 %D%/packages/connman.scm \ 136 %D%/packages/connman.scm \
137 %D%/packages/convmv.scm \
136 %D%/packages/cook.scm \ 138 %D%/packages/cook.scm \
137 %D%/packages/coq.scm \ 139 %D%/packages/coq.scm \
138 %D%/packages/cpio.scm \ 140 %D%/packages/cpio.scm \
@@ -891,6 +893,7 @@ dist_patch_DATA = \
891 %D%/packages/patches/emacs-fix-scheme-indent-function.patch \ 893 %D%/packages/patches/emacs-fix-scheme-indent-function.patch \
892 %D%/packages/patches/emacs-json-reformat-fix-tests.patch \ 894 %D%/packages/patches/emacs-json-reformat-fix-tests.patch \
893 %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ 895 %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
896 %D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \
894 %D%/packages/patches/emacs-libgit-use-system-libgit2.patch \ 897 %D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
895 %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ 898 %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
896 %D%/packages/patches/emacs-source-date-epoch.patch \ 899 %D%/packages/patches/emacs-source-date-epoch.patch \
@@ -917,7 +920,6 @@ dist_patch_DATA = \
917 %D%/packages/patches/fasthenry-spSolve.patch \ 920 %D%/packages/patches/fasthenry-spSolve.patch \
918 %D%/packages/patches/fasthenry-spFactor.patch \ 921 %D%/packages/patches/fasthenry-spFactor.patch \
919 %D%/packages/patches/fbreader-curl-7.62.patch \ 922 %D%/packages/patches/fbreader-curl-7.62.patch \
920 %D%/packages/patches/ffmpeg-prefer-dav1d.patch \
921 %D%/packages/patches/fifengine-swig-compat.patch \ 923 %D%/packages/patches/fifengine-swig-compat.patch \
922 %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ 924 %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
923 %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ 925 %D%/packages/patches/fifo-map-remove-catch.hpp.patch \
@@ -1103,6 +1105,7 @@ dist_patch_DATA = \
1103 %D%/packages/patches/inetutils-hurd.patch \ 1105 %D%/packages/patches/inetutils-hurd.patch \
1104 %D%/packages/patches/inkscape-poppler-0.76.patch \ 1106 %D%/packages/patches/inkscape-poppler-0.76.patch \
1105 %D%/packages/patches/intltool-perl-compatibility.patch \ 1107 %D%/packages/patches/intltool-perl-compatibility.patch \
1108 %D%/packages/patches/iputils-libcap-compat.patch \
1106 %D%/packages/patches/irrlicht-use-system-libs.patch \ 1109 %D%/packages/patches/irrlicht-use-system-libs.patch \
1107 %D%/packages/patches/isl-0.11.1-aarch64-support.patch \ 1110 %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
1108 %D%/packages/patches/jacal-fix-texinfo.patch \ 1111 %D%/packages/patches/jacal-fix-texinfo.patch \
@@ -1160,8 +1163,7 @@ dist_patch_DATA = \
1160 %D%/packages/patches/leela-zero-gtest.patch \ 1163 %D%/packages/patches/leela-zero-gtest.patch \
1161 %D%/packages/patches/less-hurd-path-max.patch \ 1164 %D%/packages/patches/less-hurd-path-max.patch \
1162 %D%/packages/patches/lib2geom-enable-assertions.patch \ 1165 %D%/packages/patches/lib2geom-enable-assertions.patch \
1163 %D%/packages/patches/lib2geom-link-tests-against-glib.patch \ 1166 %D%/packages/patches/lib2geom-fix-tests.patch \
1164 %D%/packages/patches/lib2geom-use-system-googletest.patch \
1165 %D%/packages/patches/liba52-enable-pic.patch \ 1167 %D%/packages/patches/liba52-enable-pic.patch \
1166 %D%/packages/patches/liba52-link-with-libm.patch \ 1168 %D%/packages/patches/liba52-link-with-libm.patch \
1167 %D%/packages/patches/liba52-set-soname.patch \ 1169 %D%/packages/patches/liba52-set-soname.patch \
@@ -1425,6 +1427,7 @@ dist_patch_DATA = \
1425 %D%/packages/patches/python-flint-includes.patch \ 1427 %D%/packages/patches/python-flint-includes.patch \
1426 %D%/packages/patches/python-jedi-sort-project-test.patch \ 1428 %D%/packages/patches/python-jedi-sort-project-test.patch \
1427 %D%/packages/patches/python-libxml2-utf8.patch \ 1429 %D%/packages/patches/python-libxml2-utf8.patch \
1430 %D%/packages/patches/python-memcached-syntax-warnings.patch \
1428 %D%/packages/patches/python-mox3-python3.6-compat.patch \ 1431 %D%/packages/patches/python-mox3-python3.6-compat.patch \
1429 %D%/packages/patches/python-testtools.patch \ 1432 %D%/packages/patches/python-testtools.patch \
1430 %D%/packages/patches/python-packaging-test-arch.patch \ 1433 %D%/packages/patches/python-packaging-test-arch.patch \
@@ -1449,6 +1452,7 @@ dist_patch_DATA = \
1449 %D%/packages/patches/qtbase-use-TZDIR.patch \ 1452 %D%/packages/patches/qtbase-use-TZDIR.patch \
1450 %D%/packages/patches/qtscript-disable-tests.patch \ 1453 %D%/packages/patches/qtscript-disable-tests.patch \
1451 %D%/packages/patches/quagga-reproducible-build.patch \ 1454 %D%/packages/patches/quagga-reproducible-build.patch \
1455 %D%/packages/patches/quassel-qt-514-compat.patch \
1452 %D%/packages/patches/quickswitch-fix-dmenu-check.patch \ 1456 %D%/packages/patches/quickswitch-fix-dmenu-check.patch \
1453 %D%/packages/patches/qtwebkit-pbutils-include.patch \ 1457 %D%/packages/patches/qtwebkit-pbutils-include.patch \
1454 %D%/packages/patches/randomjungle-disable-static-build.patch \ 1458 %D%/packages/patches/randomjungle-disable-static-build.patch \
@@ -1540,6 +1544,7 @@ dist_patch_DATA = \
1540 %D%/packages/patches/ttf2eot-cstddef.patch \ 1544 %D%/packages/patches/ttf2eot-cstddef.patch \
1541 %D%/packages/patches/ttfautohint-source-date-epoch.patch \ 1545 %D%/packages/patches/ttfautohint-source-date-epoch.patch \
1542 %D%/packages/patches/tomb-fix-errors-on-open.patch \ 1546 %D%/packages/patches/tomb-fix-errors-on-open.patch \
1547 %D%/packages/patches/tup-unbundle-dependencies.patch \
1543 %D%/packages/patches/tuxpaint-stamps-path.patch \ 1548 %D%/packages/patches/tuxpaint-stamps-path.patch \
1544 %D%/packages/patches/twinkle-bcg729.patch \ 1549 %D%/packages/patches/twinkle-bcg729.patch \
1545 %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \ 1550 %D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
@@ -1605,9 +1610,6 @@ dist_patch_DATA = \
1605 %D%/packages/patches/xf86-video-voodoo-pcitag.patch \ 1610 %D%/packages/patches/xf86-video-voodoo-pcitag.patch \
1606 %D%/packages/patches/xfce4-panel-plugins.patch \ 1611 %D%/packages/patches/xfce4-panel-plugins.patch \
1607 %D%/packages/patches/xfce4-settings-defaults.patch \ 1612 %D%/packages/patches/xfce4-settings-defaults.patch \
1608 %D%/packages/patches/xmoto-utf8.patch \
1609 %D%/packages/patches/xmoto-remove-glext.patch \
1610 %D%/packages/patches/xmoto-reproducible.patch \
1611 %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \ 1613 %D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
1612 %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ 1614 %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
1613 %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ 1615 %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
diff --git a/gnu/machine/ssh.scm b/gnu/machine/ssh.scm
index 116da86..7194181 100644
--- a/gnu/machine/ssh.scm
+++ b/gnu/machine/ssh.scm
@@ -210,10 +210,9 @@ exist on the machine."
210 (use-modules (gnu build file-systems) 210 (use-modules (gnu build file-systems)
211 (gnu system uuid)) 211 (gnu system uuid))
212 212
213 (define uuid 213 (let ((uuid (uuid #$(uuid->string (file-system-device fs))
214 (string->uuid #$(uuid->string (file-system-device fs)))) 214 '#$(uuid-type (file-system-device fs)))))
215 215 (find-partition-by-uuid uuid)))))
216 (find-partition-by-uuid uuid))))
217 216
218 (remote-let ((result remote-exp)) 217 (remote-let ((result remote-exp))
219 (unless result 218 (unless result
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index d348645..de2f653 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -1364,7 +1364,7 @@ system administrator.")
1364(define-public sudo 1364(define-public sudo
1365 (package 1365 (package
1366 (name "sudo") 1366 (name "sudo")
1367 (version "1.9.0") 1367 (version "1.9.1")
1368 (source (origin 1368 (source (origin
1369 (method url-fetch) 1369 (method url-fetch)
1370 (uri 1370 (uri
@@ -1374,7 +1374,7 @@ system administrator.")
1374 version ".tar.gz"))) 1374 version ".tar.gz")))
1375 (sha256 1375 (sha256
1376 (base32 1376 (base32
1377 "0p7r3cl16pjwbc48ff1gbhjw51lngrghvwblxz5lxpyzqlwi88xb")) 1377 "1zxd6hxwhxqrm876wsn9bfajbfc4hc6l9ivzj5rjg80hzv71ch99"))
1378 (modules '((guix build utils))) 1378 (modules '((guix build utils)))
1379 (snippet 1379 (snippet
1380 '(begin 1380 '(begin
@@ -3472,7 +3472,7 @@ Python loading in HPC environments.")
3472 (let ((real-name "inxi")) 3472 (let ((real-name "inxi"))
3473 (package 3473 (package
3474 (name "inxi-minimal") 3474 (name "inxi-minimal")
3475 (version "3.1.01-1") 3475 (version "3.1.03-1")
3476 (source 3476 (source
3477 (origin 3477 (origin
3478 (method git-fetch) 3478 (method git-fetch)
@@ -3481,7 +3481,7 @@ Python loading in HPC environments.")
3481 (commit version))) 3481 (commit version)))
3482 (file-name (git-file-name real-name version)) 3482 (file-name (git-file-name real-name version))
3483 (sha256 3483 (sha256
3484 (base32 "0r204w0r06ibdr4dck7yw2nmvj7xq68bjr7xwwiy7liqdml0n0yc")))) 3484 (base32 "0539hvlq021wxhbwzdp7qliiq1jgw60mxlwrwx0z2x8qi1zqdzg6"))))
3485 (build-system trivial-build-system) 3485 (build-system trivial-build-system)
3486 (inputs 3486 (inputs
3487 `(("bash" ,bash-minimal) 3487 `(("bash" ,bash-minimal)
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index a9f3459..74ef711 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -2344,7 +2344,29 @@ background file post-processing.")
2344 (file-name (git-file-name name version)) 2344 (file-name (git-file-name name version))
2345 (sha256 2345 (sha256
2346 (base32 2346 (base32
2347 "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp")))) 2347 "02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
2348 (modules '((guix build utils)
2349 (ice-9 ftw)))
2350 (snippet
2351 ;; The build system doesn't allow us to unbundle the following
2352 ;; libraries. hidapi is also heavily patched and upstream not
2353 ;; actively maintained.
2354 '(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
2355 "TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
2356 (with-directory-excursion "./external_libraries"
2357 (for-each
2358 delete-file-recursively
2359 (scandir "."
2360 (lambda (x)
2361 (and (eq? (stat:type (stat x)) 'directory)
2362 (not (member (basename x) keep-dirs)))))))
2363 ;; To find the Guix provided ableton-link library.
2364 (substitute* "lang/CMakeLists.txt"
2365 (("include\\(\\.\\./external_libraries/link/\
2366AbletonLinkConfig\\.cmake\\)")
2367 "find_package(AbletonLink NAMES AbletonLink ableton-link \
2368link REQUIRED)"))
2369 #t))))
2348 (build-system cmake-build-system) 2370 (build-system cmake-build-system)
2349 (outputs 2371 (outputs
2350 '("out" ;core language 2372 '("out" ;core language
@@ -2355,44 +2377,16 @@ background file post-processing.")
2355 "-DFORTIFY=ON" "-DLIBSCSYNTH=ON" 2377 "-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
2356 "-DSC_EL=off") ;scel is packaged individually as 2378 "-DSC_EL=off") ;scel is packaged individually as
2357 ;emacs-scel 2379 ;emacs-scel
2358 #:modules ((guix build utils)
2359 (guix build cmake-build-system)
2360 (ice-9 ftw))
2361 #:phases 2380 #:phases
2362 (modify-phases %standard-phases 2381 (modify-phases %standard-phases
2363 (add-after 'unpack 'rm-bundled-libs 2382 ;; HOME must be defined otherwise supercollider throws a "ERROR:
2383 ;; Primitive '_FileMkDir' failed." error when generating the doc.
2384 ;; The graphical tests also hang without it.
2385 (add-after 'unpack 'set-home-directory
2364 (lambda _ 2386 (lambda _
2365 ;; The build system doesn't allow us to unbundle the following 2387 (setenv "HOME" (getcwd))
2366 ;; libraries. hidapi is also heavily patched.
2367 (let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" "TLSF-2.4.6"
2368 "oscpack_1_1_0" "." "..")))
2369 (with-directory-excursion "./external_libraries"
2370 (for-each
2371 delete-file-recursively
2372 (scandir "."
2373 (lambda (x)
2374 (and (eq? (stat:type (stat x)) 'directory)
2375 (not (member (basename x) keep-dirs))))))))
2376 (substitute* "lang/CMakeLists.txt"
2377 (("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)")
2378 "find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)"))
2379 #t))
2380 ;; Some tests are broken (see:
2381 ;; https://github.com/supercollider/supercollider/issues/3555 and
2382 ;; https://github.com/supercollider/supercollider/issues/1736
2383 (add-after 'rm-bundled-libs 'disable-broken-tests
2384 (lambda _
2385 (substitute* "testsuite/server/supernova/CMakeLists.txt"
2386 (("server_test.cpp")
2387 "")
2388 (("perf_counter_test.cpp")
2389 ""))
2390 (substitute* "testsuite/CMakeLists.txt"
2391 (("add_subdirectory\\(sclang\\)")
2392 ""))
2393 (delete-file "testsuite/sclang/CMakeLists.txt")
2394 #t)) 2388 #t))
2395 (add-after 'disable-broken-tests 'patch-scclass-dir 2389 (add-after 'unpack 'patch-scclass-dir
2396 (lambda* (#:key outputs #:allow-other-keys) 2390 (lambda* (#:key outputs #:allow-other-keys)
2397 (let* ((out (assoc-ref outputs "out")) 2391 (let* ((out (assoc-ref outputs "out"))
2398 (scclass-dir 2392 (scclass-dir
@@ -2404,6 +2398,11 @@ background file post-processing.")
2404 "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME")) 2398 "\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
2405 (string-append "Path(\"" scclass-dir "\")"))) 2399 (string-append "Path(\"" scclass-dir "\")")))
2406 #t))) 2400 #t)))
2401 (add-before 'build 'prepare-x
2402 (lambda _
2403 (system "Xvfb &")
2404 (setenv "DISPLAY" ":0")
2405 #t))
2407 (add-before 'install 'install-ide 2406 (add-before 'install 'install-ide
2408 (lambda* (#:key outputs #:allow-other-keys) 2407 (lambda* (#:key outputs #:allow-other-keys)
2409 (let* ((out (assoc-ref outputs "out")) 2408 (let* ((out (assoc-ref outputs "out"))
@@ -2416,7 +2415,8 @@ background file post-processing.")
2416 (native-inputs 2415 (native-inputs
2417 `(("ableton-link" ,ableton-link) 2416 `(("ableton-link" ,ableton-link)
2418 ("pkg-config" ,pkg-config) 2417 ("pkg-config" ,pkg-config)
2419 ("qttools" ,qttools))) 2418 ("qttools" ,qttools)
2419 ("xorg-server" ,xorg-server-for-tests)))
2420 (inputs 2420 (inputs
2421 `(("jack" ,jack-1) 2421 `(("jack" ,jack-1)
2422 ("libsndfile" ,libsndfile) 2422 ("libsndfile" ,libsndfile)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 4b5f94b..e2c4408 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -357,10 +357,7 @@ used to apply commands with arbitrarily long arguments.")
357 (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl" 357 (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
358 " tests/misc/kill.sh" 358 " tests/misc/kill.sh"
359 " tests/misc/nice.sh" 359 " tests/misc/nice.sh"
360 " tests/misc/shred-passes.sh"
361 " tests/split/fail.sh" 360 " tests/split/fail.sh"
362 " tests/split/l-chunk.sh"
363 " tests/dd/stats.sh"
364 " test-fdutimensat" 361 " test-fdutimensat"
365 " test-futimens" 362 " test-futimens"
366 " test-linkat" 363 " test-linkat"
@@ -380,7 +377,15 @@ used to apply commands with arbitrarily long arguments.")
380 (("/bin/sh") (which "sh"))) 377 (("/bin/sh") (which "sh")))
381 (substitute* (find-files "tests" "\\.sh$") 378 (substitute* (find-files "tests" "\\.sh$")
382 (("#!/bin/sh") (string-append "#!" (which "sh")))) 379 (("#!/bin/sh") (string-append "#!" (which "sh"))))
383 #t))))) 380 #t))
381 ,@(if (hurd-target?)
382 `((add-after 'unpack 'remove-tests
383 (lambda _
384 (substitute* "Makefile.in"
385 ;; this test hangs
386 (("^ *tests/misc/timeout-group.sh.*") ""))
387 #t)))
388 '()))))
384 (synopsis "Core GNU utilities (file, text, shell)") 389 (synopsis "Core GNU utilities (file, text, shell)")
385 (description 390 (description
386 "GNU Coreutils package includes all of the basic command-line tools that 391 "GNU Coreutils package includes all of the basic command-line tools that
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index f60a918..95f8b16 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -7813,13 +7813,13 @@ coding changes and predict coding outcomes.")
7813(define-public r-limma 7813(define-public r-limma
7814 (package 7814 (package
7815 (name "r-limma") 7815 (name "r-limma")
7816 (version "3.44.1") 7816 (version "3.44.3")
7817 (source (origin 7817 (source (origin
7818 (method url-fetch) 7818 (method url-fetch)
7819 (uri (bioconductor-uri "limma" version)) 7819 (uri (bioconductor-uri "limma" version))
7820 (sha256 7820 (sha256
7821 (base32 7821 (base32
7822 "0l6f6lz1rghj8c5s14ljbnmsrwz27fi6a7g42n15n3d3msvflw36")))) 7822 "09fnqxx4rzq5n447aqg2l6y0idfwgz2jxz99sifxsr2q8afzbcj6"))))
7823 (build-system r-build-system) 7823 (build-system r-build-system)
7824 (home-page "http://bioinf.wehi.edu.au/limma") 7824 (home-page "http://bioinf.wehi.edu.au/limma")
7825 (synopsis "Package for linear models for microarray and RNA-seq data") 7825 (synopsis "Package for linear models for microarray and RNA-seq data")
diff --git a/gnu/packages/bison.scm b/gnu/packages/bison.scm
index b622ca1..2ffdf47 100644
--- a/gnu/packages/bison.scm
+++ b/gnu/packages/bison.scm
@@ -2,6 +2,7 @@
2;;; Copyright © 2012, 2013, 2015, 2019 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2012, 2013, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
3;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 3;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
4;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> 4;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
5;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
5;;; 6;;;
6;;; This file is part of GNU Guix. 7;;; This file is part of GNU Guix.
7;;; 8;;;
@@ -64,6 +65,17 @@ grammar. It is versatile enough to have many applications, from parsers for
64simple tools through complex programming languages.") 65simple tools through complex programming languages.")
65 (license gpl3+))) 66 (license gpl3+)))
66 67
68(define-public bison-3.6
69 (package
70 (inherit bison)
71 (version "3.6.3")
72 (source
73 (origin
74 (method url-fetch)
75 (uri (string-append "mirror://gnu/bison/bison-" version ".tar.xz"))
76 (sha256
77 (base32 "0gdpnjh6ra9xa9vj6hzjdf0c04x4pjyy8vssm3qdb7fya4v7knq6"))))))
78
67(define-public bison-3.0 79(define-public bison-3.0
68 (package 80 (package
69 (inherit bison) 81 (inherit bison)
diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm
index 8b041cb..52160b9 100644
--- a/gnu/packages/bittorrent.scm
+++ b/gnu/packages/bittorrent.scm
@@ -42,7 +42,6 @@
42 #:use-module (gnu packages crypto) 42 #:use-module (gnu packages crypto)
43 #:use-module (gnu packages curl) 43 #:use-module (gnu packages curl)
44 #:use-module (gnu packages cyrus-sasl) 44 #:use-module (gnu packages cyrus-sasl)
45 #:use-module (gnu packages file)
46 #:use-module (gnu packages freedesktop) 45 #:use-module (gnu packages freedesktop)
47 #:use-module (gnu packages glib) 46 #:use-module (gnu packages glib)
48 #:use-module (gnu packages gnome) 47 #:use-module (gnu packages gnome)
@@ -50,7 +49,6 @@
50 #:use-module (gnu packages gstreamer) 49 #:use-module (gnu packages gstreamer)
51 #:use-module (gnu packages gtk) 50 #:use-module (gnu packages gtk)
52 #:use-module (gnu packages libevent) 51 #:use-module (gnu packages libevent)
53 #:use-module (gnu packages linux)
54 #:use-module (gnu packages multiprecision) 52 #:use-module (gnu packages multiprecision)
55 #:use-module (gnu packages nettle) 53 #:use-module (gnu packages nettle)
56 #:use-module (gnu packages ncurses) 54 #:use-module (gnu packages ncurses)
@@ -104,12 +102,9 @@
104 '("applications" "icons" "pixmaps"))) 102 '("applications" "icons" "pixmaps")))
105 #t))))) 103 #t)))))
106 (inputs 104 (inputs
107 `(("inotify-tools" ,inotify-tools) 105 `(("libevent" ,libevent)
108 ("libevent" ,libevent)
109 ("curl" ,curl) 106 ("curl" ,curl)
110 ("cyrus-sasl" ,cyrus-sasl)
111 ("openssl" ,openssl) 107 ("openssl" ,openssl)
112 ("file" ,file)
113 ("zlib" ,zlib) 108 ("zlib" ,zlib)
114 ("gtk+" ,gtk+))) 109 ("gtk+" ,gtk+)))
115 (native-inputs 110 (native-inputs
@@ -131,7 +126,7 @@ DHT, µTP, PEX and Magnet Links.")
131 ;; or any future license endorsed by Mnemosyne LLC. 126 ;; or any future license endorsed by Mnemosyne LLC.
132 ;; 127 ;;
133 ;; A few files files carry an MIT/X11 license header. 128 ;; A few files files carry an MIT/X11 license header.
134 (license l:gpl3+))) 129 (license (list l:gpl2 l:gpl3))))
135 130
136(define-public libtorrent 131(define-public libtorrent
137 (package 132 (package
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 9ff32b2..11aee07 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -10,6 +10,7 @@
10;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de> 10;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
11;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at> 11;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
12;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org> 12;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
13;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
13;;; 14;;;
14;;; This file is part of GNU Guix. 15;;; This file is part of GNU Guix.
15;;; 16;;;
@@ -36,12 +37,16 @@
36 #:use-module (gnu packages) 37 #:use-module (gnu packages)
37 #:use-module (gnu packages check) 38 #:use-module (gnu packages check)
38 #:use-module (gnu packages compression) 39 #:use-module (gnu packages compression)
40 #:use-module (gnu packages linux)
39 #:use-module (gnu packages lua) 41 #:use-module (gnu packages lua)
40 #:use-module (gnu packages package-management) 42 #:use-module (gnu packages package-management)
43 #:use-module (gnu packages pcre)
44 #:use-module (gnu packages pkg-config)
41 #:use-module (gnu packages python) 45 #:use-module (gnu packages python)
42 #:use-module (gnu packages python-crypto) 46 #:use-module (gnu packages python-crypto)
43 #:use-module (gnu packages python-web) 47 #:use-module (gnu packages python-web)
44 #:use-module (gnu packages python-xyz) 48 #:use-module (gnu packages python-xyz)
49 #:use-module (gnu packages sqlite)
45 #:use-module (gnu packages ninja) 50 #:use-module (gnu packages ninja)
46 #:use-module (guix build-system gnu) 51 #:use-module (guix build-system gnu)
47 #:use-module (guix build-system python)) 52 #:use-module (guix build-system python))
@@ -276,6 +281,80 @@ other lower-level build files.")
276scripted definition of a software project and outputs @file{Makefile}s or 281scripted definition of a software project and outputs @file{Makefile}s or
277other lower-level build files."))) 282other lower-level build files.")))
278 283
284(define-public tup
285 (package
286 (name "tup")
287 (version "0.7.9")
288 (source (origin
289 (method url-fetch)
290 (uri (string-append "http://gittup.org/tup/releases/tup-v"
291 version ".tar.gz"))
292 (sha256
293 (base32
294 "0gnd2598xqgwihdkfkx7qn0q6p4n7npam1fy83mp7s04zwj99syc"))
295 (patches (search-patches "tup-unbundle-dependencies.patch"))
296 (modules '((guix build utils)))
297 (snippet
298 '(begin
299 ;; NOTE: Tup uses a slightly modified Lua, so it cannot be
300 ;; unbundled. See: src/lula/tup-lua.patch
301 (delete-file-recursively "src/pcre")
302 (delete-file-recursively "src/sqlite3")
303 #t))))
304 (build-system gnu-build-system)
305 (arguments
306 `(#:phases
307 (modify-phases %standard-phases
308 ;; There is a bootstrap script, but it doesn't do what you think - it
309 ;; builds tup.
310 (delete 'bootstrap)
311 (replace 'configure
312 (lambda _
313 (substitute* "src/tup/link.sh"
314 (("`git describe`") ,version))
315 (with-output-to-file "tup.config"
316 (lambda _
317 (format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y~%")))
318 #t))
319 (delete 'check)
320 (replace 'build
321 (lambda _
322 ;; Based on bootstrap-nofuse.sh, but with a detour to patch-shebang.
323 (invoke "./build.sh")
324 (invoke "./build/tup" "init")
325 (invoke "./build/tup" "generate" "--verbose" "build-nofuse.sh")
326 (patch-shebang "build-nofuse.sh")
327 (invoke "./build-nofuse.sh")))
328 (replace 'install
329 (lambda* (#:key outputs #:allow-other-keys)
330 (let* ((outdir (assoc-ref outputs "out"))
331 (ftdetect (string-append outdir
332 "/share/vim/vimfiles/ftdetect")))
333 (install-file "tup" (string-append outdir "/bin"))
334 (install-file "tup.1" (string-append outdir "/share/man/man1"))
335 (install-file "contrib/syntax/tup.vim"
336 (string-append outdir "/share/vim/vimfiles/syntax"))
337 (mkdir-p ftdetect)
338 (with-output-to-file (string-append ftdetect "/tup.vim")
339 (lambda _
340 (display "au BufNewFile,BufRead Tupfile,*.tup setf tup")))
341 #t))))))
342 (inputs
343 `(("fuse" ,fuse)
344 ("pcre" ,pcre)
345 ("pcre" ,pcre "bin") ; pcre-config
346 ("sqlite" ,sqlite)))
347 (native-inputs
348 `(("pkg-config" ,pkg-config)))
349 (home-page "http://gittup.org/tup/")
350 (synopsis "Fast build system that's hard to get wrong")
351 (description "Tup is a generic build system based on a directed acyclic
352graphs of commands to be executed. Tup instruments your build to detect the
353exact dependencies of the commands, allowing you to take advantage of ideal
354parallelism during incremental builds, and detecting any situations where
355a build worked by accident.")
356 (license license:gpl2)))
357
279(define-public osc 358(define-public osc
280 (package 359 (package
281 (name "osc") 360 (name "osc")
diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm
index 67236f8..ac8dd26 100644
--- a/gnu/packages/cdrom.scm
+++ b/gnu/packages/cdrom.scm
@@ -13,6 +13,7 @@
13;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> 13;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
14;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net> 14;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
15;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> 15;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
16;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
16;;; 17;;;
17;;; This file is part of GNU Guix. 18;;; This file is part of GNU Guix.
18;;; 19;;;
@@ -38,9 +39,11 @@
38 #:use-module (guix build-system gnu) 39 #:use-module (guix build-system gnu)
39 #:use-module (guix build-system glib-or-gtk) 40 #:use-module (guix build-system glib-or-gtk)
40 #:use-module (guix gexp) 41 #:use-module (guix gexp)
42 #:use-module (guix utils)
41 #:use-module (gnu packages) 43 #:use-module (gnu packages)
42 #:use-module (gnu packages acl) 44 #:use-module (gnu packages acl)
43 #:use-module (gnu packages audio) 45 #:use-module (gnu packages audio)
46 #:use-module (gnu packages autotools)
44 #:use-module (gnu packages bison) 47 #:use-module (gnu packages bison)
45 #:use-module (gnu packages compression) 48 #:use-module (gnu packages compression)
46 #:use-module (gnu packages flex) 49 #:use-module (gnu packages flex)
@@ -242,6 +245,54 @@ extra-robust data verification, synchronization, error handling and scratch
242reconstruction capability.") 245reconstruction capability.")
243 (license gpl2))) ; libraries under lgpl2.1 246 (license gpl2))) ; libraries under lgpl2.1
244 247
248(define-public cdrdao
249 (package
250 (name "cdrdao")
251 (version "1.2.4")
252 (source
253 (origin
254 (method git-fetch)
255 (uri (git-reference
256 (url "https://github.com/cdrdao/cdrdao.git")
257 (commit
258 (string-append "rel_" (string-replace-substring version "." "_")))))
259 (file-name (git-file-name name version))
260 (sha256
261 (base32 "1gcl8ibyylamy2d1piq3749nw3xrlp12r0spzp2gmni57b8a6b7j"))))
262 (build-system gnu-build-system)
263 (arguments
264 '(#:configure-flags
265 (list
266 ;; GCDMaster depends on obsolete libgnomeuimm, see
267 ;; <https://github.com/cdrdao/cdrdao/issues/3>.
268 "--without-gcdmaster"
269 ;; Use the native SCSI interface.
270 "--without-scglib")
271 #:phases
272 (modify-phases %standard-phases
273 (add-before 'bootstrap 'fix-configure.ac
274 (lambda _
275 ;; Remove reference to missing macro.
276 (substitute* "configure.ac" (("^AM_GCONF_SOURCE_2.*") ""))
277 #t)))))
278 (native-inputs
279 `(("autoconf" ,autoconf)
280 ("automake" ,automake)
281 ("pkg-config" ,pkg-config)))
282 (inputs
283 `(("ao" ,ao)
284 ("lame" ,lame)
285 ("libmad" ,libmad)
286 ("libvorbis" ,libvorbis)))
287 (home-page "http://cdrdao.sourceforge.net")
288 (synopsis "Read and write CDs in disk-at-once mode")
289 (description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
290based on a textual description of the contents. This mode writes the complete
291disc – lead-in, one or more tracks, and lead-out – in a single step and is
292commonly used with audio CDs. @code{cdrdao} can also handle the bin/cue
293format, commonly used for VCDs or disks with subchannel data.")
294 (license gpl2+)))
295
245(define-public cdrtools 296(define-public cdrtools
246 (package 297 (package
247 (name "cdrtools") 298 (name "cdrtools")
diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm
index 317136e..262396b 100644
--- a/gnu/packages/ci.scm
+++ b/gnu/packages/ci.scm
@@ -47,8 +47,8 @@
47 #:use-module (guix build-system gnu)) 47 #:use-module (guix build-system gnu))
48 48
49(define-public cuirass 49(define-public cuirass
50 (let ((commit "2280ae18eb25aa7034636c58bf288c9bd5a8fa3b") 50 (let ((commit "3db603c1913fe14d260a44b05575a2ead3866b47")
51 (revision "31")) 51 (revision "32"))
52 (package 52 (package
53 (name "cuirass") 53 (name "cuirass")
54 (version (git-version "0.0.1" revision commit)) 54 (version (git-version "0.0.1" revision commit))
@@ -60,7 +60,7 @@
60 (file-name (git-file-name name version)) 60 (file-name (git-file-name name version))
61 (sha256 61 (sha256
62 (base32 62 (base32
63 "1gbmpwgiwy740d936b052gfivzw52pgrny7j7lbl56wi9wnawkc9")))) 63 "1q69lgngsvpvcy6ww2a75wndjzymay5xaqmbj78znqmn7ck3fv44"))))
64 (build-system gnu-build-system) 64 (build-system gnu-build-system)
65 (arguments 65 (arguments
66 '(#:modules ((guix build utils) 66 '(#:modules ((guix build utils)
diff --git a/gnu/packages/convmv.scm b/gnu/packages/convmv.scm
new file mode 100644
index 0000000..2a9a4ec
--- /dev/null
+++ b/gnu/packages/convmv.scm
@@ -0,0 +1,60 @@
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages convmv)
20 #:use-module (gnu packages)
21 #:use-module (gnu packages perl)
22 #:use-module (guix licenses)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu))
26
27(define-public convmv
28 (package
29 (name "convmv")
30 (version "2.05")
31 (source (origin
32 (method url-fetch)
33 (uri (string-append "https://www.j3e.de/linux/convmv/convmv-"
34 version ".tar.gz"))
35 (sha256
36 (base32
37 "19hwv197p7c23f43vvav5bs19z9b72jzca2npkjsxgprwj5ardjk"))))
38 (build-system gnu-build-system)
39 (arguments
40 `(#:test-target "test"
41 #:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
42 #:phases
43 (modify-phases %standard-phases
44 (delete 'bootstrap)
45 (delete 'configure)
46 (add-before 'check 'unpack-testsuite
47 (lambda _
48 (invoke "tar" "xf" "testsuite.tar")
49 (patch-shebang "suite/dotests.sh")
50 (patch-shebang "suite/parsable_tester.pl")
51 #t)))))
52 (inputs
53 `(("perl" ,perl)))
54 (synopsis "Convert filenames between character sets")
55 (description
56 "convmv is a file renamer, that converts between different encodings,
57e.g. from ISO-8859-1 to UTF-8. It is particularly usefuls for files with
58names, that display incorrectly.")
59 (license (list gpl2 gpl3))
60 (home-page "https://www.j3e.de/")))
diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm
index bc391d9..f3c90b0 100644
--- a/gnu/packages/cran.scm
+++ b/gnu/packages/cran.scm
@@ -2131,14 +2131,14 @@ validation and filtering on the values, making options invisible or private.")
2131(define-public r-circlize 2131(define-public r-circlize
2132 (package 2132 (package
2133 (name "r-circlize") 2133 (name "r-circlize")
2134 (version "0.4.9") 2134 (version "0.4.10")
2135 (source 2135 (source
2136 (origin 2136 (origin
2137 (method url-fetch) 2137 (method url-fetch)
2138 (uri (cran-uri "circlize" version)) 2138 (uri (cran-uri "circlize" version))
2139 (sha256 2139 (sha256
2140 (base32 2140 (base32
2141 "14944vn0n5d095mpjyag4fz8vy04m6wxb6mmyygi8q813akikm3h")))) 2141 "1xb1jq3mg4kw1513zv1i09vhn7rj7f8vp0bnms2qml74s47wxsgk"))))
2142 (build-system r-build-system) 2142 (build-system r-build-system)
2143 (propagated-inputs 2143 (propagated-inputs
2144 `(("r-colorspace" ,r-colorspace) 2144 `(("r-colorspace" ,r-colorspace)
@@ -3839,18 +3839,20 @@ structure.")
3839(define-public r-vioplot 3839(define-public r-vioplot
3840 (package 3840 (package
3841 (name "r-vioplot") 3841 (name "r-vioplot")
3842 (version "0.3.4") 3842 (version "0.3.5")
3843 (source 3843 (source
3844 (origin 3844 (origin
3845 (method url-fetch) 3845 (method url-fetch)
3846 (uri (cran-uri "vioplot" version)) 3846 (uri (cran-uri "vioplot" version))
3847 (sha256 3847 (sha256
3848 (base32 3848 (base32
3849 "1fsklymilspzz5fzlj7666x09aglaw0v4x0yfjjzy4vr5qpjc529")))) 3849 "0aiy615kn9lpr2cs757g3pklg81n01yhqh0wrwv111fn3cy86r0v"))))
3850 (build-system r-build-system) 3850 (build-system r-build-system)
3851 (propagated-inputs 3851 (propagated-inputs
3852 `(("r-sm" ,r-sm) 3852 `(("r-sm" ,r-sm)
3853 ("r-zoo" ,r-zoo))) 3853 ("r-zoo" ,r-zoo)))
3854 (native-inputs
3855 `(("r-knitr" ,r-knitr)))
3854 (home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler") 3856 (home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler")
3855 (synopsis "Violin plot") 3857 (synopsis "Violin plot")
3856 (description 3858 (description
@@ -6634,23 +6636,106 @@ be added or removed. When working with Word documents, a cursor can be used
6634to help insert or delete content at a specific location in the document.") 6636to help insert or delete content at a specific location in the document.")
6635 (license license:gpl3))) 6637 (license license:gpl3)))
6636 6638
6639(define-public r-profilemodel
6640 (package
6641 (name "r-profilemodel")
6642 (version "0.6.0")
6643 (source
6644 (origin
6645 (method url-fetch)
6646 (uri (cran-uri "profileModel" version))
6647 (sha256
6648 (base32
6649 "0yq8hy43h62hlz8bbf9ila4a3xcwizi1if27b78xc5y857ncwad8"))))
6650 (properties `((upstream-name . "profileModel")))
6651 (build-system r-build-system)
6652 (home-page "https://github.com/ikosmidis/profileModel")
6653 (synopsis "Profiling inference functions for various model classes")
6654 (description
6655 "This package provides tools that can be used to calculate, evaluate,
6656plot and use for inference the profiles of *arbitrary* inference functions for
6657arbitrary @code{glm}-like fitted models with linear predictors. More information
6658on the methods that are implemented can be found in Kosmidis (2008)
6659@url{https://www.r-project.org/doc/Rnews/Rnews_2008-2.pdf}.")
6660 (license license:gpl2+)))
6661
6662(define-public r-brglm
6663 (package
6664 (name "r-brglm")
6665 (version "0.6.2")
6666 (source
6667 (origin
6668 (method url-fetch)
6669 (uri (cran-uri "brglm" version))
6670 (sha256
6671 (base32
6672 "0c9ngscc6zlfm90fqyggnj04qfkhp5qgf5q3wnfpxwyc8cm47by2"))))
6673 (properties `((upstream-name . "brglm")))
6674 (build-system r-build-system)
6675 (propagated-inputs
6676 `(("r-profilemodel" ,r-profilemodel)))
6677 (home-page "https://github.com/ikosmidis/brglm")
6678 (synopsis "Bias reduction in binomial-response generalized linear models")
6679 (description
6680 "Fit generalized linear models with binomial responses using either an
6681adjusted-score approach to bias reduction or maximum penalized likelihood
6682where penalization is by Jeffreys invariant prior. These procedures return
6683estimates with improved frequentist properties (bias, mean squared error) that
6684are always finite even in cases where the maximum likelihood estimates are
6685infinite (data separation). Fitting takes place by fitting generalized linear
6686models on iteratively updated pseudo-data. The interface is essentially the
6687same as @code{glm}. More flexibility is provided by the fact that custom
6688pseudo-data representations can be specified and used for model fitting.
6689Functions are provided for the construction of confidence intervals for the
6690reduced-bias estimates.")
6691 (license license:gpl2+)))
6692
6693(define-public r-entropy
6694 (package
6695 (name "r-entropy")
6696 (version "1.2.1")
6697 (source
6698 (origin
6699 (method url-fetch)
6700 (uri (cran-uri "entropy" version))
6701 (sha256
6702 (base32
6703 "10vg4818q5g54pv2nn9x5i7pvky5nsv96syy47pz2mgqp1273cpd"))))
6704 (properties `((upstream-name . "entropy")))
6705 (build-system r-build-system)
6706 (home-page "https://www.strimmerlab.org/software/entropy/")
6707 (synopsis "Estimation of entropy, mutual information and related quantities")
6708 (description
6709 "This package implements various estimators of entropy, such as the
6710shrinkage estimator by Hausser and Strimmer, the maximum likelihood and the
6711Millow-Madow estimator, various Bayesian estimators, and the Chao-Shen
6712estimator. It also offers an R interface to the NSB estimator. Furthermore,
6713it provides functions for estimating Kullback-Leibler divergence, chi-squared,
6714mutual information, and chi-squared statistic of independence. In addition
6715there are functions for discretizing continuous random variables.")
6716 (license license:gpl3+)))
6717
6637(define-public r-abn 6718(define-public r-abn
6638 (package 6719 (package
6639 (name "r-abn") 6720 (name "r-abn")
6640 (version "2.2") 6721 (version "2.2.1")
6641 (source 6722 (source
6642 (origin 6723 (origin
6643 (method url-fetch) 6724 (method url-fetch)
6644 (uri (cran-uri "abn" version)) 6725 (uri (cran-uri "abn" version))
6645 (sha256 6726 (sha256
6646 (base32 6727 (base32
6647 "19w6bdjyp4zwqs6p0flry4qxqynf9rh8ykdrfrp61wrdf7kysw0d")))) 6728 "11nbg6dwvbj0ac7qvr203vzjnw5zc1a8cibb9l6rzzr7yfg16xzc"))))
6648 (build-system r-build-system) 6729 (build-system r-build-system)
6649 (inputs 6730 (inputs
6650 `(("gsl" ,gsl))) 6731 `(("gsl" ,gsl)))
6651 (propagated-inputs 6732 (propagated-inputs
6652 `(("r-lme4" ,r-lme4) 6733 `(("r-boot" ,r-boot)
6734 ("r-brglm" ,r-brglm)
6735 ("r-entropy" ,r-entropy)
6736 ("r-lme4" ,r-lme4)
6653 ("r-mass" ,r-mass) 6737 ("r-mass" ,r-mass)
6738 ("r-moments" ,r-moments)
6654 ("r-nnet" ,r-nnet) 6739 ("r-nnet" ,r-nnet)
6655 ("r-rcpp" ,r-rcpp) 6740 ("r-rcpp" ,r-rcpp)
6656 ("r-rcpparmadillo" ,r-rcpparmadillo) 6741 ("r-rcpparmadillo" ,r-rcpparmadillo)
@@ -8922,14 +9007,14 @@ ROPE percentage and pd).")
8922(define-public r-performance 9007(define-public r-performance
8923 (package 9008 (package
8924 (name "r-performance") 9009 (name "r-performance")
8925 (version "0.4.6") 9010 (version "0.4.7")
8926 (source 9011 (source
8927 (origin 9012 (origin
8928 (method url-fetch) 9013 (method url-fetch)
8929 (uri (cran-uri "performance" version)) 9014 (uri (cran-uri "performance" version))
8930 (sha256 9015 (sha256
8931 (base32 9016 (base32
8932 "08i9ngvga06abs2k50gvkh6iwl4r77bkmmchsqjibsy09wdvd8xj")))) 9017 "0gw165wm2a0vjsvyll8z9k6qd156z3jf4priy1r745v63x4mnb5k"))))
8933 (build-system r-build-system) 9018 (build-system r-build-system)
8934 (propagated-inputs 9019 (propagated-inputs
8935 `(("r-bayestestr" ,r-bayestestr) 9020 `(("r-bayestestr" ,r-bayestestr)
@@ -11769,14 +11854,14 @@ dynamical correlation and dynamical covariance.")
11769(define-public r-genenet 11854(define-public r-genenet
11770 (package 11855 (package
11771 (name "r-genenet") 11856 (name "r-genenet")
11772 (version "1.2.14") 11857 (version "1.2.15")
11773 (source 11858 (source
11774 (origin 11859 (origin
11775 (method url-fetch) 11860 (method url-fetch)
11776 (uri (cran-uri "GeneNet" version)) 11861 (uri (cran-uri "GeneNet" version))
11777 (sha256 11862 (sha256
11778 (base32 11863 (base32
11779 "0cdhrj15rz0w0pyw3r8mikrzsdh95y5i1c0pa3cn0c2bjnjx3x3n")))) 11864 "11ba6ahsk3x9alvcw8bai2bpg84ki1m8nadrjjdhjg65svhw8njm"))))
11780 (properties `((upstream-name . "GeneNet"))) 11865 (properties `((upstream-name . "GeneNet")))
11781 (build-system r-build-system) 11866 (build-system r-build-system)
11782 (propagated-inputs 11867 (propagated-inputs
@@ -15839,14 +15924,14 @@ the current document.")
15839(define-public r-xgboost 15924(define-public r-xgboost
15840 (package 15925 (package
15841 (name "r-xgboost") 15926 (name "r-xgboost")
15842 (version "1.0.0.2") 15927 (version "1.1.1.1")
15843 (source 15928 (source
15844 (origin 15929 (origin
15845 (method url-fetch) 15930 (method url-fetch)
15846 (uri (cran-uri "xgboost" version)) 15931 (uri (cran-uri "xgboost" version))
15847 (sha256 15932 (sha256
15848 (base32 15933 (base32
15849 "1ld2w51c5fy3bl0kvjn1iplffc4lmin9s9zz5xx7xsm44d6j6kzd")))) 15934 "13njhcxljhbcs37ni6r5174fk8kx9b5p7rlw1an1ak3w92jn56cq"))))
15850 (build-system r-build-system) 15935 (build-system r-build-system)
15851 (propagated-inputs 15936 (propagated-inputs
15852 `(("r-data-table" ,r-data-table) 15937 `(("r-data-table" ,r-data-table)
diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm
index 30e00b3..8ab88fa 100644
--- a/gnu/packages/crates-io.scm
+++ b/gnu/packages/crates-io.scm
@@ -32,6 +32,7 @@
32 #:use-module (gnu packages) 32 #:use-module (gnu packages)
33 #:use-module (gnu packages base) 33 #:use-module (gnu packages base)
34 #:use-module (gnu packages compression) 34 #:use-module (gnu packages compression)
35 #:use-module (gnu packages curl)
35 #:use-module (gnu packages fontutils) 36 #:use-module (gnu packages fontutils)
36 #:use-module (gnu packages freedesktop) 37 #:use-module (gnu packages freedesktop)
37 #:use-module (gnu packages glib) 38 #:use-module (gnu packages glib)
@@ -49,6 +50,7 @@
49 #:use-module (gnu packages tls) 50 #:use-module (gnu packages tls)
50 #:use-module (gnu packages video) 51 #:use-module (gnu packages video)
51 #:use-module (gnu packages version-control) 52 #:use-module (gnu packages version-control)
53 #:use-module (gnu packages web)
52 #:use-module (gnu packages xml) 54 #:use-module (gnu packages xml)
53 #:use-module (gnu packages xorg)) 55 #:use-module (gnu packages xorg))
54 56
@@ -149,10 +151,10 @@ Rust, using gimli.")
149 ("rust-memmap" ,rust-memmap-0.7) 151 ("rust-memmap" ,rust-memmap-0.7)
150 ("rust-rustc-test" ,rust-rustc-test-0.3)))))) 152 ("rust-rustc-test" ,rust-rustc-test-0.3))))))
151 153
152(define-public rust-adler32-1.0 154(define-public rust-adler32-1
153 (package 155 (package
154 (name "rust-adler32") 156 (name "rust-adler32")
155 (version "1.0.4") 157 (version "1.1.0")
156 (source 158 (source
157 (origin 159 (origin
158 (method url-fetch) 160 (method url-fetch)
@@ -161,12 +163,15 @@ Rust, using gimli.")
161 (string-append name "-" version ".crate")) 163 (string-append name "-" version ".crate"))
162 (sha256 164 (sha256
163 (base32 165 (base32
164 "1hnan4fgmnidgn2k84hh2i67c3wp2c5iwd5hs61yi7gwwx1p6bjx")))) 166 "0bgks405vz823bphgwhj4l9h6vpfh900s0phfk4qqijyh9xhfysn"))))
165 (build-system cargo-build-system) 167 (build-system cargo-build-system)
166 (arguments 168 (arguments
167 `(#:skip-build? #t 169 `(#:cargo-inputs
170 (("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
171 ("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
168 #:cargo-development-inputs 172 #:cargo-development-inputs
169 (("rust-rand" ,rust-rand-0.4)))) 173 (("rust-bencher" ,rust-bencher-0.1)
174 ("rust-rand" ,rust-rand-0.4))))
170 (home-page "https://github.com/remram44/adler32-rs") 175 (home-page "https://github.com/remram44/adler32-rs")
171 (synopsis "Implementation of the Adler32 rolling hash algorithm") 176 (synopsis "Implementation of the Adler32 rolling hash algorithm")
172 (description 177 (description
@@ -4619,31 +4624,42 @@ Transparency logs for use with sct crate.")
4619 (origin 4624 (origin
4620 (method url-fetch) 4625 (method url-fetch)
4621 (uri (crate-uri "curl-sys" version)) 4626 (uri (crate-uri "curl-sys" version))
4622 (file-name (string-append name "-" version ".crate")) 4627 (file-name (string-append name "-" version ".tar.gz"))
4623 (sha256 4628 (sha256
4624 (base32 4629 (base32
4625 "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y")))) 4630 "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))
4631 (modules '((guix build utils)))
4632 (snippet
4633 '(begin (delete-file-recursively "curl") #t))))
4626 (build-system cargo-build-system) 4634 (build-system cargo-build-system)
4627 ;(arguments 4635 (arguments
4628 ; `(#:phases 4636 `(#:cargo-inputs
4629 ; (modify-phases %standard-phases 4637 (("rust-libc" ,rust-libc-0.2)
4630 ; (add-after 'unpack 'find-openssl 4638 ("rust-libnghttp2-sys" ,rust-libnghttp2-sys-0.1)
4631 ; (lambda* (#:key inputs #:allow-other-keys) 4639 ("rust-libz-sys" ,rust-libz-sys-1.0)
4632 ; (let ((openssl (assoc-ref inputs "openssl"))) 4640 ("rust-openssl-sys" ,rust-openssl-sys-0.9)
4633 ; (setenv "OPENSSL_DIR" openssl)) 4641 ("rust-winapi" ,rust-winapi-0.3)
4634 ; #t))))) 4642 ("rust-cc" ,rust-cc-1.0)
4635 ;(native-inputs 4643 ("rust-pkg-config" ,rust-pkg-config-0.3)
4636 ; `(("pkg-config" ,pkg-config))) 4644 ("rust-vcpkg" ,rust-vcpkg-0.2))
4637 ;(inputs 4645 #:phases
4638 ; `(("curl" ,curl) 4646 (modify-phases %standard-phases
4639 ; ("nghttp2" ,nghttp2) 4647 (add-after 'unpack 'find-openssl
4640 ; ("openssl" ,openssl) 4648 (lambda* (#:key inputs #:allow-other-keys)
4641 ; ("zlib" ,zlib))) 4649 (let ((openssl (assoc-ref inputs "openssl")))
4650 (setenv "OPENSSL_DIR" openssl))
4651 #t)))))
4652 (native-inputs
4653 `(("pkg-config" ,pkg-config)))
4654 (inputs
4655 `(("curl" ,curl)
4656 ("nghttp2" ,nghttp2)
4657 ("openssl" ,openssl)
4658 ("zlib" ,zlib)))
4642 (home-page "https://github.com/alexcrichton/curl-rust") 4659 (home-page "https://github.com/alexcrichton/curl-rust")
4643 (synopsis "Native bindings to the libcurl library") 4660 (synopsis "Native bindings to the libcurl library")
4644 (description 4661 (description
4645 "This package provides native bindings to the @code{libcurl} library.") 4662 "This package provides native bindings to the @code{libcurl} library.")
4646 (properties '((hidden? . #t)))
4647 (license license:expat))) 4663 (license license:expat)))
4648 4664
4649(define-public rust-custom-derive-0.1 4665(define-public rust-custom-derive-0.1
@@ -4835,7 +4851,7 @@ and arithmetic.")
4835 (build-system cargo-build-system) 4851 (build-system cargo-build-system)
4836 (arguments 4852 (arguments
4837 `(#:cargo-inputs 4853 `(#:cargo-inputs
4838 (("rust-adler32" ,rust-adler32-1.0) 4854 (("rust-adler32" ,rust-adler32-1)
4839 ("rust-byteorder" ,rust-byteorder-1.3) 4855 ("rust-byteorder" ,rust-byteorder-1.3)
4840 ("rust-gzip-header" ,rust-gzip-header-0.3) 4856 ("rust-gzip-header" ,rust-gzip-header-0.3)
4841 ("rust-flate2" ,rust-flate2-1.0)))) 4857 ("rust-flate2" ,rust-flate2-1.0))))
@@ -10325,7 +10341,7 @@ renamed to indexmap.")
10325 "1zxjdn8iwa0ssxrnjmywm3r1v284wryvzrf8vkc7nyf5ijbjknqw")))) 10341 "1zxjdn8iwa0ssxrnjmywm3r1v284wryvzrf8vkc7nyf5ijbjknqw"))))
10326 (build-system cargo-build-system) 10342 (build-system cargo-build-system)
10327 (arguments 10343 (arguments
10328 `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1.0)))) 10344 `(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
10329 (home-page "https://github.com/PistonDevelopers/inflate.git") 10345 (home-page "https://github.com/PistonDevelopers/inflate.git")
10330 (synopsis "DEFLATE decoding") 10346 (synopsis "DEFLATE decoding")
10331 (description "This package provides DEFLATE decoding.") 10347 (description "This package provides DEFLATE decoding.")
@@ -11178,8 +11194,43 @@ requires non-const function calls to be computed.")
11178 "This package provides a library providing a lazily filled Cell struct.") 11194 "This package provides a library providing a lazily filled Cell struct.")
11179 (license (list license:expat license:asl2.0)))) 11195 (license (list license:expat license:asl2.0))))
11180 11196
11197(define-public rust-lexical-core-0.7
11198 (package
11199 (name "rust-lexical-core")
11200 (version "0.7.4")
11201 (source
11202 (origin
11203 (method url-fetch)
11204 (uri (crate-uri "lexical-core" version))
11205 (file-name
11206 (string-append name "-" version ".tar.gz"))
11207 (sha256
11208 (base32
11209 "05i6b69ay8xbxw88vx89vglb7xm5n8ky82hax7d5a7z60bdccrfv"))))
11210 (build-system cargo-build-system)
11211 (arguments
11212 `(#:cargo-inputs
11213 (("rust-arrayvec" ,rust-arrayvec-0.5)
11214 ("rust-bitflags" ,rust-bitflags-1)
11215 ("rust-cfg-if" ,rust-cfg-if-0.1)
11216 ("rust-dtoa" ,rust-dtoa-0.4)
11217 ("rust-ryu" ,rust-ryu-1.0)
11218 ("rust-static-assertions" ,rust-static-assertions-1))
11219 #:cargo-development-inputs
11220 (("rust-approx" ,rust-approx-0.3)
11221 ("rust-proptest" ,rust-proptest-0.9)
11222 ("rust-quickcheck" ,rust-quickcheck-0.9))))
11223 (home-page
11224 "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
11225 (synopsis
11226 "Lexical, to- and from-string conversion routines")
11227 (description
11228 "Lexical, to- and from-string conversion routines.")
11229 (license (list license:expat license:asl2.0))))
11230
11181(define-public rust-lexical-core-0.4 11231(define-public rust-lexical-core-0.4
11182 (package 11232 (package
11233 (inherit rust-lexical-core-0.7)
11183 (name "rust-lexical-core") 11234 (name "rust-lexical-core")
11184 (version "0.4.2") 11235 (version "0.4.2")
11185 (source 11236 (source
@@ -11191,7 +11242,6 @@ requires non-const function calls to be computed.")
11191 (sha256 11242 (sha256
11192 (base32 11243 (base32
11193 "1gr5y3ykghd3wjc00l3iizkj1dxylyhwi6fj6yn2qg06nzx771iz")))) 11244 "1gr5y3ykghd3wjc00l3iizkj1dxylyhwi6fj6yn2qg06nzx771iz"))))
11194 (build-system cargo-build-system)
11195 (arguments 11245 (arguments
11196 `(#:skip-build? #t 11246 `(#:skip-build? #t
11197 #:cargo-inputs 11247 #:cargo-inputs
@@ -11204,14 +11254,7 @@ requires non-const function calls to be computed.")
11204 (("rust-approx" ,rust-approx-0.3) 11254 (("rust-approx" ,rust-approx-0.3)
11205 ("rust-proptest" ,rust-proptest-0.9) 11255 ("rust-proptest" ,rust-proptest-0.9)
11206 ("rust-quickcheck" ,rust-quickcheck-0.8) 11256 ("rust-quickcheck" ,rust-quickcheck-0.8)
11207 ("rust-rustc-version" ,rust-rustc-version-0.2)))) 11257 ("rust-rustc-version" ,rust-rustc-version-0.2))))))
11208 (home-page
11209 "https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
11210 (synopsis
11211 "Lexical, to- and from-string conversion routines")
11212 (description
11213 "Lexical, to- and from-string conversion routines.")
11214 (license (list license:asl2.0 license:expat))))
11215 11258
11216(define-public rust-libc-0.2 11259(define-public rust-libc-0.2
11217 (package 11260 (package
@@ -11334,12 +11377,22 @@ macros on libc without stdlib.")
11334 (origin 11377 (origin
11335 (method url-fetch) 11378 (method url-fetch)
11336 (uri (crate-uri "libgit2-sys" version)) 11379 (uri (crate-uri "libgit2-sys" version))
11337 (file-name (string-append name "-" version ".crate")) 11380 (file-name (string-append name "-" version ".tar.gz"))
11338 (sha256 11381 (sha256
11339 (base32 11382 (base32
11340 "1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28")))) 11383 "1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28"))
11341 (arguments '()) 11384 (modules '((guix build utils)))
11342 (properties '((hidden? . #t))))) 11385 (snippet
11386 '(begin (delete-file-recursively "libgit2") #t))))
11387 (arguments
11388 `(#:cargo-inputs
11389 (("rust-curl-sys" ,rust-curl-sys-0.4)
11390 ("rust-libc" ,rust-libc-0.2)
11391 ("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
11392 ("rust-libz-sys" ,rust-libz-sys-1.0)
11393 ("rust-openssl-sys" ,rust-openssl-sys-0.9)
11394 ("rust-cc" ,rust-cc-1.0)
11395 ("rust-pkg-config" ,rust-pkg-config-0.3))))))
11343 11396
11344(define-public rust-libloading-0.5 11397(define-public rust-libloading-0.5
11345 (package 11398 (package
@@ -11438,18 +11491,25 @@ functions and static variables these libraries contain.")
11438 (origin 11491 (origin
11439 (method url-fetch) 11492 (method url-fetch)
11440 (uri (crate-uri "libnghttp2-sys" version)) 11493 (uri (crate-uri "libnghttp2-sys" version))
11441 (file-name (string-append name "-" version ".crate")) 11494 (file-name (string-append name "-" version ".tar.gz"))
11442 (sha256 11495 (sha256
11443 (base32 11496 (base32
11444 "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982")))) 11497 "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))
11498 (modules '((guix build utils)))
11499 (snippet
11500 '(begin (delete-file-recursively "nghttp2") #t))))
11445 (build-system cargo-build-system) 11501 (build-system cargo-build-system)
11446 ;(inputs 11502 (arguments
11447 ; `(("nghttp2" ,nghttp2))) 11503 `(#:skip-build? #t ; Uses unstable features
11504 #:cargo-inputs
11505 (("rust-libc" ,rust-libc-0.2)
11506 ("rust-cc" ,rust-cc-1.0))))
11507 (inputs
11508 `(("nghttp2" ,nghttp2)))
11448 (home-page "https://github.com/alexcrichton/nghttp2-rs") 11509 (home-page "https://github.com/alexcrichton/nghttp2-rs")
11449 (synopsis "FFI bindings for libnghttp2 (nghttp2)") 11510 (synopsis "FFI bindings for libnghttp2 (nghttp2)")
11450 (description 11511 (description
11451 "This package provides FFI bindings for libnghttp2 (nghttp2).") 11512 "This package provides FFI bindings for libnghttp2 (nghttp2).")
11452 (properties '((hidden? . #t)))
11453 (license (list license:asl2.0 11513 (license (list license:asl2.0
11454 license:expat)))) 11514 license:expat))))
11455 11515
@@ -12639,7 +12699,7 @@ for Rust structs.")
12639 (build-system cargo-build-system) 12699 (build-system cargo-build-system)
12640 (arguments 12700 (arguments
12641 `(#:skip-build? #t 12701 `(#:skip-build? #t
12642 #:cargo-inputs (("rust-adler32" ,rust-adler32-1.0)))) 12702 #:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
12643 (home-page "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide") 12703 (home-page "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
12644 (synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder") 12704 (synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
12645 (description 12705 (description
@@ -13421,10 +13481,10 @@ implementation (which is unstable / requires nightly).")
13421 (license (list license:asl2.0 13481 (license (list license:asl2.0
13422 license:expat)))) 13482 license:expat))))
13423 13483
13424(define-public rust-nom-4.2 13484(define-public rust-nom-5
13425 (package 13485 (package
13426 (name "rust-nom") 13486 (name "rust-nom")
13427 (version "4.2.3") 13487 (version "5.1.2")
13428 (source 13488 (source
13429 (origin 13489 (origin
13430 (method url-fetch) 13490 (method url-fetch)
@@ -13433,18 +13493,30 @@ implementation (which is unstable / requires nightly).")
13433 (string-append name "-" version ".tar.gz")) 13493 (string-append name "-" version ".tar.gz"))
13434 (sha256 13494 (sha256
13435 (base32 13495 (base32
13436 "1mkvby8b4m61p4g1px0pwr58yfkphyp1jcfbp4qfp7l6iqdaklia")))) 13496 "1br74rwdp3c2ddga03bphnf355spn4mzwf1slg0a30zd4qnjdd7z"))))
13437 (build-system cargo-build-system) 13497 (build-system cargo-build-system)
13438 (arguments 13498 (arguments
13439 `(#:skip-build? #t 13499 `(#:tests? #f ; Tests require example directory, not included in tarball.
13440 #:cargo-inputs 13500 #:cargo-inputs
13441 (("rust-lazy-static" ,rust-lazy-static-1) 13501 (("rust-lazy-static" ,rust-lazy-static-1)
13502 ("rust-lexical-core" ,rust-lexical-core-0.7)
13442 ("rust-memchr" ,rust-memchr-2.2) 13503 ("rust-memchr" ,rust-memchr-2.2)
13443 ("rust-regex" ,rust-regex-1.1) 13504 ("rust-regex" ,rust-regex-1.1)
13444 ("rust-version-check" ,rust-version-check-0.1)) 13505 ("rust-version-check" ,rust-version-check-0.9))
13445 #:cargo-development-inputs 13506 #:cargo-development-inputs
13446 (("rust-criterion" ,rust-criterion-0.2) 13507 (("rust-criterion" ,rust-criterion-0.2)
13447 ("rust-jemallocator" ,rust-jemallocator-0.1)))) 13508 ("rust-doc-comment" ,rust-doc-comment-0.3)
13509 ("rust-jemallocator" ,rust-jemallocator-0.1))
13510 #:phases
13511 (modify-phases %standard-phases
13512 (add-after 'configure 'override-jemalloc
13513 (lambda* (#:key inputs #:allow-other-keys)
13514 (let ((jemalloc (assoc-ref inputs "jemalloc")))
13515 (setenv "JEMALLOC_OVERRIDE"
13516 (string-append jemalloc "/lib/libjemalloc_pic.a")))
13517 #t)))))
13518 (native-inputs
13519 `(("jemalloc" ,jemalloc)))
13448 (home-page "https://github.com/Geal/nom") 13520 (home-page "https://github.com/Geal/nom")
13449 (synopsis 13521 (synopsis
13450 "Byte-oriented, zero-copy, parser combinators library") 13522 "Byte-oriented, zero-copy, parser combinators library")
@@ -13453,6 +13525,31 @@ implementation (which is unstable / requires nightly).")
13453combinators library.") 13525combinators library.")
13454 (license license:expat))) 13526 (license license:expat)))
13455 13527
13528(define-public rust-nom-4.2
13529 (package
13530 (inherit rust-nom-5)
13531 (name "rust-nom")
13532 (version "4.2.3")
13533 (source
13534 (origin
13535 (method url-fetch)
13536 (uri (crate-uri "nom" version))
13537 (file-name
13538 (string-append name "-" version ".tar.gz"))
13539 (sha256
13540 (base32
13541 "1mkvby8b4m61p4g1px0pwr58yfkphyp1jcfbp4qfp7l6iqdaklia"))))
13542 (arguments
13543 `(#:skip-build? #t
13544 #:cargo-inputs
13545 (("rust-lazy-static" ,rust-lazy-static-1)
13546 ("rust-memchr" ,rust-memchr-2.2)
13547 ("rust-regex" ,rust-regex-1.1)
13548 ("rust-version-check" ,rust-version-check-0.1))
13549 #:cargo-development-inputs
13550 (("rust-criterion" ,rust-criterion-0.2)
13551 ("rust-jemallocator" ,rust-jemallocator-0.1))))))
13552
13456(define-public rust-nom-3 13553(define-public rust-nom-3
13457 (package 13554 (package
13458 (inherit rust-nom-4.2) 13555 (inherit rust-nom-4.2)
@@ -21861,10 +21958,10 @@ deeply recursive algorithms that may accidentally blow the stack.")
21861 "StackVec: vector-like facade for stack-allocated arrays.") 21958 "StackVec: vector-like facade for stack-allocated arrays.")
21862 (license (list license:asl2.0 license:expat)))) 21959 (license (list license:asl2.0 license:expat))))
21863 21960
21864(define-public rust-static-assertions-0.3 21961(define-public rust-static-assertions-1
21865 (package 21962 (package
21866 (name "rust-static-assertions") 21963 (name "rust-static-assertions")
21867 (version "0.3.4") 21964 (version "1.1.0")
21868 (source 21965 (source
21869 (origin 21966 (origin
21870 (method url-fetch) 21967 (method url-fetch)
@@ -21872,7 +21969,7 @@ deeply recursive algorithms that may accidentally blow the stack.")
21872 (file-name (string-append name "-" version ".crate")) 21969 (file-name (string-append name "-" version ".crate"))
21873 (sha256 21970 (sha256
21874 (base32 21971 (base32
21875 "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz")))) 21972 "0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2"))))
21876 (build-system cargo-build-system) 21973 (build-system cargo-build-system)
21877 (home-page "https://github.com/nvzqz/static-assertions-rs") 21974 (home-page "https://github.com/nvzqz/static-assertions-rs")
21878 (synopsis "Compile-time assertions for rust") 21975 (synopsis "Compile-time assertions for rust")
@@ -21881,6 +21978,20 @@ deeply recursive algorithms that may accidentally blow the stack.")
21881are met.") 21978are met.")
21882 (license (list license:expat license:asl2.0)))) 21979 (license (list license:expat license:asl2.0))))
21883 21980
21981(define-public rust-static-assertions-0.3
21982 (package
21983 (inherit rust-static-assertions-1)
21984 (name "rust-static-assertions")
21985 (version "0.3.4")
21986 (source
21987 (origin
21988 (method url-fetch)
21989 (uri (crate-uri "static-assertions" version))
21990 (file-name (string-append name "-" version ".crate"))
21991 (sha256
21992 (base32
21993 "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))))
21994
21884(define-public rust-stb-truetype-0.3 21995(define-public rust-stb-truetype-0.3
21885 (package 21996 (package
21886 (name "rust-stb-truetype") 21997 (name "rust-stb-truetype")
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index d83211e..8bfe960 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -415,14 +415,14 @@ should only be used as part of the Guix cups-pk-helper service.")
415(define-public hplip 415(define-public hplip
416 (package 416 (package
417 (name "hplip") 417 (name "hplip")
418 (version "3.20.5") 418 (version "3.20.6")
419 (source (origin 419 (source (origin
420 (method url-fetch) 420 (method url-fetch)
421 (uri (string-append "mirror://sourceforge/hplip/hplip/" version 421 (uri (string-append "mirror://sourceforge/hplip/hplip/" version
422 "/hplip-" version ".tar.gz")) 422 "/hplip-" version ".tar.gz"))
423 (sha256 423 (sha256
424 (base32 424 (base32
425 "0nj79r61fzddwwzf8kcc0qkp4y9qx46v15iarz6h6y3v91wbsjq0")) 425 "0rmk7i28mb0q66i5l9d0fq2j23dkhz5gx5g2xvi16ga0dnprcilp"))
426 (modules '((guix build utils))) 426 (modules '((guix build utils)))
427 (patches (search-patches "hplip-remove-imageprocessor.patch")) 427 (patches (search-patches "hplip-remove-imageprocessor.patch"))
428 (snippet 428 (snippet
@@ -681,14 +681,14 @@ printer/driver specific, but spooler-independent PPD file.")
681(define-public foo2zjs 681(define-public foo2zjs
682 (package 682 (package
683 (name "foo2zjs") 683 (name "foo2zjs")
684 (version "20200426") 684 (version "20200610")
685 (source (origin 685 (source (origin
686 (method url-fetch) 686 (method url-fetch)
687 ;; XXX: This is an unversioned URL! 687 ;; XXX: This is an unversioned URL!
688 (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz") 688 (uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
689 (sha256 689 (sha256
690 (base32 690 (base32
691 "0wwh29ddd59q18r1jpi3166lgnwr8zn9lry82vahc2g96l97isp7")))) 691 "11ddx6wf8b5ksl4fqw6fnyz9m3y470lryyrskkya2bsch2bvj9lg"))))
692 (build-system gnu-build-system) 692 (build-system gnu-build-system)
693 (arguments 693 (arguments
694 '(#:phases (modify-phases %standard-phases 694 '(#:phases (modify-phases %standard-phases
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index bab4b4d..e2eb0f3 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -1147,7 +1147,7 @@ including field and record folding.")))
1147(define-public rocksdb 1147(define-public rocksdb
1148 (package 1148 (package
1149 (name "rocksdb") 1149 (name "rocksdb")
1150 (version "6.10.1") 1150 (version "6.10.2")
1151 (source (origin 1151 (source (origin
1152 (method git-fetch) 1152 (method git-fetch)
1153 (uri (git-reference 1153 (uri (git-reference
@@ -1156,7 +1156,7 @@ including field and record folding.")))
1156 (file-name (git-file-name name version)) 1156 (file-name (git-file-name name version))
1157 (sha256 1157 (sha256
1158 (base32 1158 (base32
1159 "0rp8q73dx5f1nkcf2qp6fljm4dpj281y6cqckqgv976kvwvqdgz1")) 1159 "1f2wqb6px812ijcivq3rsknqgkv01wblc6sd8wavhrw8qljgr3s1"))
1160 (modules '((guix build utils))) 1160 (modules '((guix build utils)))
1161 (snippet 1161 (snippet
1162 '(begin 1162 '(begin
diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm
index f6f402b..f5387f8 100644
--- a/gnu/packages/diffoscope.scm
+++ b/gnu/packages/diffoscope.scm
@@ -72,7 +72,7 @@
72(define-public diffoscope 72(define-public diffoscope
73 (package 73 (package
74 (name "diffoscope") 74 (name "diffoscope")
75 (version "146") 75 (version "148")
76 (source (origin 76 (source (origin
77 (method git-fetch) 77 (method git-fetch)
78 (uri (git-reference 78 (uri (git-reference
@@ -81,7 +81,7 @@
81 (file-name (git-file-name name version)) 81 (file-name (git-file-name name version))
82 (sha256 82 (sha256
83 (base32 83 (base32
84 "07kd3vshf4wlm0mv3mp6ljbxjq80mcg52w5ks6si1gnpzfbfz07p")))) 84 "0siv5z8iqgkzl51dmv69ifqids6hqmiir00yyl1aaqbginrwyhyv"))))
85 (build-system python-build-system) 85 (build-system python-build-system)
86 (arguments 86 (arguments
87 `(#:phases (modify-phases %standard-phases 87 `(#:phases (modify-phases %standard-phases
@@ -92,12 +92,6 @@
92 (lambda _ 92 (lambda _
93 (substitute* "setup.py" 93 (substitute* "setup.py"
94 (("'python-magic',") "")))) 94 (("'python-magic',") ""))))
95 ;; Patch in support for known tools
96 (add-after 'unpack 'add-known-tools
97 (lambda _
98 (substitute* "diffoscope/external_tools.py"
99 (("'debian': 'openssl'")
100 "'debian': 'openssl', 'guix': 'openssl'"))))
101 ;; This test is broken because our `file` package has a 95 ;; This test is broken because our `file` package has a
102 ;; bug in berkeley-db file type detection. 96 ;; bug in berkeley-db file type detection.
103 (add-after 'unpack 'remove-berkeley-test 97 (add-after 'unpack 'remove-berkeley-test
diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm
index 7ff0501..e4cc4a1 100644
--- a/gnu/packages/dns.scm
+++ b/gnu/packages/dns.scm
@@ -119,7 +119,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
119(define-public isc-bind 119(define-public isc-bind
120 (package 120 (package
121 (name "bind") 121 (name "bind")
122 (version "9.16.3") 122 (version "9.16.4")
123 (source (origin 123 (source (origin
124 (method url-fetch) 124 (method url-fetch)
125 (uri (string-append 125 (uri (string-append
@@ -127,7 +127,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
127 "/bind-" version ".tar.xz")) 127 "/bind-" version ".tar.xz"))
128 (sha256 128 (sha256
129 (base32 129 (base32
130 "0zjgaspnx0p0rp83h4yj595s25da7fjis94z9frhv3azvq9nbb17")))) 130 "02ip1xvmnqla3p5k2rmfrksrw4q9iqbrhyg3mamvrj5a7n6hh8km"))))
131 (build-system gnu-build-system) 131 (build-system gnu-build-system)
132 (outputs `("out" "utils")) 132 (outputs `("out" "utils"))
133 (inputs 133 (inputs
diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm
index fe0b26e..2c7f920 100644
--- a/gnu/packages/docbook.scm
+++ b/gnu/packages/docbook.scm
@@ -3,6 +3,7 @@
3;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> 3;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
4;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> 4;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
5;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> 5;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
6;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
6;;; 7;;;
7;;; This file is part of GNU Guix. 8;;; This file is part of GNU Guix.
8;;; 9;;;
@@ -34,8 +35,50 @@
34 #:use-module (guix build-system trivial) 35 #:use-module (guix build-system trivial)
35 #:use-module (guix build-system python)) 36 #:use-module (guix build-system python))
36 37
38(define-public docbook-xml-5
39 (package
40 (name "docbook-xml")
41 (version "5.0.1")
42 (source (origin
43 (method url-fetch)
44 (uri (string-append "https://www.docbook.org/xml/" version
45 "/docbook-" version ".zip"))
46 (sha256
47 (base32
48 "1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs"))))
49 (build-system trivial-build-system)
50 (arguments
51 `(#:modules ((guix build utils))
52 #:builder
53 (begin
54 (use-modules (guix build utils))
55 (let* ((unzip
56 (string-append (assoc-ref %build-inputs "unzip")
57 "/bin/unzip"))
58 (source (assoc-ref %build-inputs "source"))
59 (out (assoc-ref %outputs "out"))
60 (dtd (string-append out "/xml/dtd/docbook")))
61 (invoke unzip source)
62 (mkdir-p dtd)
63 (copy-recursively (string-append "docbook-" ,version) dtd)
64 (with-directory-excursion dtd
65 (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
66 (("uri=\"")
67 (string-append
68 "uri=\"file://" dtd "/")))
69 #t)))))
70 (native-inputs `(("unzip" ,unzip)))
71 (home-page "https://docbook.org")
72 (synopsis "DocBook XML DTDs for document authoring")
73 (description
74 "DocBook is general purpose XML and SGML document type particularly well
75suited to books and papers about computer hardware and software (though it is
76by no means limited to these applications.) This package provides XML DTDs.")
77 (license (x11-style "" "See file headers."))))
78
37(define-public docbook-xml 79(define-public docbook-xml
38 (package 80 (package
81 (inherit docbook-xml-5)
39 (name "docbook-xml") 82 (name "docbook-xml")
40 (version "4.5") 83 (version "4.5")
41 (source (origin 84 (source (origin
@@ -45,7 +88,6 @@
45 (sha256 88 (sha256
46 (base32 89 (base32
47 "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf")))) 90 "1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"))))
48 (build-system trivial-build-system)
49 (arguments 91 (arguments
50 '(#:builder (begin 92 '(#:builder (begin
51 (use-modules (guix build utils)) 93 (use-modules (guix build utils))
@@ -60,19 +102,11 @@
60 (with-directory-excursion dtd 102 (with-directory-excursion dtd
61 (invoke unzip source)) 103 (invoke unzip source))
62 (substitute* (string-append out "/xml/dtd/docbook/catalog.xml") 104 (substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
63 (("uri=\"") 105 (("uri=\"")
64 (string-append 106 (string-append
65 "uri=\"file://" dtd "/"))) 107 "uri=\"file://" dtd "/")))
66 #t)) 108 #t))
67 #:modules ((guix build utils)))) 109 #:modules ((guix build utils))))))
68 (native-inputs `(("unzip" ,unzip)))
69 (home-page "https://docbook.org")
70 (synopsis "DocBook XML DTDs for document authoring")
71 (description
72 "DocBook is general purpose XML and SGML document type particularly well
73suited to books and papers about computer hardware and software (though it is
74by no means limited to these applications.) This package provides XML DTDs.")
75 (license (x11-style "" "See file headers."))))
76 110
77(define-public docbook-xml-4.4 111(define-public docbook-xml-4.4
78 (package (inherit docbook-xml) 112 (package (inherit docbook-xml)
diff --git a/gnu/packages/efi.scm b/gnu/packages/efi.scm
index da00fdf..bc27a7a 100644
--- a/gnu/packages/efi.scm
+++ b/gnu/packages/efi.scm
@@ -64,7 +64,7 @@ environment presented by Intel's EFI.")
64(define-public sbsigntools 64(define-public sbsigntools
65 (package 65 (package
66 (name "sbsigntools") 66 (name "sbsigntools")
67 (version "0.9.3") 67 (version "0.9.4")
68 (source 68 (source
69 (origin 69 (origin
70 (method git-fetch) 70 (method git-fetch)
@@ -75,7 +75,7 @@ environment presented by Intel's EFI.")
75 (recursive? #t))) 75 (recursive? #t)))
76 (file-name (git-file-name name version)) 76 (file-name (git-file-name name version))
77 (sha256 77 (sha256
78 (base32 "0gc3xmp73xl7z4nkwz4qy960rdflmx7k4ksgyblcnia9smvsir6y")))) 78 (base32 "1y76wy65y6k10mjl2dm5hb5ms475alr4s080xzj8y833x01xvf3m"))))
79 (build-system gnu-build-system) 79 (build-system gnu-build-system)
80 (arguments 80 (arguments
81 `(#:phases 81 `(#:phases
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index af37990..866a5c8 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -40,7 +40,7 @@
40;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> 40;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
41;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com> 41;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
42;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de> 42;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
43;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com> 43;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
44;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org> 44;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
45;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io> 45;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
46;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com> 46;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
@@ -96,6 +96,7 @@
96 #:use-module (guix packages) 96 #:use-module (guix packages)
97 #:use-module (guix cvs-download) 97 #:use-module (guix cvs-download)
98 #:use-module (guix download) 98 #:use-module (guix download)
99 #:use-module (guix bzr-download)
99 #:use-module (guix git-download) 100 #:use-module (guix git-download)
100 #:use-module (guix hg-download) 101 #:use-module (guix hg-download)
101 #:use-module (guix build-system gnu) 102 #:use-module (guix build-system gnu)
@@ -249,6 +250,79 @@ using geiser.")
249 (license license:bsd-3) 250 (license license:bsd-3)
250 (home-page "https://github.com/xiaohanyu/ac-geiser")))) 251 (home-page "https://github.com/xiaohanyu/ac-geiser"))))
251 252
253(define-public emacs-hyperbole
254 (package
255 (name "emacs-hyperbole")
256 (version "7.0.6")
257 (source
258 (origin
259 (method url-fetch)
260 (uri (string-append "https://elpa.gnu.org/packages/"
261 "hyperbole-" version ".tar"))
262 (sha256
263 (base32 "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab"))
264 (patches
265 (search-patches "emacs-hyperbole-toggle-messaging.patch"))))
266 (build-system emacs-build-system)
267 (arguments
268 `(#:include '("DEMO"
269 "DEMO-ROLO.otl"
270 "HY-ABOUT"
271 "\\.el$"
272 "\\.info$"
273 "\\.kotl$")
274 #:phases
275 (modify-phases %standard-phases
276 ;; Fix build issues about missing "domainname" and "hpmap:dir-user"
277 ;; parent dir.
278 (add-after 'unpack 'fix-build
279 (lambda* (#:key inputs #:allow-other-keys)
280 (substitute* "hypb.el"
281 (("/bin/domainname")
282 (string-append (assoc-ref inputs "inetutils")
283 "/bin/dnsdomainname")))
284 (substitute* "hyperbole.el"
285 (("\\(hyperb:check-dir-user\\)") ""))
286 #t)))))
287 (inputs
288 `(("inetutils" ,inetutils)))
289 (home-page "https://www.gnu.org/software/hyperbole/")
290 (synopsis "The Everyday Hypertextual Information Manager")
291 (description
292 "GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
293programmable hypertextual information management system implemented as a GNU
294Emacs package. It offers rapid views and interlinking of all kinds of textual
295information, utilizing Emacs for editing. It can dramatically increase your
296productivity and greatly reduce the number of keyboard/mouse keys you'll need
297to work efficiently. Hyperbole lets you:
298
299@itemize
300@item Quickly create hyperlink buttons either from the keyboard or by dragging
301between a source and destination window with a mouse button depressed. Later,
302activate buttons by pressing/clicking on them or by giving the name of the
303button.
304@item Activate many kinds of \"implicit buttons\" recognized by context within
305text buffers, e.g. URLs, grep output lines, and git commits. A single key or
306mouse button automatically does the right thing in dozens of contexts; just
307press and go.
308@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
309that all renumber automatically as any node or tree is moved in the outline.
310Each node also has a permanent hyperlink anchor that you can reference from
311any other node.
312@item Manage all your contacts quickly with hierarchical categories and embed
313hyperlinks within each entry. Or create an archive of documents with
314hierarchical entries and use the same search mechanism to quickly find any
315matching entry.
316@item Use single keys to easily manage your Emacs windows or frames and
317quickly retrieve saved window and frame configurations.
318@item Search for things in your current buffers, in a directory tree or across
319major web search engines with the touch of a few keys.
320@end itemize
321
322The common thread in all these features is making retrieval, management and
323display of information fast and easy. That is Hyperbole's purpose.")
324 (license license:gpl3+)))
325
252(define-public emacs-paredit 326(define-public emacs-paredit
253 (package 327 (package
254 (name "emacs-paredit") 328 (name "emacs-paredit")
@@ -398,10 +472,10 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
398 472
399(define-public emacs-magit 473(define-public emacs-magit
400 ;; There hasn't been an official release since 2018-11-16. 474 ;; There hasn't been an official release since 2018-11-16.
401 (let ((commit "d05545ec2fd7edf915eaf1b9c15c785bb08975cc")) 475 (let ((commit "0746bf1bacfe896d3917ccc19c7fb9d95c18b1e9"))
402 (package 476 (package
403 (name "emacs-magit") 477 (name "emacs-magit")
404 (version (git-version "2.90.1" "4" commit)) 478 (version (git-version "2.90.1" "5" commit))
405 (source (origin 479 (source (origin
406 (method git-fetch) 480 (method git-fetch)
407 (uri (git-reference 481 (uri (git-reference
@@ -410,7 +484,7 @@ libgit2 bindings for Emacs, intended to boost the performance of Magit.")
410 (file-name (git-file-name name version)) 484 (file-name (git-file-name name version))
411 (sha256 485 (sha256
412 (base32 486 (base32
413 "11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg")))) 487 "1sgdygr81s2qxq2ahf998hl89qrb0r2wbgnsiz3hdda1431p0wzg"))))
414 (build-system emacs-build-system) 488 (build-system emacs-build-system)
415 (arguments 489 (arguments
416 `(#:emacs ,emacs-no-x ;module support is required 490 `(#:emacs ,emacs-no-x ;module support is required
@@ -1188,14 +1262,14 @@ optional minor mode which can apply this command automatically on save.")
1188(define-public emacs-relint 1262(define-public emacs-relint
1189 (package 1263 (package
1190 (name "emacs-relint") 1264 (name "emacs-relint")
1191 (version "1.17") 1265 (version "1.18")
1192 (source 1266 (source
1193 (origin 1267 (origin
1194 (method url-fetch) 1268 (method url-fetch)
1195 (uri (string-append 1269 (uri (string-append "https://elpa.gnu.org/packages/"
1196 "https://elpa.gnu.org/packages/relint-" version ".tar")) 1270 "relint-" version ".tar"))
1197 (sha256 1271 (sha256
1198 (base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7")))) 1272 (base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
1199 (build-system emacs-build-system) 1273 (build-system emacs-build-system)
1200 (propagated-inputs `(("emacs-xr" ,emacs-xr))) 1274 (propagated-inputs `(("emacs-xr" ,emacs-xr)))
1201 (home-page "https://github.com/mattiase/relint") 1275 (home-page "https://github.com/mattiase/relint")
@@ -1404,44 +1478,21 @@ incrementally confined in Isearch manner.")
1404(define-public emacs-emms 1478(define-public emacs-emms
1405 (package 1479 (package
1406 (name "emacs-emms") 1480 (name "emacs-emms")
1407 (version "5.4") 1481 (version "5.42")
1408 (source 1482 (source
1409 (origin 1483 (origin
1410 (method url-fetch) 1484 (method url-fetch)
1411 (uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz")) 1485 (uri (string-append "https://elpa.gnu.org/packages/"
1486 "emms-" version ".tar"))
1412 (sha256 1487 (sha256
1413 (base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr")) 1488 (base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
1414 (modules '((guix build utils))) 1489 (build-system emacs-build-system)
1415 (snippet
1416 '(begin
1417 (substitute* "Makefile"
1418 (("/usr/bin/install-info")
1419 ;; No need to use 'install-info' since it would create a
1420 ;; useless 'dir' file.
1421 "true")
1422 (("^INFODIR=.*")
1423 ;; Install Info files to $out/share/info, not $out/info.
1424 "INFODIR := $(PREFIX)/share/info\n")
1425 (("/site-lisp/emms")
1426 ;; Install directly in share/emacs/site-lisp, not in a
1427 ;; sub-directory.
1428 "/site-lisp")
1429 (("^all: (.*)\n" _ rest)
1430 ;; Build 'emms-print-metadata'.
1431 (string-append "all: " rest " emms-print-metadata\n")))
1432 #t))))
1433 (build-system gnu-build-system)
1434 (arguments 1490 (arguments
1435 `(#:modules ((guix build gnu-build-system) 1491 `(#:phases
1436 (guix build utils)
1437 (guix build emacs-utils)
1438 (ice-9 ftw))
1439 #:imported-modules (,@%gnu-build-system-modules
1440 (guix build emacs-utils))
1441
1442 #:phases
1443 (modify-phases %standard-phases 1492 (modify-phases %standard-phases
1444 (replace 'configure 1493 (add-after 'unpack 'set-external-programs
1494 ;; Specify the absolute file names of the various programs
1495 ;; so that everything works out-of-the-box.
1445 (lambda* (#:key inputs outputs #:allow-other-keys) 1496 (lambda* (#:key inputs outputs #:allow-other-keys)
1446 (let ((out (assoc-ref outputs "out")) 1497 (let ((out (assoc-ref outputs "out"))
1447 (flac (assoc-ref inputs "flac")) 1498 (flac (assoc-ref inputs "flac"))
@@ -1451,94 +1502,56 @@ incrementally confined in Isearch manner.")
1451 (mp3info (assoc-ref inputs "mp3info")) 1502 (mp3info (assoc-ref inputs "mp3info"))
1452 (mutagen (assoc-ref inputs "mutagen")) 1503 (mutagen (assoc-ref inputs "mutagen"))
1453 (opus (assoc-ref inputs "opus-tools"))) 1504 (opus (assoc-ref inputs "opus-tools")))
1454 ;; Specify the installation directory. 1505 (emacs-substitute-variables "emms-player-mpg321-remote.el"
1455 (substitute* "Makefile" 1506 ("emms-player-mpg321-remote-command"
1456 (("PREFIX=.*$") 1507 (string-append mpg321 "/bin/mpg321")))
1457 (string-append "PREFIX := " out "\n"))) 1508 (substitute* "emms-player-simple.el"
1458 1509 (("\"ogg123\"")
1459 (setenv "SHELL" (which "sh")) 1510 (string-append "\"" vorbis "/bin/ogg123\"")))
1460 (setenv "CC" "gcc") 1511 (substitute* "emms-player-simple.el"
1461 1512 (("\"mpg321\"")
1462 ;; Specify the absolute file names of the various 1513 (string-append "\"" mpg321 "/bin/mpg321\"")))
1463 ;; programs so that everything works out-of-the-box. 1514 (emacs-substitute-variables "emms-info-ogginfo.el"
1464 (with-directory-excursion "lisp" 1515 ("emms-info-ogginfo-program-name"
1465 (emacs-substitute-variables 1516 (string-append vorbis "/bin/ogginfo")))
1466 "emms-player-mpg321-remote.el" 1517 (emacs-substitute-variables "emms-info-opusinfo.el"
1467 ("emms-player-mpg321-remote-command" 1518 ("emms-info-opusinfo-program-name"
1468 (string-append mpg321 "/bin/mpg321"))) 1519 (string-append opus "/bin/opusinfo")))
1469 (substitute* "emms-player-simple.el" 1520 (emacs-substitute-variables "emms-info-libtag.el"
1470 (("\"ogg123\"") 1521 ("emms-info-libtag-program-name"
1471 (string-append "\"" vorbis "/bin/ogg123\""))) 1522 (string-append out "/bin/emms-print-metadata")))
1472 (substitute* "emms-player-simple.el" 1523 (emacs-substitute-variables "emms-info-mp3info.el"
1473 (("\"mpg321\"") 1524 ("emms-info-mp3info-program-name"
1474 (string-append "\"" mpg321 "/bin/mpg321\""))) 1525 (string-append mp3info "/bin/mp3info")))
1475 (emacs-substitute-variables "emms-info-ogginfo.el" 1526 (emacs-substitute-variables "emms-info-metaflac.el"
1476 ("emms-info-ogginfo-program-name" 1527 ("emms-info-metaflac-program-name"
1477 (string-append vorbis "/bin/ogginfo"))) 1528 (string-append flac "/bin/metaflac")))
1478 (emacs-substitute-variables "emms-info-opusinfo.el" 1529 (emacs-substitute-variables "emms-source-file.el"
1479 ("emms-info-opusinfo-program-name" 1530 ("emms-source-file-gnu-find" (which "find")))
1480 (string-append opus "/bin/opusinfo"))) 1531 (substitute* "emms-volume-amixer.el"
1481 (emacs-substitute-variables "emms-info-libtag.el" 1532 (("\"amixer\"")
1482 ("emms-info-libtag-program-name" 1533 (string-append "\"" alsa "/bin/amixer\"")))
1483 (string-append out "/bin/emms-print-metadata"))) 1534 (substitute* "emms-tag-editor.el"
1484 (emacs-substitute-variables "emms-info-mp3info.el" 1535 (("\"mid3v2\"")
1485 ("emms-info-mp3info-program-name" 1536 (string-append "\"" mutagen "/bin/mid3v2\"")))
1486 (string-append mp3info "/bin/mp3info"))) 1537 #t))))))
1487 (emacs-substitute-variables "emms-info-metaflac.el" 1538 (inputs
1488 ("emms-info-metaflac-program-name" 1539 `(("alsa-utils" ,alsa-utils)
1489 (string-append flac "/bin/metaflac"))) 1540 ("flac" ,flac) ;for metaflac
1490 (emacs-substitute-variables "emms-source-file.el" 1541 ("vorbis-tools" ,vorbis-tools)
1491 ("emms-source-file-gnu-find" (which "find"))) 1542 ("mpg321" ,mpg321)
1492 (substitute* "emms-volume-amixer.el" 1543 ("taglib" ,taglib)
1493 (("\"amixer\"") 1544 ("mp3info" ,mp3info)
1494 (string-append "\"" alsa "/bin/amixer\""))) 1545 ("mutagen" ,python-mutagen)
1495 (substitute* "emms-tag-editor.el" 1546 ("opus-tools" ,opus-tools)))
1496 (("\"mid3v2\"") 1547 (home-page "https://www.gnu.org/software/emms/")
1497 (string-append "\"" mutagen "/bin/mid3v2\""))) 1548 (synopsis "The Emacs Multimedia System")
1498 #t))))
1499 (add-before 'install 'pre-install
1500 (lambda* (#:key outputs #:allow-other-keys)
1501 ;; The 'install' rule expects the target directories to exist.
1502 (let* ((out (assoc-ref outputs "out"))
1503 (bin (string-append out "/bin"))
1504 (man1 (string-append out "/share/man/man1")))
1505 (mkdir-p bin)
1506 (mkdir-p man1)
1507
1508 ;; Ensure that files are not rejected by gzip
1509 (let ((early-1980 315619200)) ; 1980-01-02 UTC
1510 (ftw "." (lambda (file stat flag)
1511 (unless (<= early-1980 (stat:mtime stat))
1512 (utime file early-1980 early-1980))
1513 #t)))
1514 #t)))
1515 (add-after 'install 'post-install
1516 (lambda* (#:key outputs #:allow-other-keys)
1517 (let ((out (assoc-ref outputs "out")))
1518 (symlink "emms-auto.el"
1519 (string-append out "/share/emacs/site-lisp/"
1520 "emms-autoloads.el")))
1521 #t)))
1522 #:tests? #f))
1523 (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
1524 ("texinfo" ,texinfo)))
1525 (inputs `(("alsa-utils" ,alsa-utils)
1526 ("flac" ,flac) ;for metaflac
1527 ("vorbis-tools" ,vorbis-tools)
1528 ("mpg321" ,mpg321)
1529 ("taglib" ,taglib)
1530 ("mp3info" ,mp3info)
1531 ("mutagen" ,python-mutagen)
1532 ("opus-tools" ,opus-tools)))
1533 (properties '((upstream-name . "emms")))
1534 (synopsis "Emacs Multimedia System")
1535 (description 1549 (description
1536 "EMMS is the Emacs Multimedia System. It is a small front-end which 1550 "EMMS is the Emacs Multimedia System. It is a small front-end which
1537can control one of the supported external players. Thus, it supports 1551can control one of the supported external players. Thus, it supports
1538whatever formats are supported by your music player. It also 1552whatever formats are supported by your music player. It also
1539supports tagging and playlist management, all behind a clean and 1553supports tagging and playlist management, all behind a clean and
1540light user interface.") 1554light user interface.")
1541 (home-page "https://www.gnu.org/software/emms/")
1542 (license license:gpl3+))) 1555 (license license:gpl3+)))
1543 1556
1544(define-public emacs-emms-mode-line-cycle 1557(define-public emacs-emms-mode-line-cycle
@@ -3289,6 +3302,32 @@ appropriate console.")
3289IRC bouncer with ERC.") 3302IRC bouncer with ERC.")
3290 (license license:expat))) 3303 (license license:expat)))
3291 3304
3305(define-public emacs-erc-status-sidebar
3306 (let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
3307 (revision "1"))
3308 (package
3309 (name "emacs-erc-status-sidebar")
3310 (version (git-version "0.1" revision commit))
3311 (source
3312 (origin
3313 (method git-fetch)
3314 (uri (git-reference
3315 (url "https://github.com/drewbarbs/erc-status-sidebar.git")
3316 (commit commit)))
3317 (file-name (git-file-name name version))
3318 (sha256
3319 (base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
3320 (build-system emacs-build-system)
3321 (propagated-inputs `(("emacs-seq" ,emacs-seq)))
3322 (home-page "https://github.com/drewbarbs/erc-status-sidebar")
3323 (synopsis "Hexchat-like activity overview for ERC channels")
3324 (description
3325 "This package provides a Hexchat-like status bar for joined channels in
3326ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
3327@code{erc-track} module, and displays all the same information
3328@code{erc-track} does in the mode line, but in an alternative format.")
3329 (license license:expat))))
3330
3292(define-public emacs-shut-up 3331(define-public emacs-shut-up
3293 (package 3332 (package
3294 (name "emacs-shut-up") 3333 (name "emacs-shut-up")
@@ -3912,6 +3951,31 @@ provides an easy way to find synonyms and antonyms for a given word (to avoid
3912repetitions for example).") 3951repetitions for example).")
3913 (license license:gpl3+))) 3952 (license license:gpl3+)))
3914 3953
3954(define-public emacs-flycheck-guile
3955 (package
3956 (name "emacs-flycheck-guile")
3957 (version "0.1.1")
3958 (source
3959 (origin
3960 (method git-fetch)
3961 (uri
3962 (git-reference
3963 (url "https://github.com/flatwhatson/flycheck-guile")
3964 (commit version)))
3965 (file-name (git-file-name name version))
3966 (sha256
3967 (base32 "163pnsh6r6bral1jg0vqri54g6hygws21vis0zci4114yb3fhkm1"))))
3968 (propagated-inputs
3969 `(("emacs-flycheck" ,emacs-flycheck)
3970 ("emacs-geiser" ,emacs-geiser)))
3971 (build-system emacs-build-system)
3972 (home-page "https://github.com/flatwhatson/flycheck-guile")
3973 (synopsis "GNU Guile support for Flycheck")
3974 (description
3975 "This package provides a Flycheck checker for GNU Guile using @code{guild
3976compile}.")
3977 (license license:gpl3+)))
3978
3915(define-public emacs-flycheck-rust 3979(define-public emacs-flycheck-rust
3916 (package 3980 (package
3917 (name "emacs-flycheck-rust") 3981 (name "emacs-flycheck-rust")
@@ -3989,6 +4053,62 @@ respective @code{*Help*} buffers.")
3989completion of relevant keywords.") 4053completion of relevant keywords.")
3990 (license license:expat))) 4054 (license license:expat)))
3991 4055
4056(define-public emacs-dvc
4057 (let ((revision "591") ;no tags or official releases
4058 (guix-revision "1"))
4059 (package
4060 (name "emacs-dvc")
4061 (version (string-append "0.0.0-" guix-revision "." revision))
4062 (source
4063 (origin
4064 (method bzr-fetch)
4065 (uri (bzr-reference
4066 (url "lp:dvc")
4067 (revision revision)))
4068 (sha256
4069 (base32
4070 "03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
4071 (file-name (string-append name "-" version "-checkout"))))
4072 (build-system gnu-build-system)
4073 (arguments
4074 `(#:configure-flags
4075 (list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
4076 "/share/emacs/site-lisp/"))
4077 #:tests? #f ;no test suite
4078 #:phases
4079 (modify-phases %standard-phases
4080 (add-before 'build 'set-home
4081 ;; Something in dvc-bookmarks.el attempts to write config files in
4082 ;; $HOME during the autoload generation.
4083 (lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
4084 (add-before 'build 'fix-texinfo
4085 ;; See https://bugs.launchpad.net/dvc/+bug/1264383.
4086 (lambda _
4087 (substitute* "texinfo/dvc-intro.texinfo"
4088 (("@itemx update ``to''")
4089 "@item update ``to''")
4090 (("@itemx brief")
4091 "@item brief")
4092 (("@itemx full")
4093 "@item full")
4094 (("@itemx drop")
4095 "@item drop")
4096 (("@itemx left file")
4097 "@item left file"))
4098 #t)))))
4099 (native-inputs
4100 `(("autoconf" ,autoconf)
4101 ("automake" ,automake) ;for aclocal
4102 ("emacs" ,emacs-minimal)
4103 ("texinfo" ,texinfo)))
4104 (home-page "http://xsteve.at/prg/emacs_dvc/index.html")
4105 (synopsis "Emacs front-end for various distributed version control systems.")
4106 (description "DVC is a legacy Emacs front-end for a number of
4107distributed version control systems. It currently supports GNU Arch, GNU
4108Bazaar, git, Mercurial, and Monotone. It also provides some integration with
4109Gnus, e.g., for applying patches received by email.")
4110 (license license:gpl2+))))
4111
3992(define-public emacs-sudo-edit 4112(define-public emacs-sudo-edit
3993 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d") 4113 (let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
3994 (revision "6")) 4114 (revision "6"))
@@ -4073,14 +4193,14 @@ source code using IPython.")
4073(define-public emacs-debbugs 4193(define-public emacs-debbugs
4074 (package 4194 (package
4075 (name "emacs-debbugs") 4195 (name "emacs-debbugs")
4076 (version "0.23") 4196 (version "0.24")
4077 (source (origin 4197 (source
4078 (method url-fetch) 4198 (origin
4079 (uri (string-append "https://elpa.gnu.org/packages/debbugs-" 4199 (method url-fetch)
4080 version ".tar")) 4200 (uri (string-append "https://elpa.gnu.org/packages/debbugs-"
4081 (sha256 4201 version ".tar"))
4082 (base32 4202 (sha256
4083 "0mcz97b3sddrc68wi8dz95b2rq7ky88pr2i1ghyhy28as16chmz5")))) 4203 (base32 "1b8qwdvf3jvw0chrdgbymb2ci9ms45mf90nrljxx7jql2lsr3x63"))))
4084 (build-system emacs-build-system) 4204 (build-system emacs-build-system)
4085 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$"))) 4205 (arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
4086 (propagated-inputs 4206 (propagated-inputs
@@ -5109,31 +5229,28 @@ linting of manifests and integration with Puppet Debugger.")
5109 (license license:gpl3+)))) 5229 (license license:gpl3+))))
5110 5230
5111(define-public emacs-god-mode 5231(define-public emacs-god-mode
5112 (let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964") 5232 (package
5113 (revision "1")) 5233 (name "emacs-god-mode")
5114 (package 5234 (version "2.17.0")
5115 (name "emacs-god-mode") 5235 (source
5116 (version (string-append "20151005.925." 5236 (origin
5117 revision "-" (string-take commit 9))) 5237 (method git-fetch)
5118 (source 5238 (uri (git-reference
5119 (origin 5239 (url "https://github.com/chrisdone/god-mode.git")
5120 (method git-fetch) 5240 (commit version)))
5121 (uri (git-reference 5241 (file-name (git-file-name name version))
5122 (url "https://github.com/chrisdone/god-mode.git") 5242 (sha256
5123 (commit commit))) 5243 (base32
5124 (file-name (git-file-name name version)) 5244 "1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
5125 (sha256 5245 (build-system emacs-build-system)
5126 (base32 5246 (home-page "https://github.com/chrisdone/god-mode")
5127 "1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix")))) 5247 (synopsis "Minor mode for entering commands without modifier keys")
5128 (build-system emacs-build-system) 5248 (description
5129 (home-page "https://github.com/chrisdone/god-mode") 5249 "This package provides a global minor mode for entering Emacs commands
5130 (synopsis "Minor mode for entering commands without modifier keys")
5131 (description
5132 "This package provides a global minor mode for entering Emacs commands
5133without modifier keys. It's similar to Vim's separation of commands and 5250without modifier keys. It's similar to Vim's separation of commands and
5134insertion mode. When enabled all keys are implicitly prefixed with 5251insertion mode. When enabled all keys are implicitly prefixed with
5135@samp{C-} (among other helpful shortcuts).") 5252@samp{C-} (among other helpful shortcuts).")
5136 (license license:gpl3+)))) 5253 (license license:gpl3+)))
5137 5254
5138(define-public emacs-jinja2-mode 5255(define-public emacs-jinja2-mode
5139 (package 5256 (package
@@ -7397,7 +7514,7 @@ indentation guides in Emacs:
7397(define-public emacs-elpy 7514(define-public emacs-elpy
7398 (package 7515 (package
7399 (name "emacs-elpy") 7516 (name "emacs-elpy")
7400 (version "1.32.0") 7517 (version "1.34.0")
7401 (source (origin 7518 (source (origin
7402 (method git-fetch) 7519 (method git-fetch)
7403 (uri (git-reference 7520 (uri (git-reference
@@ -7406,12 +7523,23 @@ indentation guides in Emacs:
7406 (file-name (git-file-name name version)) 7523 (file-name (git-file-name name version))
7407 (sha256 7524 (sha256
7408 (base32 7525 (base32
7409 "0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj")))) 7526 "1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
7410 (build-system emacs-build-system) 7527 (build-system emacs-build-system)
7411 (arguments 7528 (arguments
7412 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) 7529 `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
7413 #:phases 7530 #:phases
7414 (modify-phases %standard-phases 7531 (modify-phases %standard-phases
7532 ;; The following tests fail when building with Emacs 27 (see:
7533 ;; https://github.com/jorgenschaefer/elpy/issues/1812).
7534 (add-after 'unpack 'disable-problematic-tests
7535 (lambda _
7536 (substitute* "test/elpy-company-backend-test.el"
7537 (("elpy-company-backend-should-add-shell-candidates.*" all)
7538 (string-append all " (skip-unless nil)\n")))
7539 (substitute* "test/elpy-folding-fold-comments-test.el"
7540 (("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
7541 (string-append all " (skip-unless nil)\n")))
7542 #t))
7415 ;; The default environment of the RPC uses Virtualenv to install 7543 ;; The default environment of the RPC uses Virtualenv to install
7416 ;; Python dependencies from PyPI. We don't want/need this in Guix. 7544 ;; Python dependencies from PyPI. We don't want/need this in Guix.
7417 (add-before 'check 'do-not-use-virtualenv 7545 (add-before 'check 'do-not-use-virtualenv
@@ -9456,48 +9584,26 @@ been adapted to work with mu4e.")
9456 (uri (git-reference 9584 (uri (git-reference
9457 (url "https://github.com/joaotavora/yasnippet.git") 9585 (url "https://github.com/joaotavora/yasnippet.git")
9458 (commit version))) 9586 (commit version)))
9459 (file-name (string-append name "-" version ".tar.gz")) 9587 (file-name (git-file-name name version))
9460 (sha256 9588 (sha256
9461 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv")) 9589 (base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
9462 (modules '((guix build utils)))
9463 (snippet
9464 '(begin
9465 ;; YASnippet expects a "snippets" subdirectory in the same
9466 ;; directory as yasnippet.el, but we don't install it because it's
9467 ;; a git submodule pointing to an external repository. Adjust
9468 ;; `yas-snippet-dirs' to prevent warnings about a missing
9469 ;; directory.
9470 (substitute* "yasnippet.el"
9471 (("^ +'yas-installed-snippets-dir\\)\\)\n")
9472 "))\n"))
9473 #t))))
9474 (build-system emacs-build-system) 9590 (build-system emacs-build-system)
9475 (arguments 9591 (arguments
9476 `(#:tests? #t 9592 `(#:tests? #t
9477 #:test-command '("emacs" "--batch" 9593 #:test-command '("emacs" "--batch"
9478 "-l" "yasnippet-tests.el" 9594 "-l" "yasnippet-tests.el"
9479 "-f" "ert-run-tests-batch-and-exit") 9595 "-f" "ert-run-tests-batch-and-exit")
9480 ;; FIXME: one failing test.
9481 #:phases 9596 #:phases
9482 (modify-phases %standard-phases 9597 (modify-phases %standard-phases
9483 (add-before 'check 'make-tests-writable 9598 ;; Set HOME, otherwise test-rebindings fails.
9484 (lambda _ 9599 (add-before 'check 'set-home
9485 (make-file-writable "yasnippet-tests.el")
9486 #t))
9487 (add-before 'check 'delete-rebinding-test
9488 (lambda _ 9600 (lambda _
9489 (emacs-batch-edit-file "yasnippet-tests.el" 9601 (setenv "HOME" (getcwd))
9490 `(progn (goto-char (point-min))
9491 (re-search-forward "ert-deftest test-rebindings")
9492 (beginning-of-line)
9493 (kill-sexp)
9494 (basic-save-buffer)))
9495 #t))))) 9602 #t)))))
9496 (home-page "https://github.com/joaotavora/yasnippet") 9603 (home-page "https://github.com/joaotavora/yasnippet")
9497 (synopsis "Yet another snippet extension for Emacs") 9604 (synopsis "Yet another snippet extension for Emacs")
9498 (description 9605 (description "YASnippet is a template system for Emacs. It allows you to
9499 "YASnippet is a template system for Emacs. It allows you to type an 9606type an abbreviation and automatically expand it into function templates.")
9500abbreviation and automatically expand it into function templates.")
9501 (license license:gpl3+))) 9607 (license license:gpl3+)))
9502 9608
9503(define-public emacs-yasnippet-snippets 9609(define-public emacs-yasnippet-snippets
@@ -10015,26 +10121,17 @@ performance-oriented and tidy.")
10015(define-public emacs-leaf 10121(define-public emacs-leaf
10016 (package 10122 (package
10017 (name "emacs-leaf") 10123 (name "emacs-leaf")
10018 (version "3.5.0") 10124 (version "4.2.5")
10019 (source 10125 (source
10020 (origin 10126 (origin
10021 (method git-fetch) 10127 (method url-fetch)
10022 (uri (git-reference 10128 (uri (string-append "https://elpa.gnu.org/packages/"
10023 (url "https://github.com/conao3/leaf.el.git") 10129 "leaf-" version ".tar"))
10024 (commit (string-append "v" version))))
10025 (file-name (git-file-name name version))
10026 (sha256 10130 (sha256
10027 (base32 10131 (base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
10028 "1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
10029 (build-system emacs-build-system) 10132 (build-system emacs-build-system)
10030 (home-page "https://github.com/conao3/leaf.el") 10133 (home-page "https://github.com/conao3/leaf.el")
10031 (arguments 10134 (synopsis "Simplify your init.el configuration, extended use-package")
10032 `(#:tests? #t
10033 #:test-command '("emacs" "--batch"
10034 "-l" "leaf-tests.el"
10035 "-f" "cort-test-run")))
10036 (synopsis
10037 "Simplify your init.el configuration, extended use-package")
10038 (description 10135 (description
10039 "This package provides macros that allows you to declaratively configure 10136 "This package provides macros that allows you to declaratively configure
10040settings typical of an Elisp package with various keywords. The syntax is 10137settings typical of an Elisp package with various keywords. The syntax is
@@ -14524,7 +14621,7 @@ documentation.")
14524(define-public emacs-hy-mode 14621(define-public emacs-hy-mode
14525 (package 14622 (package
14526 (name "emacs-hy-mode") 14623 (name "emacs-hy-mode")
14527 (version "1.0.3") 14624 (version "1.0.4")
14528 (source 14625 (source
14529 (origin 14626 (origin
14530 (method git-fetch) 14627 (method git-fetch)
@@ -14533,7 +14630,7 @@ documentation.")
14533</