Merge remote-tracking branch 'origin/master' into qt-updates

This commit is contained in:
Efraim Flashner 2018-07-14 20:55:36 +03:00
commit 0a34402b19
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
85 changed files with 3863 additions and 865 deletions

View File

@ -85,6 +85,7 @@ MODULES = \
guix/nar.scm \ guix/nar.scm \
guix/derivations.scm \ guix/derivations.scm \
guix/grafts.scm \ guix/grafts.scm \
guix/inferior.scm \
guix/gnu-maintenance.scm \ guix/gnu-maintenance.scm \
guix/self.scm \ guix/self.scm \
guix/upstream.scm \ guix/upstream.scm \
@ -200,6 +201,7 @@ MODULES = \
guix/scripts/substitute.scm \ guix/scripts/substitute.scm \
guix/scripts/authenticate.scm \ guix/scripts/authenticate.scm \
guix/scripts/refresh.scm \ guix/scripts/refresh.scm \
guix/scripts/repl.scm \
guix/scripts/system.scm \ guix/scripts/system.scm \
guix/scripts/system/search.scm \ guix/scripts/system/search.scm \
guix/scripts/lint.scm \ guix/scripts/lint.scm \
@ -357,6 +359,7 @@ SCM_TESTS = \
tests/profiles.scm \ tests/profiles.scm \
tests/search-paths.scm \ tests/search-paths.scm \
tests/syscalls.scm \ tests/syscalls.scm \
tests/inferior.scm \
tests/gremlin.scm \ tests/gremlin.scm \
tests/bournish.scm \ tests/bournish.scm \
tests/lint.scm \ tests/lint.scm \

View File

@ -212,7 +212,8 @@ The commit message snippets depend on @url{https://magit.vc/, Magit} to
display staged files. When editing a commit message type @code{add} display staged files. When editing a commit message type @code{add}
followed by @kbd{TAB} to insert a commit message template for adding a followed by @kbd{TAB} to insert a commit message template for adding a
package; type @code{update} followed by @kbd{TAB} to insert a template package; type @code{update} followed by @kbd{TAB} to insert a template
for updating a package. for updating a package; type @code{https} followed by @kbd{TAB} to
insert a template for changing the home page URI of a package to HTTPS.
The main snippet for @code{scheme-mode} is triggered by typing The main snippet for @code{scheme-mode} is triggered by typing
@code{package...} followed by @kbd{TAB}. This snippet also inserts the @code{package...} followed by @kbd{TAB}. This snippet also inserts the

View File

@ -27,7 +27,7 @@ Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@* Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@*
Copyright @copyright{} 2016 John Darrington@* Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016, 2017 Nils Gillmann@* Copyright @copyright{} 2016, 2017 Nils Gillmann@*
Copyright @copyright{} 2016, 2017 Jan Nieuwenhuizen@* Copyright @copyright{} 2016, 2017, 2018 Jan Nieuwenhuizen@*
Copyright @copyright{} 2016 Julien Lepiller@* Copyright @copyright{} 2016 Julien Lepiller@*
Copyright @copyright{} 2016 Alex ter Weele@* Copyright @copyright{} 2016 Alex ter Weele@*
Copyright @copyright{} 2017, 2018 Clément Lassieur@* Copyright @copyright{} 2017, 2018 Clément Lassieur@*
@ -166,6 +166,7 @@ Programming Interface
* Derivations:: Low-level interface to package derivations. * Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store. * The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions. * G-Expressions:: Manipulating build expressions.
* Invoking guix repl:: Fiddling with Guix interactively.
Defining Packages Defining Packages
@ -2785,12 +2786,18 @@ Generation 2 Jun 11 2018 11:02:49
repository URL: https://git.savannah.gnu.org/git/guix.git repository URL: https://git.savannah.gnu.org/git/guix.git
branch: origin/master branch: origin/master
commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d
2 new packages: keepalived, libnfnetlink
6 packages upgraded: emacs-nix-mode@@2.0.4,
guile2.0-guix@@0.14.0-12.77a1aac, guix@@0.14.0-12.77a1aac,
heimdal@@7.5.0, milkytracker@@1.02.00, nix@@2.0.4
Generation 3 Jun 13 2018 23:31:07 (current) Generation 3 Jun 13 2018 23:31:07 (current)
guix 844cc1c guix 844cc1c
repository URL: https://git.savannah.gnu.org/git/guix.git repository URL: https://git.savannah.gnu.org/git/guix.git
branch: origin/master branch: origin/master
commit: 844cc1c8f394f03b404c5bb3aee086922373490c commit: 844cc1c8f394f03b404c5bb3aee086922373490c
28 new packages: emacs-helm-ls-git, emacs-helm-mu, @dots{}
69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}
@end example @end example
This @code{~/.config/guix/current} profile works like any other profile This @code{~/.config/guix/current} profile works like any other profile
@ -3267,6 +3274,7 @@ package definitions.
* Derivations:: Low-level interface to package derivations. * Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store. * The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions. * G-Expressions:: Manipulating build expressions.
* Invoking guix repl:: Fiddling with Guix interactively.
@end menu @end menu
@node Defining Packages @node Defining Packages
@ -4916,6 +4924,12 @@ containing @var{text}, a string. @var{references} is a list of store items that
resulting text file refers to; it defaults to the empty list. resulting text file refers to; it defaults to the empty list.
@end deffn @end deffn
@deffn {Monadic Procedure} binary-file @var{name} @var{data} [@var{references}]
Return as a monadic value the absolute file name in the store of the file
containing @var{data}, a bytevector. @var{references} is a list of store
items that the resulting binary file refers to; it defaults to the empty list.
@end deffn
@deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @ @deffn {Monadic Procedure} interned-file @var{file} [@var{name}] @
[#:recursive? #t] [#:select? (const #t)] [#:recursive? #t] [#:select? (const #t)]
Return the name of @var{file} once interned in the store. Use Return the name of @var{file} once interned in the store. Use
@ -5349,7 +5363,7 @@ procedure (@pxref{The Store Monad, @code{interned-file}}).
@deffn {Scheme Procedure} plain-file @var{name} @var{content} @deffn {Scheme Procedure} plain-file @var{name} @var{content}
Return an object representing a text file called @var{name} with the given Return an object representing a text file called @var{name} with the given
@var{content} (a string) to be added to the store. @var{content} (a string or a bytevector) to be added to the store.
This is the declarative counterpart of @code{text-file}. This is the declarative counterpart of @code{text-file}.
@end deffn @end deffn
@ -5538,6 +5552,57 @@ corresponding to @var{obj} for @var{system}, cross-compiling for
has an associated gexp compiler, such as a @code{<package>}. has an associated gexp compiler, such as a @code{<package>}.
@end deffn @end deffn
@node Invoking guix repl
@section Invoking @command{guix repl}
@cindex REPL, read-eval-print loop
The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop}
(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile,
GNU Guile Reference Manual}). Compared to just launching the @command{guile}
command, @command{guix repl} guarantees that all the Guix modules and all its
dependencies are available in the search path. You can use it this way:
@example
$ guix repl
scheme@@(guile-user)> ,use (gnu packages base)
scheme@@(guile-user)> coreutils
$1 = #<package coreutils@@8.29 gnu/packages/base.scm:327 3e28300>
@end example
@cindex inferiors
In addition, @command{guix repl} implements a simple machine-readable REPL
protocol for use by @code{(guix inferior)}, a facility to interact with
@dfn{inferiors}, separate processes running a potentially different revision
of Guix.
The available options are as follows:
@table @code
@item --type=@var{type}
@itemx -t @var{type}
Start a REPL of the given @var{TYPE}, which can be one of the following:
@table @code
@item guile
This is default, and it spawns a standard full-featured Guile REPL.
@item machine
Spawn a REPL that uses the machine-readable protocol. This is the protocol
that the @code{(guix inferior)} module speaks.
@end table
@item --listen=@var{endpoint}
By default, @command{guix repl} reads from standard input and writes to
standard output. When this option is passed, it will instead listen for
connections on @var{endpoint}. Here are examples of valid options:
@table @code
@item --listen=tcp:37146
Accept connections on localhost on port 37146.
@item --listen=unix:/tmp/socket
Accept connections on the Unix-domain socket @file{/tmp/socket}.
@end table
@end table
@c ********************************************************************* @c *********************************************************************
@node Utilities @node Utilities
@ -10844,6 +10909,21 @@ gexps to introduce job definitions that are passed to mcron
for more information on mcron job specifications. Below is the for more information on mcron job specifications. Below is the
reference of the mcron service. reference of the mcron service.
On a running system, you can use the @code{schedule} action of the service to
visualize the mcron jobs that will be executed next:
@example
# herd schedule mcron
@end example
@noindent
The example above lists the next five tasks that will be executed, but you can
also specify the number of tasks to display:
@example
# herd schedule mcron 10
@end example
@deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}] @deffn {Scheme Procedure} mcron-service @var{jobs} [#:mcron @var{mcron}]
Return an mcron service running @var{mcron} that schedules @var{jobs}, a Return an mcron service running @var{mcron} that schedules @var{jobs}, a
list of gexps denoting mcron job specifications. list of gexps denoting mcron job specifications.
@ -21963,6 +22043,17 @@ Constructors,,, shepherd, The GNU Shepherd Manual}). They are given as
G-expressions that get expanded in the Shepherd configuration file G-expressions that get expanded in the Shepherd configuration file
(@pxref{G-Expressions}). (@pxref{G-Expressions}).
@item @code{actions} (default: @code{'()})
@cindex actions, of Shepherd services
This is a list of @code{shepherd-action} objects (see below) defining
@dfn{actions} supported by the service, in addition to the standard
@code{start} and @code{stop} actions. Actions listed here become available as
@command{herd} sub-commands:
@example
herd @var{action} @var{service} [@var{arguments}@dots{}]
@end example
@item @code{documentation} @item @code{documentation}
A documentation string, as shown when running: A documentation string, as shown when running:
@ -21980,6 +22071,54 @@ This is the list of modules that must be in scope when @code{start} and
@end table @end table
@end deftp @end deftp
@deftp {Data Type} shepherd-action
This is the data type that defines additional actions implemented by a
Shepherd service (see above).
@table @code
@item name
Symbol naming the action.
@item documentation
This is a documentation string for the action. It can be viewed by running:
@example
herd doc @var{service} action @var{action}
@end example
@item procedure
This should be a gexp that evaluates to a procedure of at least one argument,
which is the ``running value'' of the service (@pxref{Slots of services,,,
shepherd, The GNU Shepherd Manual}).
@end table
The following example defines an action called @code{say-hello} that kindly
greets the user:
@example
(shepherd-action
(name 'say-hello)
(documentation "Say hi!")
(procedure #~(lambda (running . args)
(format #t "Hello, friend! arguments: ~s\n"
args)
#t)))
@end example
Assuming this action is added to the @code{example} service, then you can do:
@example
# herd say-hello example
Hello, friend! arguments: ()
# herd say-hello example a b c
Hello, friend! arguments: ("a" "b" "c")
@end example
This, as you can see, is a fairly sophisticated way to say hello.
@xref{Service Convenience,,, shepherd, The GNU Shepherd Manual}, for more
info on actions.
@end deftp
@defvr {Scheme Variable} shepherd-root-service-type @defvr {Scheme Variable} shepherd-root-service-type
The service type for the Shepherd ``root service''---i.e., PID@tie{}1. The service type for the Shepherd ``root service''---i.e., PID@tie{}1.

View File

@ -7,7 +7,8 @@
(name "$1") (name "$1")
(version "$2") (version "$2")
(source origin...$0) (source origin...$0)
(build-system ${3:$$(yas-choose-value "ant-build-system" (build-system ${3:$$(yas-choose-value "android-ndk-build-system"
"ant-build-system"
"asdf-build-system" "asdf-build-system"
"cargo-build-system" "cargo-build-system"
"cmake-build-system" "cmake-build-system"
@ -25,6 +26,7 @@
"python-build-system" "python-build-system"
"r-build-system" "r-build-system"
"ruby-build-system" "ruby-build-system"
"scons-build-system"
"texlive-build-system" "texlive-build-system"
"trivial-build-system" "trivial-build-system"
"waf-build-system")}) "waf-build-system")})

View File

@ -0,0 +1,9 @@
# -*- mode: snippet -*-
# name: guix-commit-message-use-https-home-page
# key: https
# condition: git-commit-mode
# --
gnu: $1: Use HTTPS home page URI.
* `(car (magit-staged-files))` ($1)[home-page]: Use HTTPS URI.
`(mapconcat (lambda (file) (concat "* " file)) (cdr (magit-staged-files)) "\n")`

View File

@ -564,7 +564,6 @@ dist_patch_DATA = \
%D%/packages/patches/aegis-test-fixup-1.patch \ %D%/packages/patches/aegis-test-fixup-1.patch \
%D%/packages/patches/aegis-test-fixup-2.patch \ %D%/packages/patches/aegis-test-fixup-2.patch \
%D%/packages/patches/agg-am_c_prototype.patch \ %D%/packages/patches/agg-am_c_prototype.patch \
%D%/packages/patches/alsa-lib-add-environment-variable.patch \
%D%/packages/patches/amule-crypto-6.patch \ %D%/packages/patches/amule-crypto-6.patch \
%D%/packages/patches/ansible-wrap-program-hack.patch \ %D%/packages/patches/ansible-wrap-program-hack.patch \
%D%/packages/patches/antiword-CVE-2014-8123.patch \ %D%/packages/patches/antiword-CVE-2014-8123.patch \
@ -585,7 +584,6 @@ dist_patch_DATA = \
%D%/packages/patches/bash-completion-directories.patch \ %D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \ %D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/beignet-correct-file-names.patch \ %D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/bind-CVE-2018-5738.patch \
%D%/packages/patches/binutils-aarch64-symbol-relocation.patch \ %D%/packages/patches/binutils-aarch64-symbol-relocation.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \ %D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \ %D%/packages/patches/blast+-fix-makefile.patch \
@ -809,6 +807,7 @@ dist_patch_DATA = \
%D%/packages/patches/intltool-perl-compatibility.patch \ %D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \ %D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \ %D%/packages/patches/jacal-fix-texinfo.patch \
%D%/packages/patches/jamvm-arm.patch \
%D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \
%D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \
%D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \
@ -937,7 +936,6 @@ dist_patch_DATA = \
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \ %D%/packages/patches/mcrypt-CVE-2012-4426.patch \
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \ %D%/packages/patches/mcrypt-CVE-2012-4527.patch \
%D%/packages/patches/mesa-skip-disk-cache-test.patch \ %D%/packages/patches/mesa-skip-disk-cache-test.patch \
%D%/packages/patches/mesa-wayland-egl-symbols-check-mips.patch \
%D%/packages/patches/meson-for-build-rpath.patch \ %D%/packages/patches/meson-for-build-rpath.patch \
%D%/packages/patches/metabat-fix-compilation.patch \ %D%/packages/patches/metabat-fix-compilation.patch \
%D%/packages/patches/mhash-keygen-test-segfault.patch \ %D%/packages/patches/mhash-keygen-test-segfault.patch \
@ -982,6 +980,7 @@ dist_patch_DATA = \
%D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openblas-fix-tests-i686.patch \
%D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openexr-missing-samples.patch \
%D%/packages/patches/openfoam-4.1-cleanup.patch \ %D%/packages/patches/openfoam-4.1-cleanup.patch \
%D%/packages/patches/openldap-CVE-2017-9287.patch \ %D%/packages/patches/openldap-CVE-2017-9287.patch \
@ -1138,6 +1137,7 @@ dist_patch_DATA = \
%D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/syncthing-fix-crash.patch \
%D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \
@ -1213,6 +1213,7 @@ dist_patch_DATA = \
%D%/packages/patches/wpa-supplicant-krack-followups.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \
%D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \ %D%/packages/patches/wxmaxima-do-not-use-old-gnuplot-parameters.patch \
%D%/packages/patches/x265-fix-ppc64le-build.patch \ %D%/packages/patches/x265-fix-ppc64le-build.patch \
%D%/packages/patches/xapian-revert-5489fb2f8.patch \
%D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \
%D%/packages/patches/xdotool-fix-makefile.patch \ %D%/packages/patches/xdotool-fix-makefile.patch \
%D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \
@ -1220,7 +1221,9 @@ dist_patch_DATA = \
%D%/packages/patches/xf86-video-geode-glibc-2.20.patch \ %D%/packages/patches/xf86-video-geode-glibc-2.20.patch \
%D%/packages/patches/xf86-video-i128-remove-mibstore.patch \ %D%/packages/patches/xf86-video-i128-remove-mibstore.patch \
%D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \ %D%/packages/patches/xf86-video-mach64-glibc-2.20.patch \
%D%/packages/patches/xf86-video-savage-xorg-compat.patch \
%D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \ %D%/packages/patches/xf86-video-siliconmotion-fix-ftbfs.patch \
%D%/packages/patches/xf86-video-sis-xorg-compat.patch \
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch \ %D%/packages/patches/xf86-video-tga-remove-mibstore.patch \
%D%/packages/patches/xfce4-panel-plugins.patch \ %D%/packages/patches/xfce4-panel-plugins.patch \
%D%/packages/patches/xfce4-session-fix-xflock4.patch \ %D%/packages/patches/xfce4-session-fix-xflock4.patch \
@ -1228,6 +1231,7 @@ dist_patch_DATA = \
%D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-fix-fd-leak.patch \
%D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \
%D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/xmodmap-asprintf.patch \
%D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \
%D%/packages/patches/zathura-plugindir-environment-variable.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch \
%D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \ %D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \
%D%/packages/patches/zstd-fix-stdin-list-test.patch %D%/packages/patches/zstd-fix-stdin-list-test.patch

View File

@ -10,7 +10,7 @@
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
@ -1131,7 +1131,7 @@ command.")
(define-public tzdata (define-public tzdata
(package (package
(name "tzdata") (name "tzdata")
(version "2018d") (version "2018e")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1139,7 +1139,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji")))) "0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f '(#:tests? #f
@ -1189,7 +1189,7 @@ command.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x")))))) "1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a"))))))
(home-page "https://www.iana.org/time-zones") (home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones") (synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo) (description "The Time Zone Database (often called tz or zoneinfo)
@ -1205,7 +1205,25 @@ and daylight-saving rules.")
;;; will typically be obsolete and should never be referred to by a built ;;; will typically be obsolete and should never be referred to by a built
;;; package. ;;; package.
(define-public tzdata-for-tests (define-public tzdata-for-tests
(hidden-package tzdata)) (hidden-package
(package
(inherit tzdata)
(version "2018d")
(source (origin
(method url-fetch)
(uri (string-append "https://www.iana.org/time-zones/repository"
"/releases/tzdata" version ".tar.gz"))
(sha256
(base32
"0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji"))))
(inputs `(("tzcode" ,(origin
(method url-fetch)
(uri (string-append
"http://www.iana.org/time-zones/repository/releases/tzcode"
version ".tar.gz"))
(sha256
(base32
"1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x")))))))))
(define-public libiconv (define-public libiconv
(package (package

View File

@ -425,8 +425,7 @@ def test_ctrl_c"))
(apply invoke "make" "tools_defconfig" make-flags))) (apply invoke "make" "tools_defconfig" make-flags)))
(replace 'build (replace 'build
(lambda* (#:key inputs make-flags #:allow-other-keys) (lambda* (#:key inputs make-flags #:allow-other-keys)
(apply invoke "make" "tools-only" make-flags) (apply invoke "make" "tools-all" make-flags)))
(apply invoke "make" "envtools" make-flags)))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -443,7 +442,8 @@ def test_ctrl_c"))
"tools/mkimage" "tools/mkimage"
"tools/proftool" "tools/proftool"
"tools/fdtgrep" "tools/fdtgrep"
"tools/env/fw_printenv")) "tools/env/fw_printenv"
"tools/sunxi-spl-image-builder"))
#t))) #t)))
(delete 'check) (delete 'check)
(add-after 'install 'check (add-after 'install 'check
@ -519,7 +519,8 @@ board-independent tools.")))
(let ((target-file (string-append libexec "/" file))) (let ((target-file (string-append libexec "/" file)))
(mkdir-p (dirname target-file)) (mkdir-p (dirname target-file))
(copy-file file target-file))) (copy-file file target-file)))
uboot-files)))))))))) uboot-files)
#t)))))))))
(define-public u-boot-vexpress (define-public u-boot-vexpress
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf")) (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))

View File

@ -100,7 +100,7 @@ generate such a compilation database.")
(define-public meson (define-public meson
(package (package
(name "meson") (name "meson")
(version "0.45.1") (version "0.46.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/mesonbuild/meson/" (uri (string-append "https://github.com/mesonbuild/meson/"
@ -108,7 +108,7 @@ generate such a compilation database.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1yqa4337nb8w92bvr91rsxmn0xkf7pmdybq9ljvnqmdvn7dv02sd")))) "0y7f5hhy16q99l7x06x8sid9p9dbg6d7i60zs7c07cz5ww1plj8r"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH `(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH

View File

@ -76,7 +76,7 @@
(define-public nss-certs (define-public nss-certs
(package (package
(name "nss-certs") (name "nss-certs")
(version "3.36.1") (version "3.38")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -87,7 +87,7 @@
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")))) "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out")) (outputs '("out"))
(native-inputs (native-inputs

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,9 +21,11 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download) #:use-module (guix download)
#:use-module (gnu packages compression)
#:use-module (gnu packages gv) #:use-module (gnu packages gv)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
(define-public domainfinder (define-public domainfinder
@ -54,6 +57,84 @@ single structure. The software is currently not actively maintained and works
only with Python 2 and NumPy < 1.9.") only with Python 2 and NumPy < 1.9.")
(license license:cecill-c))) (license license:cecill-c)))
(define-public inchi
(package
(name "inchi")
(version "1.05")
(source (origin
(method url-fetch)
(uri (string-append "http://www.inchi-trust.org/download/"
(string-join (string-split version #\.) "")
"/INCHI-1-SRC.zip"))
(sha256
(base32
"081pcjx1z5jm23fs1pl2r3bccia0ww8wfkzcjpb7byhn7b513hsa"))
(file-name (string-append name "-" version ".zip"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-before 'build 'chdir-to-build-directory
(lambda _ (chdir "INCHI_EXE/inchi-1/gcc") #t))
(add-after 'build 'build-library
(lambda _
(chdir "../../../INCHI_API/libinchi/gcc")
(invoke "make")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(doc (string-append out "/share/doc/inchi"))
(include-dir (string-append out "/include/inchi"))
(lib (string-append out "/lib/inchi"))
(inchi-doc (assoc-ref inputs "inchi-doc"))
(unzip (string-append (assoc-ref inputs "unzip")
"/bin/unzip")))
(chdir "../../..")
;; Install binary.
(with-directory-excursion "INCHI_EXE/bin/Linux"
(rename-file "inchi-1" "inchi")
(install-file "inchi" bin))
;; Install libraries.
(with-directory-excursion "INCHI_API/bin/Linux"
(for-each (lambda (file)
(install-file file lib))
(find-files "." "libinchi\\.so\\.1\\.*")))
;; Install header files.
(with-directory-excursion "INCHI_BASE/src"
(for-each (lambda (file)
(install-file file include-dir))
(find-files "." "\\.h$")))
;; Install documentation.
(mkdir-p doc)
(invoke unzip "-j" "-d" doc inchi-doc)
#t))))))
(native-inputs
`(("unzip" ,unzip)
("inchi-doc"
,(origin
(method url-fetch)
(uri (string-append "http://www.inchi-trust.org/download/"
(string-join (string-split version #\.) "")
"/INCHI-1-DOC.zip"))
(sha256
(base32
"1id1qb2y4lwsiw91qr2yqpn6kxbwjwhjk0hb2rwk4fxhdqib6da6"))
(file-name (string-append name "-" version ".zip"))))))
(home-page "https://www.inchi-trust.org")
(synopsis "Utility for manipulating machine-readable chemical structures")
(description
"The @dfn{InChI} (IUPAC International Chemical Identifier) algorithm turns
chemical structures into machine-readable strings of information. InChIs are
unique to the compound they describe and can encode absolute stereochemistry
making chemicals and chemistry machine-readable and discoverable. A simple
analogy is that InChI is the bar-code for chemistry and chemical structures.")
(license (license:non-copyleft
"file://LICENCE"
"See LICENCE in the distribution."))))
(define with-numpy-1.8 (define with-numpy-1.8
(package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8)))) (package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))

View File

@ -1889,19 +1889,19 @@ create, manipulate, read, and write Zip archive files.")
(define-public libzip (define-public libzip
(package (package
(name "libzip") (name "libzip")
(version "1.3.2") (version "1.5.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://libzip.org/download/" name "-" version ".tar.xz")) "https://libzip.org/download/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2")))) "0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4"))))
(native-inputs (native-inputs
`(("perl" ,perl))) `(("perl" ,perl)))
(inputs (inputs
`(("zlib" ,zlib))) `(("zlib" ,zlib)))
(build-system gnu-build-system) (build-system cmake-build-system)
(home-page "https://libzip.org") (home-page "https://libzip.org")
(synopsis "C library for reading, creating, and modifying zip archives") (synopsis "C library for reading, creating, and modifying zip archives")
(description "Libzip is a C library for reading, creating, and modifying (description "Libzip is a C library for reading, creating, and modifying

View File

@ -51,7 +51,7 @@
(package (package
(name "curl") (name "curl")
(version "7.59.0") (version "7.59.0")
(replacement curl-7.60.0) (replacement curl-7.61.0)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-" (uri (string-append "https://curl.haxx.se/download/curl-"
@ -141,10 +141,10 @@ tunneling, and so on.")
"See COPYING in the distribution.")) "See COPYING in the distribution."))
(home-page "https://curl.haxx.se/"))) (home-page "https://curl.haxx.se/")))
(define-public curl-7.60.0 (define-public curl-7.61.0
(package (package
(inherit curl) (inherit curl)
(version "7.60.0") (version "7.61.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -152,7 +152,7 @@ tunneling, and so on.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7")))))) "080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg"))))))
(define-public kurly (define-public kurly
(package (package

View File

@ -705,14 +705,14 @@ as a drop-in replacement of MySQL.")
(define-public postgresql (define-public postgresql
(package (package
(name "postgresql") (name "postgresql")
(version "10.3") (version "10.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v" (uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2")) version "/postgresql-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"06lkcwsf851z49zqcws5yc77s2yrbaazf2nvbk38hpp31rw6i8kf")))) "0j000bcs9w8wrllg8m7j1lxsd3n2x0yzkack5p35cmxx20iq2q0v"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--with-uuid=e2fs") `(#:configure-flags '("--with-uuid=e2fs")
@ -1070,14 +1070,14 @@ is in the public domain.")
(define-public tdb (define-public tdb
(package (package
(name "tdb") (name "tdb")
(version "1.3.15") (version "1.3.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-" (uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl")))) "1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -9,6 +9,7 @@
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net> ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -29,7 +30,9 @@
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
@ -55,7 +58,8 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial))
(define-public dnsmasq (define-public dnsmasq
(package (package
@ -99,16 +103,15 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind (define-public isc-bind
(package (package
(name "bind") (name "bind")
(version "9.12.1-P2") (version "9.12.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"ftp://ftp.isc.org/isc/bind9/" version "/" name "-" "ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
version ".tar.gz")) version ".tar.gz"))
(patches (search-patches "bind-CVE-2018-5738.patch"))
(sha256 (sha256
(base32 (base32
"0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd")))) "0ll46igs9xfq2qclc5wzqsnj3zv7ssga0544gm24s1m7765lqslz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs
@ -288,7 +291,7 @@ asynchronous fashion.")
(define-public unbound (define-public unbound
(package (package
(name "unbound") (name "unbound")
(version "1.6.8") (version "1.7.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -296,7 +299,7 @@ asynchronous fashion.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0jfxhh4gc5amhndikskz1s7da27ycn442j3l20bm992n7zijid73")))) "0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "python")) (outputs '("out" "python"))
(native-inputs (native-inputs
@ -576,3 +579,89 @@ synthesis, and on-the-fly re-configuration.")
license:lgpl2.0+ ; parts of scr/contrib/ucw license:lgpl2.0+ ; parts of scr/contrib/ucw
license:public-domain ; src/contrib/fnv and possibly murmurhash3 license:public-domain ; src/contrib/fnv and possibly murmurhash3
license:gpl3+)))) ; everything else license:gpl3+)))) ; everything else
(define-public ddclient
(package
(name "ddclient")
(version "3.8.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ddclient/ddclient/ddclient-"
version "/ddclient-" version ".tar.gz"))
(sha256
(base32
"1j8zdn7fy7i0bjk3jf0hxnbnshc2yf054vxq64imxdpfd7n5zgfy"))))
(build-system trivial-build-system) ; no Makefile.PL
(native-inputs
`(("bash" ,bash)
("gzip" ,gzip)
("perl" ,perl)
("tar" ,tar)))
(inputs
`(("net-tools" ,net-tools)
("inetutils" ,inetutils) ;logger
("perl-io-socket-ssl" ,perl-io-socket-ssl)
("perl-digest-sha1" ,perl-digest-sha1)))
(arguments
`(#:modules ((guix build utils)
(ice-9 match)
(srfi srfi-26))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match)
(srfi srfi-26))
;; bootstrap
(setenv "PATH" (string-append
(assoc-ref %build-inputs "bash") "/bin" ":"
(assoc-ref %build-inputs "tar") "/bin" ":"
(assoc-ref %build-inputs "gzip") "/bin" ":"
(assoc-ref %build-inputs "perl") "/bin"))
;; extract source
(invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
;; package
(with-directory-excursion (string-append ,name "-" ,version)
(let* ((out (assoc-ref %outputs "out"))
(bin (string-append out "/bin")))
(let ((file "ddclient"))
(substitute* file
(("/usr/bin/perl") (which "perl"))
;; Strictly use /etc/ddclient/ddclient.conf.
(("\\$\\{program\\}\\.conf") "/etc/ddclient/ddclient.conf")
(("\\$etc\\$program.conf") "/etc/ddclient/ddclient.conf")
;; Strictly use /var/cache/ddclient/ddclient.cache
(("\\$cachedir\\$program\\.cache")
"/var/cache/ddclient/ddclient.cache"))
(install-file file bin)
(wrap-program (string-append bin "/" file)
`("PATH" ":" =
("$PATH"
,@(map (lambda (input)
(match input
((name . store)
(string-append store "/bin"))))
%build-inputs)))
`("PERL5LIB" ":" =
,(delete
""
(map (match-lambda
(((? (cut string-prefix? "perl-" <>) name) . dir)
(string-append dir "/lib/perl5/site_perl"))
(_ ""))
%build-inputs)))))
(for-each (cut install-file <> (string-append out
"/share/ddclient"))
(find-files "." "sample.*$")))))))
(home-page "https://sourceforge.net/projects/ddclient/")
(synopsis "Address updating utility for dynamic DNS services")
(description "This package provides a client to update dynamic IP
addresses with several dynamic DNS service providers, such as
@uref{https://www.dyndns.com/account/login.html,DynDNS.com}.
This makes it possible to use a fixed hostname (such as myhost.dyndns.org) to
access a machine with a dynamic IP address.
The client supports both dynamic and (near) static services, as well as MX
record and alternative name management. It caches the address, and only
attempts the update when it has changed.")
(license license:gpl2+)))

View File

@ -123,14 +123,14 @@ markup) can be customized and extended by the user.")
(define-public doxygen (define-public doxygen
(package (package
(name "doxygen") (name "doxygen")
(version "1.8.13") (version "1.8.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.stack.nl/pub/users/dimitri/" (uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
name "-" version ".src.tar.gz")) name "-" version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg")) "0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi"))
(patches (search-patches "doxygen-test.patch")))) (patches (search-patches "doxygen-test.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs

View File

@ -35,6 +35,7 @@
;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -8516,6 +8517,10 @@ outline-mode), so there is no such thing like an outshine mode, only
(base32 (base32
"109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf")))) "109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs
`(("emacs-seq" ,emacs-seq)
("emacs-dash" ,emacs-dash)
("emacs-let-alist" ,emacs-let-alist)))
(home-page "https://github.com/cpitclaudel/biblio.el") (home-page "https://github.com/cpitclaudel/biblio.el")
(synopsis "Browse and import bibliographic references") (synopsis "Browse and import bibliographic references")
(description "This package provides an extensible Emacs package for (description "This package provides an extensible Emacs package for
@ -8550,7 +8555,8 @@ automatically fetched from well-curated sources, and formatted as BibTeX.")
("emacs-s" ,emacs-s) ("emacs-s" ,emacs-s)
("emacs-dash" ,emacs-dash) ("emacs-dash" ,emacs-dash)
("emacs-f" ,emacs-f) ("emacs-f" ,emacs-f)
("emacs-biblio" ,emacs-biblio))) ("emacs-biblio" ,emacs-biblio)
("emacs-ivy" ,emacs-ivy)))
(home-page "https://github.com/tmalsburg/helm-bibtex") (home-page "https://github.com/tmalsburg/helm-bibtex")
(synopsis "Bibliography manager based on Helm") (synopsis "Bibliography manager based on Helm")
(description "This package provides bibliography manager for Emacs, (description "This package provides bibliography manager for Emacs,
@ -11410,3 +11416,50 @@ siblings and friends. This visual overview can also be used to browse your
entries. You can think of entries as nodes in a mind map, or pages in a entries. You can think of entries as nodes in a mind map, or pages in a
wiki.") wiki.")
(license license:expat))) (license license:expat)))
(define-public emacs-recent-addresses
(let ((commit "d9da58db542089a1ceb5ef29e420dbfbc4a36373")
(revision "0"))
(package
(name "emacs-recent-addresses")
(home-page "http://nschum.de/src/emacs/recent-addresses/")
(version (git-version "0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/nschum/recent-addresses.el")
(commit commit)))
(sha256
(base32
"175rvcwmkb5z7ss7q2y5178mvdvp5bhn39irz80qinlvaz8fm4nk"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(synopsis "Record recently-used email addressed and auto-complete them")
(description
"@code{recent-addresses} is an Emacs allows you to quickly look up
previously used email addresses. It can be used alongside the Gnus email
client.")
(license license:gpl2+))))
(define-public emacs-fold-dwim
(let ((commit "c46f4bb2ce91b4e307136320e72c28dd50b6cd8b")
(revision "0"))
(package
(name "emacs-fold-dwim")
(version (git-version "1.2" revision commit))
(home-page "https://github.com/emacsattic/fold-dwim")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
"1yz1wis31asw6xa5maliyd1ck2q02xnnh7dc6swgj9cb4wi7k6i1"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(synopsis "Unified user interface for Emacs folding modes")
(description
"DWIM stands for \"do what I mean\", as in the idea that one keystroke
can do different things depending on the context. In this package, it means
that, if the cursor is in a currently hidden folded construction, we want to
show it; if it's not, we want to hide whatever fold the cursor is in.")
(license license:gpl2+))))

View File

@ -147,14 +147,14 @@ freedesktop.org project.")
(define-public libinput (define-public libinput
(package (package
(name "libinput") (name "libinput")
(version "1.10.3") (version "1.11.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/" (uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0002xk9cqzpqrlhgav1wp8nimsbp9d2w8rd8mgygczq2hjar0lhd")))) "1z7i8vk0i61npkdqwsk85wp9v4yjlvylqnyydikjqnbsrjp9abk4"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:configure-flags '("-Ddocumentation=false"))) `(#:configure-flags '("-Ddocumentation=false")))
@ -474,7 +474,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
(define-public wayland-protocols (define-public wayland-protocols
(package (package
(name "wayland-protocols") (name "wayland-protocols")
(version "1.13") (version "1.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -482,7 +482,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
"wayland-protocols-" version ".tar.xz")) "wayland-protocols-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0f4gqvmz53q9d8h0ilhf4z773nb4vskzx11a3d1jycym120bqn07")))) "1xknjcfhqvdi1s4iq4kk1q61fg2rar3g8q4vlqarpd324imqjj4n"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("wayland" ,wayland))) `(("wayland" ,wayland)))

View File

@ -7,7 +7,7 @@
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Julian Graham <joolean@gmail.com> ;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com> ;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
@ -225,14 +225,14 @@ PCM data.")
(define-public gzochi (define-public gzochi
(package (package
(name "gzochi") (name "gzochi")
(version "0.11.1") (version "0.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://savannah/gzochi/gzochi-" (uri (string-append "mirror://savannah/gzochi/gzochi-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3")))) "0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases

View File

@ -627,7 +627,7 @@ as the 'native-search-paths' field."
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(for-each delete-file (for-each delete-file
(find-files (string-append (assoc-ref outputs "out") "/bin") (find-files (string-append (assoc-ref outputs "out") "/bin")
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)")) ".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
#t)))))))) #t))))))))
(define %generic-search-paths (define %generic-search-paths

View File

@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.")
(define-public mesa (define-public mesa
(package (package
(name "mesa") (name "mesa")
(version "17.3.8") (version "18.1.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -236,10 +236,9 @@ also known as DXTn or DXTC) for Mesa.")
version "/mesa-" version ".tar.xz"))) version "/mesa-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"1cd6a4ll5arla3kncxnw9196ak1v4rvnb098aa7lm3n4h7r9p7cg")) "1ydivzm4c2k53b65lvm11d62z140xlmd7viw63bl5cm5idjg02q7"))
(patches (patches
(search-patches "mesa-wayland-egl-symbols-check-mips.patch" (search-patches "mesa-skip-disk-cache-test.patch"))))
"mesa-skip-disk-cache-test.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(;; The following are in the Requires.private field of gl.pc. `(;; The following are in the Requires.private field of gl.pc.
@ -260,7 +259,7 @@ also known as DXTn or DXTC) for Mesa.")
("libxvmc" ,libxvmc) ("libxvmc" ,libxvmc)
,@(match (%current-system) ,@(match (%current-system)
((or "x86_64-linux" "i686-linux") ((or "x86_64-linux" "i686-linux")
`(("llvm" ,llvm-3.9.1))) ; exactly 3.9.0 or 3.9.1 for swrast `(("llvm" ,llvm)))
(_ (_
`())) `()))
("makedepend" ,makedepend) ("makedepend" ,makedepend)
@ -276,15 +275,15 @@ also known as DXTn or DXTC) for Mesa.")
'(,@(match (%current-system) '(,@(match (%current-system)
("armhf-linux" ("armhf-linux"
;; TODO: Add etnaviv,imx when libdrm supports etnaviv. ;; TODO: Add etnaviv,imx when libdrm supports etnaviv.
'("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,vc4,virgl")) '("--with-gallium-drivers=freedreno,nouveau,r300,r600,swrast,tegra,vc4,virgl"))
("aarch64-linux" ("aarch64-linux"
;; TODO: Fix svga driver for aarch64 and armhf. ;; TODO: Fix svga driver for aarch64 and armhf.
'("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,vc4,virgl")) '("--with-gallium-drivers=freedreno,nouveau,pl111,r300,r600,swrast,tegra,vc4,virgl"))
(_ (_
'("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl"))) '("--with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,svga,swrast,virgl")))
;; Enable various optional features. TODO: opencl requires libclc, ;; Enable various optional features. TODO: opencl requires libclc,
;; omx requires libomxil-bellagio ;; omx requires libomxil-bellagio
"--with-platforms=x11,drm,wayland,surfaceless" "--with-platforms=x11,drm,surfaceless,wayland"
"--enable-glx-tls" ;Thread Local Storage, improves performance "--enable-glx-tls" ;Thread Local Storage, improves performance
;; "--enable-opencl" ;; "--enable-opencl"
;; "--enable-omx" ;; "--enable-omx"
@ -328,23 +327,15 @@ also known as DXTn or DXTC) for Mesa.")
(add-after (add-after
'unpack 'patch-create_test_cases 'unpack 'patch-create_test_cases
(lambda _ (lambda _
(substitute* "src/compiler/glsl/tests/lower_jumps/create_test_cases.py"
(("/usr/bin/env bash") (which "bash")))
(substitute* "src/intel/genxml/gen_pack_header.py" (substitute* "src/intel/genxml/gen_pack_header.py"
(("/usr/bin/env python2") (which "python"))) (("/usr/bin/env python2") (which "python")))
#t)) #t))
(add-before (add-before
'build 'fix-dlopen-libnames 'build 'fix-dlopen-libnames
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((s2tc (assoc-ref inputs "s2tc")) (let ((out (assoc-ref outputs "out")))
(out (assoc-ref outputs "out")))
;; Remain agnostic to .so.X.Y.Z versions while doing ;; Remain agnostic to .so.X.Y.Z versions while doing
;; the substitutions so we're future-safe. ;; the substitutions so we're future-safe.
(substitute*
'("src/gallium/auxiliary/util/u_format_s3tc.c"
"src/mesa/main/texcompress_s3tc.c")
(("\"libtxc_dxtn\\.so")
(string-append "\"" s2tc "/lib/libtxc_dxtn.so")))
(substitute* "src/glx/dri_common.c" (substitute* "src/glx/dri_common.c"
(("dlopen\\(\"libGL\\.so") (("dlopen\\(\"libGL\\.so")
(string-append "dlopen(\"" out "/lib/libGL.so"))) (string-append "dlopen(\"" out "/lib/libGL.so")))
@ -559,7 +550,7 @@ OpenGL graphics API.")
(define-public libepoxy (define-public libepoxy
(package (package
(name "libepoxy") (name "libepoxy")
(version "1.5.0") (version "1.5.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -567,7 +558,7 @@ OpenGL graphics API.")
version "/libepoxy-" version ".tar.xz")) version "/libepoxy-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c")))) "1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9"))))
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View File

@ -787,7 +787,7 @@ programming langauage. It also contains the utility
(define-public appstream-glib (define-public appstream-glib
(package (package
(name "appstream-glib") (name "appstream-glib")
(version "0.7.5") (version "0.7.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://people.freedesktop.org/~hughsient/" (uri (string-append "https://people.freedesktop.org/~hughsient/"
@ -795,7 +795,7 @@ programming langauage. It also contains the utility
"appstream-glib-" version ".tar.xz")) "appstream-glib-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag")))) "08bs0hnkvdzqv9pakv1y4c4ph77rmzjq22g760w20sv7vs63nia3"))))
(build-system meson-build-system) (build-system meson-build-system)
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)

View File

@ -30,6 +30,7 @@
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net> ;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -6321,7 +6322,16 @@ fit the GNOME desktop.")
(base32 (base32
"007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n")))) "007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments '(#:glib-or-gtk? #t)) (arguments '(#:glib-or-gtk? #t
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-install-script
(lambda _
;; This script attempts to compile glib schemas
;; and create an empty MIME database. We do
;; that elsewhere, so prevent it from running.
(substitute* "build-aux/post-install.sh"
(("\\[ -z \"\\$DESTDIR\" \\]") "false"))
#t)))))
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") `(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
@ -6467,7 +6477,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
(define-public faba-icon-theme (define-public faba-icon-theme
(package (package
(name "faba-icon-theme") (name "faba-icon-theme")
(version "4.1.2") (version "4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -6476,23 +6486,15 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0hi2dl627ayfnihn3v6x9xzid668m4hp098hb7hrkxvahh4h9by7")))) "18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68"))))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
'(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-makefile.am (add-before 'configure 'disable-post-install
(lambda _ (lambda _
(substitute* '("Makefile.am") (substitute* "meson.build"
(("\\$\\(DESTDIR\\)/usr/share") (("meson.add_install_script.*") "")))))))
"$(datadir)"))
#t))
(add-after 'unpack 'disable-configure-during-bootstrap
(lambda _
;; Do not run configure as part of autogen.sh because references
;; to /bin are not fixed yet.
(setenv "NOCONFIGURE" "y")
#t)))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake))) ("automake" ,automake)))
@ -6508,7 +6510,7 @@ Moka")
(package (package
(inherit faba-icon-theme) (inherit faba-icon-theme)
(name "moka-icon-theme") (name "moka-icon-theme")
(version "5.3.6") (version "5.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/moka-project" (uri (string-append "https://github.com/moka-project"
@ -6517,7 +6519,7 @@ Moka")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"04axinv79qnngsxkwqzi5j9lc3hn24rjqps5ai8d42pdnfaf0x37")))) "1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk"))))
(propagated-inputs (propagated-inputs
;; Moka is based on Faba by using it as a fallback icon set instead of ;; Moka is based on Faba by using it as a fallback icon set instead of
;; bundling it, so we need to add it as a propagated input. ;; bundling it, so we need to add it as a propagated input.

View File

@ -245,14 +245,14 @@ compatible to GNU Pth.")
(define-public gnupg (define-public gnupg
(package (package
(name "gnupg") (name "gnupg")
(version "2.2.8") (version "2.2.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version (uri (string-append "mirror://gnupg/gnupg/gnupg-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp")))) "0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))

View File

@ -291,7 +291,7 @@ in the Mozilla clients.")
(define-public nss (define-public nss
(package (package
(name "nss") (name "nss")
(version "3.36.1") (version "3.38")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -302,7 +302,7 @@ in the Mozilla clients.")
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0")) "0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))
;; Create nss.pc and nss-config. ;; Create nss.pc and nss-config.
(patches (search-patches "nss-pkgconfig.patch" (patches (search-patches "nss-pkgconfig.patch"
"nss-increase-test-timeout.patch")))) "nss-increase-test-timeout.patch"))))

View File

@ -1840,3 +1840,138 @@ deliver content")
store, and deliver content. It's containe Docker Registry 2.0 and libraries store, and deliver content. It's containe Docker Registry 2.0 and libraries
to interacting with distribution components.") to interacting with distribution components.")
(license license:asl2.0)))) (license license:asl2.0))))
(define-public go-github-com-docker-go-connections
(let ((commit "3ede32e2033de7505e6500d6c868c2b9ed9f169d")
(revision "0"))
(package
(name "go-github-com-docker-go-connections")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/docker/go-connections.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0v1pkr8apwmhyzbjfriwdrs1ihlk6pw7izm57r24mf9jdmg3fyb0"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/docker/go-connections"))
(home-page "https://github.com/docker/go-connections")
(synopsis "Networking library for Go")
(description
"This packages provides a library to work with network connections in
the Go language. In particular it provides tools to deal with network address
translation (NAT), proxies, sockets, and transport layer security (TLS).")
(license license:asl2.0))))
(define-public go-github-com-docker-machine
(let ((commit "7b7a141da84480342357c51838be142bf183b095")
(revision "0"))
(package
(name "go-github-com-docker-machine")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/docker/machine.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0bavk0lvs462yh0lnmnxi9psi5qv1x3nvzmd2b0drsahlp1gxi8s"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/docker/machine"))
(home-page "https://github.com/docker/machine")
(synopsis "Machine management for a container-centric world")
(description
"@dfn{Machine} lets you create Docker hosts on your computer, on
hosting providers, and inside your data center. It creates servers, installs
Docker on them, then configures the Docker client to talk to them.")
(license license:asl2.0))))
(define-public go-github-com-gorhill-cronexpr
(let ((commit "f0984319b44273e83de132089ae42b1810f4933b")
(revision "0"))
(package
(name "go-github-com-gorhill-cronexpr")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gorhill/cronexpr.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0dphhhqy3i7265znv3m8n57l80dmaq6z4hsj5kgd87qd19z8x0l2"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gorhill/cronexpr"))
(home-page "https://github.com/gorhill/cronexpr")
(synopsis "Cron expression parser in the Go language")
(description
"This package provides a cron expression parser in the Go language.
Given a cron expression and a time stamp, you can get the next time stamp
which satisfies the cron expression.")
(license (list license:gpl3+
license:asl2.0)))))
(define-public go-gopkg-in-check-v1
(let ((commit "20d25e2804050c1cd24a7eea1e7a6447dd0e74ec")
(revision "0"))
(package
(name "go-gopkg-in-check-v1")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-check/check")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/check.v1"))
(home-page "https://gopkg.in/check.v1")
(synopsis "Test framework for the Go language")
(description
"This package provides a test library for the Go language.")
(license license:asl2.0))))
(define-public go-gopkg-in-yaml-v2
(let ((commit "14227de293ca979cf205cd88769fe71ed96a97e2")
(revision "0"))
(package
(name "go-gopkg-in-yaml-v2")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gopkg.in/yaml.v2.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"038hnrjcnjygyi3qidfrkpkakis82qg381sr495d2s40g2dwlzah"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/yaml.v2"))
(native-inputs
`(("go-gopkg-in-check-v1" ,go-gopkg-in-check-v1)))
(home-page "https://gopkg.in/yaml.v2")
(synopsis "YAML reader and writer for the Go language")
(description
"This package provides a Go library for encode and decode YAML
values.")
(license license:asl2.0))))

View File

@ -42,6 +42,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system waf) #:use-module (guix build-system waf)
@ -670,7 +671,7 @@ application suites.")
(name "gtk+") (name "gtk+")
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in ;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
;; mate.scm will also need to be updated. ;; mate.scm will also need to be updated.
(version "3.22.29") (version "3.22.30")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -678,7 +679,7 @@ application suites.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0")) "0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch" (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch")))) "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
(outputs '("out" "bin" "doc")) (outputs '("out" "bin" "doc"))
@ -1362,15 +1363,15 @@ and routines to assist in editing internationalized text.")
(define-public girara (define-public girara
(package (package
(name "girara") (name "girara")
(version "0.2.8") (version "0.2.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/girara/download/girara-" (string-append "https://pwmt.org/projects/girara/download/girara-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"18wss3sak3djip090v2vdbvq1mvkwcspfswc87zbvv3magihan98")))) "0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8"))))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("check" ,check) ("check" ,check)
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)
@ -1379,13 +1380,7 @@ and routines to assist in editing internationalized text.")
;; Listed in 'Requires.private' of 'girara.pc'. ;; Listed in 'Requires.private' of 'girara.pc'.
(propagated-inputs `(("gtk+" ,gtk+))) (propagated-inputs `(("gtk+" ,gtk+)))
(arguments (arguments
`(#:make-flags `(#:phases (modify-phases %standard-phases
`(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
"COLOR=0" "CC=gcc")
#:test-target "test"
#:disallowed-references (,xorg-server-1.19.3)
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-before 'check 'start-xserver (add-before 'check 'start-xserver
;; Tests require a running X server. ;; Tests require a running X server.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -1401,7 +1396,7 @@ and routines to assist in editing internationalized text.")
(setenv "DBUS_FATAL_WARNINGS" "0") (setenv "DBUS_FATAL_WARNINGS" "0")
(zero? (system (string-append xorg-server "/bin/Xvfb " (zero? (system (string-append xorg-server "/bin/Xvfb "
display " &"))))))))) display " &")))))))))
(build-system gnu-build-system) (build-system meson-build-system)
(home-page "https://pwmt.org/projects/girara/") (home-page "https://pwmt.org/projects/girara/")
(synopsis "Library for minimalistic gtk+3 user interfaces") (synopsis "Library for minimalistic gtk+3 user interfaces")
(description "Girara is a library that implements a user interface that (description "Girara is a library that implements a user interface that

View File

@ -2487,6 +2487,31 @@ Haskell library @code{regex-base}.")
@code{libtre} (fork by Roman Cheplyaka).") @code{libtre} (fork by Roman Cheplyaka).")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ghc-regex-tdfa-text
(package
(name "ghc-regex-tdfa-text")
(version "1.0.0.3")
(source
(origin
(method url-fetch)
(uri (string-append
"https://hackage.haskell.org/package/regex-tdfa-text/"
"regex-tdfa-text-" version ".tar.gz"))
(sha256
(base32
"0090g6lgbdm9lywpqm2d3724nnnh24nx3vnlqr96qc2w486pmmrq"))))
(build-system haskell-build-system)
(inputs
`(("ghc-text" ,ghc-text)
("ghc-regex-base" ,ghc-regex-base)
("ghc-regex-tdfa" ,ghc-regex-tdfa)))
(home-page
"http://hackage.haskell.org/package/regex-tdfa-text")
(synopsis "Text interface for regex-tdfa")
(description
"This provides an extra text interface for regex-tdfa.")
(license license:bsd-3)))
(define-public ghc-parsers (define-public ghc-parsers
(package (package
(name "ghc-parsers") (name "ghc-parsers")
@ -9678,4 +9703,23 @@ serialization code.")
disk space usage.") disk space usage.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ghc-xdg-basedir
(package
(name "ghc-xdg-basedir")
(version "0.2.2")
(source
(origin
(method url-fetch)
(uri (string-append
"https://hackage.haskell.org/package/xdg-basedir/"
"xdg-basedir-" version ".tar.gz"))
(sha256
(base32
"0azlzaxp2dn4l1nr7shsxah2magk1szf6fx0mv75az00qsjw6qg4"))))
(build-system haskell-build-system)
(home-page "http://github.com/willdonnelly/xdg-basedir")
(synopsis "XDG Base Directory library for Haskell")
(description "This package provides a library implementing the XDG Base Directory spec.")
(license license:bsd-3)))
;;; haskell.scm ends here ;;; haskell.scm ends here

View File

@ -45,7 +45,7 @@
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
("perl" ,perl) ("perl" ,perl)
("python" ,python-wrapper))) ("python" ,python-wrapper)))
(home-page "https://pkg-isocodes.alioth.debian.org/") (home-page "https://salsa.debian.org/iso-codes-team/iso-codes")
(synopsis "Various ISO standards") (synopsis "Various ISO standards")
(description (description
"This package provides lists of various ISO standards (e.g. country, "This package provides lists of various ISO standards (e.g. country,

View File

@ -9,6 +9,7 @@
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -150,7 +151,7 @@ and binary format defined in The Java Virtual Machine Specification.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'install-data (add-after 'install 'install-data
(lambda _ (zero? (system* "make" "install-data"))))))) (lambda _ (invoke "make" "install-data"))))))
(native-inputs (native-inputs
`(("jikes" ,jikes) `(("jikes" ,jikes)
("fastjar" ,fastjar) ("fastjar" ,fastjar)
@ -175,6 +176,7 @@ language.")
(uri (string-append "mirror://sourceforge/jamvm/jamvm/" (uri (string-append "mirror://sourceforge/jamvm/jamvm/"
"JamVM%20" version "/jamvm-" "JamVM%20" version "/jamvm-"
version ".tar.gz")) version ".tar.gz"))
(patches (search-patches "jamvm-arm.patch"))
(sha256 (sha256
(base32 (base32
"06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36")))) "06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))))
@ -212,7 +214,13 @@ JNI.")
"1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx")))) "1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no "check" target `(#:imported-modules ((guix build syscalls)
,@%gnu-build-system-modules)
#:modules ((srfi srfi-1)
(guix build gnu-build-system)
(guix build utils)
(guix build syscalls))
#:tests? #f ; no "check" target
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'bootstrap) (delete 'bootstrap)
@ -245,19 +253,54 @@ JNI.")
;; Without these JamVM options the build may freeze. ;; Without these JamVM options the build may freeze.
(substitute* "bootstrap.sh" (substitute* "bootstrap.sh"
(("^\"\\$\\{JAVACMD\\}\" " m) (("^\"\\$\\{JAVACMD\\}\" " m)
(string-append m "-Xnocompact -Xnoinlining "))) ,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((string-append m "-Xnocompact "))
`((string-append m "-Xnocompact -Xnoinlining ")))))
;; Disable tests because we are bootstrapping and thus don't have ;; Disable tests because we are bootstrapping and thus don't have
;; any of the dependencies required to build and run the tests. ;; any of the dependencies required to build and run the tests.
(substitute* "build.xml" (substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\"")) (("depends=\"jars,test-jar\"") "depends=\"jars\""))
(zero? (system* "bash" "bootstrap.sh" (invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" (string-append "-Ddist.dir="
(assoc-ref %outputs "out")))))) (assoc-ref %outputs "out")))))
(add-after 'build 'strip-jar-timestamps ;based on ant-build-system
(lambda* (#:key outputs #:allow-other-keys)
(define (repack-archive jar)
(let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFESTS.MF")))
(with-directory-excursion dir
(invoke "unzip" jar))
(delete-file jar)
;; XXX: copied from (gnu build install)
(for-each (lambda (file)
(let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0))))
(find-files dir #:directories? #t))
;; It is important that the manifest appears first.
(with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t))
;; To ensure that the reference scanner can
;; detect all store references in the jars
;; we disable compression with the "-0" option.
(command (if (file-exists? manifest)
`("zip" "-0" "-X" ,jar ,manifest
,@files)
`("zip" "-0" "-X" ,jar ,@files))))
(apply invoke command)))))
(for-each repack-archive
(find-files
(string-append (assoc-ref %outputs "out") "/lib")
"\\.jar$"))
#t))
(delete 'install)))) (delete 'install))))
(native-inputs (native-inputs
`(("jikes" ,jikes) `(("jikes" ,jikes)
("jamvm" ,jamvm-1-bootstrap))) ("jamvm" ,jamvm-1-bootstrap)
("unzip" ,unzip)
("zip", zip)))
(home-page "http://ant.apache.org") (home-page "http://ant.apache.org")
(synopsis "Build tool for Java") (synopsis "Build tool for Java")
(description (description
@ -316,10 +359,10 @@ build process and its dependencies, whereas Make uses Makefile format.")
Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"))) Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n")))
;; Compile it all! ;; Compile it all!
(and (zero? (apply system* "jikes" (and (apply invoke "jikes"
(find-files "." "\\.java$"))) (find-files "." "\\.java$"))
(zero? (system* "fastjar" "cvfm" (invoke "fastjar" "cvfm"
"ecj-bootstrap.jar" "manifest" "."))))) "ecj-bootstrap.jar" "manifest" "."))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((share (string-append (assoc-ref outputs "out") (let ((share (string-append (assoc-ref outputs "out")
@ -394,7 +437,6 @@ requirement for all GNU Classpath releases after version 0.93.")
args defaults)) args defaults))
(apply system* ,java (apply system* ,java
(append (append
(list "-Xnocompact" "-Xnoinlining")
;; Remove "-J" prefix ;; Remove "-J" prefix
(map (cut string-drop <> 2) vm-args) (map (cut string-drop <> 2) vm-args)
'("org.eclipse.jdt.internal.compiler.batch.Main") '("org.eclipse.jdt.internal.compiler.batch.Main")
@ -453,7 +495,7 @@ the standard javac executable.")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'install-data (add-after 'install 'install-data
(lambda _ (zero? (system* "make" "install-data"))))))) (lambda _ (invoke "make" "install-data"))))))
(native-inputs (native-inputs
`(("ecj-bootstrap" ,ecj-bootstrap) `(("ecj-bootstrap" ,ecj-bootstrap)
("ecj-javac-wrapper" ,ecj-javac-wrapper) ("ecj-javac-wrapper" ,ecj-javac-wrapper)
@ -484,12 +526,20 @@ the standard javac executable.")))
(for-each (lambda (tool) (for-each (lambda (tool)
(with-output-to-file (string-append bin tool) (with-output-to-file (string-append bin tool)
(lambda _ (lambda _
(format #t "#!~a/bin/sh ,@(if (string-prefix? "armhf" (or (%current-system)
(%current-target-system)))
`((format #t "#!~a/bin/sh
~a/bin/jamvm -Xnocompact -classpath ~a/share/classpath/tools.zip \
gnu.classpath.tools.~a.~a $@"
bash jamvm classpath tool
(if (string=? "native2ascii" tool)
"Native2ASCII" "Main")))
`((format #t "#!~a/bin/sh
~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \ ~a/bin/jamvm -Xnocompact -Xnoinlining -classpath ~a/share/classpath/tools.zip \
gnu.classpath.tools.~a.~a $@" gnu.classpath.tools.~a.~a $@"
bash jamvm classpath tool bash jamvm classpath tool
(if (string=? "native2ascii" tool) (if (string=? "native2ascii" tool)
"Native2ASCII" "Main")))) "Native2ASCII" "Main"))))))
(chmod (string-append bin tool) #o755)) (chmod (string-append bin tool) #o755))
(list "javah" (list "javah"
"rmic" "rmic"
@ -562,7 +612,7 @@ machine.")))
(("@Override") "")) (("@Override") ""))
#t)) #t))
(add-after 'install 'install-data (add-after 'install 'install-data
(lambda _ (zero? (system* "make" "install-data"))))))) (lambda _ (invoke "make" "install-data"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -668,37 +718,35 @@ machine.")))
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'unpack (replace 'unpack
(lambda* (#:key source inputs #:allow-other-keys) (lambda* (#:key source inputs #:allow-other-keys)
(and (zero? (system* "tar" "xvf" source)) (invoke "tar" "xvf" source)
(begin (chdir (string-append "icedtea6-" ,version))
(chdir (string-append "icedtea6-" ,version)) (mkdir "openjdk")
(mkdir "openjdk") (copy-recursively (assoc-ref inputs "openjdk-src") "openjdk")
(copy-recursively (assoc-ref inputs "openjdk-src") "openjdk") ;; The convenient OpenJDK source bundle is no longer
;; The convenient OpenJDK source bundle is no longer ;; available for download, so we have to take the sources
;; available for download, so we have to take the sources ;; from the Mercurial repositories and change the Makefile
;; from the Mercurial repositories and change the Makefile ;; to avoid tests for the OpenJDK zip archive.
;; to avoid tests for the OpenJDK zip archive. (with-directory-excursion "openjdk"
(with-directory-excursion "openjdk" (for-each (lambda (part)
(for-each (lambda (part) (mkdir part)
(mkdir part) (copy-recursively
(copy-recursively (assoc-ref inputs
(assoc-ref inputs (string-append part "-src"))
(string-append part "-src")) part))
part)) '("jdk" "corba"
'("jdk" "corba" "langtools" "jaxp" "jaxws")))
"langtools" "jaxp" "jaxws"))) (with-directory-excursion "openjdk"
(with-directory-excursion "openjdk" (invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
(invoke "tar" "xvf" (assoc-ref inputs "hotspot-src")) (rename-file "hg-checkout" "hotspot"))
(rename-file "hg-checkout" "hotspot")) (substitute* "Makefile.in"
(substitute* "Makefile.in" (("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;")
(("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;") "echo \"trust me\";")
"echo \"trust me\";") ;; The contents of the bootstrap directory must be
;; The contents of the bootstrap directory must be ;; writeable but when copying from the store they are
;; writeable but when copying from the store they are ;; not.
;; not. (("mkdir -p lib/rt" line)
(("mkdir -p lib/rt" line) (string-append line "; chmod -R u+w $(BOOT_DIR)")))
(string-append line "; chmod -R u+w $(BOOT_DIR)"))) (invoke "chmod" "-R" "u+w" "openjdk")))
(zero? (system* "chmod" "-R" "u+w" "openjdk"))
#t))))
(add-after 'unpack 'use-classpath (add-after 'unpack 'use-classpath
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((jvmlib (assoc-ref inputs "classpath")) (let ((jvmlib (assoc-ref inputs "classpath"))
@ -1036,23 +1084,22 @@ bootstrapping purposes.")
(let ((dir (or dir (let ((dir (or dir
(string-drop-right name 5)))) (string-drop-right name 5))))
(mkdir dir) (mkdir dir)
(zero? (system* "tar" "xvf" (invoke "tar" "xvf"
(assoc-ref inputs name) (assoc-ref inputs name)
"-C" dir "-C" dir
"--strip-components=1")))))) "--strip-components=1")))))
(mkdir target) (mkdir target)
(and (invoke "tar" "xvf" source
(zero? (system* "tar" "xvf" source "-C" target "--strip-components=1")
"-C" target "--strip-components=1")) (chdir target)
(chdir target) (unpack "openjdk-src" "openjdk.src")
(unpack "openjdk-src" "openjdk.src") (with-directory-excursion "openjdk.src"
(with-directory-excursion "openjdk.src" (for-each unpack
(for-each unpack (filter (cut string-suffix? "-drop" <>)
(filter (cut string-suffix? "-drop" <>) (map (match-lambda
(map (match-lambda ((name . _) name))
((name . _) name)) inputs))))
inputs)))) #t)))
#t))))
(add-after 'unpack 'fix-x11-extension-include-path (add-after 'unpack 'fix-x11-extension-include-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk" (substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
@ -1277,17 +1324,19 @@ bootstrapping purposes.")
(let ((line (read-line port))) (let ((line (read-line port)))
(cond (cond
((eof-object? line) #t) ((eof-object? line) #t)
((regexp-exec error-pattern line) #f) ((regexp-exec error-pattern line)
(error "test failed"))
(else (loop))))))) (else (loop)))))))
(run-test (lambda (test) (run-test (lambda (test)
(system* "make" test) (invoke "make" test)
(call-with-input-file (call-with-input-file
(string-append "test/" test ".log") (string-append "test/" test ".log")
checker)))) checker))))
(or #t ; skip tests (when #f ; skip tests
(and (run-test "check-hotspot") (run-test "check-hotspot")
(run-test "check-langtools") (run-test "check-langtools")
(run-test "check-jdk")))))) (run-test "check-jdk"))
#t)))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc") (let ((doc (string-append (assoc-ref outputs "doc")
@ -1665,11 +1714,13 @@ new Date();"))
;; result in the tests to be run. ;; result in the tests to be run.
(substitute* "build.xml" (substitute* "build.xml"
(("depends=\"jars,test-jar\"") "depends=\"jars\"")) (("depends=\"jars,test-jar\"") "depends=\"jars\""))
(zero? (system* "bash" "bootstrap.sh" (invoke "bash" "bootstrap.sh"
(string-append "-Ddist.dir=" (string-append "-Ddist.dir="
(assoc-ref outputs "out")))))))))) (assoc-ref outputs "out")))))))))
(native-inputs (native-inputs
`(("jdk" ,icedtea-8 "jdk"))))) `(("jdk" ,icedtea-8 "jdk")
("zip" ,zip)
("unzip" ,unzip)))))
;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series ;; The 1.9.x series is the last that can be built with GCJ. The 1.10.x series
;; requires Java 8. ;; requires Java 8.
@ -1684,7 +1735,9 @@ new Date();"))
(base32 (base32
"1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n")))) "1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
(native-inputs (native-inputs
`(("jdk" ,icedtea-7 "jdk"))))) `(("jdk" ,icedtea-7 "jdk")
("zip" ,zip)
("unzip" ,unzip)))))
(define-public ant-apache-bcel (define-public ant-apache-bcel
(package (package
@ -1793,14 +1846,13 @@ new Date();"))
(lambda (name) (lambda (name)
(mkdir-p name) (mkdir-p name)
(with-directory-excursion name (with-directory-excursion name
(or (zero? (system* "tar" (invoke "tar"
;; Use xz for repacked tarball. ;; Use xz for repacked tarball.
"--xz" "--xz"
"--extract" "--extract"
"--verbose" "--verbose"
"--file" (assoc-ref inputs name) "--file" (assoc-ref inputs name)
"--strip-components=1")) "--strip-components=1"))
(error "failed to unpack tarball" name)))
(copy-recursively (string-append name "/src/main/clojure/") (copy-recursively (string-append name "/src/main/clojure/")
"src/clj/")) "src/clj/"))
'("core-specs-alpha-src" '("core-specs-alpha-src"
@ -1813,7 +1865,7 @@ new Date();"))
;; The javadoc target is not built by default. ;; The javadoc target is not built by default.
(add-after 'build 'build-doc (add-after 'build 'build-doc
(lambda _ (lambda _
(zero? (system* "ant" "javadoc")))) (invoke "ant" "javadoc")))
;; Needed since no install target is provided. ;; Needed since no install target is provided.
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -1975,7 +2027,8 @@ debugging, etc.")
(lambda (in out) (lambda (in out)
(display "Manifest-Version: 1.0 (display "Manifest-Version: 1.0
Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n" Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
out))))) out)))
#t))
(replace 'install (install-jars "."))))) (replace 'install (install-jars ".")))))
(home-page "https://eclipse.org") (home-page "https://eclipse.org")
(synopsis "Eclipse Java development tools core batch compiler") (synopsis "Eclipse Java development tools core batch compiler")
@ -2008,7 +2061,8 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
(lambda (in out) (lambda (in out)
(dump-port in out) (dump-port in out)
(display "Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n" (display "Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
out))))) out)))
#t))
(replace 'install (install-jars "."))))) (replace 'install (install-jars ".")))))
(native-inputs (native-inputs
`(("unzip" ,unzip))))) `(("unzip" ,unzip)))))
@ -2475,7 +2529,7 @@ HDF5 files, building on the libraries provided by the HDF Group.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'install (replace 'install
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* `("ant" "dist" ,@make-flags)))))))) (apply invoke `("ant" "dist" ,@make-flags)))))))
(home-page "https://www.gnu.org/software/classpathx/") (home-page "https://www.gnu.org/software/classpathx/")
(synopsis "Java servlet API implementation") (synopsis "Java servlet API implementation")
(description "This is the GNU servlet API distribution, part of the (description "This is the GNU servlet API distribution, part of the
@ -2517,11 +2571,11 @@ API and version 2.1 of the Java ServerPages API.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'unpack (replace 'unpack
(lambda* (#:key source #:allow-other-keys) (lambda* (#:key source #:allow-other-keys)
(and (mkdir "swt") (mkdir "swt")
(zero? (system* "unzip" source "-d" "swt")) (invoke "unzip" source "-d" "swt")
(chdir "swt") (chdir "swt")
(mkdir "src") (mkdir "src")
(zero? (system* "unzip" "src.zip" "-d" "src"))))) (invoke "unzip" "src.zip" "-d" "src")))
;; The classpath contains invalid icecat jars. Since we don't need ;; The classpath contains invalid icecat jars. Since we don't need
;; anything other than the JDK on the classpath, we can simply unset ;; anything other than the JDK on the classpath, we can simply unset
;; it. ;; it.
@ -2536,7 +2590,7 @@ API and version 2.1 of the Java ServerPages API.")
(mkdir-p lib) (mkdir-p lib)
(setenv "OUTPUT_DIR" lib) (setenv "OUTPUT_DIR" lib)
(with-directory-excursion "src" (with-directory-excursion "src"
(zero? (system* "bash" "build.sh")))))) (invoke "bash" "build.sh")))))
(add-after 'install 'install-native (add-after 'install 'install-native
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((lib (string-append (assoc-ref outputs "out") "/lib"))) (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
@ -2622,7 +2676,7 @@ decompression and random access decompression have been fully implemented.")
(lambda* (#:key source #:allow-other-keys) (lambda* (#:key source #:allow-other-keys)
(mkdir "src") (mkdir "src")
(with-directory-excursion "src" (with-directory-excursion "src"
(zero? (system* "jar" "-xf" source))))) (invoke "jar" "-xf" source))))
;; At this point we don't have junit, so we must remove the API ;; At this point we don't have junit, so we must remove the API
;; tests. ;; tests.
(add-after 'unpack 'delete-tests (add-after 'unpack 'delete-tests
@ -2764,7 +2818,8 @@ private Method[] getSortedMethods() {
return _allMethods; return _allMethods;
} }
private Method[] allMethods = getSortedMethods();"))))) private Method[] allMethods = getSortedMethods();")))
#t))
(add-before 'build 'do-not-use-bundled-qdox (add-before 'build 'do-not-use-bundled-qdox
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "build.xml" (substitute* "build.xml"
@ -3055,7 +3110,8 @@ reusing it in maven.")
(lambda _ (lambda _
;; Requires an older version of plexus container ;; Requires an older version of plexus container
(delete-file (delete-file
"src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java"))) "src/test/java/org/codehaus/plexus/archiver/DuplicateFilesTest.java")
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(mkdir-p "build/classes/META-INF/plexus") (mkdir-p "build/classes/META-INF/plexus")
@ -3248,15 +3304,15 @@ Compiler component.")))
(add-before 'build 'generate-models (add-before 'build 'generate-models
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(define (modello-single-mode file version mode) (define (modello-single-mode file version mode)
(zero? (system* "java" (invoke "java"
"org.codehaus.modello.ModelloCli" "org.codehaus.modello.ModelloCli"
file mode "src/main/java" version file mode "src/main/java" version
"false" "true"))) "false" "true"))
(let ((file "src/main/mdo/settings-security.mdo")) (let ((file "src/main/mdo/settings-security.mdo"))
(and
(modello-single-mode file "1.0.0" "java") (modello-single-mode file "1.0.0" "java")
(modello-single-mode file "1.0.0" "xpp3-reader") (modello-single-mode file "1.0.0" "xpp3-reader")
(modello-single-mode file "1.0.0" "xpp3-writer"))))) (modello-single-mode file "1.0.0" "xpp3-writer"))
#t))
(add-before 'build 'generate-components.xml (add-before 'build 'generate-components.xml
(lambda _ (lambda _
(mkdir-p "build/classes/META-INF/plexus") (mkdir-p "build/classes/META-INF/plexus")
@ -3285,10 +3341,12 @@ Compiler component.")))
</configuration>\n </configuration>\n
</component>\n </component>\n
</components>\n </components>\n
</component-set>\n"))))) </component-set>\n")))
#t))
(add-before 'check 'fix-paths (add-before 'check 'fix-paths
(lambda _ (lambda _
(copy-recursively "src/test/resources" "target")))))) (copy-recursively "src/test/resources" "target")
#t)))))
(inputs (inputs
`(("java-plexus-cipher" ,java-plexus-cipher))) `(("java-plexus-cipher" ,java-plexus-cipher)))
(native-inputs (native-inputs
@ -3511,7 +3569,8 @@ XSD and documentation.")
(with-directory-excursion "modello-plugins/modello-plugin-xml/src/test" (with-directory-excursion "modello-plugins/modello-plugin-xml/src/test"
(substitute* (substitute*
"java/org/codehaus/modello/plugins/xml/XmlModelloPluginTest.java" "java/org/codehaus/modello/plugins/xml/XmlModelloPluginTest.java"
(("src/test") "modello-plugins/modello-plugin-xml/src/test")))))))) (("src/test") "modello-plugins/modello-plugin-xml/src/test")))
#t)))))
(inputs (inputs
`(("java-modello-core" ,java-modello-core) `(("java-modello-core" ,java-modello-core)
("java-modello-plugins-java" ,java-modello-plugins-java) ("java-modello-plugins-java" ,java-modello-plugins-java)
@ -3606,9 +3665,9 @@ on the XPP3 API (XML Pull Parser).")))
;; We cannot use the "jar" target because it depends on a couple ;; We cannot use the "jar" target because it depends on a couple
;; of unpackaged, complicated tools. ;; of unpackaged, complicated tools.
(mkdir "dist") (mkdir "dist")
(zero? (system* "jar" (invoke "jar"
"-cf" (string-append "dist/asm-" ,version ".jar") "-cf" (string-append "dist/asm-" ,version ".jar")
"-C" "output/build/tmp" ".")))) "-C" "output/build/tmp" ".")))
(replace 'install (replace 'install
(install-jars "dist"))))) (install-jars "dist")))))
(native-inputs (native-inputs
@ -4105,7 +4164,8 @@ are many features, including:
(mkdir-p "build/conf") (mkdir-p "build/conf")
(call-with-output-file "build/conf/MANIFEST.MF" (call-with-output-file "build/conf/MANIFEST.MF"
(lambda (file) (lambda (file)
(format file "Manifest-Version: 1.0\n"))))) (format file "Manifest-Version: 1.0\n")))
#t))
(replace 'install (replace 'install
(install-jars "build")))))))) (install-jars "build"))))))))
@ -4351,7 +4411,8 @@ in the @code{java.lang} package. The following classes are included:
(property (@ (name "tests.dir") (value "src/org/apache/bsf/test"))) (property (@ (name "tests.dir") (value "src/org/apache/bsf/test")))
(property (@ (name "build.tests") (value "build/test-classes"))) (property (@ (name "build.tests") (value "build/test-classes")))
(property (@ (name "build.dest") (value "build/classes")))) (property (@ (name "build.dest") (value "build/classes"))))
port))))) port)))
#t))
(replace 'install (install-jars "build"))))) (replace 'install (install-jars "build")))))
(native-inputs (native-inputs
`(("java-junit" ,java-junit))) `(("java-junit" ,java-junit)))
@ -5798,8 +5859,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
;; pom.xml ignores these files in the jar creation process. If we don't, ;; pom.xml ignores these files in the jar creation process. If we don't,
;; we get the error "This code should have never made it into slf4j-api.jar" ;; we get the error "This code should have never made it into slf4j-api.jar"
(delete-file-recursively "build/classes/org/slf4j/impl") (delete-file-recursively "build/classes/org/slf4j/impl")
(zero? (system* "jar" "-cf" "build/jar/slf4j-api.jar" "-C" (invoke "jar" "-cf" "build/jar/slf4j-api.jar" "-C"
"build/classes" ".")))) "build/classes" ".")))
(add-before 'check 'dont-test-abstract-classes (add-before 'check 'dont-test-abstract-classes
(lambda _ (lambda _
;; abstract classes are not meant to be run with junit ;; abstract classes are not meant to be run with junit
@ -5807,7 +5868,8 @@ more efficient storage-wise than an uncompressed bitmap (as implemented in the
(("<include name=\"\\*\\*/\\*Test.java\" />") (("<include name=\"\\*\\*/\\*Test.java\" />")
(string-append "<include name=\"**/*Test.java\" />" (string-append "<include name=\"**/*Test.java\" />"
"<exclude name=\"**/MultithreadedInitializationTest" "<exclude name=\"**/MultithreadedInitializationTest"
".java\" />")))))))) ".java\" />")))
#t)))))
(inputs (inputs
`(("java-junit" ,java-junit) `(("java-junit" ,java-junit)
("java-hamcrest-core" ,java-hamcrest-core))) ("java-hamcrest-core" ,java-hamcrest-core)))
@ -5848,10 +5910,9 @@ time.")
(setenv "CLASSPATH" (setenv "CLASSPATH"
(string-append (getcwd) ":" (getenv "CLASSPATH"))) (string-append (getcwd) ":" (getenv "CLASSPATH")))
;; ... and build test helper classes here: ;; ... and build test helper classes here:
(zero? (apply invoke
(apply system* `("javac" "-d" "."
`("javac" "-d" "." ,@(find-files "slf4j-api/src/test" ".*\\.java"))))))))
,@(find-files "slf4j-api/src/test" ".*\\.java")))))))))
(inputs (inputs
`(("java-junit" ,java-junit) `(("java-junit" ,java-junit)
("java-hamcrest-core" ,java-hamcrest-core) ("java-hamcrest-core" ,java-hamcrest-core)
@ -5950,11 +6011,12 @@ tree walking, and translation.")
(add-before 'build 'generate-grammar (add-before 'build 'generate-grammar
(lambda _ (lambda _
(with-directory-excursion "src/org/antlr/stringtemplate/language/" (with-directory-excursion "src/org/antlr/stringtemplate/language/"
(every (lambda (file) (for-each (lambda (file)
(format #t "~a\n" file) (format #t "~a\n" file)
(zero? (system* "antlr" file))) (invoke "antlr" file))
'("template.g" "angle.bracket.template.g" "action.g" '("template.g" "angle.bracket.template.g" "action.g"
"eval.g" "group.g" "interface.g")))))))) "eval.g" "group.g" "interface.g")))
#t)))))
(native-inputs (native-inputs
`(("antlr" ,antlr2) `(("antlr" ,antlr2)
("java-junit" ,java-junit))) ("java-junit" ,java-junit)))
@ -6012,10 +6074,11 @@ StringTemplate also powers ANTLR.")
(add-before 'build 'generate-grammar (add-before 'build 'generate-grammar
(lambda _ (lambda _
(with-directory-excursion "src/org/stringtemplate/v4/compiler/" (with-directory-excursion "src/org/stringtemplate/v4/compiler/"
(every (lambda (file) (for-each (lambda (file)
(format #t "~a\n" file) (format #t "~a\n" file)
(zero? (system* "antlr3" file))) (invoke "antlr3" file))
'("STParser.g" "Group.g" "CodeGenerator.g")))))))) '("STParser.g" "Group.g" "CodeGenerator.g")))
#t)))))
(inputs (inputs
`(("antlr3" ,antlr3-bootstrap) `(("antlr3" ,antlr3-bootstrap)
("antlr2" ,antlr2) ("antlr2" ,antlr2)
@ -6082,14 +6145,15 @@ StringTemplate also powers ANTLR.")
"/lib") "/lib")
".*\\.jar")) ".*\\.jar"))
" org.antlr.Tool $*")))) " org.antlr.Tool $*"))))
(chmod (string-append bin "/antlr3") #o755)))) (chmod (string-append bin "/antlr3") #o755))
#t))
(add-before 'build 'generate-grammar (add-before 'build 'generate-grammar
(lambda _ (lambda _
(chdir "tool/src/main/antlr3/org/antlr/grammar/v3/") (chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
(for-each (lambda (file) (for-each (lambda (file)
(display file) (display file)
(newline) (newline)
(system* "antlr3" file)) (invoke "antlr3" file))
'("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g" '("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g"
"AssignTokenTypesWalker.g" "AssignTokenTypesWalker.g"
"ActionTranslator.g" "TreeToNFAConverter.g" "ActionTranslator.g" "TreeToNFAConverter.g"
@ -6100,14 +6164,13 @@ StringTemplate also powers ANTLR.")
(substitute* "ANTLRv3Parser.java" (substitute* "ANTLRv3Parser.java"
(("public Object getTree") "public CommonTree getTree")) (("public Object getTree") "public CommonTree getTree"))
(chdir "../../../../../java") (chdir "../../../../../java")
(system* "antlr" "-o" "org/antlr/tool"
"org/antlr/tool/serialize.g")
(substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java" (substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java"
(("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*; (("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*;
import org.antlr.grammar.v3.ANTLRTreePrinter;")) import org.antlr.grammar.v3.ANTLRTreePrinter;"))
(substitute* "org/antlr/tool/ErrorManager.java" (substitute* "org/antlr/tool/ErrorManager.java"
(("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") "")) (("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") ""))
(chdir "../../../.."))) (chdir "../../../..")
#t))
(add-before 'build 'fix-build-xml (add-before 'build 'fix-build-xml
(lambda _ (lambda _
(substitute* "build.xml" (substitute* "build.xml"
@ -6118,7 +6181,8 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;"))
<include name=\"**/*.sti\"/> <include name=\"**/*.sti\"/>
<include name=\"**/STLexer.tokens\"/> <include name=\"**/STLexer.tokens\"/>
</fileset> </fileset>
</copy><exec"))))))) </copy><exec"))
#t)))))
(native-inputs (native-inputs
`(("antlr" ,antlr2) `(("antlr" ,antlr2)
("antlr3" ,antlr3-bootstrap))) ("antlr3" ,antlr3-bootstrap)))
@ -6207,19 +6271,19 @@ tree walking, and translation.")
import org.antlr.grammar.v2.TreeToNFAConverter;\n import org.antlr.grammar.v2.TreeToNFAConverter;\n
import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n
import org.antlr.grammar.v2.ANTLRTreePrinter;")) import org.antlr.grammar.v2.ANTLRTreePrinter;"))
(and (with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
(with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/" (for-each (lambda (file)
(every (lambda (file) (format #t "~a\n" file)
(format #t "~a\n" file) (invoke "antlr" file))
(zero? (system* "antlr" file))) '("antlr.g" "antlr.print.g" "assign.types.g"
'("antlr.g" "antlr.print.g" "assign.types.g" "buildnfa.g" "codegen.g" "define.g")))
"buildnfa.g" "codegen.g" "define.g"))) (with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
(with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/" (for-each (lambda (file)
(every (lambda (file) (format #t "~a\n" file)
(format #t "~a\n" file) (invoke "antlr3" file))
(zero? (system* "antlr3" file))) '("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
'("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g" "ANTLRv3Tree.g")))
"ANTLRv3Tree.g")))))) #t))
(add-before 'build 'fix-build-xml (add-before 'build 'fix-build-xml
(lambda _ (lambda _
(substitute* "build.xml" (substitute* "build.xml"
@ -6282,7 +6346,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
"/lib") "/lib")
".*\\.jar")) ".*\\.jar"))
" org.antlr.Tool $*")))) " org.antlr.Tool $*"))))
(chmod (string-append bin "/antlr3") #o755)))) (chmod (string-append bin "/antlr3") #o755))
#t))
(add-before 'build 'generate-grammar (add-before 'build 'generate-grammar
(lambda _ (lambda _
(let ((dir "src/org/antlr/tool/")) (let ((dir "src/org/antlr/tool/"))
@ -6306,7 +6371,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
<include name=\"**/*.sti\"/> <include name=\"**/*.sti\"/>
<include name=\"**/STLexer.tokens\"/> <include name=\"**/STLexer.tokens\"/>
</fileset> </fileset>
</copy><exec"))))))) </copy><exec"))
#t)))))
(native-inputs (native-inputs
`(("antlr" ,antlr2))) `(("antlr" ,antlr2)))
(inputs (inputs
@ -6931,7 +6997,8 @@ the packageadmin service.")
(string-append (string-append
"version=" ,version "\n" "version=" ,version "\n"
"groupId=org.ops4j.base" "groupId=org.ops4j.base"
"artifactId=ops4j-base-lang\n"))))))))) "artifactId=ops4j-base-lang\n"))))
#t)))))
(home-page "https://ops4j1.jira.com/wiki/spaces/base/overview") (home-page "https://ops4j1.jira.com/wiki/spaces/base/overview")
(synopsis "Utility classes and extensions to be used in OPS4J projects") (synopsis "Utility classes and extensions to be used in OPS4J projects")
(description "OPS4J stands for Open Participation Software for Java. This (description "OPS4J stands for Open Participation Software for Java. This
@ -7170,7 +7237,8 @@ it manages project dependencies, gives diffs jars, and much more.")
;; it with our own version. ;; it with our own version.
(substitute* "src/test/java/org/ops4j/pax/tinybundles/bnd/BndTest.java" (substitute* "src/test/java/org/ops4j/pax/tinybundles/bnd/BndTest.java"
(("[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*") (("[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*")
,(package-version java-aqute-bndlib)))))))) ,(package-version java-aqute-bndlib)))
#t)))))
(inputs (inputs
`(("lang" ,java-ops4j-base-lang) `(("lang" ,java-ops4j-base-lang)
("io" ,java-ops4j-base-io) ("io" ,java-ops4j-base-io)
@ -7245,7 +7313,8 @@ the system under test at the same time.")
(add-before 'configure 'chdir (add-before 'configure 'chdir
(lambda _ (lambda _
;; Tests assume we are in this directory ;; Tests assume we are in this directory
(chdir "core/pax-exam-spi"))) (chdir "core/pax-exam-spi")
#t))
(add-before 'check 'fix-tests (add-before 'check 'fix-tests
(lambda _ (lambda _
;; One test checks that this file is present. ;; One test checks that this file is present.
@ -7264,7 +7333,8 @@ the system under test at the same time.")
(("target") "build")) (("target") "build"))
;; One test is expected to fail, but it doesn't throw the expected exception ;; One test is expected to fail, but it doesn't throw the expected exception
(substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java" (substitute* "src/test/java/org/ops4j/pax/exam/spi/reactors/BaseStagedReactorTest.java"
(("AssertionError") "IllegalArgumentException"))))))) (("AssertionError") "IllegalArgumentException"))
#t)))))
(inputs (inputs
`(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core) `(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core)
("lang" ,java-ops4j-base-lang) ("lang" ,java-ops4j-base-lang)
@ -7364,15 +7434,18 @@ not included are ones that require dependency to the Databind package.")
(("@package@") "com.fasterxml.jackson.core.json") (("@package@") "com.fasterxml.jackson.core.json")
(("@projectversion@") ,version) (("@projectversion@") ,version)
(("@projectgroupid@") "com.fasterxml.jackson.core") (("@projectgroupid@") "com.fasterxml.jackson.core")
(("@projectartifactid@") "jackson-core"))))) (("@projectartifactid@") "jackson-core")))
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "src/main/resources" (copy-recursively "src/main/resources"
"build/classes"))) "build/classes")
#t))
(add-before 'check 'copy-test-resources (add-before 'check 'copy-test-resources
(lambda _ (lambda _
(copy-recursively "src/test/resources" (copy-recursively "src/test/resources"
"build/test-classes")))))) "build/test-classes")
#t)))))
(native-inputs (native-inputs
`(("junit" ,java-junit) `(("junit" ,java-junit)
("hamcrest" ,java-hamcrest-core))) ("hamcrest" ,java-hamcrest-core)))
@ -7409,10 +7482,12 @@ not included are ones that require dependency to the Databind package.")
(("@package@") "com.fasterxml.jackson.databind.cfg") (("@package@") "com.fasterxml.jackson.databind.cfg")
(("@projectversion@") ,version) (("@projectversion@") ,version)
(("@projectgroupid@") "com.fasterxml.jackson.databind") (("@projectgroupid@") "com.fasterxml.jackson.databind")
(("@projectartifactid@") "jackson-databind"))))) (("@projectartifactid@") "jackson-databind")))
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "src/main/resources" "build/classes")))))) (copy-recursively "src/main/resources" "build/classes")
#t)))))
(inputs (inputs
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core))) ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)))
@ -7456,10 +7531,12 @@ configuration.")
(("@package@") "com.fasterxml.jackson.module.jaxb") (("@package@") "com.fasterxml.jackson.module.jaxb")
(("@projectversion@") ,version) (("@projectversion@") ,version)
(("@projectgroupid@") "com.fasterxml.jackson.module.jaxb") (("@projectgroupid@") "com.fasterxml.jackson.module.jaxb")
(("@projectartifactid@") "jackson-module-jaxb"))))) (("@projectartifactid@") "jackson-module-jaxb")))
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "jaxb/src/main/resources" "build/classes")))))) (copy-recursively "jaxb/src/main/resources" "build/classes")
#t)))))
(inputs (inputs
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core) ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
@ -7524,7 +7601,8 @@ configuration.")
(("@package@") "com.fasterxml.jackson.dataformat.yaml") (("@package@") "com.fasterxml.jackson.dataformat.yaml")
(("@projectversion@") ,version) (("@projectversion@") ,version)
(("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml") (("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml")
(("@projectartifactid@") "jackson-dataformat-yaml")))))))) (("@projectartifactid@") "jackson-dataformat-yaml")))
#t)))))
(inputs (inputs
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations) `(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core) ("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
@ -7591,10 +7669,12 @@ interface and high-performance Typed Access API.")
;; msv's latest release is from 2011 and we don't need it ;; msv's latest release is from 2011 and we don't need it
(delete-file-recursively "src/main/java/com/ctc/wstx/msv") (delete-file-recursively "src/main/java/com/ctc/wstx/msv")
(delete-file-recursively "src/test/java/wstxtest/osgi") (delete-file-recursively "src/test/java/wstxtest/osgi")
(delete-file-recursively "src/test/java/wstxtest/msv"))) (delete-file-recursively "src/test/java/wstxtest/msv")
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "src/main/resources" "build/classes")))))) (copy-recursively "src/main/resources" "build/classes")
#t)))))
(inputs (inputs
`(("stax2" ,java-stax2-api))) `(("stax2" ,java-stax2-api)))
(native-inputs (native-inputs
@ -7634,10 +7714,12 @@ interface and high-performance Typed Access API.")
(("@package@") "com.fasterxml.jackson.dataformat.xml") (("@package@") "com.fasterxml.jackson.dataformat.xml")
(("@projectversion@") ,version) (("@projectversion@") ,version)
(("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml") (("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml")
(("@projectartifactid@") "jackson-dataformat-xml"))))) (("@projectartifactid@") "jackson-dataformat-xml")))
#t))
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "src/main/resources" "build/classes")))))) (copy-recursively "src/main/resources" "build/classes")
#t)))))
(inputs (inputs
`(("jackson-annotations" ,java-fasterxml-jackson-annotations) `(("jackson-annotations" ,java-fasterxml-jackson-annotations)
("jackson-core" ,java-fasterxml-jackson-core) ("jackson-core" ,java-fasterxml-jackson-core)
@ -8112,15 +8194,15 @@ those in Perl and JavaScript.")
#t)) #t))
(replace 'check (replace 'check
(lambda _ (lambda _
(system* "ant" "compile-tests") (invoke "ant" "compile-tests")
;; we don't have groovy ;; we don't have groovy
(substitute* "src/test/resources/testng.xml" (substitute* "src/test/resources/testng.xml"
(("<class name=\"test.groovy.GroovyTest\" />") "")) (("<class name=\"test.groovy.GroovyTest\" />") ""))
(zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH") (invoke "java" "-cp" (string-append (getenv "CLASSPATH")
":build/classes" ":build/classes"
":build/test-classes") ":build/test-classes")
"-Dtest.resources.dir=src/test/resources" "-Dtest.resources.dir=src/test/resources"
"org.testng.TestNG" "src/test/resources/testng.xml"))))))) "org.testng.TestNG" "src/test/resources/testng.xml"))))))
(propagated-inputs (propagated-inputs
`(("junit" ,java-junit) `(("junit" ,java-junit)
("java-jsr305" ,java-jsr305) ("java-jsr305" ,java-jsr305)
@ -8184,8 +8266,7 @@ to use.")
":build/classes" ":build/classes"
":build/test-classes") ":build/test-classes")
"org.testng.TestNG" "-testclass" "org.testng.TestNG" "-testclass"
"build/test-classes/com/neilalexander/jnacl/NaClTest.class") "build/test-classes/com/neilalexander/jnacl/NaClTest.class"))))))
#t)))))
(native-inputs (native-inputs
`(("java-testng" ,java-testng) `(("java-testng" ,java-testng)
("java-fest-util" ,java-fest-util) ("java-fest-util" ,java-fest-util)
@ -8368,8 +8449,7 @@ algorithms and xxHash hashing algorithm.")
(replace 'build (replace 'build
(lambda _ (lambda _
(invoke "ant" "-f" "ant/jdk15+.xml" "build-provider") (invoke "ant" "-f" "ant/jdk15+.xml" "build-provider")
(invoke "ant" "-f" "ant/jdk15+.xml" "build") (invoke "ant" "-f" "ant/jdk15+.xml" "build")))
#t))
;; FIXME: the tests freeze. ;; FIXME: the tests freeze.
;; (replace 'check ;; (replace 'check
;; (lambda _ ;; (lambda _
@ -8547,7 +8627,8 @@ done to the IDE or continuous integration servers which simplifies adoption.")
(add-before 'build 'copy-resources (add-before 'build 'copy-resources
(lambda _ (lambda _
(copy-recursively "powermock-core/src/main/resources" (copy-recursively "powermock-core/src/main/resources"
"build/classes")))))) "build/classes")
#t)))))
(inputs (inputs
`(("reflect" ,java-powermock-reflect) `(("reflect" ,java-powermock-reflect)
("javassist" ,java-jboss-javassist))) ("javassist" ,java-jboss-javassist)))
@ -8604,7 +8685,8 @@ done to the IDE or continuous integration servers which simplifies adoption.")
;; Our junit version is 4.12-SNAPSHOT ;; Our junit version is 4.12-SNAPSHOT
(substitute* (find-files "powermock-modules/powermock-module-junit4" (substitute* (find-files "powermock-modules/powermock-module-junit4"
"PowerMockJUnit4MethodValidator.java") "PowerMockJUnit4MethodValidator.java")
(("4.12") "4.12-SNAPSHOT"))))))) (("4.12") "4.12-SNAPSHOT"))
#t)))))
(inputs (inputs
`(("core" ,java-powermock-core) `(("core" ,java-powermock-core)
("reflect" ,java-powermock-reflect) ("reflect" ,java-powermock-reflect)
@ -9069,8 +9151,7 @@ that is part of the SWT Tools project.")
(string-append "-I" (assoc-ref inputs "jdk") (string-append "-I" (assoc-ref inputs "jdk")
"/include/linux") "/include/linux")
"-fPIC" "-O2") "-fPIC" "-O2")
(invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o") (invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o"))))
#t)))
(add-before 'build 'install-native (add-before 'build 'install-native
(lambda _ (lambda _
(let ((dir (string-append "build/classes/META-INF/native/" (let ((dir (string-append "build/classes/META-INF/native/"
@ -9115,7 +9196,7 @@ console output.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'check 'clear-term (add-after 'check 'clear-term
(lambda _ (lambda _
(zero? (system* "echo" "-e" "\\e[0m"))))))) (invoke "echo" "-e" "\\e[0m"))))))
(inputs (inputs
`(("java-jansi-native" ,java-jansi-native))) `(("java-jansi-native" ,java-jansi-native)))
(native-inputs (native-inputs
@ -9579,7 +9660,8 @@ graphs, and pie charts.")
'("src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java" '("src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java"
"src/examples/TrivialApp.java" "src/examples/ClientApp.java" "src/examples/TrivialApp.java" "src/examples/ClientApp.java"
"src/test/org/apache/commons/httpclient/TestHttps.java" "src/test/org/apache/commons/httpclient/TestHttps.java"
"src/test/org/apache/commons/httpclient/TestURIUtil2.java")))) "src/test/org/apache/commons/httpclient/TestURIUtil2.java"))
#t))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(invoke "ant" "dist" (invoke "ant" "dist"
@ -9629,7 +9711,8 @@ authentication, HTTP state management, and HTTP connection management.")
(lambda _ (lambda _
(for-each delete-file-recursively (for-each delete-file-recursively
'("commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav" '("commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/webdav"
"commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))))))) "commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))
#t)))))
(inputs (inputs
`(("java-commons-collections4" ,java-commons-collections4) `(("java-commons-collections4" ,java-commons-collections4)
("java-commons-compress" ,java-commons-compress) ("java-commons-compress" ,java-commons-compress)
@ -9940,7 +10023,8 @@ jsch-agent-proxy with JSch.")))
(find-files "." ".*.properties") (find-files "." ".*.properties")
(find-files "." ".*.xsd") (find-files "." ".*.xsd")
(find-files "." ".*.xsl") (find-files "." ".*.xsl")
(find-files "." ".*.xml")))))) (find-files "." ".*.xml"))))
#t))
(add-before 'build 'fix-vfs (add-before 'build 'fix-vfs
(lambda _ (lambda _
(substitute* (substitute*
@ -9955,8 +10039,7 @@ jsch-agent-proxy with JSch.")))
(add-before 'install 'repack (add-before 'install 'repack
(lambda _ (lambda _
(invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar" (invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar"
"-C" "build/classes" ".") "-C" "build/classes" ".")))
#t))
(add-after 'install 'install-bin (add-after 'install 'install-bin
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((bin (string-append (assoc-ref outputs "out") "/bin")) (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
@ -10169,7 +10252,8 @@ and @code{ISimpleCompiler} interfaces.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'chdir (add-before 'configure 'chdir
(lambda _ (lambda _
(chdir "janino")))))) (chdir "janino")
#t)))))
(inputs (inputs
`(("java-commons-compiler" ,java-commons-compiler))) `(("java-commons-compiler" ,java-commons-compiler)))
(native-inputs (native-inputs
@ -10194,7 +10278,9 @@ static code analysis or code manipulation.")))
"1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(delete-file-recursively "logback-access/lib")))) '(begin
(delete-file-recursively "logback-access/lib")
#t))))
(build-system ant-build-system) (build-system ant-build-system)
(arguments (arguments
`(#:jar-name "logback.jar" `(#:jar-name "logback.jar"

View File

@ -754,7 +754,7 @@ word compounding or character encoding.")
(name (match variant (name (match variant
("classique" "hunspell-dict-fr") ("classique" "hunspell-dict-fr")
(_ (string-append "hunspell-dict-fr-" variant)))) (_ (string-append "hunspell-dict-fr-" variant))))
(version "6.1") (version "6.2")
(source (origin (source (origin
(uri (string-append (uri (string-append
"http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v" "http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
@ -762,7 +762,7 @@ word compounding or character encoding.")
(method url-fetch) (method url-fetch)
(sha256 (sha256
(base32 (base32
"0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc")))) "139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs `(("unzip" ,unzip))) (native-inputs `(("unzip" ,unzip)))
(arguments (arguments

View File

@ -402,8 +402,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.17.5") (define %linux-libre-version "4.17.6")
(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1") (define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm")
(define-public linux-libre (define-public linux-libre
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems %linux-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.54") (define %linux-libre-4.14-version "4.14.55")
(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki") (define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -421,14 +421,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.111" (make-linux-libre "4.9.112"
"0ld57627k6mjp14x5bvndakj6lc4l31zp2yq74h7ski2g3k7ppk2" "1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.139" (make-linux-libre "4.4.140"
"0x58ykgx7vbv23q763ydifi548mz39nal7wbvrrl4i9ndk7pzfzz" "10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -537,15 +537,15 @@ at login. Local and dynamic reconfiguration are its key features.")
(define-public psmisc (define-public psmisc
(package (package
(name "psmisc") (name "psmisc")
(version "22.21") (version "23.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-" (uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp")))) "0c5s94hqpwfmyswx2f96gifa6wdbpxxpkyxcrlzbxpvmrxsd911f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses))) (inputs `(("ncurses" ,ncurses)))
(home-page "https://gitlab.com/psmisc/psmisc") (home-page "https://gitlab.com/psmisc/psmisc")
@ -975,15 +975,8 @@ intercept and print the system calls executed by the program.")
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z")) "096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z"))))
(patches (search-patches "alsa-lib-add-environment-variable.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
(variable "ALSA_PLUGIN_DIR")
(file-type 'regular)
(separator #f) ;single entry
(files '("lib/alsa-lib")))))
(home-page "https://www.alsa-project.org/") (home-page "https://www.alsa-project.org/")
(synopsis "The Advanced Linux Sound Architecture libraries") (synopsis "The Advanced Linux Sound Architecture libraries")
(description (description
@ -3049,15 +3042,15 @@ Linux Device Mapper multipathing driver:
(define-public libaio (define-public libaio
(package (package
(name "libaio") (name "libaio")
(version "0.3.110") (version "0.3.111")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (uri (list
(string-append "mirror://debian/pool/main/liba/libaio/" (string-append "https://releases.pagure.org/libaio/"
name "_" version ".orig.tar.gz"))) name "-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0")))) "0ajhzbqjwsmz51gwccfyw6w9k4j4gmxcl2ph30sfn2gxv0d8gkv2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags '(#:make-flags
@ -3065,7 +3058,7 @@ Linux Device Mapper multipathing driver:
#:test-target "partcheck" ; need root for a full 'check' #:test-target "partcheck" ; need root for a full 'check'
#:phases #:phases
(modify-phases %standard-phases (delete 'configure)))) ; no configure script (modify-phases %standard-phases (delete 'configure)))) ; no configure script
(home-page "http://lse.sourceforge.net/io/aio.html") (home-page "https://pagure.io/libaio")
(synopsis "Linux-native asynchronous I/O access library") (synopsis "Linux-native asynchronous I/O access library")
(description (description
"This library enables userspace to use Linux kernel asynchronous I/O "This library enables userspace to use Linux kernel asynchronous I/O
@ -3099,7 +3092,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
(define-public bluez (define-public bluez
(package (package
(name "bluez") (name "bluez")
(version "5.49") (version "5.50")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -3107,7 +3100,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k")))) "048r91vx9gs5nwwbah2s0xig04nwk14c5s0vb7qmaqdvighsmz2z"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -3290,7 +3283,7 @@ and copy/paste text in the console and in xterm.")
("which" ,which) ("which" ,which)
;; The tests need 'grep' with perl regexp support. ;; The tests need 'grep' with perl regexp support.
("grep" ,grep))) ("grep" ,grep)))
(home-page "https://btrfs.wiki.kernel.org/") (home-page "https://btrfs.wiki.kernel.org/index.php/Main_Page")
(synopsis "Create and manage btrfs copy-on-write file systems") (synopsis "Create and manage btrfs copy-on-write file systems")
(description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux (description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux
aimed at implementing advanced features while focusing on fault tolerance, aimed at implementing advanced features while focusing on fault tolerance,
@ -3595,7 +3588,7 @@ The following service daemons are also provided:
(define-public rng-tools (define-public rng-tools
(package (package
(name "rng-tools") (name "rng-tools")
(version "6.2") (version "6.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/nhorman/rng-tools/" (uri (string-append "https://github.com/nhorman/rng-tools/"
@ -3603,7 +3596,7 @@ The following service daemons are also provided:
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j")))) "1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.

View File

@ -28,7 +28,7 @@
(define-public lsof (define-public lsof
(package (package
(name "lsof") (name "lsof")
(version "4.89") (version "4.91")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -53,7 +53,7 @@
(string-append "ftp://ftp.mirrorservice.org/sites/" (string-append "ftp://ftp.mirrorservice.org/sites/"
"lsof.itap.purdue.edu/pub/tools/unix/lsof"))))) "lsof.itap.purdue.edu/pub/tools/unix/lsof")))))
(sha256 (sha256
(base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41")))) (base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
(arguments (arguments
@ -73,14 +73,16 @@
(add-after 'configure 'patch-timestamps (add-after 'configure 'patch-timestamps
(lambda _ (lambda _
(substitute* "Makefile" (substitute* "Makefile"
(("`date`") "`date --date=@1`")))) (("`date`") "`date --date=@1`"))
#t))
(add-before 'check 'disable-failing-tests (add-before 'check 'disable-failing-tests
(lambda _ (lambda _
(substitute* "tests/Makefile" (substitute* "tests/Makefile"
;; Fails with ERROR!!! client gethostbyaddr() failure. ;; Fails with ERROR!!! client gethostbyaddr() failure.
(("(STDTST=.*) LTsock" _ prefix) prefix) (("(STDTST=.*) LTsock" _ prefix) prefix)
;; Fails without access to a remote NFS server. ;; Fails without access to a remote NFS server.
(("(OPTTST=.*) LTnfs" _ prefix) prefix)))) (("(OPTTST=.*) LTnfs" _ prefix) prefix))
#t))
(replace 'check (replace 'check
(lambda _ (lambda _
(with-directory-excursion "tests" (with-directory-excursion "tests"

View File

@ -1071,15 +1071,15 @@ which can add many functionalities to the base client.")
(define-public msmtp (define-public msmtp
(package (package
(name "msmtp") (name "msmtp")
(version "1.6.6") (version "1.6.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/msmtp/msmtp/" version (uri (string-append "https://marlam.de/msmtp/releases/"
"/msmtp-" version ".tar.xz")) "/msmtp-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs")))) "1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libidn" ,libidn) `(("libidn" ,libidn)
@ -1089,7 +1089,7 @@ which can add many functionalities to the base client.")
("gsasl" ,gsasl))) ("gsasl" ,gsasl)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(home-page "http://msmtp.sourceforge.net/") (home-page "https://marlam.de/msmtp/")
(arguments (arguments
`(#:configure-flags (list "--with-libgsasl" `(#:configure-flags (list "--with-libgsasl"
"--with-libidn" "--with-libidn"

View File

@ -2798,7 +2798,7 @@ parts of it.")
(define-public openblas (define-public openblas
(package (package
(name "openblas") (name "openblas")
(version "0.2.20") (version "0.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2807,7 +2807,7 @@ parts of it.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a")))) "14a9vyvp2k5zpd0axbnqk0d3khc1v3cck10nb5fj7d2sgn8490ky"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
@ -2846,6 +2846,16 @@ parts of it.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
;; Conditionally apply a patch on i686 to avoid rebuilding
;; all architectures. FIXME: This should be moved to the
;; (source (patches ...)) field in the next rebuild cycle.
,@(if (string-prefix? "i686" (or (%current-target-system)
(%current-system)))
`((add-after 'unpack 'fix-tests
(lambda* (#:key inputs #:allow-other-keys)
(invoke "patch" "-p1"
"--input" (assoc-ref inputs "i686-fix-tests.patch")))))
'())
(add-before 'build 'set-extralib (add-before 'build 'set-extralib
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Get libgfortran found when building in utest. ;; Get libgfortran found when building in utest.
@ -2857,6 +2867,11 @@ parts of it.")
`(("fortran-lib" ,gfortran "lib"))) `(("fortran-lib" ,gfortran "lib")))
(native-inputs (native-inputs
`(("cunit" ,cunit) `(("cunit" ,cunit)
,@(if (string-prefix? "i686" (or (%current-target-system)
(%current-system)))
`(("i686-fix-tests.patch"
,(search-patch "openblas-fix-tests-i686.patch")))
'())
("fortran" ,gfortran) ("fortran" ,gfortran)
("perl" ,perl))) ("perl" ,perl)))
(home-page "http://www.openblas.net/") (home-page "http://www.openblas.net/")

View File

@ -25,8 +25,10 @@
#:use-module (gnu packages cross-base) #:use-module (gnu packages cross-base)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages man)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages texinfo)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -73,7 +75,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
(let ((triplet "i686-unknown-linux-gnu")) (let ((triplet "i686-unknown-linux-gnu"))
(package (package
(name "mes") (name "mes")
(version "0.16") (version "0.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gitlab.com/janneke/mes" (uri (string-append "https://gitlab.com/janneke/mes"
@ -81,7 +83,7 @@ extensive examples, including parsers for the Javascript and C99 languages.")
"/mes-" version ".tar.gz")) "/mes-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n")))) "0qghlbx2qn674q8vckxpzsd0p845kclg457bw6r25jpmslgm0bz2"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
(propagated-inputs (propagated-inputs
@ -96,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.")
`(("i686-linux-binutils" ,(cross-binutils triplet)) `(("i686-linux-binutils" ,(cross-binutils triplet))
("i686-linux-gcc" ,(cross-gcc triplet))) ("i686-linux-gcc" ,(cross-gcc triplet)))
'()) '())
("perl" ,perl))) ;build-aux/gitlog-to-changelog ("help2man" ,help2man)
("perl" ,perl) ;build-aux/gitlog-to-changelog
("texinfo" ,texinfo)))
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases

View File

@ -9,7 +9,7 @@
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com> ;;; Copyright © 2017 Mekeor Melire <mekeor.melire@gmail.com>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
@ -1644,4 +1644,77 @@ c-toxcore and ncurses. It provides audio calls, sound and desktop
notifications, and Python scripting support.") notifications, and Python scripting support.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public libqmatrixclient
(package
(name "libqmatrixclient")
(version "0.3.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/QMatrixClient/libqmatrixclient/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0yl7lw0s2z98xkxbklkb3i8xcd9af9qayl1zxl070d8ykl6ayqy3"))))
(build-system cmake-build-system)
(inputs
`(("qt" ,qt)))
(arguments
`(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON")
#:tests? #f)) ; No tests
(home-page "https://matrix.org/docs/projects/sdk/libqmatrixclient.html")
(synopsis "Qt5 client library for the Matrix instant messaging protocol")
(description "libqmatrixclient is a Qt5 library to write clients for the
Matrix instant messaging protocol. Quaternion is the reference client
implementation. Quaternion and libqmatrixclient together form the
QMatrixClient project.")
(license license:lgpl2.1+)))
(define-public quaternion
(package
(name "quaternion")
(version "0.0.9.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/QMatrixClient/Quaternion/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0s2mpw11s2n21ds1spf94j1p2lj2px2bv5zxldlcx81ch0rb4ng8"))))
(build-system cmake-build-system)
(inputs
`(("libqmatrixclient" ,libqmatrixclient)
("qt" ,qt)))
(arguments
`(#:tests? #f ; No tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-libqmatrixclient-dynamic-linking
;; Upstream recommends statically linking with
;; libqmatrixclient. Patch the source so that we can dynamically
;; link instead. In a future release, when upstream moves to
;; dynamic linking, remove this phase.
(lambda _
(substitute* "CMakeLists.txt"
(("^add_subdirectory\\(lib\\)" all)
(string-append "#" all)))
(for-each
(lambda (file)
(substitute* file
(("#include \"lib/([^\"]*)\"" all header)
(string-append "#include <" header ">"))))
(find-files "client" "\\.(cpp|h)$"))
#t)))))
(home-page "https://matrix.org/docs/projects/client/quaternion.html")
(synopsis "Graphical client for the Matrix instant messaging protocol")
(description "Quaternion is a Qt5 desktop client for the Matrix instant
messaging protocol. It uses libqmatrixclient and is its reference client
implementation. Quaternion and libqmatriclient together form the
QMatrixClient project.")
(license (list license:gpl3+ ; all source code
license:lgpl3+)))) ; icons/breeze
;;; messaging.scm ends here ;;; messaging.scm ends here

View File

@ -22,6 +22,7 @@
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2018 Tonton <tonton@riseup.net> ;;; Copyright © 2018 Tonton <tonton@riseup.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -315,6 +316,35 @@ more.")
between different versions of ØMQ.") between different versions of ØMQ.")
(license license:mpl2.0))) (license license:mpl2.0)))
(define-public cppzmq
(let ((revision "0")
(commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
(package
(name "cppzmq")
(version (string-append "4.2.2-" revision "."
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/zeromq/cppzmq")
(commit commit)))
(sha256
(base32
"1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments '(#:tests? #f)) ; No tests.
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("zeromq" ,zeromq)))
(home-page "http://zeromq.org")
(synopsis "C++ bindings for the ØMQ messaging library")
(description
"This package provides header-only C++ bindings for ØMQ. The header
files contain direct mappings of the abstractions provided by the ØMQ C API.")
(license license:expat))))
(define-public librdkafka (define-public librdkafka
(package (package
(name "librdkafka") (name "librdkafka")

View File

@ -1,110 +0,0 @@
From 1822fb453128a1b5de93b4c590cd272d6488a077 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Fri, 25 May 2018 19:26:58 +0200
Subject: [PATCH] Add support for a ALSA_PLUGIN_DIR environment variable.
If it is not set, default to previous behavior.
---
src/control/control.c | 6 +++++-
src/dlmisc.c | 9 +++++++--
src/pcm/pcm.c | 9 +++++++--
src/pcm/pcm_rate.c | 13 +++++++++----
4 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/src/control/control.c b/src/control/control.c
index 11f7815..9dba7dd 100644
--- a/src/control/control.c
+++ b/src/control/control.c
@@ -1331,7 +1331,11 @@ static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,
build_in++;
}
if (*build_in == NULL) {
- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
+ char* plugdir = ALSA_PLUGIN_DIR;
+ char* envplugdir = getenv("ALSA_PLUGIN_DIR");
+ if(envplugdir != NULL)
+ plugdir = envplugdir;
+ buf1 = malloc(strlen(str) + strlen(plugdir) + 32);
if (buf1 == NULL) {
err = -ENOMEM;
goto _err;
diff --git a/src/dlmisc.c b/src/dlmisc.c
index 3757d33..92aa864 100644
--- a/src/dlmisc.c
+++ b/src/dlmisc.c
@@ -82,9 +82,14 @@ void *snd_dlopen(const char *name, int mode, char *errbuf, size_t errbuflen)
char *filename = NULL;
if (name && name[0] != '/') {
- filename = alloca(sizeof(ALSA_PLUGIN_DIR) + 1 + strlen(name) + 1);
+ char* plugdir = ALSA_PLUGIN_DIR;
+ char* envplugdir = getenv("ALSA_PLUGIN_DIR");
+ if(envplugdir != NULL)
+ plugdir = envplugdir;
+
+ filename = malloc(strlen(plugdir) + 1 + strlen(name) + 1);
if (filename) {
- strcpy(filename, ALSA_PLUGIN_DIR);
+ strcpy(filename, plugdir);
strcat(filename, "/");
strcat(filename, name);
handle = dlopen(filename, mode);
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
index 11aec80..590e8b6 100644
--- a/src/pcm/pcm.c
+++ b/src/pcm/pcm.c
@@ -2496,13 +2496,18 @@ static int snd_pcm_open_conf(snd_pcm_t **pcmp, const char *name,
build_in++;
}
if (*build_in == NULL) {
- buf1 = malloc(strlen(str) + sizeof(ALSA_PLUGIN_DIR) + 32);
+ char* plugdir = ALSA_PLUGIN_DIR;
+ char* envplugdir = getenv("ALSA_PLUGIN_DIR");
+ if(envplugdir != NULL)
+ plugdir = envplugdir;
+ buf1 = malloc(strlen(str) + strlen(plugdir) + 32);
+
if (buf1 == NULL) {
err = -ENOMEM;
goto _err;
}
lib = buf1;
- sprintf(buf1, "%s/libasound_module_pcm_%s.so", ALSA_PLUGIN_DIR, str);
+ sprintf(buf1, "%s/libasound_module_pcm_%s.so", plugdir, str);
}
}
#ifndef PIC
diff --git a/src/pcm/pcm_rate.c b/src/pcm/pcm_rate.c
index 4e0c7ca..8694a38 100644
--- a/src/pcm/pcm_rate.c
+++ b/src/pcm/pcm_rate.c
@@ -1260,7 +1260,8 @@ static const char *const default_rate_plugins[] = {
static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_config_t *converter_conf, int verbose)
{
- char open_name[64], open_conf_name[64], lib_name[128], *lib = NULL;
+ char open_name[64], open_conf_name[64], *lib = NULL;
+ char *buf1;
snd_pcm_rate_open_func_t open_func;
snd_pcm_rate_open_conf_func_t open_conf_func;
int err;
@@ -1268,9 +1269,13 @@ static int rate_open_func(snd_pcm_rate_t *rate, const char *type, const snd_conf
snprintf(open_name, sizeof(open_name), "_snd_pcm_rate_%s_open", type);
snprintf(open_conf_name, sizeof(open_conf_name), "_snd_pcm_rate_%s_open_conf", type);
if (!is_builtin_plugin(type)) {
- snprintf(lib_name, sizeof(lib_name),
- "%s/libasound_module_rate_%s.so", ALSA_PLUGIN_DIR, type);
- lib = lib_name;
+ char* plugdir = ALSA_PLUGIN_DIR;
+ char* envplugdir = getenv("ALSA_PLUGIN_DIR");
+ if(envplugdir != NULL)
+ plugdir = envplugdir;
+ buf1 = malloc(strlen(type) + strlen(plugdir) + 32);
+ sprintf(buf1, "%s/libasound_module_rate_%s.so", plugdir, type);
+ lib = buf1;
}
rate->rate_min = SND_PCM_PLUGIN_RATE_MIN;
--
2.17.0

View File

@ -1,100 +0,0 @@
Fix CVE-2018-5738:
https://kb.isc.org/article/AA-01616/0/CVE-2018-5738
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5738
diff --git a/bin/named/server.c b/bin/named/server.c
index f63554e..847c4ff 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -3725,10 +3725,6 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECKM(named_config_getport(config, &port), "port");
dns_view_setdstport(view, port);
- CHECK(configure_view_acl(vconfig, config, named_g_config,
- "allow-query", NULL, actx,
- named_g_mctx, &view->queryacl));
-
/*
* Make the list of response policy zone names for a view that
* is used for real lookups and so cares about hints.
@@ -4692,21 +4688,35 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
"allow-query-cache-on", NULL, actx,
named_g_mctx, &view->cacheonacl));
/*
- * Set "allow-query-cache", "allow-recursion", and
- * "allow-recursion-on" acls if configured in named.conf.
- * (Ignore the global defaults for now, because these ACLs
- * can inherit from each other when only some of them set at
- * the options/view level.)
+ * Set the "allow-query", "allow-query-cache", "allow-recursion",
+ * and "allow-recursion-on" ACLs if configured in named.conf, but
+ * NOT from the global defaults. This is done by leaving the third
+ * argument to configure_view_acl() NULL.
+ *
+ * We ignore the global defaults here because these ACLs
+ * can inherit from each other. If any are still unset after
+ * applying the inheritance rules, we'll look up the defaults at
+ * that time.
*/
- CHECK(configure_view_acl(vconfig, config, NULL, "allow-query-cache",
- NULL, actx, named_g_mctx, &view->cacheacl));
+
+ /* named.conf only */
+ CHECK(configure_view_acl(vconfig, config, NULL,
+ "allow-query", NULL, actx,
+ named_g_mctx, &view->queryacl));
+
+ /* named.conf only */
+ CHECK(configure_view_acl(vconfig, config, NULL,
+ "allow-query-cache", NULL, actx,
+ named_g_mctx, &view->cacheacl));
if (strcmp(view->name, "_bind") != 0 &&
view->rdclass != dns_rdataclass_chaos)
{
+ /* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-recursion", NULL, actx,
named_g_mctx, &view->recursionacl));
+ /* named.conf only */
CHECK(configure_view_acl(vconfig, config, NULL,
"allow-recursion-on", NULL, actx,
named_g_mctx, &view->recursiononacl));
@@ -4744,18 +4754,21 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
* the global config.
*/
if (view->recursionacl == NULL) {
+ /* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-recursion", NULL,
actx, named_g_mctx,
&view->recursionacl));
}
if (view->recursiononacl == NULL) {
+ /* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-recursion-on", NULL,
actx, named_g_mctx,
&view->recursiononacl));
}
if (view->cacheacl == NULL) {
+ /* global default only */
CHECK(configure_view_acl(NULL, NULL, named_g_config,
"allow-query-cache", NULL,
actx, named_g_mctx,
@@ -4769,6 +4782,14 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist,
CHECK(dns_acl_none(mctx, &view->cacheacl));
}
+ if (view->queryacl == NULL) {
+ /* global default only */
+ CHECK(configure_view_acl(NULL, NULL, named_g_config,
+ "allow-query", NULL,
+ actx, named_g_mctx,
+ &view->queryacl));
+ }
+
/*
* Ignore case when compressing responses to the specified
* clients. This causes case not always to be preserved,

File diff suppressed because it is too large Load Diff

View File

@ -1,15 +0,0 @@
Fix 'wayland-egl-symbols-check' on mips64el-linux, where an additional symbol
(_ftext) is present in libwayland-egl.so.
Patch by Mark H Weaver <mhw@netris.org>
--- mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check.orig 2016-01-18 02:39:25.000000000 -0500
+++ mesa-12.0.1/src/egl/wayland/wayland-egl/wayland-egl-symbols-check 2016-10-24 16:25:07.110721426 -0400
@@ -7,6 +7,7 @@
wl_egl_window_destroy
wl_egl_window_get_attached_size
_fini
+_ftext
_init
EOF
done)

View File

@ -6,14 +6,13 @@ Patch by Peter Mikkelsen <petermikkelsen10@gmail.com>
--- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200 --- meson-0.42.0/mesonbuild/scripts/meson_install.py.orig 2017-09-09 01:49:39.147374148 +0200
+++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200 +++ meson-0.42.0/mesonbuild/scripts/meson_install.py 2017-09-09 01:51:01.209134717 +0200
@@ -345,15 +345,6 @@ @@ -391,14 +391,6 @@
print("Symlink creation does not work on this platform. " print("Symlink creation does not work on this platform. "
"Skipping all symlinking.") "Skipping all symlinking.")
printed_symlink_error = True printed_symlink_error = True
- if is_elf_platform() and os.path.isfile(outname): - if os.path.isfile(outname):
- try: - try:
- e = depfixer.Elf(outname, False) - depfixer.fix_rpath(outname, install_rpath, False)
- e.fix_rpath(install_rpath)
- except SystemExit as e: - except SystemExit as e:
- if isinstance(e.code, int) and e.code == 0: - if isinstance(e.code, int) and e.code == 0:
- pass - pass

View File

@ -0,0 +1,35 @@
Fix a test failure on some i686 systems:
https://github.com/xianyi/OpenBLAS/issues/1575
This patch is a squashed version of these commits:
https://github.com/xianyi/OpenBLAS/pull/1583
diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM
index 835520ef..65b03ae5 100644
--- a/kernel/x86/KERNEL.NEHALEM
+++ b/kernel/x86/KERNEL.NEHALEM
@@ -1,3 +1 @@
include $(KERNELDIR)/KERNEL.PENRYN
-SSWAPKERNEL = ../arm/swap.c
-DSWAPKERNEL = ../arm/swap.c
diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S
index 54b00b33..e30c2789 100644
--- a/kernel/x86/swap.S
+++ b/kernel/x86/swap.S
@@ -138,6 +138,14 @@
/* INCX != 1 or INCY != 1 */
.L14:
+ cmpl $0, %ebx
+ jne .L141
+ cmpl $0, %ecx
+ jne .L141
+/* INCX == 0 and INCY == 0 */
+ jmp .L27
+
+.L141:
movl %edx, %eax
sarl $2, %eax
jle .L28

View File

@ -0,0 +1,72 @@
Avoid a crash:
https://github.com/syncthing/syncthing/issues/5002
Patch copied from upstream source repository:
https://github.com/syncthing/syncthing/commit/35a75a95dc6383b2d73ab645f1407f7907ec1a2c
From 35a75a95dc6383b2d73ab645f1407f7907ec1a2c Mon Sep 17 00:00:00 2001
From: Jakob Borg <jakob@kastelo.net>
Date: Wed, 13 Jun 2018 19:07:52 +0200
Subject: [PATCH] lib/model: Don't panic when rechecking file (fixes #5002)
(#5003)
---
lib/model/model.go | 2 +-
lib/model/model_test.go | 26 ++++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/lib/model/model.go b/lib/model/model.go
index 5a9146e0..302f06c5 100644
--- a/lib/model/model.go
+++ b/lib/model/model.go
@@ -1373,7 +1373,7 @@ func (m *Model) recheckFile(deviceID protocol.DeviceID, folderFs fs.Filesystem,
return
}
- if blockIndex > len(cf.Blocks) {
+ if blockIndex >= len(cf.Blocks) {
l.Debugf("%v recheckFile: %s: %q / %q i=%d: block index too far", m, deviceID, folder, name, blockIndex)
return
}
diff --git a/lib/model/model_test.go b/lib/model/model_test.go
index 295eafc1..456bbc4a 100644
--- a/lib/model/model_test.go
+++ b/lib/model/model_test.go
@@ -3608,6 +3608,32 @@ func TestIssue4903(t *testing.T) {
}
}
+func TestIssue5002(t *testing.T) {
+ // recheckFile should not panic when given an index equal to the number of blocks
+
+ db := db.OpenMemory()
+ m := NewModel(defaultCfgWrapper, protocol.LocalDeviceID, "syncthing", "dev", db, nil)
+ m.AddFolder(defaultFolderConfig)
+ m.StartFolder("default")
+
+ m.ServeBackground()
+ defer m.Stop()
+
+ if err := m.ScanFolder("default"); err != nil {
+ t.Error(err)
+ }
+
+ file, ok := m.CurrentFolderFile("default", "foo")
+ if !ok {
+ t.Fatal("test file should exist")
+ }
+ nBlocks := len(file.Blocks)
+
+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks-1, []byte{1, 2, 3, 4})
+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks, []byte{1, 2, 3, 4}) // panic
+ m.recheckFile(protocol.LocalDeviceID, defaultFolderConfig.Filesystem(), "default", "foo", nBlocks+1, []byte{1, 2, 3, 4})
+}
+
func addFakeConn(m *Model, dev protocol.DeviceID) *fakeConnection {
fc := &fakeConnection{id: dev, model: m}
m.AddConnection(fc, protocol.HelloResult{})
--
2.18.0

View File

@ -0,0 +1,23 @@
Revert this upstream commit which breaks a test case in "notmuch":
https://git.xapian.org/?p=xapian;a=commitdiff;h=5489fb2f838c0f0b0a593b4c17df282a93a1fe5a
See the notmuch FAQ entry:
https://notmuchmail.org/faq/#index12h2
This should be fixed for later releases.
diff --git a/backends/glass/glass_postlist.cc b/xapian-core/backends/glass/glass_postlist.cc
index 80e578b85..a47f14a68 100644
--- a/backends/glass/glass_postlist.cc
+++ b/backends/glass/glass_postlist.cc
@@ -759,7 +759,7 @@ GlassPostList::open_nearby_postlist(const std::string & term_,
(void)need_pos;
if (term_.empty())
RETURN(NULL);
- if (!this_db.get() || this_db->postlist_table.is_modified())
+ if (!this_db.get() || this_db->postlist_table.is_writable())
RETURN(NULL);
RETURN(new GlassPostList(this_db, term_, cursor->clone()));
}

View File

@ -0,0 +1,33 @@
Fix build against xorg-server >= 1.20.
Patch taken from upstream:
https://cgit.freedesktop.org/xorg/driver/xf86-video-savage/commit/?id=0ece556daa8a88771b669d8104396abd9166d2d0
diff --git a/src/savage_driver.c b/src/savage_driver.c
index 58a294d..3cda923 100644
--- a/src/savage_driver.c
+++ b/src/savage_driver.c
@@ -2034,8 +2034,6 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_PROBED, "Detected current MCLK value of %1.3f MHz\n",
mclk / 1000.0);
- pScrn->maxHValue = 2048 << 3; /* 11 bits of h_total 8-pixel units */
- pScrn->maxVValue = 2048; /* 11 bits of v_total */
pScrn->virtualX = pScrn->display->virtualX;
pScrn->virtualY = pScrn->display->virtualY;
@@ -3637,6 +3635,14 @@ static ModeStatus SavageValidMode(SCRN_ARG_TYPE arg, DisplayModePtr pMode,
(pMode->VDisplay > psav->PanelY)))
return MODE_PANEL;
+ /* 11 bits of h_total 8-pixel units */
+ if (pMode->HTotal > (2048 << 3))
+ return MODE_BAD_HVALUE;
+
+ /* 11 bits of v_total */
+ if (pMode->VTotal > 2048)
+ return MODE_BAD_VVALUE;
+
if (psav->UseBIOS) {
refresh = SavageGetRefresh(pMode);
return (SavageMatchBiosMode(pScrn,pMode->HDisplay,

View File

@ -0,0 +1,18 @@
Remove use of interface no longer provided by xorg-server.
Patch taken from upstream:
https://cgit.freedesktop.org/xorg/driver/xf86-video-sis/commit/?id=4b1356a2b7fd06e9a05d134caa4033681c939737
diff --git a/src/sis_driver.c b/src/sis_driver.c
index 8f06164..513f68b 100644
--- a/src/sis_driver.c
+++ b/src/sis_driver.c
@@ -2738,7 +2738,7 @@ SiSPrintModes(ScrnInfoPtr pScrn)
float hsync, refresh = 0.0;
char *desc, *desc2, *prefix, *uprefix, *output;
- xf86DrvMsg(pScrn->scrnIndex, pScrn->virtualFrom, "Virtual size is %dx%d "
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Virtual size is %dx%d "
"(pitch %d)\n", pScrn->virtualX, pScrn->virtualY,
pScrn->displayWidth);

View File

@ -0,0 +1,55 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Mon, 18 Jun 2018 02:37:41 +0200
Subject: zathura-pdf-mupdf: Link to JPEG libraries.
As of version 0.3.3, zathura-pdf-mupdf no longer links to some required
JPEG libraries, leading to such errors as:
$ zathura foo.pdf
error: Could not load plugin '/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so' (/gnu/store/...-profile/lib/zathura/libpdf-mupdf.so: undefined symbol: jpeg_resync_to_restart).
The patch below, copied verbatim from Arch[0], fixes that.
Its description happens to match our reality, too.
[0]: https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/zathura-pdf-mupdf
---
From 3fb0ff750373d45d4f5172ce1d41b74183cd07e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= <johannes@kyriasis.com>
Date: Sat, 24 Mar 2018 14:31:18 +0100
Subject: [PATCH] Explicitly link against jbig2dec, openjp2, and jpeg
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Normally these are statically linked into libmupdfthird, but we delete
those to make mupdf use the system libraries. Previously
zathura-pdf-mupdf explicitly linked against them, but this is
technically incorrect since they are supposed to be in libmupdfthird so
that was removed. This commit essentially reverts that in the new build
system.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
---
meson.build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index 3b0d7b7..ae2fc9c 100644
--- a/meson.build
+++ b/meson.build
@@ -22,7 +22,11 @@ cairo = dependency('cairo')
mupdf = cc.find_library('mupdf')
mupdfthird = cc.find_library('mupdfthird')
-build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird]
+jbig2dec = cc.find_library('jbig2dec')
+openjp2 = cc.find_library('openjp2')
+jpeg = cc.find_library('jpeg')
+
+build_dependencies = [zathura, girara, glib, cairo, mupdf, mupdfthird, jbig2dec, openjp2, jpeg]
# defines
defines = [
--
2.16.3

View File

@ -8,15 +8,15 @@ different file formats) called ZATHURA_PLUGIN_PATH. Command line option
-p still takes precedence. -p still takes precedence.
Patch by Paul van der Walt <paul@denknerd.org> Patch by Paul van der Walt <paul@denknerd.org>
Adjusted for Zathura 0.3.9 by Tobias Geerinckx-Rice <me@tobias.gr>
--- ---
zathura/zathura.c | 7 +++++++ zathura/zathura.c | 7 +++++++
1 file changed, 7 insertions(+) 1 file changed, 7 insertions(+)
diff --git a/zathura/zathura.c b/zathura/zathura.c diff --git a/zathura/zathura.c b/zathura/zathura.c
index 589dd28..375ec54 100644
--- a/zathura/zathura.c --- a/zathura/zathura.c
+++ b/zathura/zathura.c +++ b/zathura/zathura.c
@@ -413,6 +413,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir) @@ -597,6 +597,13 @@ zathura_set_plugin_dir(zathura_t* zathura, const char* dir)
g_return_if_fail(zathura != NULL); g_return_if_fail(zathura != NULL);
g_return_if_fail(zathura->plugins.manager != NULL); g_return_if_fail(zathura->plugins.manager != NULL);
@ -28,8 +28,5 @@ index 589dd28..375ec54 100644
+ dir = g_getenv("ZATHURA_PLUGIN_PATH"); + dir = g_getenv("ZATHURA_PLUGIN_PATH");
+ +
if (dir != NULL) { if (dir != NULL) {
girara_list_t* paths = girara_split_path_array(dir); set_plugin_dir(zathura, dir);
GIRARA_LIST_FOREACH(paths, char*, iter, path) #ifdef ZATHURA_PLUGINDIR
--
2.3.1

View File

@ -13,7 +13,7 @@
;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -37,6 +37,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system meson)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -343,26 +344,32 @@ reading and editing of existing PDF files.")
(define-public zathura-cb (define-public zathura-cb
(package (package
(name "zathura-cb") (name "zathura-cb")
(version "0.1.7") (version "0.1.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-" (string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0r4viisycj39kaz4281cmkr7n9w5q96dmlf7nf45n8zq8qy2npw3")))) "1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libarchive" ,libarchive) (inputs `(("libarchive" ,libarchive)
("zathura" ,zathura))) ("zathura" ,zathura)))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output) `(#:tests? #f ; package does not contain tests
(string-append "PLUGINDIR=" %output "/lib/zathura")
"CC=gcc")
#:tests? #f ; Package does not contain tests.
#:phases #:phases
(modify-phases %standard-phases (delete 'configure)))) (modify-phases %standard-phases
(add-after 'unpack 'patch-plugin-directory
;; Something of a regression in 0.1.8: the new Meson build system
;; now hard-codes an incorrect plugin directory. Fix it.
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "meson.build"
(("(install_dir:).*" _ key)
(string-append key
"'" (assoc-ref outputs "out") "/lib/zathura'\n")))
#t)))))
(home-page "https://pwmt.org/projects/zathura-cb/") (home-page "https://pwmt.org/projects/zathura-cb/")
(synopsis "Comic book support for zathura (libarchive backend)") (synopsis "Comic book support for zathura (libarchive backend)")
(description "The zathura-cb plugin adds comic book support to zathura (description "The zathura-cb plugin adds comic book support to zathura
@ -372,26 +379,32 @@ using libarchive.")
(define-public zathura-ps (define-public zathura-ps
(package (package
(name "zathura-ps") (name "zathura-ps")
(version "0.2.5") (version "0.2.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-" (string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1x4knqja8pw2a5cb3y2209nr3iddj1z8nwasy48v5nprj61fdxqj")))) "0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libspectre" ,libspectre) (inputs `(("libspectre" ,libspectre)
("zathura" ,zathura))) ("zathura" ,zathura)))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output) `(#:tests? #f ; package does not contain tests
(string-append "PLUGINDIR=" %output "/lib/zathura")
"CC=gcc")
#:tests? #f ; Package does not contain tests.
#:phases #:phases
(modify-phases %standard-phases (delete 'configure)))) (modify-phases %standard-phases
(add-after 'unpack 'patch-plugin-directory
;; Something of a regression in 0.2.6: the new Meson build system
;; now hard-codes an incorrect plugin directory. Fix it.
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "meson.build"
(("(install_dir:).*" _ key)
(string-append key
"'" (assoc-ref outputs "out") "/lib/zathura'\n")))
#t)))))
(home-page "https://pwmt.org/projects/zathura-ps/") (home-page "https://pwmt.org/projects/zathura-ps/")
(synopsis "PS support for zathura (libspectre backend)") (synopsis "PS support for zathura (libspectre backend)")
(description "The zathura-ps plugin adds PS support to zathura (description "The zathura-ps plugin adds PS support to zathura
@ -401,27 +414,33 @@ using libspectre.")
(define-public zathura-djvu (define-public zathura-djvu
(package (package
(name "zathura-djvu") (name "zathura-djvu")
(version "0.2.7") (version "0.2.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-" (string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1sbfdsyp50qc85xc4458sn4w1rv1qbygdwmcr5kjlfpsmdq98vhd")))) "0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh"))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("djvulibre" ,djvulibre) `(("djvulibre" ,djvulibre)
("zathura" ,zathura))) ("zathura" ,zathura)))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output) `(#:tests? #f ; package does not contain tests
(string-append "PLUGINDIR=" %output "/lib/zathura")
"CC=gcc")
#:tests? #f ; Package does not contain tests.
#:phases #:phases
(modify-phases %standard-phases (delete 'configure)))) (modify-phases %standard-phases
(add-after 'unpack 'patch-plugin-directory
;; Something of a regression in 0.2.8: the new Meson build system
;; now hard-codes an incorrect plugin directory. Fix it.
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "meson.build"
(("(install_dir:).*" _ key)
(string-append key
"'" (assoc-ref outputs "out") "/lib/zathura'\n")))
#t)))))
(home-page "https://pwmt.org/projects/zathura-djvu/") (home-page "https://pwmt.org/projects/zathura-djvu/")
(synopsis "DjVu support for zathura (DjVuLibre backend)") (synopsis "DjVu support for zathura (DjVuLibre backend)")
(description "The zathura-djvu plugin adds DjVu support to zathura (description "The zathura-djvu plugin adds DjVu support to zathura
@ -431,15 +450,17 @@ using the DjVuLibre library.")
(define-public zathura-pdf-mupdf (define-public zathura-pdf-mupdf
(package (package
(name "zathura-pdf-mupdf") (name "zathura-pdf-mupdf")
(version "0.3.2") (version "0.3.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura-pdf-mupdf" (string-append "https://pwmt.org/projects/zathura-pdf-mupdf"
"/download/zathura-pdf-mupdf-" version ".tar.gz")) "/download/zathura-pdf-mupdf-" version ".tar.xz"))
(patches
(search-patches "zathura-pdf-mupdf-link-to-jpeg-libraries.patch"))
(sha256 (sha256
(base32 (base32
"0xkajc3is7ncmb2fmymbzfgrran2bz12i7zsm1vvxhxds728h7ck")))) "1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j"))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("jbig2dec" ,jbig2dec) `(("jbig2dec" ,jbig2dec)
@ -448,13 +469,20 @@ using the DjVuLibre library.")
("openjpeg" ,openjpeg) ("openjpeg" ,openjpeg)
("openssl" ,openssl) ("openssl" ,openssl)
("zathura" ,zathura))) ("zathura" ,zathura)))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output) `(#:tests? #f ; package does not contain tests
(string-append "PLUGINDIR=" %output "/lib/zathura") #:phases
"CC=gcc") (modify-phases %standard-phases
#:tests? #f ;No tests. (add-after 'unpack 'patch-plugin-directory
#:phases (modify-phases %standard-phases (delete 'configure)))) ;; Something of a regression in 0.3.3: the new Meson build system
;; now hard-codes an incorrect plugin directory. Fix it.
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "meson.build"
(("(install_dir:).*" _ key)
(string-append key
"'" (assoc-ref outputs "out") "/lib/zathura'\n")))
#t)))))
(home-page "https://pwmt.org/projects/zathura-pdf-mupdf/") (home-page "https://pwmt.org/projects/zathura-pdf-mupdf/")
(synopsis "PDF support for zathura (mupdf backend)") (synopsis "PDF support for zathura (mupdf backend)")
(description "The zathura-pdf-mupdf plugin adds PDF support to zathura (description "The zathura-pdf-mupdf plugin adds PDF support to zathura
@ -464,27 +492,33 @@ by using the @code{mupdf} rendering library.")
(define-public zathura-pdf-poppler (define-public zathura-pdf-poppler
(package (package
(name "zathura-pdf-poppler") (name "zathura-pdf-poppler")
(version "0.2.8") (version "0.2.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-" (string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1m55m7s7f8ng8a7lmcw9z4n5zv7xk4vp9n6fp9j84z6rk2imf7a2")))) "1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y"))))
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("poppler" ,poppler) `(("poppler" ,poppler)
("zathura" ,zathura))) ("zathura" ,zathura)))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" %output) `(#:tests? #f ; package does not include tests
(string-append "PLUGINDIR=" %output "/lib/zathura")
"CC=gcc")
#:tests? #f ; Package does not include tests.
#:phases #:phases
(modify-phases %standard-phases (delete 'configure)))) (modify-phases %standard-phases
(add-after 'unpack 'patch-plugin-directory
;; Something of a regression in 0.2.9: the new Meson build system
;; now hard-codes an incorrect plugin directory. Fix it.
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "meson.build"
(("(install_dir:).*" _ key)
(string-append key
"'" (assoc-ref outputs "out") "/lib/zathura'\n")))
#t)))))
(home-page "https://pwmt.org/projects/zathura-pdf-poppler/") (home-page "https://pwmt.org/projects/zathura-pdf-poppler/")
(synopsis "PDF support for zathura (poppler backend)") (synopsis "PDF support for zathura (poppler backend)")
(description "The zathura-pdf-poppler plugin adds PDF support to zathura (description "The zathura-pdf-poppler plugin adds PDF support to zathura
@ -494,21 +528,24 @@ by using the poppler rendering engine.")
(define-public zathura (define-public zathura
(package (package
(name "zathura") (name "zathura")
(version "0.3.8") (version "0.3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "https://pwmt.org/projects/zathura/download/zathura-" (string-append "https://pwmt.org/projects/zathura/download/zathura-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0dz5pky3vmf3s2cp2rv1c099gb1s49p9xlgm3ghyy4pzyxc8bgs6")) "0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g"))
(patches (search-patches (patches (search-patches
"zathura-plugindir-environment-variable.patch")))) "zathura-plugindir-environment-variable.patch"))))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal) ("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin") ("glib:bin" ,glib "bin")
;; For building documentation.
("python-sphinx" ,python-sphinx)
;; For tests. ;; For tests.
("check" ,check) ("check" ,check)
("xorg-server" ,xorg-server-1.19.3))) ("xorg-server" ,xorg-server-1.19.3)))
@ -520,15 +557,9 @@ by using the poppler rendering engine.")
(list (search-path-specification (list (search-path-specification
(variable "ZATHURA_PLUGIN_PATH") (variable "ZATHURA_PLUGIN_PATH")
(files '("lib/zathura"))))) (files '("lib/zathura")))))
(build-system gnu-build-system) (build-system meson-build-system)
(arguments (arguments
`(#:make-flags `(#:phases (modify-phases %standard-phases
`(,(string-append "PREFIX=" (assoc-ref %outputs "out"))
"CC=gcc" "COLOR=0")
#:test-target "test"
#:disallowed-references (,xorg-server-1.19.3)
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-before 'check 'start-xserver (add-before 'check 'start-xserver
;; Tests require a running X server. ;; Tests require a running X server.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)

View File

@ -318,7 +318,7 @@
("libxpm" ,libxpm) ("libxpm" ,libxpm)
("libxslt" ,libxslt) ("libxslt" ,libxslt)
("libx11" ,libx11) ("libx11" ,libx11)
("oniguruma" ,oniguruma) ("oniguruma" ,oniguruma-5)
("openldap" ,openldap) ("openldap" ,openldap)
("openssl" ,openssl) ("openssl" ,openssl)
("pcre" ,pcre) ("pcre" ,pcre)

View File

@ -782,14 +782,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of
(define-public python-h5py (define-public python-h5py
(package (package
(name "python-h5py") (name "python-h5py")
(version "2.7.0") (version "2.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "h5py" version)) (uri (pypi-uri "h5py" version))
(sha256 (sha256
(base32 (base32
"0433sdv6xc9p7v1xs1gvbxp7p152ywi3nplgjb258q9fvw9469br")))) "0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f ; no test target `(#:tests? #f ; no test target
@ -2218,14 +2218,14 @@ environments and back.")
(define-public python-pyyaml (define-public python-pyyaml
(package (package
(name "python-pyyaml") (name "python-pyyaml")
(version "3.12") (version "3.13")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "PyYAML" version)) (uri (pypi-uri "PyYAML" version))
(sha256 (sha256
(base32 (base32
"1aqjl8dk9amd4zr99n8v2qxzgmr2hdvqfma4zh7a41rj6336c9sr")))) "1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("libyaml" ,libyaml))) `(("libyaml" ,libyaml)))
@ -7834,14 +7834,14 @@ python-xdo for newer bindings.)")
(define-public python-mako (define-public python-mako
(package (package
(name "python-mako") (name "python-mako")
(version "1.0.6") (version "1.0.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "Mako" version)) (uri (pypi-uri "Mako" version))
(sha256 (sha256
(base32 (base32
"03dyxgjknp4ffsv7vwfd28l5bbpzi0ylp20543wpg3iahyyrwma8")))) "1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-markupsafe" ,python-markupsafe))) `(("python-markupsafe" ,python-markupsafe)))

View File

@ -236,14 +236,14 @@ Desktops into Active Directory environments using the winbind daemon.")
(define-public talloc (define-public talloc
(package (package
(name "talloc") (name "talloc")
(version "2.1.13") (version "2.1.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/talloc/talloc-" (uri (string-append "https://www.samba.org/ftp/talloc/talloc-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0iv09iv385x69gfzvassq6m3y0rd8ncylls95dm015xdy3drkww4")))) "1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -306,14 +306,14 @@ destructors. It is the core memory allocator used in Samba.")
(define-public tevent (define-public tevent
(package (package
(name "tevent") (name "tevent")
(version "0.9.36") (version "0.9.37")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/tevent/tevent-" (uri (string-append "https://www.samba.org/ftp/tevent/tevent-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx")))) "1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -341,14 +341,14 @@ many event types, including timers, signals, and the classic file descriptor eve
(define-public ldb (define-public ldb
(package (package
(name "ldb") (name "ldb")
(version "1.4.0") (version "1.3.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.samba.org/ftp/ldb/ldb-" (uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8")) "14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -361,10 +361,7 @@ many event types, including timers, signals, and the classic file descriptor eve
#t)))) #t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(;; LMDB is only supported on 64-bit systems, yet the test suite '(#:phases
;; requires it.
#:tests? (assoc-ref %build-inputs "lmdb")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
;; ldb use a custom configuration script that runs waf. ;; ldb use a custom configuration script that runs waf.
@ -384,10 +381,7 @@ many event types, including timers, signals, and the classic file descriptor eve
`(("talloc" ,talloc) `(("talloc" ,talloc)
("tdb" ,tdb))) ("tdb" ,tdb)))
(inputs (inputs
`(,@(if (target-64bit?) `(("popt" ,popt)
`(("lmdb" ,lmdb))
'())
("popt" ,popt)
("tevent" ,tevent))) ("tevent" ,tevent)))
(synopsis "LDAP-like embedded database") (synopsis "LDAP-like embedded database")
(home-page "https://ldb.samba.org/") (home-page "https://ldb.samba.org/")

View File

@ -46,14 +46,15 @@
(define-public xapian (define-public xapian
(package (package
(name "xapian") (name "xapian")
(version "1.4.5") (version "1.4.6")
;; Note: When updating Xapian, remember to update xapian-bindings below. ;; Note: When updating Xapian, remember to update xapian-bindings below.
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://oligarchy.co.uk/xapian/" version (uri (string-append "https://oligarchy.co.uk/xapian/" version
"/xapian-core-" version ".tar.xz")) "/xapian-core-" version ".tar.xz"))
(patches (search-patches "xapian-revert-5489fb2f8.patch"))
(sha256 (sha256
(base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5")))) (base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("zlib" ,zlib) (inputs `(("zlib" ,zlib)
("util-linux" ,util-linux))) ("util-linux" ,util-linux)))
@ -91,7 +92,7 @@ rich set of boolean query operators.")
"/xapian-bindings-" version ".tar.xz")) "/xapian-bindings-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34")))) "0z5ma66n742241ys037i3k66c6lvsywviqf33vqsf4jb7j03qsbi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--with-python3") `(#:configure-flags '("--with-python3")

View File

@ -24,6 +24,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (gnu packages)
#:use-module (gnu packages golang)) #:use-module (gnu packages golang))
(define-public syncthing (define-public syncthing
@ -35,6 +36,7 @@
(uri (string-append "https://github.com/syncthing/syncthing" (uri (string-append "https://github.com/syncthing/syncthing"
"/releases/download/v" version "/releases/download/v" version
"/syncthing-source-v" version ".tar.gz")) "/syncthing-source-v" version ".tar.gz"))
(patches (search-patches "syncthing-fix-crash.patch"))
(sha256 (sha256
(base32 (base32
"0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) "0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml"))

View File

@ -338,6 +338,27 @@ as existing hashing techniques, with provably negligible risk of collisions.")
(define-public oniguruma (define-public oniguruma
(package (package
(name "oniguruma") (name "oniguruma")
(version "6.8.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/kkos/"
"oniguruma/releases/download/v" version
"/onig-" version ".tar.gz"))
(sha256
(base32
"00s9gjgb3srn5sbmx4x9bssn52mi04d868ghizssdhjlddgxmsmd"))))
(build-system gnu-build-system)
(home-page "https://github.com/kkos/oniguruma")
(synopsis "Regular expression library")
(description "Oniguruma is a regular expressions library. The special
characteristic of this library is that different character encoding for every
regular expression object can be specified.")
(license license:bsd-2)))
;; PHP < 7.3.0 requires this old version. Remove once no longer needed.
(define-public oniguruma-5
(package
(inherit oniguruma)
(version "5.9.6") (version "5.9.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -346,14 +367,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
"/onig-" version ".tar.gz")) "/onig-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m")))) "19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m"))))))
(build-system gnu-build-system)
(home-page "https://github.com/kkos/oniguruma")
(synopsis "Regular expression library")
(description "Oniguruma is a regular expressions library. The special
characteristic of this library is that different character encoding for every
regular expression object can be specified.")
(license license:bsd-2)))
(define-public antiword (define-public antiword
(package (package

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in> ;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,7 +23,9 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages)) #:use-module (guix packages))
@ -76,6 +79,49 @@ over IRC, instant messaging, network games, and most server software.")
(license (license
(x11-style "file://LICENSE" "See 'LICENSE' file in the distribution")))) (x11-style "file://LICENSE" "See 'LICENSE' file in the distribution"))))
(define-public monero-miniupnpc
;; This package is the bundled version of miniupnpc used with monero.
;; Monero-project has been maintaining its own version of the package since
;; release 0.12.2.0. It includes security fixes not included in upstream
;; releases.
(let ((revision "0")
(commit "6a63f9954959119568fbc4af57d7b491b9428d87"))
(package
(inherit miniupnpc)
(name "miniupnpc-monero")
(version (string-append "2.1-monero-0.12.3.0-" revision "."
(string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/monero-project/miniupnp/")
(commit commit)))
(sha256
(base32
"0s67zcz978iapjlq30yy9dl8qda9xhrl3jdi5f99cnbglh5gy16a"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete miniupnp subprojects except for miniupnpc.
(for-each
delete-file-recursively
'("minissdpd" "miniupnpc-async" "miniupnpc-libevent"
"miniupnpd" ))
#t))))
(arguments
(substitute-keyword-arguments (package-arguments miniupnpc)
((#:phases phases)
`(modify-phases ,phases
(add-before 'build 'change-directory
(lambda _
(chdir "miniupnpc")
#t))
(add-after 'change-directory 'chmod-header-file
(lambda _
(chmod "miniupnpc.h" #o644)
#t)))))))))
(define-public libupnp (define-public libupnp
(package (package
(name "libupnp") (name "libupnp")

View File

@ -2410,15 +2410,16 @@ of modern, widely supported codecs.")
(define-public openh264 (define-public openh264
(package (package
(name "openh264") (name "openh264")
(version "1.7.0") (version "1.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/cisco/" (uri (string-append "https://github.com/cisco/"
name "/archive/v" version ".tar.gz")) name "/releases/download/v"
version "/Source.Code.tar.gz.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0gv571bqkxk7ic64dmavs1q8nr7p59mcf4ibqp4lc070gn6w61ww")))) "0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("nasm" ,nasm) `(("nasm" ,nasm)

View File

@ -22,6 +22,7 @@
;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com> ;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org> ;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net> ;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -316,7 +317,7 @@ rasterisation.")
(define-public libdrm (define-public libdrm
(package (package
(name "libdrm") (name "libdrm")
(version "2.4.91") (version "2.4.92")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -326,7 +327,7 @@ rasterisation.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3")) "1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79"))
(patches (search-patches "libdrm-symbol-check.patch")))) (patches (search-patches "libdrm-symbol-check.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -1026,7 +1026,7 @@ of new capabilities and controls for text keyboards.")
(define-public libdmx (define-public libdmx
(package (package
(name "libdmx") (name "libdmx")
(version "1.1.3") (version "1.1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1036,7 +1036,7 @@ of new capabilities and controls for text keyboards.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9")))) "0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("xorgproto" ,xorgproto) `(("xorgproto" ,xorgproto)
@ -2447,7 +2447,7 @@ including most mice, keyboards, tablets and touchscreens.")
(define-public xf86-input-libinput (define-public xf86-input-libinput
(package (package
(name "xf86-input-libinput") (name "xf86-input-libinput")
(version "0.27.1") (version "0.28.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2455,7 +2455,7 @@ including most mice, keyboards, tablets and touchscreens.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1riflw6dc8fp5d74i7zfgsss0zz3z3lsj6zn2lzjm5kgmp2qvbfl")))) "189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -2961,7 +2961,7 @@ It supports a variety of Intel graphics chipsets.")
(define-public xf86-video-mach64 (define-public xf86-video-mach64
(package (package
(name "xf86-video-mach64") (name "xf86-video-mach64")
(version "6.9.5") (version "6.9.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2971,7 +2971,7 @@ It supports a variety of Intel graphics chipsets.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y")) "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs"))
(patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) (patches (search-patches "xf86-video-mach64-glibc-2.20.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("mesa" ,mesa) (inputs `(("mesa" ,mesa)
@ -3176,33 +3176,47 @@ This driver is intended for the spice qxl virtio device.")
(home-page "http://www.spice-space.org") (home-page "http://www.spice-space.org")
(license license:x11))) (license license:x11)))
(define-public xf86-video-r128 (define-public xf86-video-r128
(package ;; We need a newer version than 6.10.2 to build against the latest xorg-server.
(name "xf86-video-r128") ;; Remove this binding and the bootstrap inputs when >6.10.2 is released.
(version "6.10.2") (let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc")
(source (revision "0"))
(origin (package
(method url-fetch) (name "xf86-video-r128")
(uri (string-append (version (git-version "6.10.2" revision commit))
"mirror://xorg/individual/driver/xf86-video-r128-" (source (origin
version (method git-fetch)
".tar.bz2")) (uri (git-reference
(sha256 (url (string-append "https://anongit.freedesktop.org/git/xorg"
(base32 "/driver/" name ".git"))
"1pkpka5m4cd6iy0f8iqnmg6xci14nb6887ilvxzn3xrsgx8j3nl4")))) (commit commit)))
(build-system gnu-build-system) (file-name (git-file-name name version))
(inputs `(("mesa" ,mesa) (sha256
("xorgproto" ,xorgproto) (base32
("xorg-server" ,xorg-server))) "01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j"))))
(native-inputs `(("pkg-config" ,pkg-config))) (build-system gnu-build-system)
(home-page "https://www.x.org/wiki/") (arguments
(synopsis "ATI Rage 128 video driver for X server") `(#:phases (modify-phases %standard-phases
(description (add-before 'bootstrap 'prevent-configure
"xf86-video-r128 is a video driver for the Xorg X server. (lambda _
;; Prevent autogen from calling "./configure" as part of
;; the bootstrap step, which fails due to wrong shebang.
(setenv "NOCONFIGURE" "1")
#t)))))
(inputs `(("mesa" ,mesa)
("xorgproto" ,xorgproto)
("xorg-server" ,xorg-server)))
(native-inputs
`(("pkg-config" ,pkg-config)
("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)))
(home-page "https://www.x.org/wiki/")
(synopsis "ATI Rage 128 video driver for X server")
(description
"xf86-video-r128 is a video driver for the Xorg X server.
This driver is intended for ATI Rage 128 based cards.") This driver is intended for ATI Rage 128 based cards.")
(license license:x11))) (license license:x11))))
(define-public xf86-video-savage (define-public xf86-video-savage
(package (package
@ -3215,6 +3229,7 @@ This driver is intended for ATI Rage 128 based cards.")
"mirror://xorg/individual/driver/xf86-video-savage-" "mirror://xorg/individual/driver/xf86-video-savage-"
version version
".tar.bz2")) ".tar.bz2"))
(patches (search-patches "xf86-video-savage-xorg-compat.patch"))
(sha256 (sha256
(base32 (base32
"11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc")))) "11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc"))))
@ -3267,6 +3282,7 @@ Xorg X server.")
"mirror://xorg/individual/driver/xf86-video-sis-" "mirror://xorg/individual/driver/xf86-video-sis-"
version version
".tar.bz2")) ".tar.bz2"))
(patches (search-patches "xf86-video-sis-xorg-compat.patch"))
(sha256 (sha256
(base32 (base32
"03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj")))) "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj"))))
@ -3723,7 +3739,7 @@ alternative implementations like XRandR or TwinView.")
(define xkbcomp-intermediate ; used as input for xkeyboard-config (define xkbcomp-intermediate ; used as input for xkeyboard-config
(package (package
(name "xkbcomp-intermediate") (name "xkbcomp-intermediate")
(version "1.4.1") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3733,7 +3749,7 @@ alternative implementations like XRandR or TwinView.")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl")))) "0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("xorgproto" ,xorgproto) `(("xorgproto" ,xorgproto)
@ -5072,7 +5088,7 @@ over Xlib, including:
(define-public xorg-server (define-public xorg-server
(package (package
(name "xorg-server") (name "xorg-server")
(version "1.19.6") (version "1.20.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5081,7 +5097,7 @@ over Xlib, including:
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7")) "1rnka3sp8yg2bir0bjjhwn33jikj8qd8ckqcxrs94w05bwc7v5lx"))
(patches (patches
(list (list
;; See: ;; See:

View File

@ -45,6 +45,7 @@
live-service-requirement live-service-requirement
live-service-running live-service-running
with-shepherd-action
current-services current-services
unload-services unload-services
unload-service unload-service
@ -168,6 +169,8 @@ return #f."
(define-syntax-rule (with-shepherd-action service (action args ...) (define-syntax-rule (with-shepherd-action service (action args ...)
result body ...) result body ...)
"Invoke ACTION on SERVICE with the given ARGS, and evaluate BODY with RESULT
bound to the action's result."
(invoke-action service action (list args ...) (invoke-action service action (list args ...)
(lambda (result) body ...))) (lambda (result) body ...)))

View File

@ -60,29 +60,71 @@
(define (job-file job) (define (job-file job)
(scheme-file "mcron-job" job)) (scheme-file "mcron-job" job))
(define (shepherd-schedule-action mcron files)
"Return a Shepherd action that runs MCRON with '--schedule' for the given
files."
(shepherd-action
(name 'schedule)
(documentation
"Display jobs that are going to be scheduled.")
(procedure
#~(lambda* (_ #:optional (n "5"))
;; XXX: This is a global side effect.
(setenv "GUILE_AUTO_COMPILE" "0")
;; Run 'mcron' in a pipe so we can explicitly redirect its output to
;; 'current-output-port', which at this stage is bound to the client
;; connection.
(let ((pipe (open-pipe* OPEN_READ
#$(file-append mcron "/bin/mcron")
(string-append "--schedule=" n)
#$@files)))
(let loop ()
(match (read-line pipe 'concat)
((? eof-object?)
(catch 'system-error
(lambda ()
(zero? (close-pipe pipe)))
(lambda args
;; There's with race between the SIGCHLD handler, which
;; could call 'waitpid' before 'close-pipe' above does. If
;; we get ECHILD, that means we lost the race, but that's
;; fine.
(or (= ECHILD (system-error-errno args))
(apply throw args)))))
(line
(display line)
(loop)))))))))
(define mcron-shepherd-services (define mcron-shepherd-services
(match-lambda (match-lambda
(($ <mcron-configuration> mcron ()) ;nothing to do! (($ <mcron-configuration> mcron ()) ;nothing to do!
'()) '())
(($ <mcron-configuration> mcron jobs) (($ <mcron-configuration> mcron jobs)
(list (shepherd-service (let ((files (map job-file jobs)))
(provision '(mcron)) (list (shepherd-service
(requirement '(user-processes)) (provision '(mcron))
(modules `((srfi srfi-1) (requirement '(user-processes))
(srfi srfi-26) (modules `((srfi srfi-1)
,@%default-modules)) (srfi srfi-26)
(start #~(make-forkexec-constructor (ice-9 popen) ;for the 'schedule' action
(list (string-append #$mcron "/bin/mcron") (ice-9 rdelim)
#$@(map job-file jobs)) (ice-9 match)
,@%default-modules))
(start #~(make-forkexec-constructor
(list (string-append #$mcron "/bin/mcron") #$@files)
;; Disable auto-compilation of the job files and set a ;; Disable auto-compilation of the job files and set a
;; sane value for 'PATH'. ;; sane value for 'PATH'.
#:environment-variables #:environment-variables
(cons* "GUILE_AUTO_COMPILE=0" (cons* "GUILE_AUTO_COMPILE=0"
"PATH=/run/current-system/profile/bin" "PATH=/run/current-system/profile/bin"
(remove (cut string-prefix? "PATH=" <>) (remove (cut string-prefix? "PATH=" <>)
(environ))))) (environ)))))
(stop #~(make-kill-destructor))))))) (stop #~(make-kill-destructor))
(actions
(list (shepherd-schedule-action mcron files)))))))))
(define mcron-service-type (define mcron-service-type
(service-type (name 'mcron) (service-type (name 'mcron)

View File

@ -49,6 +49,12 @@
shepherd-service-auto-start? shepherd-service-auto-start?
shepherd-service-modules shepherd-service-modules
shepherd-action
shepherd-action?
shepherd-action-name
shepherd-action-documentation
shepherd-action-procedure
%default-modules %default-modules
shepherd-service-file shepherd-service-file
@ -146,11 +152,20 @@ DEFAULT is given, use it as the service's default value."
(start shepherd-service-start) ;g-expression (procedure) (start shepherd-service-start) ;g-expression (procedure)
(stop shepherd-service-stop ;g-expression (procedure) (stop shepherd-service-stop ;g-expression (procedure)
(default #~(const #f))) (default #~(const #f)))
(actions shepherd-service-actions ;list of <shepherd-action>
(default '()))
(auto-start? shepherd-service-auto-start? ;Boolean (auto-start? shepherd-service-auto-start? ;Boolean
(default #t)) (default #t))
(modules shepherd-service-modules ;list of module names (modules shepherd-service-modules ;list of module names
(default %default-modules))) (default %default-modules)))
(define-record-type* <shepherd-action>
shepherd-action make-shepherd-action
shepherd-action?
(name shepherd-action-name) ;symbol
(procedure shepherd-action-procedure) ;gexp
(documentation shepherd-action-documentation)) ;string
(define (shepherd-service-canonical-name service) (define (shepherd-service-canonical-name service)
"Return the 'canonical name' of SERVICE." "Return the 'canonical name' of SERVICE."
(first (shepherd-service-provision service))) (first (shepherd-service-provision service)))
@ -223,7 +238,13 @@ stored."
#:requires '#$(shepherd-service-requirement service) #:requires '#$(shepherd-service-requirement service)
#:respawn? '#$(shepherd-service-respawn? service) #:respawn? '#$(shepherd-service-respawn? service)
#:start #$(shepherd-service-start service) #:start #$(shepherd-service-start service)
#:stop #$(shepherd-service-stop service)))))) #:stop #$(shepherd-service-stop service)
#:actions
(make-actions
#$@(map (match-lambda
(($ <shepherd-action> name proc doc)
#~(#$name #$doc #$proc)))
(shepherd-service-actions service))))))))
(define (shepherd-configuration-file services) (define (shepherd-configuration-file services)
"Return the shepherd configuration file for SERVICES." "Return the shepherd configuration file for SERVICES."

View File

@ -37,6 +37,7 @@
#:export (libvirt-configuration #:export (libvirt-configuration
libvirt-service-type libvirt-service-type
virtlog-configuration
virtlog-service-type virtlog-service-type
%qemu-platforms %qemu-platforms

View File

@ -632,6 +632,13 @@ non-ASCII names from /tmp.")
(wait-for-file "/root/witness-touch" marionette (wait-for-file "/root/witness-touch" marionette
#:read '(@ (ice-9 rdelim) read-string))) #:read '(@ (ice-9 rdelim) read-string)))
;; Make sure the 'schedule' action is accepted.
(test-equal "schedule action"
'(#t) ;one value, #t
(marionette-eval '(with-shepherd-action 'mcron ('schedule) result
result)
marionette))
(test-end) (test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0))))) (exit (= (test-runner-fail-count (test-runner-current)) 0)))))

View File

@ -148,8 +148,7 @@ has a 'meson.build' file."
#:search-paths ',(map search-path-specification->sexp #:search-paths ',(map search-path-specification->sexp
search-paths) search-paths)
#:phases #:phases
(if (string-prefix? "arm" ,(or (%current-target-system) (if (string-prefix? "arm" ,system)
(%current-system)))
(modify-phases build-phases (delete 'fix-runpath)) (modify-phases build-phases (delete 'fix-runpath))
build-phases) build-phases)
#:configure-flags ,configure-flags #:configure-flags ,configure-flags

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -68,14 +68,11 @@
(target (@ (name "manifest")) (target (@ (name "manifest"))
(mkdir (@ (dir "${manifest.dir}"))) (mkdir (@ (dir "${manifest.dir}")))
(echo (@ (file "${manifest.file}") (manifest (@ (file "${manifest.file}"))
(message ,(string-append ,(if main-class
(if main-class `(attribute (@ (name "Main-Class")
(string-append (value ,main-class)))
"Main-Class: " main-class "")))
"${line.separator}")
"")
"")))))
(target (@ (name "compile")) (target (@ (name "compile"))
(mkdir (@ (dir "${classes.dir}"))) (mkdir (@ (dir "${classes.dir}")))
@ -150,7 +147,8 @@ to the default GNU unpack strategy."
(begin (begin
(mkdir "src") (mkdir "src")
(with-directory-excursion "src" (with-directory-excursion "src"
(zero? (system* "jar" "-xf" source)))) (invoke "jar" "-xf" source))
#t)
;; Use GNU unpack strategy for things that aren't jar archives. ;; Use GNU unpack strategy for things that aren't jar archives.
((assq-ref gnu:%standard-phases 'unpack) #:source source))) ((assq-ref gnu:%standard-phases 'unpack) #:source source)))
@ -171,7 +169,7 @@ to the default GNU unpack strategy."
(define* (build #:key (make-flags '()) (build-target "jar") (define* (build #:key (make-flags '()) (build-target "jar")
#:allow-other-keys) #:allow-other-keys)
(zero? (apply system* `("ant" ,build-target ,@make-flags)))) (apply invoke `("ant" ,build-target ,@make-flags)))
(define* (generate-jar-indices #:key outputs #:allow-other-keys) (define* (generate-jar-indices #:key outputs #:allow-other-keys)
"Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps "Generate file \"META-INF/INDEX.LIST\". This file does not use word wraps
@ -181,10 +179,11 @@ grafting works - and so that the garbage collector doesn't collect
dependencies of this jar file." dependencies of this jar file."
(define (generate-index jar) (define (generate-index jar)
(invoke "jar" "-i" jar)) (invoke "jar" "-i" jar))
(every (match-lambda (for-each (match-lambda
((output . directory) ((output . directory)
(every generate-index (find-files directory "\\.jar$")))) (for-each generate-index (find-files directory "\\.jar$"))))
outputs)) outputs)
#t)
(define* (strip-jar-timestamps #:key outputs (define* (strip-jar-timestamps #:key outputs
#:allow-other-keys) #:allow-other-keys)
@ -194,50 +193,49 @@ repack them. This is necessary to ensure that archives are reproducible."
(format #t "repacking ~a\n" jar) (format #t "repacking ~a\n" jar)
(let* ((dir (mkdtemp! "jar-contents.XXXXXX")) (let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
(manifest (string-append dir "/META-INF/MANIFEST.MF"))) (manifest (string-append dir "/META-INF/MANIFEST.MF")))
(and (with-directory-excursion dir (with-directory-excursion dir
(zero? (system* "jar" "xf" jar))) (invoke "jar" "xf" jar))
(delete-file jar) (delete-file jar)
;; XXX: copied from (gnu build install) ;; XXX: copied from (gnu build install)
(for-each (lambda (file) (for-each (lambda (file)
(let ((s (lstat file))) (let ((s (lstat file)))
(unless (eq? (stat:type s) 'symlink) (unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0)))) (utime file 0 0 0 0))))
(find-files dir #:directories? #t)) (find-files dir #:directories? #t))
;; The jar tool will always set the timestamp on the manifest file ;; The jar tool will always set the timestamp on the manifest file
;; and the containing directory to the current time, even when we ;; and the containing directory to the current time, even when we
;; reuse an existing manifest file. To avoid this we use "zip" ;; reuse an existing manifest file. To avoid this we use "zip"
;; instead of "jar". It is important that the manifest appears ;; instead of "jar". It is important that the manifest appears
;; first. ;; first.
(with-directory-excursion dir (with-directory-excursion dir
(let* ((files (find-files "." ".*" #:directories? #t)) (let* ((files (find-files "." ".*" #:directories? #t))
;; To ensure that the reference scanner can detect all ;; To ensure that the reference scanner can detect all
;; store references in the jars we disable compression ;; store references in the jars we disable compression
;; with the "-0" option. ;; with the "-0" option.
(command (if (file-exists? manifest) (command (if (file-exists? manifest)
`("zip" "-0" "-X" ,jar ,manifest ,@files) `("zip" "-0" "-X" ,jar ,manifest ,@files)
`("zip" "-0" "-X" ,jar ,@files)))) `("zip" "-0" "-X" ,jar ,@files))))
(unless (zero? (apply system* command)) (apply invoke command)))
(error "'zip' failed")))) (utime jar 0 0)
(utime jar 0 0) #t))
#t)))
(every (match-lambda (for-each (match-lambda
((output . directory) ((output . directory)
(every repack-archive (find-files directory "\\.jar$")))) (for-each repack-archive (find-files directory "\\.jar$"))))
outputs)) outputs)
#t)
(define* (check #:key target (make-flags '()) (tests? (not target)) (define* (check #:key target (make-flags '()) (tests? (not target))
(test-target "check") (test-target "check")
#:allow-other-keys) #:allow-other-keys)
(if tests? (if tests?
(zero? (apply system* `("ant" ,test-target ,@make-flags))) (apply invoke `("ant" ,test-target ,@make-flags))
(begin (format #t "test suite not run~%"))
(format #t "test suite not run~%") #t)
#t)))
(define* (install #:key (make-flags '()) #:allow-other-keys) (define* (install #:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* `("ant" "install" ,@make-flags)))) (apply invoke `("ant" "install" ,@make-flags)))
(define %standard-phases (define %standard-phases
(modify-phases gnu:%standard-phases (modify-phases gnu:%standard-phases

View File

@ -31,7 +31,7 @@
(define* (ant-build-javadoc #:key (target "javadoc") (make-flags '()) (define* (ant-build-javadoc #:key (target "javadoc") (make-flags '())
#:allow-other-keys) #:allow-other-keys)
(zero? (apply system* `("ant" ,target ,@make-flags)))) (apply invoke `("ant" ,target ,@make-flags)))
(define* (install-jars jar-directory) (define* (install-jars jar-directory)
"Install jar files from JAR-DIRECTORY to the default target directory. This "Install jar files from JAR-DIRECTORY to the default target directory. This

View File

@ -58,15 +58,14 @@
(mkdir build-dir) (mkdir build-dir)
(chdir build-dir) (chdir build-dir)
(zero? (apply system* "meson" args)))) (apply invoke "meson" args)))
(define* (build #:key parallel-build? (define* (build #:key parallel-build?
#:allow-other-keys) #:allow-other-keys)
"Build a given meson package." "Build a given meson package."
(zero? (apply system* "ninja" (invoke "ninja" "-j" (if parallel-build?
(if parallel-build? (number->string (parallel-job-count))
`("-j" ,(number->string (parallel-job-count))) "1")))
'("-j" "1")))))
(define* (check #:key test-target parallel-tests? tests? (define* (check #:key test-target parallel-tests? tests?
#:allow-other-keys) #:allow-other-keys)
@ -75,13 +74,13 @@
(number->string (parallel-job-count)) (number->string (parallel-job-count))
"1")) "1"))
(if tests? (if tests?
(zero? (system* "ninja" test-target)) (invoke "ninja" test-target)
(begin (begin
(format #t "test suite not run~%") (format #t "test suite not run~%")
#t))) #t)))
(define* (install #:rest args) (define* (install #:rest args)
(zero? (system* "ninja" "install"))) (invoke "ninja" "install"))
(define* (fix-runpath #:key (elf-directories '("lib" "lib64" "libexec" (define* (fix-runpath #:key (elf-directories '("lib" "lib64" "libexec"
"bin" "sbin")) "bin" "sbin"))
@ -135,7 +134,7 @@ for example libraries only needed for the tests."
(find-files dir elf-pred)) (find-files dir elf-pred))
existing-elf-dirs)))) existing-elf-dirs))))
(for-each (lambda (elf-file) (for-each (lambda (elf-file)
(system* "patchelf" "--shrink-rpath" elf-file) (invoke "patchelf" "--shrink-rpath" elf-file)
(handle-file elf-file elf-list)) (handle-file elf-file elf-list))
elf-list))))) elf-list)))))
(for-each handle-output outputs) (for-each handle-output outputs)

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,6 +24,7 @@
#:use-module (guix derivations) #:use-module (guix derivations)
#:use-module (guix grafts) #:use-module (guix grafts)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (rnrs bytevectors)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-9 gnu)
@ -334,7 +336,7 @@ appears."
(%plain-file name content references) (%plain-file name content references)
plain-file? plain-file?
(name plain-file-name) ;string (name plain-file-name) ;string
(content plain-file-content) ;string (content plain-file-content) ;string or bytevector
(references plain-file-references)) ;list (currently unused) (references plain-file-references)) ;list (currently unused)
(define (plain-file name content) (define (plain-file name content)
@ -349,8 +351,10 @@ This is the declarative counterpart of 'text-file'."
(define-gexp-compiler (plain-file-compiler (file <plain-file>) system target) (define-gexp-compiler (plain-file-compiler (file <plain-file>) system target)
;; "Compile" FILE by adding it to the store. ;; "Compile" FILE by adding it to the store.
(match file (match file
(($ <plain-file> name content references) (($ <plain-file> name (and (? string?) content) references)
(text-file name content references)))) (text-file name content references))
(($ <plain-file> name (and (? bytevector?) content) references)
(binary-file name content references))))
(define-record-type <computed-file> (define-record-type <computed-file>
(%computed-file name gexp guile options) (%computed-file name gexp guile options)

View File

@ -114,7 +114,8 @@ OID (roughly the commit hash) corresponding to REF."
#:key #:key
(ref '(branch . "origin/master")) (ref '(branch . "origin/master"))
(cache-directory (cache-directory
(%repository-cache-directory))) (url-cache-directory
url (%repository-cache-directory))))
"Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return two "Update the cached checkout of URL to REF in CACHE-DIRECTORY. Return two
values: the cache directory name, and the SHA1 commit (a string) corresponding values: the cache directory name, and the SHA1 commit (a string) corresponding
to REF. to REF.
@ -122,11 +123,10 @@ to REF.
REF is pair whose key is [branch | commit | tag] and value the associated REF is pair whose key is [branch | commit | tag] and value the associated
data, respectively [<branch name> | <sha1> | <tag name>]." data, respectively [<branch name> | <sha1> | <tag name>]."
(with-libgit2 (with-libgit2
(let* ((cache-dir (url-cache-directory url cache-directory)) (let* ((cache-exists? (openable-repository? cache-directory))
(cache-exists? (openable-repository? cache-dir))
(repository (if cache-exists? (repository (if cache-exists?
(repository-open cache-dir) (repository-open cache-directory)
(clone* url cache-dir)))) (clone* url cache-directory))))
;; Only fetch remote if it has not been cloned just before. ;; Only fetch remote if it has not been cloned just before.
(when cache-exists? (when cache-exists?
(remote-fetch (remote-lookup repository "origin"))) (remote-fetch (remote-lookup repository "origin")))
@ -138,7 +138,7 @@ data, respectively [<branch name> | <sha1> | <tag name>]."
'repository-close!) 'repository-close!)
(repository-close! repository)) (repository-close! repository))
(values cache-dir (oid->string oid)))))) (values cache-directory (oid->string oid))))))
(define* (latest-repository-commit store url (define* (latest-repository-commit store url
#:key #:key
@ -157,12 +157,14 @@ Git repositories are kept in the cache directory specified by
(and (string=? (basename file) ".git") (and (string=? (basename file) ".git")
(eq? 'directory (stat:type stat)))) (eq? 'directory (stat:type stat))))
(let*-values (((checkout commit) (let*-values
(update-cached-checkout url (((checkout commit)
#:ref ref (update-cached-checkout url
#:cache-directory cache-directory)) #:ref ref
((name) #:cache-directory
(url+commit->name url commit))) (url-cache-directory url cache-directory)))
((name)
(url+commit->name url commit)))
(values (add-to-store store name #t "sha256" checkout (values (add-to-store store name #t "sha256" checkout
#:select? (negate dot-git?)) #:select? (negate dot-git?))
commit))) commit)))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -82,13 +82,14 @@
(define %package-list-url (define %package-list-url
(string->uri (string->uri
(string-append %gnumaint-base-url "gnupackages.txt"))) (string-append %gnumaint-base-url "rec/gnupackages.rec")))
(define %package-description-url (define %package-description-url
;; This file contains package descriptions in recutils format. ;; This file contains package descriptions in recutils format.
;; See <https://lists.gnu.org/archive/html/guix-devel/2013-10/msg00071.html>. ;; See <https://lists.gnu.org/archive/html/guix-devel/2013-10/msg00071.html>
;; and <https://lists.gnu.org/archive/html/guix-devel/2018-06/msg00362.html>.
(string->uri (string->uri
(string-append %gnumaint-base-url "pkgblurbs.txt"))) (string-append %gnumaint-base-url "rec/pkgblurbs.rec")))
(define-record-type* <gnu-package-descriptor> (define-record-type* <gnu-package-descriptor>
gnu-package-descriptor gnu-package-descriptor
@ -121,7 +122,12 @@ to fetch the list of GNU packages over HTTP."
(if (null? alist) (if (null? alist)
(reverse result) (reverse result)
(loop (recutils->alist port) (loop (recutils->alist port)
(cons alist result)))))
;; Ignore things like "%rec" (info "(recutils) Record
;; Descriptors").
(if (assoc-ref alist "package")
(cons alist result)
result)))))
(define official-description (define official-description
(let ((db (read-records (fetch %package-description-url #:text? #t)))) (let ((db (read-records (fetch %package-description-url #:text? #t))))
@ -148,12 +154,12 @@ to fetch the list of GNU packages over HTTP."
(alist->record `(("description" . ,(official-description name)) (alist->record `(("description" . ,(official-description name))
,@alist) ,@alist)
make-gnu-package-descriptor make-gnu-package-descriptor
(list "package" "mundane-name" "copyright-holder" (list "package" "mundane_name" "copyright_holder"
"savannah" "fsd" "language" "logo" "savannah" "fsd" "language" "logo"
"doc-category" "doc-summary" "description" "doc_category" "doc_summary" "description"
"doc-url" "doc_url"
"download-url") "download_url")
'("doc-url" "language")))) '("doc_url" "language"))))
(let* ((port (fetch %package-list-url #:text? #t)) (let* ((port (fetch %package-list-url #:text? #t))
(lst (read-records port))) (lst (read-records port)))
(close-port port) (close-port port)

View File

@ -139,8 +139,8 @@ to the stack."
"Generate a parser for Cabal files." "Generate a parser for Cabal files."
(lalr-parser (lalr-parser
;; --- token definitions ;; --- token definitions
(CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE (CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE -ANY -NONE
(right: IF FLAG EXEC TEST-SUITE SOURCE-REPO BENCHMARK LIB OCURLY) (right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY)
(left: OR) (left: OR)
(left: PROPERTY AND) (left: PROPERTY AND)
(right: ELSE NOT)) (right: ELSE NOT))
@ -150,6 +150,7 @@ to the stack."
(sections source-repo) : (append $1 (list $2)) (sections source-repo) : (append $1 (list $2))
(sections executables) : (append $1 $2) (sections executables) : (append $1 $2)
(sections test-suites) : (append $1 $2) (sections test-suites) : (append $1 $2)
(sections custom-setup) : (append $1 $2)
(sections benchmarks) : (append $1 $2) (sections benchmarks) : (append $1 $2)
(sections lib-sec) : (append $1 (list $2)) (sections lib-sec) : (append $1 (list $2))
() : '()) () : '())
@ -172,6 +173,7 @@ to the stack."
(ts-sec) : (list $1)) (ts-sec) : (list $1))
(ts-sec (TEST-SUITE OCURLY exprs CCURLY) : `(section test-suite ,$1 ,$3) (ts-sec (TEST-SUITE OCURLY exprs CCURLY) : `(section test-suite ,$1 ,$3)
(TEST-SUITE open exprs close) : `(section test-suite ,$1 ,$3)) (TEST-SUITE open exprs close) : `(section test-suite ,$1 ,$3))
(custom-setup (CUSTOM-SETUP exprs) : (list `(section custom-setup ,$1 ,$2)))
(benchmarks (benchmarks bm-sec) : (append $1 (list $2)) (benchmarks (benchmarks bm-sec) : (append $1 (list $2))
(bm-sec) : (list $1)) (bm-sec) : (list $1))
(bm-sec (BENCHMARK OCURLY exprs CCURLY) : `(section benchmark ,$1 ,$3) (bm-sec (BENCHMARK OCURLY exprs CCURLY) : `(section benchmark ,$1 ,$3)
@ -211,6 +213,10 @@ to the stack."
(FALSE) : 'false (FALSE) : 'false
(TEST OPAREN ID RELATION VERSION CPAREN) (TEST OPAREN ID RELATION VERSION CPAREN)
: `(,$1 ,(string-append $3 " " $4 " " $5)) : `(,$1 ,(string-append $3 " " $4 " " $5))
(TEST OPAREN ID -ANY CPAREN)
: `(,$1 ,(string-append $3 " -any"))
(TEST OPAREN ID -NONE CPAREN)
: `(,$1 ,(string-append $3 " -none"))
(TEST OPAREN ID RELATION VERSION AND RELATION VERSION CPAREN) (TEST OPAREN ID RELATION VERSION AND RELATION VERSION CPAREN)
: `(and (,$1 ,(string-append $3 " " $4 " " $5)) : `(and (,$1 ,(string-append $3 " " $4 " " $5))
(,$1 ,(string-append $3 " " $7 " " $8))) (,$1 ,(string-append $3 " " $7 " " $8)))
@ -349,6 +355,9 @@ matching a string against the created regexp."
(define is-test-suite (make-rx-matcher "^test-suite +([a-z0-9_-]+)" (define is-test-suite (make-rx-matcher "^test-suite +([a-z0-9_-]+)"
regexp/icase)) regexp/icase))
(define is-custom-setup (make-rx-matcher "^(custom-setup)"
regexp/icase))
(define is-benchmark (make-rx-matcher "^benchmark +([a-z0-9_-]+)" (define is-benchmark (make-rx-matcher "^benchmark +([a-z0-9_-]+)"
regexp/icase)) regexp/icase))
@ -362,13 +371,17 @@ matching a string against the created regexp."
(define (is-false s) (string-ci=? s "false")) (define (is-false s) (string-ci=? s "false"))
(define (is-any s) (string-ci=? s "-any"))
(define (is-none s) (string-ci=? s "-none"))
(define (is-and s) (string=? s "&&")) (define (is-and s) (string=? s "&&"))
(define (is-or s) (string=? s "||")) (define (is-or s) (string=? s "||"))
(define (is-id s port) (define (is-id s port)
(let ((cabal-reserved-words (let ((cabal-reserved-words
'("if" "else" "library" "flag" "executable" "test-suite" '("if" "else" "library" "flag" "executable" "test-suite" "custom-setup"
"source-repository" "benchmark")) "source-repository" "benchmark"))
(spaces (read-while (cut char-set-contains? char-set:blank <>) port)) (spaces (read-while (cut char-set-contains? char-set:blank <>) port))
(c (peek-char port))) (c (peek-char port)))
@ -392,8 +405,11 @@ matching a string against the created regexp."
(define (lex-version loc port) (define (lex-version loc port)
(make-lexical-token 'VERSION loc (make-lexical-token 'VERSION loc
(read-while char-numeric? port (read-while (lambda (x)
(cut char=? #\. <>) char-numeric?))) (or (char-numeric? x)
(char=? x #\*)
(char=? x #\.)))
port)))
(define* (read-while is? port #:optional (define* (read-while is? port #:optional
(is-if-followed-by? (lambda (c) #f)) (is-if-followed-by? (lambda (c) #f))
@ -435,6 +451,8 @@ string with the read characters."
(define (lex-test-suite ts-rx-res loc) (lex-rx-res ts-rx-res 'TEST-SUITE loc)) (define (lex-test-suite ts-rx-res loc) (lex-rx-res ts-rx-res 'TEST-SUITE loc))
(define (lex-custom-setup ts-rx-res loc) (lex-rx-res ts-rx-res 'CUSTOM-SETUP loc))
(define (lex-benchmark bm-rx-res loc) (lex-rx-res bm-rx-res 'BENCHMARK loc)) (define (lex-benchmark bm-rx-res loc) (lex-rx-res bm-rx-res 'BENCHMARK loc))
(define (lex-lib loc) (make-lexical-token 'LIB loc #f)) (define (lex-lib loc) (make-lexical-token 'LIB loc #f))
@ -447,6 +465,10 @@ string with the read characters."
(define (lex-false loc) (make-lexical-token 'FALSE loc #f)) (define (lex-false loc) (make-lexical-token 'FALSE loc #f))
(define (lex-any loc) (make-lexical-token '-ANY loc #f))
(define (lex-none loc) (make-lexical-token '-NONE loc #f))
(define (lex-and loc) (make-lexical-token 'AND loc #f)) (define (lex-and loc) (make-lexical-token 'AND loc #f))
(define (lex-or loc) (make-lexical-token 'OR loc #f)) (define (lex-or loc) (make-lexical-token 'OR loc #f))
@ -514,6 +536,8 @@ LOC is the current port location."
((is-test w port) (lex-test w loc)) ((is-test w port) (lex-test w loc))
((is-true w) (lex-true loc)) ((is-true w) (lex-true loc))
((is-false w) (lex-false loc)) ((is-false w) (lex-false loc))
((is-any w) (lex-any loc))
((is-none w) (lex-none loc))
((is-and w) (lex-and loc)) ((is-and w) (lex-and loc))
((is-or w) (lex-or loc)) ((is-or w) (lex-or loc))
((is-id w port) (lex-id w loc)) ((is-id w port) (lex-id w loc))
@ -529,6 +553,7 @@ the current port location."
((is-src-repo s) => (cut lex-src-repo <> loc)) ((is-src-repo s) => (cut lex-src-repo <> loc))
((is-exec s) => (cut lex-exec <> loc)) ((is-exec s) => (cut lex-exec <> loc))
((is-test-suite s) => (cut lex-test-suite <> loc)) ((is-test-suite s) => (cut lex-test-suite <> loc))
((is-custom-setup s) => (cut lex-custom-setup <> loc))
((is-benchmark s) => (cut lex-benchmark <> loc)) ((is-benchmark s) => (cut lex-benchmark <> loc))
((is-lib s) (lex-lib loc)) ((is-lib s) (lex-lib loc))
((is-else s) (lex-else loc)) ((is-else s) (lex-else loc))
@ -658,6 +683,12 @@ If #f use the function 'port-filename' to obtain it."
(name cabal-test-suite-name) (name cabal-test-suite-name)
(dependencies cabal-test-suite-dependencies)) ; list of <cabal-dependency> (dependencies cabal-test-suite-dependencies)) ; list of <cabal-dependency>
(define-record-type <cabal-custom-setup>
(make-cabal-custom-setup name dependencies)
cabal-custom-setup?
(name cabal-custom-setup-name)
(dependencies cabal-custom-setup-dependencies)) ; list of <cabal-dependency>
(define (cabal-flags->alist flag-list) (define (cabal-flags->alist flag-list)
"Retrun an alist associating the flag name to its default value from a "Retrun an alist associating the flag name to its default value from a
list of <cabal-flag> objects." list of <cabal-flag> objects."
@ -694,13 +725,20 @@ the ordering operation and the version."
(let* ((with-ver-matcher-fn (make-rx-matcher (let* ((with-ver-matcher-fn (make-rx-matcher
"([a-zA-Z0-9_-]+) *([<>=]+) *([0-9.]+) *")) "([a-zA-Z0-9_-]+) *([<>=]+) *([0-9.]+) *"))
(without-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+)")) (without-ver-matcher-fn (make-rx-matcher "([a-zA-Z0-9_-]+)"))
(without-ver-matcher-fn-2 (make-rx-matcher "([a-zA-Z0-9_-]+) (-any|-none)"))
(name (or (and=> (with-ver-matcher-fn spec) (name (or (and=> (with-ver-matcher-fn spec)
(cut match:substring <> 1)) (cut match:substring <> 1))
(and=> (without-ver-matcher-fn-2 spec)
(cut match:substring <> 1))
(match:substring (without-ver-matcher-fn spec) 1))) (match:substring (without-ver-matcher-fn spec) 1)))
(operator (and=> (with-ver-matcher-fn spec) (operator (or (and=> (with-ver-matcher-fn spec)
(cut match:substring <> 2))) (cut match:substring <> 2))
(version (and=> (with-ver-matcher-fn spec) (and=> (without-ver-matcher-fn-2 spec)
(cut match:substring <> 3)))) (cut match:substring <> 2))))
(version (or (and=> (with-ver-matcher-fn spec)
(cut match:substring <> 3))
(and=> (without-ver-matcher-fn-2 spec)
(cut match:substring <> 2)))))
(values name operator version))) (values name operator version)))
(define (impl haskell) (define (impl haskell)
@ -716,6 +754,8 @@ the ordering operation and the version."
((string= spec-op ">") (version>? comp-ver spec-ver)) ((string= spec-op ">") (version>? comp-ver spec-ver))
((string= spec-op "<=") (not (version>? comp-ver spec-ver))) ((string= spec-op "<=") (not (version>? comp-ver spec-ver)))
((string= spec-op "<") (not (version>=? comp-ver spec-ver))) ((string= spec-op "<") (not (version>=? comp-ver spec-ver)))
((string= spec-op "-any") #t)
((string= spec-op "-none") #f)
(else (else
(raise (condition (raise (condition
(&message (message "Failed to evaluate 'impl' test.")))))) (&message (message "Failed to evaluate 'impl' test."))))))
@ -728,7 +768,6 @@ the ordering operation and the version."
(let ((value (or (assoc-ref env name) (let ((value (or (assoc-ref env name)
(assoc-ref (cabal-flags->alist (cabal-flags)) name)))) (assoc-ref (cabal-flags->alist (cabal-flags)) name))))
(if (eq? value 'false) #f #t))) (if (eq? value 'false) #f #t)))
(define (eval sexp) (define (eval sexp)
(match sexp (match sexp
(() '()) (() '())
@ -755,6 +794,8 @@ the ordering operation and the version."
;; no need to evaluate flag parameters ;; no need to evaluate flag parameters
(('section 'flag name parameters) (('section 'flag name parameters)
(list 'section 'flag name parameters)) (list 'section 'flag name parameters))
(('section 'custom-setup parameters)
(list 'section 'custom-setup parameters))
;; library does not have a name parameter ;; library does not have a name parameter
(('section 'library parameters) (('section 'library parameters)
(list 'section 'library (eval parameters))) (list 'section 'library (eval parameters)))
@ -795,12 +836,15 @@ See the manual for limitations.")))))))
(define (make-cabal-section sexp section-type) (define (make-cabal-section sexp section-type)
"Given an SEXP as produced by 'read-cabal', produce a list of objects "Given an SEXP as produced by 'read-cabal', produce a list of objects
pertaining to SECTION-TYPE sections. SECTION-TYPE must be one of: pertaining to SECTION-TYPE sections. SECTION-TYPE must be one of:
'executable, 'flag, 'test-suite, 'source-repository or 'library." 'executable, 'flag, 'test-suite, 'custom-setup, 'source-repository or
'library."
(filter-map (cut match <> (filter-map (cut match <>
(('section (? (cut equal? <> section-type)) name parameters) (('section (? (cut equal? <> section-type)) name parameters)
(case section-type (case section-type
((test-suite) (make-cabal-test-suite ((test-suite) (make-cabal-test-suite
name (dependencies parameters))) name (dependencies parameters)))
((custom-setup) (make-cabal-custom-setup
name (dependencies parameters "setup-depends")))
((executable) (make-cabal-executable ((executable) (make-cabal-executable
name (dependencies parameters))) name (dependencies parameters)))
((source-repository) (make-cabal-source-repository ((source-repository) (make-cabal-source-repository
@ -843,10 +887,10 @@ to be added between the values found in different key/value pairs."
(define dependency-name-version-rx (define dependency-name-version-rx
(make-regexp "([a-zA-Z0-9_-]+) *(.*)")) (make-regexp "([a-zA-Z0-9_-]+) *(.*)"))
(define (dependencies key-values-list) (define* (dependencies key-values-list #:optional (key "build-depends"))
"Return a list of 'cabal-dependency' objects for the dependencies found in "Return a list of 'cabal-dependency' objects for the dependencies found in
KEY-VALUES-LIST." KEY-VALUES-LIST."
(let ((deps (string-tokenize (lookup-join key-values-list "build-depends" ",") (let ((deps (string-tokenize (lookup-join key-values-list key ",")
(char-set-complement (char-set #\,))))) (char-set-complement (char-set #\,)))))
(map (lambda (d) (map (lambda (d)
(let ((rx-result (regexp-exec dependency-name-version-rx d))) (let ((rx-result (regexp-exec dependency-name-version-rx d)))

197
guix/inferior.scm Normal file
View File

@ -0,0 +1,197 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix inferior)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-9 gnu)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:export (inferior?
open-inferior
close-inferior
inferior-eval
inferior-object?
inferior-package?
inferior-package-name
inferior-package-version
inferior-packages
inferior-package-synopsis
inferior-package-description))
;;; Commentary:
;;;
;;; This module provides a way to spawn Guix "inferior" processes and to talk
;;; to them. It allows us, from one instance of Guix, to interact with
;;; another instance of Guix coming from a different commit.
;;;
;;; Code:
;; Inferior Guix process.
(define-record-type <inferior>
(inferior pid socket version)
inferior?
(pid inferior-pid)
(socket inferior-socket)
(version inferior-version)) ;REPL protocol version
(define (inferior-pipe directory command)
"Return an input/output pipe on the Guix instance in DIRECTORY. This runs
'DIRECTORY/COMMAND repl' if it exists, or falls back to some other method if
it's an old Guix."
(let ((pipe (with-error-to-port (%make-void-port "w")
(lambda ()
(open-pipe* OPEN_BOTH
(string-append directory "/" command)
"repl" "-t" "machine")))))
(if (eof-object? (peek-char pipe))
(begin
(close-pipe pipe)
;; Older versions of Guix didn't have a 'guix repl' command, so
;; emulate it.
(open-pipe* OPEN_BOTH "guile"
"-L" (string-append directory "/share/guile/site/"
(effective-version))
"-C" (string-append directory "/share/guile/site/"
(effective-version))
"-C" (string-append directory "/lib/guile/"
(effective-version) "/site-ccache")
"-c"
(object->string
`(begin
(primitive-load ,(search-path %load-path
"guix/scripts/repl.scm"))
((@ (guix scripts repl) machine-repl))))))
pipe)))
(define* (open-inferior directory #:key (command "bin/guix"))
"Open the inferior Guix in DIRECTORY, running 'DIRECTORY/COMMAND repl' or
equivalent. Return #f if the inferior could not be launched."
(define pipe
(inferior-pipe directory command))
(setvbuf pipe _IOLBF)
(match (read pipe)
(('repl-version 0 rest ...)
(let ((result (inferior 'pipe pipe (cons 0 rest))))
(inferior-eval '(use-modules (guix)) result)
(inferior-eval '(use-modules (gnu)) result)
(inferior-eval '(define %package-table (make-hash-table))
result)
result))
(_
#f)))
(define (close-inferior inferior)
"Close INFERIOR."
(close-pipe (inferior-socket inferior)))
;; Non-self-quoting object of the inferior.
(define-record-type <inferior-object>
(inferior-object address appearance)
inferior-object?
(address inferior-object-address)
(appearance inferior-object-appearance))
(define (write-inferior-object object port)
(match object
(($ <inferior-object> _ appearance)
(format port "#<inferior-object ~a>" appearance))))
(set-record-type-printer! <inferior-object> write-inferior-object)
(define (inferior-eval exp inferior)
"Evaluate EXP in INFERIOR."
(define sexp->object
(match-lambda
(('value value)
value)
(('non-self-quoting address string)
(inferior-object address string))))
(write exp (inferior-socket inferior))
(newline (inferior-socket inferior))
(match (read (inferior-socket inferior))
(('values objects ...)
(apply values (map sexp->object objects)))
(('exception key objects ...)
(apply throw key (map sexp->object objects)))))
;;;
;;; Inferior packages.
;;;
(define-record-type <inferior-package>
(inferior-package inferior name version id)
inferior-package?
(inferior inferior-package-inferior)
(name inferior-package-name)
(version inferior-package-version)
(id inferior-package-id))
(define (write-inferior-package package port)
(match package
(($ <inferior-package> _ name version)
(format port "#<inferior-package ~a@~a ~a>"
name version
(number->string (object-address package) 16)))))
(set-record-type-printer! <inferior-package> write-inferior-package)
(define (inferior-packages inferior)
"Return the list of packages known to INFERIOR."
(let ((result (inferior-eval
'(fold-packages (lambda (package result)
(let ((id (object-address package)))
(hashv-set! %package-table id package)
(cons (list (package-name package)
(package-version package)
id)
result)))
'())
inferior)))
(map (match-lambda
((name version id)
(inferior-package inferior name version id)))
result)))
(define (inferior-package-field package getter)
"Return the field of PACKAGE, an inferior package, accessed with GETTER."
(let ((inferior (inferior-package-inferior package))
(id (inferior-package-id package)))
(inferior-eval `(,getter (hashv-ref %package-table ,id))
inferior)))
(define* (inferior-package-synopsis package #:key (translate? #t))
"Return the Texinfo synopsis of PACKAGE, an inferior package. When
TRANSLATE? is true, translate it to the current locale's language."
(inferior-package-field package
(if translate?
'(compose (@ (guix ui) P_) package-synopsis)
'package-synopsis)))
(define* (inferior-package-description package #:key (translate? #t))
"Return the Texinfo description of PACKAGE, an inferior package. When
TRANSLATE? is true, translate it to the current locale's language."
(inferior-package-field package
(if translate?
'(compose (@ (guix ui) P_) package-description)
'package-description)))

View File

@ -1521,7 +1521,7 @@ the generation that was current before switching."
(profile profile) (profile profile)
(generation number))))) (generation number)))))
(else (else
(switch-symlinks profile generation) (switch-symlinks profile (basename generation))
current)))) current))))
(define (switch-to-previous-generation profile) (define (switch-to-previous-generation profile)

View File

@ -190,7 +190,7 @@ do not treat collisions in MANIFEST as an error."
(let* ((entries (manifest-entries manifest)) (let* ((entries (manifest-entries manifest))
(count (length entries))) (count (length entries)))
(switch-symlinks name prof) (switch-symlinks name prof)
(switch-symlinks profile name) (switch-symlinks profile (basename name))
(unless (string=? profile %current-profile) (unless (string=? profile %current-profile)
(register-gc-root store name)) (register-gc-root store name))
(format #t (N_ "~a package in profile~%" (format #t (N_ "~a package in profile~%"

View File

@ -28,9 +28,12 @@
#:use-module (guix profiles) #:use-module (guix profiles)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix grafts) #:use-module (guix grafts)
#:use-module (guix memoization)
#:use-module (guix monads) #:use-module (guix monads)
#:autoload (guix inferior) (open-inferior)
#:use-module (guix scripts build) #:use-module (guix scripts build)
#:autoload (guix self) (whole-package) #:autoload (guix self) (whole-package)
#:use-module (gnu packages)
#:autoload (gnu packages ssh) (guile-ssh) #:autoload (gnu packages ssh) (guile-ssh)
#:autoload (gnu packages tls) (gnutls) #:autoload (gnu packages tls) (gnutls)
#:use-module ((guix scripts package) #:select (build-and-use-profile)) #:use-module ((guix scripts package) #:select (build-and-use-profile))
@ -45,9 +48,11 @@
#:use-module ((gnu packages certs) #:select (le-certs)) #:use-module ((gnu packages certs) #:select (le-certs))
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 vlist)
#:export (guix-pull)) #:export (guix-pull))
(module-autoload! (resolve-module '(guix scripts pull)) (module-autoload! (resolve-module '(guix scripts pull))
@ -230,12 +235,32 @@ URL, BRANCH, and COMMIT as a property in the manifest entry."
(branch ,branch) (branch ,branch)
(commit ,commit)))))))))) (commit ,commit))))))))))
(define (display-profile-news profile)
"Display what's up in PROFILE--new packages, and all that."
(match (memv (generation-number profile)
(reverse (profile-generations profile)))
((current previous _ ...)
(newline)
(let ((old (fold-packages (lambda (package result)
(alist-cons (package-name package)
(package-version package)
result))
'()))
(new (profile-package-alist
(generation-file-name profile current))))
(display-new/upgraded-packages old new
#:heading (G_ "New in this revision:\n"))))
(_ #t)))
(define* (build-and-install source config-dir (define* (build-and-install source config-dir
#:key verbose? url branch commit) #:key verbose? url branch commit)
"Build the tool from SOURCE, and install it in CONFIG-DIR." "Build the tool from SOURCE, and install it in CONFIG-DIR."
(define update-profile (define update-profile
(store-lift build-and-use-profile)) (store-lift build-and-use-profile))
(define profile
(string-append config-dir "/current"))
(mlet* %store-monad ((drv (build-from-source source (mlet* %store-monad ((drv (build-from-source source
#:commit commit #:commit commit
#:verbose? verbose?)) #:verbose? verbose?))
@ -243,8 +268,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry."
#:url url #:url url
#:branch branch #:branch branch
#:commit commit))) #:commit commit)))
(update-profile (string-append config-dir "/current") (mbegin %store-monad
(manifest (list entry))))) (update-profile profile (manifest (list entry)))
(return (display-profile-news profile)))))
(define (honor-lets-encrypt-certificates! store) (define (honor-lets-encrypt-certificates! store)
"Tell Guile-Git to use the Let's Encrypt certificates." "Tell Guile-Git to use the Let's Encrypt certificates."
@ -289,6 +315,7 @@ certificates~%"))
(define (display-profile-content profile number) (define (display-profile-content profile number)
"Display the packages in PROFILE, generation NUMBER, in a human-readable "Display the packages in PROFILE, generation NUMBER, in a human-readable
way and displaying details about the channel's source code." way and displaying details about the channel's source code."
(display-generation profile number)
(for-each (lambda (entry) (for-each (lambda (entry)
(format #t " ~a ~a~%" (format #t " ~a ~a~%"
(manifest-entry-name entry) (manifest-entry-name entry)
@ -310,6 +337,90 @@ way and displaying details about the channel's source code."
(manifest-entries (manifest-entries
(profile-manifest (generation-file-name profile number)))))) (profile-manifest (generation-file-name profile number))))))
(define (indented-string str indent)
"Return STR with each newline preceded by IDENT spaces."
(define indent-string
(make-list indent #\space))
(list->string
(string-fold-right (lambda (chr result)
(if (eqv? chr #\newline)
(cons chr (append indent-string result))
(cons chr result)))
'()
str)))
(define profile-package-alist
(mlambda (profile)
"Return a name/version alist representing the packages in PROFILE."
(fold (lambda (package lst)
(alist-cons (inferior-package-name package)
(inferior-package-version package)
lst))
'()
(let* ((inferior (open-inferior profile))
(packages (inferior-packages inferior)))
(close-inferior inferior)
packages))))
(define* (display-new/upgraded-packages alist1 alist2
#:key (heading ""))
"Given the two package name/version alists ALIST1 and ALIST2, display the
list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1
and ALIST2 differ, display HEADING upfront."
(let* ((old (fold (match-lambda*
(((name . version) table)
(vhash-cons name version table)))
vlist-null
alist1))
(new (remove (match-lambda
((name . _)
(vhash-assoc name old)))
alist2))
(upgraded (filter-map (match-lambda
((name . new-version)
(match (vhash-fold* cons '() name old)
(() #f)
((= (cut sort <> version>?) old-versions)
(and (version>? new-version
(first old-versions))
(string-append name "@"
new-version))))))
alist2)))
(unless (and (null? new) (null? upgraded))
(display heading))
(match (length new)
(0 #t)
(count
(format #t (N_ " ~h new package: ~a~%"
" ~h new packages: ~a~%" count)
count
(indented-string
(fill-paragraph (string-join (sort (map first new) string<?)
", ")
(- (%text-width) 4) 30)
4))))
(match (length upgraded)
(0 #t)
(count
(format #t (N_ " ~h package upgraded: ~a~%"
" ~h packages upgraded: ~a~%" count)
count
(indented-string
(fill-paragraph (string-join (sort upgraded string<?) ", ")
(- (%text-width) 4) 35)
4))))))
(define (display-profile-content-diff profile gen1 gen2)
"Display the changes in PROFILE GEN2 compared to generation GEN1."
(define (package-alist generation)
(profile-package-alist (generation-file-name profile generation)))
(display-profile-content profile gen2)
(display-new/upgraded-packages (package-alist gen1)
(package-alist gen2)))
(define (process-query opts) (define (process-query opts)
"Process any query specified by OPTS." "Process any query specified by OPTS."
(define profile (define profile
@ -317,29 +428,32 @@ way and displaying details about the channel's source code."
(match (assoc-ref opts 'query) (match (assoc-ref opts 'query)
(('list-generations pattern) (('list-generations pattern)
(define (list-generation display-function number) (define (list-generations profile numbers)
(unless (zero? number) (match numbers
(display-generation profile number) ((first rest ...)
(display-function profile number) (display-profile-content profile first)
(newline))) (let loop ((numbers numbers))
(match numbers
((first second rest ...)
(display-profile-content-diff profile
first second)
(loop (cons second rest)))
((_) #t)
(() #t))))))
(leave-on-EPIPE (leave-on-EPIPE
(cond ((not (file-exists? profile)) ; XXX: race condition (cond ((not (file-exists? profile)) ; XXX: race condition
(raise (condition (&profile-not-found-error (raise (condition (&profile-not-found-error
(profile profile))))) (profile profile)))))
((string-null? pattern) ((string-null? pattern)
(for-each (lambda (generation) (list-generations profile (profile-generations profile)))
(list-generation display-profile-content generation))
(profile-generations profile)))
((matching-generations pattern profile) ((matching-generations pattern profile)
=> =>
(match-lambda (match-lambda
(() (()
(exit 1)) (exit 1))
((numbers ...) ((numbers ...)
(for-each (lambda (generation) (list-generations profile numbers)))))))))
(list-generation display-profile-content generation))
numbers)))))))))
(define (guix-pull . args) (define (guix-pull . args)

199
guix/scripts/repl.scm Normal file
View File

@ -0,0 +1,199 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts repl)
#:use-module (guix ui)
#:use-module (guix scripts)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (rnrs bytevectors)
#:autoload (system repl repl) (start-repl)
#:autoload (system repl server)
(make-tcp-server-socket make-unix-domain-server-socket)
#:export (machine-repl
guix-repl))
;;; Commentary:
;;;
;;; This command provides a Guile REPL
(define %default-options
`((type . guile)))
(define %options
(list (option '(#\h "help") #f #f
(lambda args
(show-help)
(exit 0)))
(option '(#\V "version") #f #f
(lambda args
(show-version-and-exit "guix repl")))
(option '(#\t "type") #t #f
(lambda (opt name arg result)
(alist-cons 'type (string->symbol arg) result)))
(option '("listen") #t #f
(lambda (opt name arg result)
(alist-cons 'listen arg result)))))
(define (show-help)
(display (G_ "Usage: guix repl [OPTIONS...]
Start a Guile REPL in the Guix execution environment.\n"))
(display (G_ "
-t, --type=TYPE start a REPL of the given TYPE"))
(newline)
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
-V, --version display version information and exit"))
(newline)
(show-bug-report-information))
(define (self-quoting? x)
"Return #t if X is self-quoting."
(letrec-syntax ((one-of (syntax-rules ()
((_) #f)
((_ pred rest ...)
(or (pred x)
(one-of rest ...))))))
(one-of symbol? string? pair? null? vector?
bytevector? number? boolean?)))
(define user-module
;; Module where we execute user code.
(let ((module (resolve-module '(guix-user) #f #f #:ensure #t)))
(beautify-user-module! module)
module))
(define* (machine-repl #:optional
(input (current-input-port))
(output (current-output-port)))
"Run a machine-usable REPL over ports INPUT and OUTPUT.
The protocol of this REPL is meant to be machine-readable and provides proper
support to represent multiple-value returns, exceptions, objects that lack a
read syntax, and so on. As such it is more convenient and robust than parsing
Guile's REPL prompt."
(define (value->sexp value)
(if (self-quoting? value)
`(value ,value)
`(non-self-quoting ,(object-address value)
,(object->string value))))
(write `(repl-version 0 0) output)
(newline output)
(force-output output)
(let loop ()
(match (read input)
((? eof-object?) #t)
(exp
(catch #t
(lambda ()
(let ((results (call-with-values
(lambda ()
(primitive-eval exp))
list)))
(write `(values ,@(map value->sexp results))
output)
(newline output)
(force-output output)))
(lambda (key . args)
(write `(exception ,key ,@(map value->sexp args)))
(newline output)
(force-output output)))
(loop)))))
(define (call-with-connection spec thunk)
"Dynamically-bind the current input and output ports according to SPEC and
call THUNK."
(if (not spec)
(thunk)
;; Note: the "PROTO:" prefix in SPEC is here so that we can eventually
;; parse things like "fd:123" in a non-ambiguous way.
(match (string-index spec #\:)
(#f
(leave (G_ "~A: invalid listen specification~%") spec))
(index
(let ((protocol (string-take spec index))
(address (string-drop spec (+ index 1))))
(define socket
(match protocol
("tcp"
(make-tcp-server-socket #:port (string->number address)))
("unix"
(make-unix-domain-server-socket #:path address))
(_
(leave (G_ "~A: unsupported protocol family~%")
protocol))))
(listen socket 10)
(let loop ()
(match (accept socket)
((connection . address)
(if (= AF_UNIX (sockaddr:fam address))
(info (G_ "accepted connection~%"))
(info (G_ "accepted connection from ~a~%")
(inet-ntop (sockaddr:fam address)
(sockaddr:addr address))))
(dynamic-wind
(const #t)
(lambda ()
(parameterize ((current-input-port connection)
(current-output-port connection))
(thunk)))
(lambda ()
(false-if-exception (close-port connection))
(info (G_ "connection closed~%"))))))
(loop)))))))
(define (guix-repl . args)
(define opts
;; Return the list of package names.
(args-fold* args %options
(lambda (opt name arg result)
(leave (G_ "~A: unrecognized option~%") name))
(lambda (arg result)
(leave (G_ "~A: extraneous argument~%") arg))
%default-options))
(with-error-handling
(let ((type (assoc-ref opts 'type)))
(call-with-connection (assoc-ref opts 'listen)
(lambda ()
(case type
((guile)
(save-module-excursion
(lambda ()
(set-current-module user-module)
(start-repl))))
((machine)
(machine-repl))
(else
(leave (G_ "~a: unknown type of REPL~%") type))))))))
;; Local Variables:
;; eval: (put 'call-with-connection 'scheme-indent-function 1)
;; End:

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -77,6 +78,7 @@
add-data-to-store add-data-to-store
add-text-to-store add-text-to-store
add-to-store add-to-store
binary-file
build-things build-things
build build
query-failed-paths query-failed-paths
@ -1362,7 +1364,18 @@ taking the store as its first argument."
;; Store monad operators. ;; Store monad operators.
;; ;;
(define* (text-file name text (define* (binary-file name
data ;bytevector
#:optional (references '()))
"Return as a monadic value the absolute file name in the store of the file
containing DATA, a bytevector. REFERENCES is a list of store items that the
resulting text file refers to; it defaults to the empty list."
(lambda (store)
(values (add-data-to-store store name data references)
store)))
(define* (text-file name
text ;string
#:optional (references '())) #:optional (references '()))
"Return as a monadic value the absolute file name in the store of the file "Return as a monadic value the absolute file name in the store of the file
containing TEXT, a string. REFERENCES is a list of store items that the containing TEXT, a string. REFERENCES is a list of store items that the

View File

@ -33,10 +33,11 @@
#:use-module (srfi srfi-35) #:use-module (srfi srfi-35)
#:use-module (srfi srfi-39) #:use-module (srfi srfi-39)
#:use-module (ice-9 binary-ports) #:use-module (ice-9 binary-ports)
#:use-module (ice-9 ftw)
#:autoload (rnrs io ports) (make-custom-binary-input-port) #:autoload (rnrs io ports) (make-custom-binary-input-port)
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
#:use-module (guix memoization) #:use-module (guix memoization)
#:use-module ((guix build utils) #:select (dump-port mkdir-p)) #:use-module ((guix build utils) #:select (dump-port mkdir-p delete-file-recursively))
#:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync))
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:autoload (ice-9 popen) (open-pipe*) #:autoload (ice-9 popen) (open-pipe*)
@ -631,7 +632,7 @@ delete it when leaving the dynamic extent of this call."
(lambda () (lambda ()
(proc tmp-dir)) (proc tmp-dir))
(lambda () (lambda ()
(false-if-exception (rmdir tmp-dir)))))) (false-if-exception (delete-file-recursively tmp-dir))))))
(define (with-atomic-file-output file proc) (define (with-atomic-file-output file proc)
"Call PROC with an output port for the file that is going to replace FILE. "Call PROC with an output port for the file that is going to replace FILE.

View File

@ -948,7 +948,7 @@
(return (and (zero? (close-pipe pipe)) (return (and (zero? (close-pipe pipe))
(= (expt n 2) (string->number str))))))) (= (expt n 2) (string->number str)))))))
(test-assertm "gexp->script #:module-path" (test-assert "gexp->script #:module-path"
(call-with-temporary-directory (call-with-temporary-directory
(lambda (directory) (lambda (directory)
(define str (define str
@ -961,23 +961,24 @@
(define-public %fake! ,str)) (define-public %fake! ,str))
port))) port)))
(mlet* %store-monad ((exp -> (with-imported-modules '((guix base32)) (run-with-store %store
(gexp (begin (mlet* %store-monad ((exp -> (with-imported-modules '((guix base32))
(use-modules (guix base32)) (gexp (begin
(write (list %load-path (use-modules (guix base32))
%fake!)))))) (write (list %load-path
(drv (gexp->script "guile-thing" exp %fake!))))))
#:guile %bootstrap-guile (drv (gexp->script "guile-thing" exp
#:module-path (list directory))) #:guile %bootstrap-guile
(out -> (derivation->output-path drv)) #:module-path (list directory)))
(done (built-derivations (list drv)))) (out -> (derivation->output-path drv))
(let* ((pipe (open-input-pipe out)) (done (built-derivations (list drv))))
(data (read pipe))) (let* ((pipe (open-input-pipe out))
(return (and (zero? (close-pipe pipe)) (data (read pipe)))
(match data (return (and (zero? (close-pipe pipe))
((load-path str*) (match data
(and (string=? str* str) ((load-path str*)
(not (member directory load-path)))))))))))) (and (string=? str* str)
(not (member directory load-path)))))))))))))
(test-assertm "program-file" (test-assertm "program-file"
(let* ((n (random (expt 2 50))) (let* ((n (random (expt 2 50)))
@ -996,7 +997,7 @@
(return (and (zero? (close-pipe pipe)) (return (and (zero? (close-pipe pipe))
(= n (string->number str))))))))) (= n (string->number str)))))))))
(test-assertm "program-file #:module-path" (test-assert "program-file #:module-path"
(call-with-temporary-directory (call-with-temporary-directory
(lambda (directory) (lambda (directory)
(define text (random-text)) (define text (random-text))
@ -1014,14 +1015,15 @@
(file (program-file "program" exp (file (program-file "program" exp
#:guile %bootstrap-guile #:guile %bootstrap-guile
#:module-path (list directory)))) #:module-path (list directory))))
(mlet* %store-monad ((drv (lower-object file)) (run-with-store %store
(out -> (derivation->output-path drv))) (mlet* %store-monad ((drv (lower-object file))
(mbegin %store-monad (out -> (derivation->output-path drv)))
(built-derivations (list drv)) (mbegin %store-monad
(let* ((pipe (open-input-pipe out)) (built-derivations (list drv))
(str (get-string-all pipe))) (let* ((pipe (open-input-pipe out))
(return (and (zero? (close-pipe pipe)) (str (get-string-all pipe)))
(string=? text str)))))))))) (return (and (zero? (close-pipe pipe))
(string=? text str)))))))))))
(test-assertm "program-file & with-extensions" (test-assertm "program-file & with-extensions"
(let* ((exp (with-extensions (list %extension-package) (let* ((exp (with-extensions (list %extension-package)

View File

@ -185,6 +185,16 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \
rm "$emacs_tarball" "$tmpfile" rm "$emacs_tarball" "$tmpfile"
rmdir "$module_dir" rmdir "$module_dir"
# Profiles with a relative file name. Make sure we don't create dangling
# symlinks--see bug report at
# <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>.
mkdir -p "$module_dir/foo"
( cd "$module_dir" ; \
guix package --bootstrap -i guile-bootstrap -p foo/prof )
test -f "$module_dir/foo/prof/bin/guile"
rm "$module_dir/foo"/*
rmdir "$module_dir/foo"
rmdir "$module_dir"
# #
# Try with the default profile. # Try with the default profile.
@ -215,7 +225,7 @@ do
guix package --bootstrap --roll-back guix package --bootstrap --roll-back
! test -f "$HOME/.guix-profile/bin" ! test -f "$HOME/.guix-profile/bin"
! test -f "$HOME/.guix-profile/lib" ! test -f "$HOME/.guix-profile/lib"
test "`readlink "$default_profile"`" = "$default_profile-0-link" test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`"
done done
# Check whether '-p ~/.guix-profile' makes any difference. # Check whether '-p ~/.guix-profile' makes any difference.

View File

@ -69,6 +69,65 @@ library
mtl >= 2.0 && < 3 mtl >= 2.0 && < 3
") ")
;; Check "-any", "-none" when name is different.
(define test-cabal-4
"name: foo
version: 1.0.0
homepage: http://test.org
synopsis: synopsis
description: description
license: BSD3
library
if impl(ghcjs -any)
Build-depends: ghc-a
if impl(ghc>=7.2&&<7.6)
Build-depends: ghc-b
if impl(ghc == 7.8)
Build-depends:
HTTP >= 4000.2.5 && < 4000.3,
mtl >= 2.0 && < 3
")
;; Check "-any", "-none".
(define test-cabal-5
"name: foo
version: 1.0.0
homepage: http://test.org
synopsis: synopsis
description: description
license: BSD3
library
if impl(ghc == 7.8)
Build-depends:
HTTP >= 4000.2.5 && < 4000.3,
if impl(ghc -any)
Build-depends: mtl >= 2.0 && < 3
if impl(ghc>=7.2&&<7.6)
Build-depends: ghc-b
")
;; Check "custom-setup".
(define test-cabal-6
"name: foo
build-type: Custom
version: 1.0.0
homepage: http://test.org
synopsis: synopsis
description: description
license: BSD3
custom-setup
setup-depends: base >= 4.7 && < 5,
Cabal >= 1.24,
haskell-gi == 0.21.*
library
if impl(ghc>=7.2&&<7.6)
Build-depends: ghc-b
if impl(ghc == 7.8)
Build-depends:
HTTP >= 4000.2.5 && < 4000.3,
mtl >= 2.0 && < 3
")
;; A fragment of a real Cabal file with minor modification to check precedence ;; A fragment of a real Cabal file with minor modification to check precedence
;; of 'and' over 'or', missing final newline, spaces between keywords and ;; of 'and' over 'or', missing final newline, spaces between keywords and
;; parentheses and between key and column. ;; parentheses and between key and column.
@ -139,6 +198,18 @@ library
(eval-test-with-cabal test-cabal-3 (eval-test-with-cabal test-cabal-3
#:cabal-environment '(("impl" . "ghc-7.8")))) #:cabal-environment '(("impl" . "ghc-7.8"))))
(test-assert "hackage->guix-package test 4"
(eval-test-with-cabal test-cabal-4
#:cabal-environment '(("impl" . "ghc-7.8"))))
(test-assert "hackage->guix-package test 5"
(eval-test-with-cabal test-cabal-5
#:cabal-environment '(("impl" . "ghc-7.8"))))
(test-assert "hackage->guix-package test 6"
(eval-test-with-cabal test-cabal-6
#:cabal-environment '(("impl" . "ghc-7.8"))))
(test-assert "read-cabal test 1" (test-assert "read-cabal test 1"
(match (call-with-input-string test-read-cabal-1 read-cabal) (match (call-with-input-string test-read-cabal-1 read-cabal)
((("name" ("test-me")) ((("name" ("test-me"))

69
tests/inferior.scm Normal file
View File

@ -0,0 +1,69 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-inferior)
#:use-module (guix inferior)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64))
(define %top-srcdir
(dirname (search-path %load-path "guix.scm")))
(define %top-builddir
(dirname (search-path %load-compiled-path "guix.go")))
(test-begin "inferior")
(test-equal "open-inferior"
'(42 #t)
(let ((inferior (open-inferior %top-builddir
#:command "scripts/guix")))
(and (inferior? inferior)
(let ((a (inferior-eval '(apply * '(6 7)) inferior))
(b (inferior-eval '(@ (gnu packages base) coreutils)
inferior)))
(close-inferior inferior)
(list a (inferior-object? b))))))
(test-equal "inferior-packages"
(take (sort (fold-packages (lambda (package lst)
(alist-cons (package-name package)
(package-version package)
lst))
'())
(lambda (x y)
(string<? (car x) (car y))))
10)
(let* ((inferior (open-inferior %top-builddir
#:command "scripts/guix"))
(packages (inferior-packages inferior)))
(and (every string? (map inferior-package-synopsis packages))
(begin
(close-inferior inferior)
(take (sort (map (lambda (package)
(cons (inferior-package-name package)
(inferior-package-version package)))
packages)
(lambda (x y)
(string<? (car x) (car y))))
10)))))
(test-end "inferior")