Merge remote-tracking branch 'origin/master' into qt-updates
This commit is contained in:
commit
0a34402b19
|
@ -85,6 +85,7 @@ MODULES = \
|
|||
guix/nar.scm \
|
||||
guix/derivations.scm \
|
||||
guix/grafts.scm \
|
||||
guix/inferior.scm \
|
||||
guix/gnu-maintenance.scm \
|
||||
guix/self.scm \
|
||||
guix/upstream.scm \
|
||||
|
@ -200,6 +201,7 @@ MODULES = \
|
|||
guix/scripts/substitute.scm \
|
||||
guix/scripts/authenticate.scm \
|
||||
guix/scripts/refresh.scm \
|
||||
guix/scripts/repl.scm \
|
||||
guix/scripts/system.scm \
|
||||
guix/scripts/system/search.scm \
|
||||
guix/scripts/lint.scm \
|
||||
|
@ -357,6 +359,7 @@ SCM_TESTS = \
|
|||
tests/profiles.scm \
|
||||
tests/search-paths.scm \
|
||||
tests/syscalls.scm \
|
||||
tests/inferior.scm \
|
||||
tests/gremlin.scm \
|
||||
tests/bournish.scm \
|
||||
tests/lint.scm \
|
||||
|
|
|
@ -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}
|
||||
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
|
||||
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
|
||||
@code{package...} followed by @kbd{TAB}. This snippet also inserts the
|
||||
|
|
143
doc/guix.texi
143
doc/guix.texi
|
@ -27,7 +27,7 @@ Copyright @copyright{} 2016, 2017, 2018 Chris Marusich@*
|
|||
Copyright @copyright{} 2016, 2017, 2018 Efraim Flashner@*
|
||||
Copyright @copyright{} 2016 John Darrington@*
|
||||
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 Alex ter Weele@*
|
||||
Copyright @copyright{} 2017, 2018 Clément Lassieur@*
|
||||
|
@ -166,6 +166,7 @@ Programming Interface
|
|||
* Derivations:: Low-level interface to package derivations.
|
||||
* The Store Monad:: Purely functional interface to the store.
|
||||
* G-Expressions:: Manipulating build expressions.
|
||||
* Invoking guix repl:: Fiddling with Guix interactively.
|
||||
|
||||
Defining Packages
|
||||
|
||||
|
@ -2785,12 +2786,18 @@ Generation 2 Jun 11 2018 11:02:49
|
|||
repository URL: https://git.savannah.gnu.org/git/guix.git
|
||||
branch: origin/master
|
||||
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)
|
||||
guix 844cc1c
|
||||
repository URL: https://git.savannah.gnu.org/git/guix.git
|
||||
branch: origin/master
|
||||
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
|
||||
|
||||
This @code{~/.config/guix/current} profile works like any other profile
|
||||
|
@ -3267,6 +3274,7 @@ package definitions.
|
|||
* Derivations:: Low-level interface to package derivations.
|
||||
* The Store Monad:: Purely functional interface to the store.
|
||||
* G-Expressions:: Manipulating build expressions.
|
||||
* Invoking guix repl:: Fiddling with Guix interactively.
|
||||
@end menu
|
||||
|
||||
@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.
|
||||
@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}] @
|
||||
[#:recursive? #t] [#:select? (const #t)]
|
||||
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}
|
||||
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}.
|
||||
@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>}.
|
||||
@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 *********************************************************************
|
||||
@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
|
||||
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}]
|
||||
Return an mcron service running @var{mcron} that schedules @var{jobs}, a
|
||||
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
|
||||
(@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}
|
||||
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 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
|
||||
The service type for the Shepherd ``root service''---i.e., PID@tie{}1.
|
||||
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
(name "$1")
|
||||
(version "$2")
|
||||
(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"
|
||||
"cargo-build-system"
|
||||
"cmake-build-system"
|
||||
|
@ -25,6 +26,7 @@
|
|||
"python-build-system"
|
||||
"r-build-system"
|
||||
"ruby-build-system"
|
||||
"scons-build-system"
|
||||
"texlive-build-system"
|
||||
"trivial-build-system"
|
||||
"waf-build-system")})
|
||||
|
|
|
@ -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")`
|
10
gnu/local.mk
10
gnu/local.mk
|
@ -564,7 +564,6 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/aegis-test-fixup-1.patch \
|
||||
%D%/packages/patches/aegis-test-fixup-2.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/ansible-wrap-program-hack.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/bazaar-CVE-2017-14176.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-loongson-workaround.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/isl-0.11.1-aarch64-support.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-commons-collections-fix-java8.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-4527.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/metabat-fix-compilation.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/ola-readdir-r.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/openfoam-4.1-cleanup.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/swish-e-search.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/t1lib-CVE-2010-2642.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/wxmaxima-do-not-use-old-gnuplot-parameters.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/xdotool-fix-makefile.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-i128-remove-mibstore.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-sis-xorg-compat.patch \
|
||||
%D%/packages/patches/xf86-video-tga-remove-mibstore.patch \
|
||||
%D%/packages/patches/xfce4-panel-plugins.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-CVE-2013-4342.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/zstd-fix-stdin-list-without-tty.patch \
|
||||
%D%/packages/patches/zstd-fix-stdin-list-test.patch
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
;;; 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 © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -1131,7 +1131,7 @@ command.")
|
|||
(define-public tzdata
|
||||
(package
|
||||
(name "tzdata")
|
||||
(version "2018d")
|
||||
(version "2018e")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1139,7 +1139,7 @@ command.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m6020dnk9r40z7k36jp13fa06xip3hn0fdx3nly66jzxgffs1ji"))))
|
||||
"0bk97fv2i5ns42prpmlaadsswdjwv0ifi7whj2s4q6l44rcqwa3b"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
|
@ -1189,7 +1189,7 @@ command.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nd882yhsazmcfqmcqyfig3axycryl30gmizgqhqsx5dpa2lxr3x"))))))
|
||||
"1kpb02631s58i068mwq63xlamcv1ffj4p6y4wpb9kdl01vr0qd6a"))))))
|
||||
(home-page "https://www.iana.org/time-zones")
|
||||
(synopsis "Database of current and historical time zones")
|
||||
(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
|
||||
;;; package.
|
||||
(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
|
||||
(package
|
||||
|
|
|
@ -425,8 +425,7 @@ def test_ctrl_c"))
|
|||
(apply invoke "make" "tools_defconfig" make-flags)))
|
||||
(replace 'build
|
||||
(lambda* (#:key inputs make-flags #:allow-other-keys)
|
||||
(apply invoke "make" "tools-only" make-flags)
|
||||
(apply invoke "make" "envtools" make-flags)))
|
||||
(apply invoke "make" "tools-all" make-flags)))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
@ -443,7 +442,8 @@ def test_ctrl_c"))
|
|||
"tools/mkimage"
|
||||
"tools/proftool"
|
||||
"tools/fdtgrep"
|
||||
"tools/env/fw_printenv"))
|
||||
"tools/env/fw_printenv"
|
||||
"tools/sunxi-spl-image-builder"))
|
||||
#t)))
|
||||
(delete 'check)
|
||||
(add-after 'install 'check
|
||||
|
@ -519,7 +519,8 @@ board-independent tools.")))
|
|||
(let ((target-file (string-append libexec "/" file)))
|
||||
(mkdir-p (dirname target-file))
|
||||
(copy-file file target-file)))
|
||||
uboot-files))))))))))
|
||||
uboot-files)
|
||||
#t)))))))))
|
||||
|
||||
(define-public u-boot-vexpress
|
||||
(make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
|
||||
|
|
|
@ -100,7 +100,7 @@ generate such a compilation database.")
|
|||
(define-public meson
|
||||
(package
|
||||
(name "meson")
|
||||
(version "0.45.1")
|
||||
(version "0.46.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/mesonbuild/meson/"
|
||||
|
@ -108,7 +108,7 @@ generate such a compilation database.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yqa4337nb8w92bvr91rsxmn0xkf7pmdybq9ljvnqmdvn7dv02sd"))))
|
||||
"0y7f5hhy16q99l7x06x8sid9p9dbg6d7i60zs7c07cz5ww1plj8r"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(;; FIXME: Tests require many additional inputs, a fix for the RUNPATH
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
(define-public nss-certs
|
||||
(package
|
||||
(name "nss-certs")
|
||||
(version "3.36.1")
|
||||
(version "3.38")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -87,7 +87,7 @@
|
|||
"nss-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0"))))
|
||||
"0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"))
|
||||
(native-inputs
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -20,9 +21,11 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gv)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python))
|
||||
|
||||
(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.")
|
||||
(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
|
||||
(package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
|
||||
|
||||
|
|
|
@ -1889,19 +1889,19 @@ create, manipulate, read, and write Zip archive files.")
|
|||
(define-public libzip
|
||||
(package
|
||||
(name "libzip")
|
||||
(version "1.3.2")
|
||||
(version "1.5.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://libzip.org/download/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"11g1hvm2bxa2v5plakfzcwyk5hb5fz4kgrkp38l0xhnv21888xv2"))))
|
||||
"0wnkkvkq90wyawj9221i77sf3nix1vj3ygzdy59k8yvcjnv3bsh4"))))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system cmake-build-system)
|
||||
(home-page "https://libzip.org")
|
||||
(synopsis "C library for reading, creating, and modifying zip archives")
|
||||
(description "Libzip is a C library for reading, creating, and modifying
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
(package
|
||||
(name "curl")
|
||||
(version "7.59.0")
|
||||
(replacement curl-7.60.0)
|
||||
(replacement curl-7.61.0)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
|
@ -141,10 +141,10 @@ tunneling, and so on.")
|
|||
"See COPYING in the distribution."))
|
||||
(home-page "https://curl.haxx.se/")))
|
||||
|
||||
(define-public curl-7.60.0
|
||||
(define-public curl-7.61.0
|
||||
(package
|
||||
(inherit curl)
|
||||
(version "7.60.0")
|
||||
(version "7.61.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -152,7 +152,7 @@ tunneling, and so on.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1876ck0smbqz3xakm7s6q6gh4zarh9pv3izf4vlzgpc9xn6zydl7"))))))
|
||||
"080p9r2kln8cbfj0rqfn6wqp5kdn9k5wp720nirkcw845lcmavpg"))))))
|
||||
|
||||
(define-public kurly
|
||||
(package
|
||||
|
|
|
@ -705,14 +705,14 @@ as a drop-in replacement of MySQL.")
|
|||
(define-public postgresql
|
||||
(package
|
||||
(name "postgresql")
|
||||
(version "10.3")
|
||||
(version "10.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
|
||||
version "/postgresql-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"06lkcwsf851z49zqcws5yc77s2yrbaazf2nvbk38hpp31rw6i8kf"))))
|
||||
"0j000bcs9w8wrllg8m7j1lxsd3n2x0yzkack5p35cmxx20iq2q0v"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-uuid=e2fs")
|
||||
|
@ -1070,14 +1070,14 @@ is in the public domain.")
|
|||
(define-public tdb
|
||||
(package
|
||||
(name "tdb")
|
||||
(version "1.3.15")
|
||||
(version "1.3.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/tdb/tdb-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a37jhpij8wr4f4pjqdlwnffy2l6a2vkqdpz1bqxj6v06cwbz8dl"))))
|
||||
"1ibcz466xwk1x6xvzlgzd5va4lyrjzm3rnjak29kkwk7cmhw4gva"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
|
||||
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -29,7 +30,9 @@
|
|||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages flex)
|
||||
|
@ -55,7 +58,8 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#: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
|
||||
(package
|
||||
|
@ -99,16 +103,15 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
(define-public isc-bind
|
||||
(package
|
||||
(name "bind")
|
||||
(version "9.12.1-P2")
|
||||
(version "9.12.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"ftp://ftp.isc.org/isc/bind9/" version "/" name "-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "bind-CVE-2018-5738.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0a9dvyg1dk7vpqn9gz7p5jas3bz7z22bjd66b98g1qk16i2w7rqd"))))
|
||||
"0ll46igs9xfq2qclc5wzqsnj3zv7ssga0544gm24s1m7765lqslz"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs `("out" "utils"))
|
||||
(inputs
|
||||
|
@ -288,7 +291,7 @@ asynchronous fashion.")
|
|||
(define-public unbound
|
||||
(package
|
||||
(name "unbound")
|
||||
(version "1.6.8")
|
||||
(version "1.7.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -296,7 +299,7 @@ asynchronous fashion.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jfxhh4gc5amhndikskz1s7da27ycn442j3l20bm992n7zijid73"))))
|
||||
"0bb0p8nbda77ghx20yfl7hqxm9x709223q35465v99i8v4ay27f1"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "python"))
|
||||
(native-inputs
|
||||
|
@ -576,3 +579,89 @@ synthesis, and on-the-fly re-configuration.")
|
|||
license:lgpl2.0+ ; parts of scr/contrib/ucw
|
||||
license:public-domain ; src/contrib/fnv and possibly murmurhash3
|
||||
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+)))
|
||||
|
|
|
@ -123,14 +123,14 @@ markup) can be customized and extended by the user.")
|
|||
(define-public doxygen
|
||||
(package
|
||||
(name "doxygen")
|
||||
(version "1.8.13")
|
||||
(version "1.8.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ftp.stack.nl/pub/users/dimitri/"
|
||||
name "-" version ".src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0srzawqn3apzrg8hwycwrawdylmmjrndij4spw6xr1vspn3phrmg"))
|
||||
"0kcxymbam9jwiyjwyvwdjj0h74lbb6c467szsipzbxjyfl17wxfi"))
|
||||
(patches (search-patches "doxygen-test.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com>
|
||||
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
|
||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;;
|
||||
;;; 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
|
||||
"109fvivsb4r0rbqljngqrmxqvbnbkqlivczx6brrvlr7ci625lhf"))))
|
||||
(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")
|
||||
(synopsis "Browse and import bibliographic references")
|
||||
(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-dash" ,emacs-dash)
|
||||
("emacs-f" ,emacs-f)
|
||||
("emacs-biblio" ,emacs-biblio)))
|
||||
("emacs-biblio" ,emacs-biblio)
|
||||
("emacs-ivy" ,emacs-ivy)))
|
||||
(home-page "https://github.com/tmalsburg/helm-bibtex")
|
||||
(synopsis "Bibliography manager based on Helm")
|
||||
(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
|
||||
wiki.")
|
||||
(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+))))
|
||||
|
|
|
@ -147,14 +147,14 @@ freedesktop.org project.")
|
|||
(define-public libinput
|
||||
(package
|
||||
(name "libinput")
|
||||
(version "1.10.3")
|
||||
(version "1.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://freedesktop.org/software/libinput/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0002xk9cqzpqrlhgav1wp8nimsbp9d2w8rd8mgygczq2hjar0lhd"))))
|
||||
"1z7i8vk0i61npkdqwsk85wp9v4yjlvylqnyydikjqnbsrjp9abk4"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-Ddocumentation=false")))
|
||||
|
@ -474,7 +474,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
|
|||
(define-public wayland-protocols
|
||||
(package
|
||||
(name "wayland-protocols")
|
||||
(version "1.13")
|
||||
(version "1.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -482,7 +482,7 @@ applications, X servers (rootless or fullscreen) or other display servers.")
|
|||
"wayland-protocols-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f4gqvmz53q9d8h0ilhf4z773nb4vskzx11a3d1jycym120bqn07"))))
|
||||
"1xknjcfhqvdi1s4iq4kk1q61fg2rar3g8q4vlqarpd324imqjj4n"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("wayland" ,wayland)))
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.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 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
|
||||
|
@ -225,14 +225,14 @@ PCM data.")
|
|||
(define-public gzochi
|
||||
(package
|
||||
(name "gzochi")
|
||||
(version "0.11.1")
|
||||
(version "0.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/gzochi/gzochi-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13j1m92zhxwkaaja3lg5x0h0b28mrrawdzk9d3hd19031akfxwb3"))))
|
||||
"0h8yvk7154kd8zdfa9nqy73blrjq2x19kv305jcnwlmm09vvss59"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
|
|
|
@ -627,7 +627,7 @@ as the 'native-search-paths' field."
|
|||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(for-each delete-file
|
||||
(find-files (string-append (assoc-ref outputs "out") "/bin")
|
||||
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)"))
|
||||
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc|gcc-.*)"))
|
||||
#t))))))))
|
||||
|
||||
(define %generic-search-paths
|
||||
|
|
|
@ -224,7 +224,7 @@ also known as DXTn or DXTC) for Mesa.")
|
|||
(define-public mesa
|
||||
(package
|
||||
(name "mesa")
|
||||
(version "17.3.8")
|
||||
(version "18.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -236,10 +236,9 @@ also known as DXTn or DXTC) for Mesa.")
|
|||
version "/mesa-" version ".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1cd6a4ll5arla3kncxnw9196ak1v4rvnb098aa7lm3n4h7r9p7cg"))
|
||||
"1ydivzm4c2k53b65lvm11d62z140xlmd7viw63bl5cm5idjg02q7"))
|
||||
(patches
|
||||
(search-patches "mesa-wayland-egl-symbols-check-mips.patch"
|
||||
"mesa-skip-disk-cache-test.patch"))))
|
||||
(search-patches "mesa-skip-disk-cache-test.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(;; 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)
|
||||
,@(match (%current-system)
|
||||
((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)
|
||||
|
@ -276,15 +275,15 @@ also known as DXTn or DXTC) for Mesa.")
|
|||
'(,@(match (%current-system)
|
||||
("armhf-linux"
|
||||
;; 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"
|
||||
;; 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")))
|
||||
;; Enable various optional features. TODO: opencl requires libclc,
|
||||
;; 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-opencl"
|
||||
;; "--enable-omx"
|
||||
|
@ -328,23 +327,15 @@ also known as DXTn or DXTC) for Mesa.")
|
|||
(add-after
|
||||
'unpack 'patch-create_test_cases
|
||||
(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"
|
||||
(("/usr/bin/env python2") (which "python")))
|
||||
#t))
|
||||
(add-before
|
||||
'build 'fix-dlopen-libnames
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((s2tc (assoc-ref inputs "s2tc"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
;; Remain agnostic to .so.X.Y.Z versions while doing
|
||||
;; 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"
|
||||
(("dlopen\\(\"libGL\\.so")
|
||||
(string-append "dlopen(\"" out "/lib/libGL.so")))
|
||||
|
@ -559,7 +550,7 @@ OpenGL graphics API.")
|
|||
(define-public libepoxy
|
||||
(package
|
||||
(name "libepoxy")
|
||||
(version "1.5.0")
|
||||
(version "1.5.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -567,7 +558,7 @@ OpenGL graphics API.")
|
|||
version "/libepoxy-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1md58amxyp34yjnw4xa185hw5jm0hnb2xnhdc28zdsx6k19rk52c"))))
|
||||
"1n57xj5i6giw4mp5s59w1m9bm33sd6gjg7r00dzzvcwya6326mm9"))))
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -787,7 +787,7 @@ programming langauage. It also contains the utility
|
|||
(define-public appstream-glib
|
||||
(package
|
||||
(name "appstream-glib")
|
||||
(version "0.7.5")
|
||||
(version "0.7.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://people.freedesktop.org/~hughsient/"
|
||||
|
@ -795,7 +795,7 @@ programming langauage. It also contains the utility
|
|||
"appstream-glib-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ps80cbqnf3q86rvz3ajqjssdgkjc9kmynqf0wxqfir7ayc9y9ag"))))
|
||||
"08bs0hnkvdzqv9pakv1y4c4ph77rmzjq22g760w20sv7vs63nia3"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
`(("gettext" ,gettext-minimal)
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
|
||||
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Jovany Leandro G.C <bit4bit@riseup.net>
|
||||
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -6321,7 +6322,16 @@ fit the GNOME desktop.")
|
|||
(base32
|
||||
"007k2bq8iplg4psdpz074r5d4zxvn4s95qym4rw9hs6giljbrf0n"))))
|
||||
(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
|
||||
`(("glib:bin" ,glib "bin")
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
|
@ -6467,7 +6477,7 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
|
|||
(define-public faba-icon-theme
|
||||
(package
|
||||
(name "faba-icon-theme")
|
||||
(version "4.1.2")
|
||||
(version "4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -6476,23 +6486,15 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hi2dl627ayfnihn3v6x9xzid668m4hp098hb7hrkxvahh4h9by7"))))
|
||||
(build-system gnu-build-system)
|
||||
"18ln06xl60qzvzz61zq9q72hdbfgjsza3flph8i2asyzx3dffz68"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-makefile.am
|
||||
(add-before 'configure 'disable-post-install
|
||||
(lambda _
|
||||
(substitute* '("Makefile.am")
|
||||
(("\\$\\(DESTDIR\\)/usr/share")
|
||||
"$(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)))))
|
||||
(substitute* "meson.build"
|
||||
(("meson.add_install_script.*") "")))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)))
|
||||
|
@ -6508,7 +6510,7 @@ Moka")
|
|||
(package
|
||||
(inherit faba-icon-theme)
|
||||
(name "moka-icon-theme")
|
||||
(version "5.3.6")
|
||||
(version "5.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/moka-project"
|
||||
|
@ -6517,7 +6519,7 @@ Moka")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04axinv79qnngsxkwqzi5j9lc3hn24rjqps5ai8d42pdnfaf0x37"))))
|
||||
"1nbwdjj268hxv9lfagd9aylily9f0hhallp841v0i3imljp84bmk"))))
|
||||
(propagated-inputs
|
||||
;; 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.
|
||||
|
|
|
@ -245,14 +245,14 @@ compatible to GNU Pth.")
|
|||
(define-public gnupg
|
||||
(package
|
||||
(name "gnupg")
|
||||
(version "2.2.8")
|
||||
(version "2.2.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnupg/gnupg/gnupg-" version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1k8dnnfs9888yp713l7kg2jg110lw47s4krx0njna6fjrsw4qyvp"))))
|
||||
"0r11mx8nkh7ysrnshs560amha5csx8zcaggb5kxcksx1zymyly32"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -291,7 +291,7 @@ in the Mozilla clients.")
|
|||
(define-public nss
|
||||
(package
|
||||
(name "nss")
|
||||
(version "3.36.1")
|
||||
(version "3.38")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -302,7 +302,7 @@ in the Mozilla clients.")
|
|||
"nss-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1zrb49mp7cy3snnday1zv8d76h1mgppbcwxnlkqsgxlga8fl89b0"))
|
||||
"0qigcy3d169cf67jzv3rbai0m6dn34vp8h2z696mz4yn10y3sr1c"))
|
||||
;; Create nss.pc and nss-config.
|
||||
(patches (search-patches "nss-pkgconfig.patch"
|
||||
"nss-increase-test-timeout.patch"))))
|
||||
|
|
|
@ -1840,3 +1840,138 @@ deliver content")
|
|||
store, and deliver content. It's containe Docker Registry 2.0 and libraries
|
||||
to interacting with distribution components.")
|
||||
(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))))
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system waf)
|
||||
|
@ -670,7 +671,7 @@ application suites.")
|
|||
(name "gtk+")
|
||||
;; NOTE: When updating the version of 'gtk+', the hash of 'mate-themes' in
|
||||
;; mate.scm will also need to be updated.
|
||||
(version "3.22.29")
|
||||
(version "3.22.30")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -678,7 +679,7 @@ application suites.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1y5vzdbgww9l7xcrg13azff2rs94kggkywmpcsh39h7w76wn8zd0"))
|
||||
"0rv5k8fyi2i19k4zncai6vf429s6zy3kncr8vb6f3m034z0sb951"))
|
||||
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
|
||||
"gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
|
||||
(outputs '("out" "bin" "doc"))
|
||||
|
@ -1362,15 +1363,15 @@ and routines to assist in editing internationalized text.")
|
|||
(define-public girara
|
||||
(package
|
||||
(name "girara")
|
||||
(version "0.2.8")
|
||||
(version "0.2.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/girara/download/girara-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18wss3sak3djip090v2vdbvq1mvkwcspfswc87zbvv3magihan98"))))
|
||||
"0lkxrfna818wkkr2f6mdzf15y5z8xl1b9592ylmzjbqsqya3w7x8"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("check" ,check)
|
||||
("gettext" ,gettext-minimal)
|
||||
|
@ -1379,13 +1380,7 @@ and routines to assist in editing internationalized text.")
|
|||
;; Listed in 'Requires.private' of 'girara.pc'.
|
||||
(propagated-inputs `(("gtk+" ,gtk+)))
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
`(,(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)
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'start-xserver
|
||||
;; Tests require a running X server.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
@ -1401,7 +1396,7 @@ and routines to assist in editing internationalized text.")
|
|||
(setenv "DBUS_FATAL_WARNINGS" "0")
|
||||
(zero? (system (string-append xorg-server "/bin/Xvfb "
|
||||
display " &")))))))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(home-page "https://pwmt.org/projects/girara/")
|
||||
(synopsis "Library for minimalistic gtk+3 user interfaces")
|
||||
(description "Girara is a library that implements a user interface that
|
||||
|
|
|
@ -2487,6 +2487,31 @@ Haskell library @code{regex-base}.")
|
|||
@code{libtre} (fork by Roman Cheplyaka).")
|
||||
(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
|
||||
(package
|
||||
(name "ghc-parsers")
|
||||
|
@ -9678,4 +9703,23 @@ serialization code.")
|
|||
disk space usage.")
|
||||
(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
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
`(("gettext" ,gettext-minimal)
|
||||
("perl" ,perl)
|
||||
("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")
|
||||
(description
|
||||
"This package provides lists of various ISO standards (e.g. country,
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
|
||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -150,7 +151,7 @@ and binary format defined in The Java Virtual Machine Specification.")
|
|||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-data
|
||||
(lambda _ (zero? (system* "make" "install-data")))))))
|
||||
(lambda _ (invoke "make" "install-data"))))))
|
||||
(native-inputs
|
||||
`(("jikes" ,jikes)
|
||||
("fastjar" ,fastjar)
|
||||
|
@ -175,6 +176,7 @@ language.")
|
|||
(uri (string-append "mirror://sourceforge/jamvm/jamvm/"
|
||||
"JamVM%20" version "/jamvm-"
|
||||
version ".tar.gz"))
|
||||
(patches (search-patches "jamvm-arm.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"06lhi03l3b0h48pc7x58bk9my2nrcf1flpmglvys3wyad6yraf36"))))
|
||||
|
@ -212,7 +214,13 @@ JNI.")
|
|||
"1cg0lga887qz5iizh6mlkxp01lciymrhmp7wzxpl6zpnldxmzrjx"))))
|
||||
(build-system gnu-build-system)
|
||||
(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
|
||||
(modify-phases %standard-phases
|
||||
(delete 'bootstrap)
|
||||
|
@ -245,19 +253,54 @@ JNI.")
|
|||
;; Without these JamVM options the build may freeze.
|
||||
(substitute* "bootstrap.sh"
|
||||
(("^\"\\$\\{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
|
||||
;; any of the dependencies required to build and run the tests.
|
||||
(substitute* "build.xml"
|
||||
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
|
||||
(zero? (system* "bash" "bootstrap.sh"
|
||||
(string-append "-Ddist.dir="
|
||||
(assoc-ref %outputs "out"))))))
|
||||
(invoke "bash" "bootstrap.sh"
|
||||
(string-append "-Ddist.dir="
|
||||
(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))))
|
||||
(native-inputs
|
||||
`(("jikes" ,jikes)
|
||||
("jamvm" ,jamvm-1-bootstrap)))
|
||||
("jamvm" ,jamvm-1-bootstrap)
|
||||
("unzip" ,unzip)
|
||||
("zip", zip)))
|
||||
(home-page "http://ant.apache.org")
|
||||
(synopsis "Build tool for Java")
|
||||
(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")))
|
||||
|
||||
;; Compile it all!
|
||||
(and (zero? (apply system* "jikes"
|
||||
(find-files "." "\\.java$")))
|
||||
(zero? (system* "fastjar" "cvfm"
|
||||
"ecj-bootstrap.jar" "manifest" ".")))))
|
||||
(and (apply invoke "jikes"
|
||||
(find-files "." "\\.java$"))
|
||||
(invoke "fastjar" "cvfm"
|
||||
"ecj-bootstrap.jar" "manifest" "."))))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((share (string-append (assoc-ref outputs "out")
|
||||
|
@ -394,7 +437,6 @@ requirement for all GNU Classpath releases after version 0.93.")
|
|||
args defaults))
|
||||
(apply system* ,java
|
||||
(append
|
||||
(list "-Xnocompact" "-Xnoinlining")
|
||||
;; Remove "-J" prefix
|
||||
(map (cut string-drop <> 2) vm-args)
|
||||
'("org.eclipse.jdt.internal.compiler.batch.Main")
|
||||
|
@ -453,7 +495,7 @@ the standard javac executable.")))
|
|||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'install 'install-data
|
||||
(lambda _ (zero? (system* "make" "install-data")))))))
|
||||
(lambda _ (invoke "make" "install-data"))))))
|
||||
(native-inputs
|
||||
`(("ecj-bootstrap" ,ecj-bootstrap)
|
||||
("ecj-javac-wrapper" ,ecj-javac-wrapper)
|
||||
|
@ -484,12 +526,20 @@ the standard javac executable.")))
|
|||
(for-each (lambda (tool)
|
||||
(with-output-to-file (string-append bin tool)
|
||||
(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 \
|
||||
gnu.classpath.tools.~a.~a $@"
|
||||
bash jamvm classpath tool
|
||||
(if (string=? "native2ascii" tool)
|
||||
"Native2ASCII" "Main"))))
|
||||
"Native2ASCII" "Main"))))))
|
||||
(chmod (string-append bin tool) #o755))
|
||||
(list "javah"
|
||||
"rmic"
|
||||
|
@ -562,7 +612,7 @@ machine.")))
|
|||
(("@Override") ""))
|
||||
#t))
|
||||
(add-after 'install 'install-data
|
||||
(lambda _ (zero? (system* "make" "install-data")))))))
|
||||
(lambda _ (invoke "make" "install-data"))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
|
@ -668,37 +718,35 @@ machine.")))
|
|||
(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source inputs #:allow-other-keys)
|
||||
(and (zero? (system* "tar" "xvf" source))
|
||||
(begin
|
||||
(chdir (string-append "icedtea6-" ,version))
|
||||
(mkdir "openjdk")
|
||||
(copy-recursively (assoc-ref inputs "openjdk-src") "openjdk")
|
||||
;; The convenient OpenJDK source bundle is no longer
|
||||
;; available for download, so we have to take the sources
|
||||
;; from the Mercurial repositories and change the Makefile
|
||||
;; to avoid tests for the OpenJDK zip archive.
|
||||
(with-directory-excursion "openjdk"
|
||||
(for-each (lambda (part)
|
||||
(mkdir part)
|
||||
(copy-recursively
|
||||
(assoc-ref inputs
|
||||
(string-append part "-src"))
|
||||
part))
|
||||
'("jdk" "corba"
|
||||
"langtools" "jaxp" "jaxws")))
|
||||
(with-directory-excursion "openjdk"
|
||||
(invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
|
||||
(rename-file "hg-checkout" "hotspot"))
|
||||
(substitute* "Makefile.in"
|
||||
(("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;")
|
||||
"echo \"trust me\";")
|
||||
;; The contents of the bootstrap directory must be
|
||||
;; writeable but when copying from the store they are
|
||||
;; not.
|
||||
(("mkdir -p lib/rt" line)
|
||||
(string-append line "; chmod -R u+w $(BOOT_DIR)")))
|
||||
(zero? (system* "chmod" "-R" "u+w" "openjdk"))
|
||||
#t))))
|
||||
(invoke "tar" "xvf" source)
|
||||
(chdir (string-append "icedtea6-" ,version))
|
||||
(mkdir "openjdk")
|
||||
(copy-recursively (assoc-ref inputs "openjdk-src") "openjdk")
|
||||
;; The convenient OpenJDK source bundle is no longer
|
||||
;; available for download, so we have to take the sources
|
||||
;; from the Mercurial repositories and change the Makefile
|
||||
;; to avoid tests for the OpenJDK zip archive.
|
||||
(with-directory-excursion "openjdk"
|
||||
(for-each (lambda (part)
|
||||
(mkdir part)
|
||||
(copy-recursively
|
||||
(assoc-ref inputs
|
||||
(string-append part "-src"))
|
||||
part))
|
||||
'("jdk" "corba"
|
||||
"langtools" "jaxp" "jaxws")))
|
||||
(with-directory-excursion "openjdk"
|
||||
(invoke "tar" "xvf" (assoc-ref inputs "hotspot-src"))
|
||||
(rename-file "hg-checkout" "hotspot"))
|
||||
(substitute* "Makefile.in"
|
||||
(("echo \"ERROR: No up-to-date OpenJDK zip available\"; exit -1;")
|
||||
"echo \"trust me\";")
|
||||
;; The contents of the bootstrap directory must be
|
||||
;; writeable but when copying from the store they are
|
||||
;; not.
|
||||
(("mkdir -p lib/rt" line)
|
||||
(string-append line "; chmod -R u+w $(BOOT_DIR)")))
|
||||
(invoke "chmod" "-R" "u+w" "openjdk")))
|
||||
(add-after 'unpack 'use-classpath
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((jvmlib (assoc-ref inputs "classpath"))
|
||||
|
@ -1036,23 +1084,22 @@ bootstrapping purposes.")
|
|||
(let ((dir (or dir
|
||||
(string-drop-right name 5))))
|
||||
(mkdir dir)
|
||||
(zero? (system* "tar" "xvf"
|
||||
(assoc-ref inputs name)
|
||||
"-C" dir
|
||||
"--strip-components=1"))))))
|
||||
(invoke "tar" "xvf"
|
||||
(assoc-ref inputs name)
|
||||
"-C" dir
|
||||
"--strip-components=1")))))
|
||||
(mkdir target)
|
||||
(and
|
||||
(zero? (system* "tar" "xvf" source
|
||||
"-C" target "--strip-components=1"))
|
||||
(chdir target)
|
||||
(unpack "openjdk-src" "openjdk.src")
|
||||
(with-directory-excursion "openjdk.src"
|
||||
(for-each unpack
|
||||
(filter (cut string-suffix? "-drop" <>)
|
||||
(map (match-lambda
|
||||
((name . _) name))
|
||||
inputs))))
|
||||
#t))))
|
||||
(invoke "tar" "xvf" source
|
||||
"-C" target "--strip-components=1")
|
||||
(chdir target)
|
||||
(unpack "openjdk-src" "openjdk.src")
|
||||
(with-directory-excursion "openjdk.src"
|
||||
(for-each unpack
|
||||
(filter (cut string-suffix? "-drop" <>)
|
||||
(map (match-lambda
|
||||
((name . _) name))
|
||||
inputs))))
|
||||
#t)))
|
||||
(add-after 'unpack 'fix-x11-extension-include-path
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "openjdk.src/jdk/make/sun/awt/mawt.gmk"
|
||||
|
@ -1277,17 +1324,19 @@ bootstrapping purposes.")
|
|||
(let ((line (read-line port)))
|
||||
(cond
|
||||
((eof-object? line) #t)
|
||||
((regexp-exec error-pattern line) #f)
|
||||
((regexp-exec error-pattern line)
|
||||
(error "test failed"))
|
||||
(else (loop)))))))
|
||||
(run-test (lambda (test)
|
||||
(system* "make" test)
|
||||
(invoke "make" test)
|
||||
(call-with-input-file
|
||||
(string-append "test/" test ".log")
|
||||
checker))))
|
||||
(or #t ; skip tests
|
||||
(and (run-test "check-hotspot")
|
||||
(run-test "check-langtools")
|
||||
(run-test "check-jdk"))))))
|
||||
(when #f ; skip tests
|
||||
(run-test "check-hotspot")
|
||||
(run-test "check-langtools")
|
||||
(run-test "check-jdk"))
|
||||
#t)))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((doc (string-append (assoc-ref outputs "doc")
|
||||
|
@ -1665,11 +1714,13 @@ new Date();"))
|
|||
;; result in the tests to be run.
|
||||
(substitute* "build.xml"
|
||||
(("depends=\"jars,test-jar\"") "depends=\"jars\""))
|
||||
(zero? (system* "bash" "bootstrap.sh"
|
||||
(string-append "-Ddist.dir="
|
||||
(assoc-ref outputs "out"))))))))))
|
||||
(invoke "bash" "bootstrap.sh"
|
||||
(string-append "-Ddist.dir="
|
||||
(assoc-ref outputs "out")))))))))
|
||||
(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
|
||||
;; requires Java 8.
|
||||
|
@ -1684,7 +1735,9 @@ new Date();"))
|
|||
(base32
|
||||
"1k28mka0m3isy9yr8gz84kz1f3f879rwaxrd44vdn9xbfwvwk86n"))))
|
||||
(native-inputs
|
||||
`(("jdk" ,icedtea-7 "jdk")))))
|
||||
`(("jdk" ,icedtea-7 "jdk")
|
||||
("zip" ,zip)
|
||||
("unzip" ,unzip)))))
|
||||
|
||||
(define-public ant-apache-bcel
|
||||
(package
|
||||
|
@ -1793,14 +1846,13 @@ new Date();"))
|
|||
(lambda (name)
|
||||
(mkdir-p name)
|
||||
(with-directory-excursion name
|
||||
(or (zero? (system* "tar"
|
||||
;; Use xz for repacked tarball.
|
||||
"--xz"
|
||||
"--extract"
|
||||
"--verbose"
|
||||
"--file" (assoc-ref inputs name)
|
||||
"--strip-components=1"))
|
||||
(error "failed to unpack tarball" name)))
|
||||
(invoke "tar"
|
||||
;; Use xz for repacked tarball.
|
||||
"--xz"
|
||||
"--extract"
|
||||
"--verbose"
|
||||
"--file" (assoc-ref inputs name)
|
||||
"--strip-components=1"))
|
||||
(copy-recursively (string-append name "/src/main/clojure/")
|
||||
"src/clj/"))
|
||||
'("core-specs-alpha-src"
|
||||
|
@ -1813,7 +1865,7 @@ new Date();"))
|
|||
;; The javadoc target is not built by default.
|
||||
(add-after 'build 'build-doc
|
||||
(lambda _
|
||||
(zero? (system* "ant" "javadoc"))))
|
||||
(invoke "ant" "javadoc")))
|
||||
;; Needed since no install target is provided.
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
|
@ -1975,7 +2027,8 @@ debugging, etc.")
|
|||
(lambda (in out)
|
||||
(display "Manifest-Version: 1.0
|
||||
Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
|
||||
out)))))
|
||||
out)))
|
||||
#t))
|
||||
(replace 'install (install-jars ".")))))
|
||||
(home-page "https://eclipse.org")
|
||||
(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)
|
||||
(dump-port in out)
|
||||
(display "Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
|
||||
out)))))
|
||||
out)))
|
||||
#t))
|
||||
(replace 'install (install-jars ".")))))
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))))
|
||||
|
@ -2475,7 +2529,7 @@ HDF5 files, building on the libraries provided by the HDF Group.")
|
|||
(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(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/")
|
||||
(synopsis "Java servlet API implementation")
|
||||
(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
|
||||
(replace 'unpack
|
||||
(lambda* (#:key source #:allow-other-keys)
|
||||
(and (mkdir "swt")
|
||||
(zero? (system* "unzip" source "-d" "swt"))
|
||||
(chdir "swt")
|
||||
(mkdir "src")
|
||||
(zero? (system* "unzip" "src.zip" "-d" "src")))))
|
||||
(mkdir "swt")
|
||||
(invoke "unzip" source "-d" "swt")
|
||||
(chdir "swt")
|
||||
(mkdir "src")
|
||||
(invoke "unzip" "src.zip" "-d" "src")))
|
||||
;; The classpath contains invalid icecat jars. Since we don't need
|
||||
;; anything other than the JDK on the classpath, we can simply unset
|
||||
;; it.
|
||||
|
@ -2536,7 +2590,7 @@ API and version 2.1 of the Java ServerPages API.")
|
|||
(mkdir-p lib)
|
||||
(setenv "OUTPUT_DIR" lib)
|
||||
(with-directory-excursion "src"
|
||||
(zero? (system* "bash" "build.sh"))))))
|
||||
(invoke "bash" "build.sh")))))
|
||||
(add-after 'install 'install-native
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(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)
|
||||
(mkdir "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
|
||||
;; tests.
|
||||
(add-after 'unpack 'delete-tests
|
||||
|
@ -2764,7 +2818,8 @@ private Method[] getSortedMethods() {
|
|||
return _allMethods;
|
||||
}
|
||||
|
||||
private Method[] allMethods = getSortedMethods();")))))
|
||||
private Method[] allMethods = getSortedMethods();")))
|
||||
#t))
|
||||
(add-before 'build 'do-not-use-bundled-qdox
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "build.xml"
|
||||
|
@ -3055,7 +3110,8 @@ reusing it in maven.")
|
|||
(lambda _
|
||||
;; Requires an older version of plexus container
|
||||
(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
|
||||
(lambda _
|
||||
(mkdir-p "build/classes/META-INF/plexus")
|
||||
|
@ -3248,15 +3304,15 @@ Compiler component.")))
|
|||
(add-before 'build 'generate-models
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(define (modello-single-mode file version mode)
|
||||
(zero? (system* "java"
|
||||
"org.codehaus.modello.ModelloCli"
|
||||
file mode "src/main/java" version
|
||||
"false" "true")))
|
||||
(invoke "java"
|
||||
"org.codehaus.modello.ModelloCli"
|
||||
file mode "src/main/java" version
|
||||
"false" "true"))
|
||||
(let ((file "src/main/mdo/settings-security.mdo"))
|
||||
(and
|
||||
(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-writer")))))
|
||||
(modello-single-mode file "1.0.0" "xpp3-writer"))
|
||||
#t))
|
||||
(add-before 'build 'generate-components.xml
|
||||
(lambda _
|
||||
(mkdir-p "build/classes/META-INF/plexus")
|
||||
|
@ -3285,10 +3341,12 @@ Compiler component.")))
|
|||
</configuration>\n
|
||||
</component>\n
|
||||
</components>\n
|
||||
</component-set>\n")))))
|
||||
</component-set>\n")))
|
||||
#t))
|
||||
(add-before 'check 'fix-paths
|
||||
(lambda _
|
||||
(copy-recursively "src/test/resources" "target"))))))
|
||||
(copy-recursively "src/test/resources" "target")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-plexus-cipher" ,java-plexus-cipher)))
|
||||
(native-inputs
|
||||
|
@ -3511,7 +3569,8 @@ XSD and documentation.")
|
|||
(with-directory-excursion "modello-plugins/modello-plugin-xml/src/test"
|
||||
(substitute*
|
||||
"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
|
||||
`(("java-modello-core" ,java-modello-core)
|
||||
("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
|
||||
;; of unpackaged, complicated tools.
|
||||
(mkdir "dist")
|
||||
(zero? (system* "jar"
|
||||
"-cf" (string-append "dist/asm-" ,version ".jar")
|
||||
"-C" "output/build/tmp" "."))))
|
||||
(invoke "jar"
|
||||
"-cf" (string-append "dist/asm-" ,version ".jar")
|
||||
"-C" "output/build/tmp" ".")))
|
||||
(replace 'install
|
||||
(install-jars "dist")))))
|
||||
(native-inputs
|
||||
|
@ -4105,7 +4164,8 @@ are many features, including:
|
|||
(mkdir-p "build/conf")
|
||||
(call-with-output-file "build/conf/MANIFEST.MF"
|
||||
(lambda (file)
|
||||
(format file "Manifest-Version: 1.0\n")))))
|
||||
(format file "Manifest-Version: 1.0\n")))
|
||||
#t))
|
||||
(replace 'install
|
||||
(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 "build.tests") (value "build/test-classes")))
|
||||
(property (@ (name "build.dest") (value "build/classes"))))
|
||||
port)))))
|
||||
port)))
|
||||
#t))
|
||||
(replace 'install (install-jars "build")))))
|
||||
(native-inputs
|
||||
`(("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,
|
||||
;; we get the error "This code should have never made it into slf4j-api.jar"
|
||||
(delete-file-recursively "build/classes/org/slf4j/impl")
|
||||
(zero? (system* "jar" "-cf" "build/jar/slf4j-api.jar" "-C"
|
||||
"build/classes" "."))))
|
||||
(invoke "jar" "-cf" "build/jar/slf4j-api.jar" "-C"
|
||||
"build/classes" ".")))
|
||||
(add-before 'check 'dont-test-abstract-classes
|
||||
(lambda _
|
||||
;; 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\" />")
|
||||
(string-append "<include name=\"**/*Test.java\" />"
|
||||
"<exclude name=\"**/MultithreadedInitializationTest"
|
||||
".java\" />"))))))))
|
||||
".java\" />")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("java-hamcrest-core" ,java-hamcrest-core)))
|
||||
|
@ -5848,10 +5910,9 @@ time.")
|
|||
(setenv "CLASSPATH"
|
||||
(string-append (getcwd) ":" (getenv "CLASSPATH")))
|
||||
;; ... and build test helper classes here:
|
||||
(zero?
|
||||
(apply system*
|
||||
`("javac" "-d" "."
|
||||
,@(find-files "slf4j-api/src/test" ".*\\.java")))))))))
|
||||
(apply invoke
|
||||
`("javac" "-d" "."
|
||||
,@(find-files "slf4j-api/src/test" ".*\\.java"))))))))
|
||||
(inputs
|
||||
`(("java-junit" ,java-junit)
|
||||
("java-hamcrest-core" ,java-hamcrest-core)
|
||||
|
@ -5950,11 +6011,12 @@ tree walking, and translation.")
|
|||
(add-before 'build 'generate-grammar
|
||||
(lambda _
|
||||
(with-directory-excursion "src/org/antlr/stringtemplate/language/"
|
||||
(every (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(zero? (system* "antlr" file)))
|
||||
'("template.g" "angle.bracket.template.g" "action.g"
|
||||
"eval.g" "group.g" "interface.g"))))))))
|
||||
(for-each (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(invoke "antlr" file))
|
||||
'("template.g" "angle.bracket.template.g" "action.g"
|
||||
"eval.g" "group.g" "interface.g")))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("antlr" ,antlr2)
|
||||
("java-junit" ,java-junit)))
|
||||
|
@ -6012,10 +6074,11 @@ StringTemplate also powers ANTLR.")
|
|||
(add-before 'build 'generate-grammar
|
||||
(lambda _
|
||||
(with-directory-excursion "src/org/stringtemplate/v4/compiler/"
|
||||
(every (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(zero? (system* "antlr3" file)))
|
||||
'("STParser.g" "Group.g" "CodeGenerator.g"))))))))
|
||||
(for-each (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(invoke "antlr3" file))
|
||||
'("STParser.g" "Group.g" "CodeGenerator.g")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("antlr3" ,antlr3-bootstrap)
|
||||
("antlr2" ,antlr2)
|
||||
|
@ -6082,14 +6145,15 @@ StringTemplate also powers ANTLR.")
|
|||
"/lib")
|
||||
".*\\.jar"))
|
||||
" org.antlr.Tool $*"))))
|
||||
(chmod (string-append bin "/antlr3") #o755))))
|
||||
(chmod (string-append bin "/antlr3") #o755))
|
||||
#t))
|
||||
(add-before 'build 'generate-grammar
|
||||
(lambda _
|
||||
(chdir "tool/src/main/antlr3/org/antlr/grammar/v3/")
|
||||
(for-each (lambda (file)
|
||||
(display file)
|
||||
(newline)
|
||||
(system* "antlr3" file))
|
||||
(invoke "antlr3" file))
|
||||
'("ANTLR.g" "ANTLRTreePrinter.g" "ActionAnalysis.g"
|
||||
"AssignTokenTypesWalker.g"
|
||||
"ActionTranslator.g" "TreeToNFAConverter.g"
|
||||
|
@ -6100,14 +6164,13 @@ StringTemplate also powers ANTLR.")
|
|||
(substitute* "ANTLRv3Parser.java"
|
||||
(("public Object getTree") "public CommonTree getTree"))
|
||||
(chdir "../../../../../java")
|
||||
(system* "antlr" "-o" "org/antlr/tool"
|
||||
"org/antlr/tool/serialize.g")
|
||||
(substitute* "org/antlr/tool/LeftRecursiveRuleAnalyzer.java"
|
||||
(("import org.antlr.grammar.v3.\\*;") "import org.antlr.grammar.v3.*;
|
||||
import org.antlr.grammar.v3.ANTLRTreePrinter;"))
|
||||
(substitute* "org/antlr/tool/ErrorManager.java"
|
||||
(("case NO_SUCH_ATTRIBUTE_PASS_THROUGH:") ""))
|
||||
(chdir "../../../..")))
|
||||
(chdir "../../../..")
|
||||
#t))
|
||||
(add-before 'build 'fix-build-xml
|
||||
(lambda _
|
||||
(substitute* "build.xml"
|
||||
|
@ -6118,7 +6181,8 @@ import org.antlr.grammar.v3.ANTLRTreePrinter;"))
|
|||
<include name=\"**/*.sti\"/>
|
||||
<include name=\"**/STLexer.tokens\"/>
|
||||
</fileset>
|
||||
</copy><exec")))))))
|
||||
</copy><exec"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("antlr" ,antlr2)
|
||||
("antlr3" ,antlr3-bootstrap)))
|
||||
|
@ -6207,19 +6271,19 @@ tree walking, and translation.")
|
|||
import org.antlr.grammar.v2.TreeToNFAConverter;\n
|
||||
import org.antlr.grammar.v2.DefineGrammarItemsWalker;\n
|
||||
import org.antlr.grammar.v2.ANTLRTreePrinter;"))
|
||||
(and
|
||||
(with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
|
||||
(every (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(zero? (system* "antlr" file)))
|
||||
'("antlr.g" "antlr.print.g" "assign.types.g"
|
||||
"buildnfa.g" "codegen.g" "define.g")))
|
||||
(with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
|
||||
(every (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(zero? (system* "antlr3" file)))
|
||||
'("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
|
||||
"ANTLRv3Tree.g"))))))
|
||||
(with-directory-excursion "tool/src/main/antlr2/org/antlr/grammar/v2/"
|
||||
(for-each (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(invoke "antlr" file))
|
||||
'("antlr.g" "antlr.print.g" "assign.types.g"
|
||||
"buildnfa.g" "codegen.g" "define.g")))
|
||||
(with-directory-excursion "tool/src/main/antlr3/org/antlr/grammar/v3/"
|
||||
(for-each (lambda (file)
|
||||
(format #t "~a\n" file)
|
||||
(invoke "antlr3" file))
|
||||
'("ActionAnalysis.g" "ActionTranslator.g" "ANTLRv3.g"
|
||||
"ANTLRv3Tree.g")))
|
||||
#t))
|
||||
(add-before 'build 'fix-build-xml
|
||||
(lambda _
|
||||
(substitute* "build.xml"
|
||||
|
@ -6282,7 +6346,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
|
|||
"/lib")
|
||||
".*\\.jar"))
|
||||
" org.antlr.Tool $*"))))
|
||||
(chmod (string-append bin "/antlr3") #o755))))
|
||||
(chmod (string-append bin "/antlr3") #o755))
|
||||
#t))
|
||||
(add-before 'build 'generate-grammar
|
||||
(lambda _
|
||||
(let ((dir "src/org/antlr/tool/"))
|
||||
|
@ -6306,7 +6371,8 @@ import org.antlr.grammar.v2.ANTLRTreePrinter;"))
|
|||
<include name=\"**/*.sti\"/>
|
||||
<include name=\"**/STLexer.tokens\"/>
|
||||
</fileset>
|
||||
</copy><exec")))))))
|
||||
</copy><exec"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("antlr" ,antlr2)))
|
||||
(inputs
|
||||
|
@ -6931,7 +6997,8 @@ the packageadmin service.")
|
|||
(string-append
|
||||
"version=" ,version "\n"
|
||||
"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")
|
||||
(synopsis "Utility classes and extensions to be used in OPS4J projects")
|
||||
(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.
|
||||
(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]*")
|
||||
,(package-version java-aqute-bndlib))))))))
|
||||
,(package-version java-aqute-bndlib)))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("lang" ,java-ops4j-base-lang)
|
||||
("io" ,java-ops4j-base-io)
|
||||
|
@ -7245,7 +7313,8 @@ the system under test at the same time.")
|
|||
(add-before 'configure 'chdir
|
||||
(lambda _
|
||||
;; Tests assume we are in this directory
|
||||
(chdir "core/pax-exam-spi")))
|
||||
(chdir "core/pax-exam-spi")
|
||||
#t))
|
||||
(add-before 'check 'fix-tests
|
||||
(lambda _
|
||||
;; One test checks that this file is present.
|
||||
|
@ -7264,7 +7333,8 @@ the system under test at the same time.")
|
|||
(("target") "build"))
|
||||
;; 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"
|
||||
(("AssertionError") "IllegalArgumentException")))))))
|
||||
(("AssertionError") "IllegalArgumentException"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-ops4j-pax-exam-core" ,java-ops4j-pax-exam-core)
|
||||
("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")
|
||||
(("@projectversion@") ,version)
|
||||
(("@projectgroupid@") "com.fasterxml.jackson.core")
|
||||
(("@projectartifactid@") "jackson-core")))))
|
||||
(("@projectartifactid@") "jackson-core")))
|
||||
#t))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources"
|
||||
"build/classes")))
|
||||
"build/classes")
|
||||
#t))
|
||||
(add-before 'check 'copy-test-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/test/resources"
|
||||
"build/test-classes"))))))
|
||||
"build/test-classes")
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("junit" ,java-junit)
|
||||
("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")
|
||||
(("@projectversion@") ,version)
|
||||
(("@projectgroupid@") "com.fasterxml.jackson.databind")
|
||||
(("@projectartifactid@") "jackson-databind")))))
|
||||
(("@projectartifactid@") "jackson-databind")))
|
||||
#t))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources" "build/classes"))))))
|
||||
(copy-recursively "src/main/resources" "build/classes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
|
||||
("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)))
|
||||
|
@ -7456,10 +7531,12 @@ configuration.")
|
|||
(("@package@") "com.fasterxml.jackson.module.jaxb")
|
||||
(("@projectversion@") ,version)
|
||||
(("@projectgroupid@") "com.fasterxml.jackson.module.jaxb")
|
||||
(("@projectartifactid@") "jackson-module-jaxb")))))
|
||||
(("@projectartifactid@") "jackson-module-jaxb")))
|
||||
#t))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "jaxb/src/main/resources" "build/classes"))))))
|
||||
(copy-recursively "jaxb/src/main/resources" "build/classes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
|
||||
("java-fasterxml-jackson-core" ,java-fasterxml-jackson-core)
|
||||
|
@ -7524,7 +7601,8 @@ configuration.")
|
|||
(("@package@") "com.fasterxml.jackson.dataformat.yaml")
|
||||
(("@projectversion@") ,version)
|
||||
(("@projectgroupid@") "com.fasterxml.jackson.dataformat.yaml")
|
||||
(("@projectartifactid@") "jackson-dataformat-yaml"))))))))
|
||||
(("@projectartifactid@") "jackson-dataformat-yaml")))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-fasterxml-jackson-annotations" ,java-fasterxml-jackson-annotations)
|
||||
("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
|
||||
(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/msv")))
|
||||
(delete-file-recursively "src/test/java/wstxtest/msv")
|
||||
#t))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources" "build/classes"))))))
|
||||
(copy-recursively "src/main/resources" "build/classes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("stax2" ,java-stax2-api)))
|
||||
(native-inputs
|
||||
|
@ -7634,10 +7714,12 @@ interface and high-performance Typed Access API.")
|
|||
(("@package@") "com.fasterxml.jackson.dataformat.xml")
|
||||
(("@projectversion@") ,version)
|
||||
(("@projectgroupid@") "com.fasterxml.jackson.dataformat.xml")
|
||||
(("@projectartifactid@") "jackson-dataformat-xml")))))
|
||||
(("@projectartifactid@") "jackson-dataformat-xml")))
|
||||
#t))
|
||||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "src/main/resources" "build/classes"))))))
|
||||
(copy-recursively "src/main/resources" "build/classes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("jackson-annotations" ,java-fasterxml-jackson-annotations)
|
||||
("jackson-core" ,java-fasterxml-jackson-core)
|
||||
|
@ -8112,15 +8194,15 @@ those in Perl and JavaScript.")
|
|||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(system* "ant" "compile-tests")
|
||||
(invoke "ant" "compile-tests")
|
||||
;; we don't have groovy
|
||||
(substitute* "src/test/resources/testng.xml"
|
||||
(("<class name=\"test.groovy.GroovyTest\" />") ""))
|
||||
(zero? (system* "java" "-cp" (string-append (getenv "CLASSPATH")
|
||||
":build/classes"
|
||||
":build/test-classes")
|
||||
"-Dtest.resources.dir=src/test/resources"
|
||||
"org.testng.TestNG" "src/test/resources/testng.xml")))))))
|
||||
(invoke "java" "-cp" (string-append (getenv "CLASSPATH")
|
||||
":build/classes"
|
||||
":build/test-classes")
|
||||
"-Dtest.resources.dir=src/test/resources"
|
||||
"org.testng.TestNG" "src/test/resources/testng.xml"))))))
|
||||
(propagated-inputs
|
||||
`(("junit" ,java-junit)
|
||||
("java-jsr305" ,java-jsr305)
|
||||
|
@ -8184,8 +8266,7 @@ to use.")
|
|||
":build/classes"
|
||||
":build/test-classes")
|
||||
"org.testng.TestNG" "-testclass"
|
||||
"build/test-classes/com/neilalexander/jnacl/NaClTest.class")
|
||||
#t)))))
|
||||
"build/test-classes/com/neilalexander/jnacl/NaClTest.class"))))))
|
||||
(native-inputs
|
||||
`(("java-testng" ,java-testng)
|
||||
("java-fest-util" ,java-fest-util)
|
||||
|
@ -8368,8 +8449,7 @@ algorithms and xxHash hashing algorithm.")
|
|||
(replace 'build
|
||||
(lambda _
|
||||
(invoke "ant" "-f" "ant/jdk15+.xml" "build-provider")
|
||||
(invoke "ant" "-f" "ant/jdk15+.xml" "build")
|
||||
#t))
|
||||
(invoke "ant" "-f" "ant/jdk15+.xml" "build")))
|
||||
;; FIXME: the tests freeze.
|
||||
;; (replace 'check
|
||||
;; (lambda _
|
||||
|
@ -8547,7 +8627,8 @@ done to the IDE or continuous integration servers which simplifies adoption.")
|
|||
(add-before 'build 'copy-resources
|
||||
(lambda _
|
||||
(copy-recursively "powermock-core/src/main/resources"
|
||||
"build/classes"))))))
|
||||
"build/classes")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("reflect" ,java-powermock-reflect)
|
||||
("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
|
||||
(substitute* (find-files "powermock-modules/powermock-module-junit4"
|
||||
"PowerMockJUnit4MethodValidator.java")
|
||||
(("4.12") "4.12-SNAPSHOT")))))))
|
||||
(("4.12") "4.12-SNAPSHOT"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("core" ,java-powermock-core)
|
||||
("reflect" ,java-powermock-reflect)
|
||||
|
@ -9069,8 +9151,7 @@ that is part of the SWT Tools project.")
|
|||
(string-append "-I" (assoc-ref inputs "jdk")
|
||||
"/include/linux")
|
||||
"-fPIC" "-O2")
|
||||
(invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o")
|
||||
#t)))
|
||||
(invoke "gcc" "-o" "libjansi.so" "-shared" "jansi_ttyname.o"))))
|
||||
(add-before 'build 'install-native
|
||||
(lambda _
|
||||
(let ((dir (string-append "build/classes/META-INF/native/"
|
||||
|
@ -9115,7 +9196,7 @@ console output.")
|
|||
(modify-phases %standard-phases
|
||||
(add-after 'check 'clear-term
|
||||
(lambda _
|
||||
(zero? (system* "echo" "-e" "\\e[0m")))))))
|
||||
(invoke "echo" "-e" "\\e[0m"))))))
|
||||
(inputs
|
||||
`(("java-jansi-native" ,java-jansi-native)))
|
||||
(native-inputs
|
||||
|
@ -9579,7 +9660,8 @@ graphs, and pie charts.")
|
|||
'("src/java/org/apache/commons/httpclient/HttpContentTooLargeException.java"
|
||||
"src/examples/TrivialApp.java" "src/examples/ClientApp.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
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "ant" "dist"
|
||||
|
@ -9629,7 +9711,8 @@ authentication, HTTP state management, and HTTP connection management.")
|
|||
(lambda _
|
||||
(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/hdfs")))))))
|
||||
"commons-vfs2/src/main/java/org/apache/commons/vfs2/provider/hdfs"))
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-commons-collections4" ,java-commons-collections4)
|
||||
("java-commons-compress" ,java-commons-compress)
|
||||
|
@ -9940,7 +10023,8 @@ jsch-agent-proxy with JSch.")))
|
|||
(find-files "." ".*.properties")
|
||||
(find-files "." ".*.xsd")
|
||||
(find-files "." ".*.xsl")
|
||||
(find-files "." ".*.xml"))))))
|
||||
(find-files "." ".*.xml"))))
|
||||
#t))
|
||||
(add-before 'build 'fix-vfs
|
||||
(lambda _
|
||||
(substitute*
|
||||
|
@ -9955,8 +10039,7 @@ jsch-agent-proxy with JSch.")))
|
|||
(add-before 'install 'repack
|
||||
(lambda _
|
||||
(invoke "jar" "-cmf" "build/classes/META-INF/MANIFEST.MF" "build/jar/ivy.jar"
|
||||
"-C" "build/classes" ".")
|
||||
#t))
|
||||
"-C" "build/classes" ".")))
|
||||
(add-after 'install 'install-bin
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
|
||||
|
@ -10169,7 +10252,8 @@ and @code{ISimpleCompiler} interfaces.")
|
|||
(modify-phases %standard-phases
|
||||
(add-before 'configure 'chdir
|
||||
(lambda _
|
||||
(chdir "janino"))))))
|
||||
(chdir "janino")
|
||||
#t)))))
|
||||
(inputs
|
||||
`(("java-commons-compiler" ,java-commons-compiler)))
|
||||
(native-inputs
|
||||
|
@ -10194,7 +10278,9 @@ static code analysis or code manipulation.")))
|
|||
"1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(delete-file-recursively "logback-access/lib"))))
|
||||
'(begin
|
||||
(delete-file-recursively "logback-access/lib")
|
||||
#t))))
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:jar-name "logback.jar"
|
||||
|
|
|
@ -754,7 +754,7 @@ word compounding or character encoding.")
|
|||
(name (match variant
|
||||
("classique" "hunspell-dict-fr")
|
||||
(_ (string-append "hunspell-dict-fr-" variant))))
|
||||
(version "6.1")
|
||||
(version "6.2")
|
||||
(source (origin
|
||||
(uri (string-append
|
||||
"http://www.dicollecte.org/download/fr/hunspell-french-dictionaries-v"
|
||||
|
@ -762,7 +762,7 @@ word compounding or character encoding.")
|
|||
(method url-fetch)
|
||||
(sha256
|
||||
(base32
|
||||
"0w2hzh36wj3lsj2yd4mh7z7547dg452sywj79vnzx27csclwqshc"))))
|
||||
"139hfrn5p87sl8hqmgkf6sgvnxrk2mm8vd8xsm8sm98qjnwlg0f9"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs `(("unzip" ,unzip)))
|
||||
(arguments
|
||||
|
|
|
@ -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.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.17.5")
|
||||
(define %linux-libre-hash "0pldqw7f4nhziw3r73l339d79aijxhy6anf1ryiy3makip6gkib1")
|
||||
(define %linux-libre-version "4.17.6")
|
||||
(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm")
|
||||
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
|
@ -411,8 +411,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
%linux-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.54")
|
||||
(define %linux-libre-4.14-hash "027138z7p5ld1zyrxq1xjc7x3b7wbgikh7gn2xfvwm9gn8qpazki")
|
||||
(define %linux-libre-4.14-version "4.14.55")
|
||||
(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(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))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.111"
|
||||
"0ld57627k6mjp14x5bvndakj6lc4l31zp2yq74h7ski2g3k7ppk2"
|
||||
(make-linux-libre "4.9.112"
|
||||
"1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.139"
|
||||
"0x58ykgx7vbv23q763ydifi548mz39nal7wbvrrl4i9ndk7pzfzz"
|
||||
(make-linux-libre "4.4.140"
|
||||
"10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
@ -537,15 +537,15 @@ at login. Local and dynamic reconfiguration are its key features.")
|
|||
(define-public psmisc
|
||||
(package
|
||||
(name "psmisc")
|
||||
(version "22.21")
|
||||
(version "23.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/psmisc/psmisc/psmisc-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nhlm1vrrwn4a845p6y4nnnb4liq70n74zbdd5dq844jc6nkqclp"))))
|
||||
"0c5s94hqpwfmyswx2f96gifa6wdbpxxpkyxcrlzbxpvmrxsd911f"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(home-page "https://gitlab.com/psmisc/psmisc")
|
||||
|
@ -975,15 +975,8 @@ intercept and print the system calls executed by the program.")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z"))
|
||||
(patches (search-patches "alsa-lib-add-environment-variable.patch"))))
|
||||
"096pwrnhj36yndldvs2pj4r871zhcgisks0is78f1jkjn9sd4b2z"))))
|
||||
(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/")
|
||||
(synopsis "The Advanced Linux Sound Architecture libraries")
|
||||
(description
|
||||
|
@ -3049,15 +3042,15 @@ Linux Device Mapper multipathing driver:
|
|||
(define-public libaio
|
||||
(package
|
||||
(name "libaio")
|
||||
(version "0.3.110")
|
||||
(version "0.3.111")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list
|
||||
(string-append "mirror://debian/pool/main/liba/libaio/"
|
||||
name "_" version ".orig.tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0"))))
|
||||
(uri (list
|
||||
(string-append "https://releases.pagure.org/libaio/"
|
||||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0ajhzbqjwsmz51gwccfyw6w9k4j4gmxcl2ph30sfn2gxv0d8gkv2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags
|
||||
|
@ -3065,7 +3058,7 @@ Linux Device Mapper multipathing driver:
|
|||
#:test-target "partcheck" ; need root for a full 'check'
|
||||
#:phases
|
||||
(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")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
(name "bluez")
|
||||
(version "5.49")
|
||||
(version "5.50")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -3107,7 +3100,7 @@ Bluetooth audio output devices like headphones or loudspeakers.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15ffsaz7l3fgdg03l7g1xx9jw7xgs6pc548zxqsxawsca5x1sc1k"))))
|
||||
"048r91vx9gs5nwwbah2s0xig04nwk14c5s0vb7qmaqdvighsmz2z"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
@ -3290,7 +3283,7 @@ and copy/paste text in the console and in xterm.")
|
|||
("which" ,which)
|
||||
;; The tests need 'grep' with perl regexp support.
|
||||
("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")
|
||||
(description "Btrfs is a @dfn{copy-on-write} (CoW) file system for Linux
|
||||
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
|
||||
(package
|
||||
(name "rng-tools")
|
||||
(version "6.2")
|
||||
(version "6.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j"))))
|
||||
"1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
(define-public lsof
|
||||
(package
|
||||
(name "lsof")
|
||||
(version "4.89")
|
||||
(version "4.91")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -53,7 +53,7 @@
|
|||
(string-append "ftp://ftp.mirrorservice.org/sites/"
|
||||
"lsof.itap.purdue.edu/pub/tools/unix/lsof")))))
|
||||
(sha256
|
||||
(base32 "061p18v0mhzq517791xkjs8a5dfynq1418a1mwxpji69zp2jzb41"))))
|
||||
(base32 "18sh4hbl9jw2szkf0gvgan8g13f3g4c6s2q9h3zq5gsza9m99nn9"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
(arguments
|
||||
|
@ -73,14 +73,16 @@
|
|||
(add-after 'configure 'patch-timestamps
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("`date`") "`date --date=@1`"))))
|
||||
(("`date`") "`date --date=@1`"))
|
||||
#t))
|
||||
(add-before 'check 'disable-failing-tests
|
||||
(lambda _
|
||||
(substitute* "tests/Makefile"
|
||||
;; Fails with ‘ERROR!!! client gethostbyaddr() failure’.
|
||||
(("(STDTST=.*) LTsock" _ prefix) prefix)
|
||||
;; Fails without access to a remote NFS server.
|
||||
(("(OPTTST=.*) LTnfs" _ prefix) prefix))))
|
||||
(("(OPTTST=.*) LTnfs" _ prefix) prefix))
|
||||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(with-directory-excursion "tests"
|
||||
|
|
|
@ -1071,15 +1071,15 @@ which can add many functionalities to the base client.")
|
|||
(define-public msmtp
|
||||
(package
|
||||
(name "msmtp")
|
||||
(version "1.6.6")
|
||||
(version "1.6.8")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/msmtp/msmtp/" version
|
||||
(uri (string-append "https://marlam.de/msmtp/releases/"
|
||||
"/msmtp-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ppvww0sb09bnsrpqnvlrn8vx231r24xn2iiwpy020mxc8gxn5fs"))))
|
||||
"1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libidn" ,libidn)
|
||||
|
@ -1089,7 +1089,7 @@ which can add many functionalities to the base client.")
|
|||
("gsasl" ,gsasl)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://msmtp.sourceforge.net/")
|
||||
(home-page "https://marlam.de/msmtp/")
|
||||
(arguments
|
||||
`(#:configure-flags (list "--with-libgsasl"
|
||||
"--with-libidn"
|
||||
|
|
|
@ -2798,7 +2798,7 @@ parts of it.")
|
|||
(define-public openblas
|
||||
(package
|
||||
(name "openblas")
|
||||
(version "0.2.20")
|
||||
(version "0.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2807,7 +2807,7 @@ parts of it.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bd03c5xni0bla0wg1wba841b36b0sg13sjja955kn5xzvy4i61a"))))
|
||||
"14a9vyvp2k5zpd0axbnqk0d3khc1v3cck10nb5fj7d2sgn8490ky"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
|
@ -2846,6 +2846,16 @@ parts of it.")
|
|||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(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
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Get libgfortran found when building in utest.
|
||||
|
@ -2857,6 +2867,11 @@ parts of it.")
|
|||
`(("fortran-lib" ,gfortran "lib")))
|
||||
(native-inputs
|
||||
`(("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)
|
||||
("perl" ,perl)))
|
||||
(home-page "http://www.openblas.net/")
|
||||
|
|
|
@ -25,8 +25,10 @@
|
|||
#:use-module (gnu packages cross-base)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix 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"))
|
||||
(package
|
||||
(name "mes")
|
||||
(version "0.16")
|
||||
(version "0.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0c4vz1qw767af5h615055hh8zjwwmwf5mwkb64l0l921zaa9hg2n"))))
|
||||
"0qghlbx2qn674q8vckxpzsd0p845kclg457bw6r25jpmslgm0bz2"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(propagated-inputs
|
||||
|
@ -96,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
|||
`(("i686-linux-binutils" ,(cross-binutils 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
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||
;;; Copyright © 2016, 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; 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 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; 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.")
|
||||
(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
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Tonton <tonton@riseup.net>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -315,6 +316,35 @@ more.")
|
|||
between different versions of ØMQ.")
|
||||
(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
|
||||
(package
|
||||
(name "librdkafka")
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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
|
@ -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)
|
|
@ -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 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. "
|
||||
"Skipping all symlinking.")
|
||||
printed_symlink_error = True
|
||||
- if is_elf_platform() and os.path.isfile(outname):
|
||||
- if os.path.isfile(outname):
|
||||
- try:
|
||||
- e = depfixer.Elf(outname, False)
|
||||
- e.fix_rpath(install_rpath)
|
||||
- depfixer.fix_rpath(outname, install_rpath, False)
|
||||
- except SystemExit as e:
|
||||
- if isinstance(e.code, int) and e.code == 0:
|
||||
- pass
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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()));
|
||||
}
|
|
@ -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,
|
|
@ -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);
|
||||
|
|
@ -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
|
||||
|
|
@ -8,15 +8,15 @@ different file formats) called ZATHURA_PLUGIN_PATH. Command line option
|
|||
-p still takes precedence.
|
||||
|
||||
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 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/zathura/zathura.c b/zathura/zathura.c
|
||||
index 589dd28..375ec54 100644
|
||||
--- a/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->plugins.manager != NULL);
|
||||
|
||||
|
@ -28,8 +28,5 @@ index 589dd28..375ec54 100644
|
|||
+ dir = g_getenv("ZATHURA_PLUGIN_PATH");
|
||||
+
|
||||
if (dir != NULL) {
|
||||
girara_list_t* paths = girara_split_path_array(dir);
|
||||
GIRARA_LIST_FOREACH(paths, char*, iter, path)
|
||||
--
|
||||
2.3.1
|
||||
|
||||
set_plugin_dir(zathura, dir);
|
||||
#ifdef ZATHURA_PLUGINDIR
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -37,6 +37,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (gnu packages)
|
||||
|
@ -343,26 +344,32 @@ reading and editing of existing PDF files.")
|
|||
(define-public zathura-cb
|
||||
(package
|
||||
(name "zathura-cb")
|
||||
(version "0.1.7")
|
||||
(version "0.1.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/zathura-cb/download/zathura-cb-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0r4viisycj39kaz4281cmkr7n9w5q96dmlf7nf45n8zq8qy2npw3"))))
|
||||
"1i6cf0vks501cggwvfsl6qb7mdaf3sszdymphimfvnspw810faj5"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libarchive" ,libarchive)
|
||||
("zathura" ,zathura)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "PLUGINDIR=" %output "/lib/zathura")
|
||||
"CC=gcc")
|
||||
#:tests? #f ; Package does not contain tests.
|
||||
`(#:tests? #f ; package does not contain tests
|
||||
#: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/")
|
||||
(synopsis "Comic book support for zathura (libarchive backend)")
|
||||
(description "The zathura-cb plugin adds comic book support to zathura
|
||||
|
@ -372,26 +379,32 @@ using libarchive.")
|
|||
(define-public zathura-ps
|
||||
(package
|
||||
(name "zathura-ps")
|
||||
(version "0.2.5")
|
||||
(version "0.2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/zathura-ps/download/zathura-ps-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x4knqja8pw2a5cb3y2209nr3iddj1z8nwasy48v5nprj61fdxqj"))))
|
||||
"0wygq89nyjrjnsq7vbpidqdsirjm6iq4w2rijzwpk2f83ys8bc3y"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libspectre" ,libspectre)
|
||||
("zathura" ,zathura)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "PLUGINDIR=" %output "/lib/zathura")
|
||||
"CC=gcc")
|
||||
#:tests? #f ; Package does not contain tests.
|
||||
`(#:tests? #f ; package does not contain tests
|
||||
#: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/")
|
||||
(synopsis "PS support for zathura (libspectre backend)")
|
||||
(description "The zathura-ps plugin adds PS support to zathura
|
||||
|
@ -401,27 +414,33 @@ using libspectre.")
|
|||
(define-public zathura-djvu
|
||||
(package
|
||||
(name "zathura-djvu")
|
||||
(version "0.2.7")
|
||||
(version "0.2.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/zathura-djvu/download/zathura-djvu-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1sbfdsyp50qc85xc4458sn4w1rv1qbygdwmcr5kjlfpsmdq98vhd"))))
|
||||
"0axkv1crdxn0z44whaqp2ibkdqcykhjnxk7qzms0dp1b67an9rnh"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("djvulibre" ,djvulibre)
|
||||
("zathura" ,zathura)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "PLUGINDIR=" %output "/lib/zathura")
|
||||
"CC=gcc")
|
||||
#:tests? #f ; Package does not contain tests.
|
||||
`(#:tests? #f ; package does not contain tests
|
||||
#: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/")
|
||||
(synopsis "DjVu support for zathura (DjVuLibre backend)")
|
||||
(description "The zathura-djvu plugin adds DjVu support to zathura
|
||||
|
@ -431,15 +450,17 @@ using the DjVuLibre library.")
|
|||
(define-public zathura-pdf-mupdf
|
||||
(package
|
||||
(name "zathura-pdf-mupdf")
|
||||
(version "0.3.2")
|
||||
(version "0.3.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(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
|
||||
(base32
|
||||
"0xkajc3is7ncmb2fmymbzfgrran2bz12i7zsm1vvxhxds728h7ck"))))
|
||||
"1zbdqimav4wfgimpy3nfzl10qj7vyv23rdy2z5z7z93jwbp2rc2j"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("jbig2dec" ,jbig2dec)
|
||||
|
@ -448,13 +469,20 @@ using the DjVuLibre library.")
|
|||
("openjpeg" ,openjpeg)
|
||||
("openssl" ,openssl)
|
||||
("zathura" ,zathura)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "PLUGINDIR=" %output "/lib/zathura")
|
||||
"CC=gcc")
|
||||
#:tests? #f ;No tests.
|
||||
#:phases (modify-phases %standard-phases (delete 'configure))))
|
||||
`(#:tests? #f ; package does not contain tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-plugin-directory
|
||||
;; 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/")
|
||||
(synopsis "PDF support for zathura (mupdf backend)")
|
||||
(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
|
||||
(package
|
||||
(name "zathura-pdf-poppler")
|
||||
(version "0.2.8")
|
||||
(version "0.2.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/zathura-pdf-poppler/download/zathura-pdf-poppler-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1m55m7s7f8ng8a7lmcw9z4n5zv7xk4vp9n6fp9j84z6rk2imf7a2"))))
|
||||
"1p4jcny0jniygns78mcf0nlm298dszh49qpmjmackrm6dq8hc25y"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("poppler" ,poppler)
|
||||
("zathura" ,zathura)))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags (list (string-append "PREFIX=" %output)
|
||||
(string-append "PLUGINDIR=" %output "/lib/zathura")
|
||||
"CC=gcc")
|
||||
#:tests? #f ; Package does not include tests.
|
||||
`(#:tests? #f ; package does not include tests
|
||||
#: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/")
|
||||
(synopsis "PDF support for zathura (poppler backend)")
|
||||
(description "The zathura-pdf-poppler plugin adds PDF support to zathura
|
||||
|
@ -494,21 +528,24 @@ by using the poppler rendering engine.")
|
|||
(define-public zathura
|
||||
(package
|
||||
(name "zathura")
|
||||
(version "0.3.8")
|
||||
(version "0.3.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
(string-append "https://pwmt.org/projects/zathura/download/zathura-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dz5pky3vmf3s2cp2rv1c099gb1s49p9xlgm3ghyy4pzyxc8bgs6"))
|
||||
"0z09kz92a2n8qqv3cy8bx5j5k612g2f9mmh4szqlc7yvi39aax1g"))
|
||||
(patches (search-patches
|
||||
"zathura-plugindir-environment-variable.patch"))))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("gettext" ,gettext-minimal)
|
||||
("glib:bin" ,glib "bin")
|
||||
|
||||
;; For building documentation.
|
||||
("python-sphinx" ,python-sphinx)
|
||||
|
||||
;; For tests.
|
||||
("check" ,check)
|
||||
("xorg-server" ,xorg-server-1.19.3)))
|
||||
|
@ -520,15 +557,9 @@ by using the poppler rendering engine.")
|
|||
(list (search-path-specification
|
||||
(variable "ZATHURA_PLUGIN_PATH")
|
||||
(files '("lib/zathura")))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
`(,(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)
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'check 'start-xserver
|
||||
;; Tests require a running X server.
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
|
|
|
@ -318,7 +318,7 @@
|
|||
("libxpm" ,libxpm)
|
||||
("libxslt" ,libxslt)
|
||||
("libx11" ,libx11)
|
||||
("oniguruma" ,oniguruma)
|
||||
("oniguruma" ,oniguruma-5)
|
||||
("openldap" ,openldap)
|
||||
("openssl" ,openssl)
|
||||
("pcre" ,pcre)
|
||||
|
|
|
@ -782,14 +782,14 @@ NetCDF files can also be read and modified. Python-HDF4 is a fork of
|
|||
(define-public python-h5py
|
||||
(package
|
||||
(name "python-h5py")
|
||||
(version "2.7.0")
|
||||
(version "2.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "h5py" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0433sdv6xc9p7v1xs1gvbxp7p152ywi3nplgjb258q9fvw9469br"))))
|
||||
"0mdr6wrq02ac93m1aqx9kad0ppfzmm4imlxqgyy1x4l7hmdcc9p6"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test target
|
||||
|
@ -2218,14 +2218,14 @@ environments and back.")
|
|||
(define-public python-pyyaml
|
||||
(package
|
||||
(name "python-pyyaml")
|
||||
(version "3.12")
|
||||
(version "3.13")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "PyYAML" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1aqjl8dk9amd4zr99n8v2qxzgmr2hdvqfma4zh7a41rj6336c9sr"))))
|
||||
"1gx603g484z46cb74j9rzr6sjlh2vndxayicvlyhxdz98lhhkwry"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("libyaml" ,libyaml)))
|
||||
|
@ -7834,14 +7834,14 @@ python-xdo for newer bindings.)")
|
|||
(define-public python-mako
|
||||
(package
|
||||
(name "python-mako")
|
||||
(version "1.0.6")
|
||||
(version "1.0.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "Mako" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03dyxgjknp4ffsv7vwfd28l5bbpzi0ylp20543wpg3iahyyrwma8"))))
|
||||
"1bi5gnr8r8dva06qpyx4kgjc6spm2k1y908183nbbaylggjzs0jf"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-markupsafe" ,python-markupsafe)))
|
||||
|
|
|
@ -236,14 +236,14 @@ Desktops into Active Directory environments using the winbind daemon.")
|
|||
(define-public talloc
|
||||
(package
|
||||
(name "talloc")
|
||||
(version "2.1.13")
|
||||
(version "2.1.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/talloc/talloc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0iv09iv385x69gfzvassq6m3y0rd8ncylls95dm015xdy3drkww4"))))
|
||||
"1kk76dyav41ip7ddbbf04yfydb4jvywzi2ps0z2vla56aqkn11di"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -306,14 +306,14 @@ destructors. It is the core memory allocator used in Samba.")
|
|||
(define-public tevent
|
||||
(package
|
||||
(name "tevent")
|
||||
(version "0.9.36")
|
||||
(version "0.9.37")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/tevent/tevent-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k1v4vnlzpf7h3p4khaw8a7damrc68g136bf2xzys08nzpinnaxx"))))
|
||||
"1q77vbjic2bb79li2a54ffscnrnwwww55fbpry2kgh7acpnlb0qn"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
@ -341,14 +341,14 @@ many event types, including timers, signals, and the classic file descriptor eve
|
|||
(define-public ldb
|
||||
(package
|
||||
(name "ldb")
|
||||
(version "1.4.0")
|
||||
(version "1.3.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://www.samba.org/ftp/ldb/ldb-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d591ny4j4s409s2afjv4fn7inqlclr0zlyclw3619rkbaixlzm8"))
|
||||
"14gsrm7dvyjpbpnc60z75j6fz2p187abm2h353lq95kx2bv70c1b"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -361,10 +361,7 @@ many event types, including timers, signals, and the classic file descriptor eve
|
|||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(;; LMDB is only supported on 64-bit systems, yet the test suite
|
||||
;; requires it.
|
||||
#:tests? (assoc-ref %build-inputs "lmdb")
|
||||
#:phases
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
;; 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)
|
||||
("tdb" ,tdb)))
|
||||
(inputs
|
||||
`(,@(if (target-64bit?)
|
||||
`(("lmdb" ,lmdb))
|
||||
'())
|
||||
("popt" ,popt)
|
||||
`(("popt" ,popt)
|
||||
("tevent" ,tevent)))
|
||||
(synopsis "LDAP-like embedded database")
|
||||
(home-page "https://ldb.samba.org/")
|
||||
|
|
|
@ -46,14 +46,15 @@
|
|||
(define-public xapian
|
||||
(package
|
||||
(name "xapian")
|
||||
(version "1.4.5")
|
||||
(version "1.4.6")
|
||||
;; Note: When updating Xapian, remember to update xapian-bindings below.
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://oligarchy.co.uk/xapian/" version
|
||||
"/xapian-core-" version ".tar.xz"))
|
||||
(patches (search-patches "xapian-revert-5489fb2f8.patch"))
|
||||
(sha256
|
||||
(base32 "0axhqrj202hbll9mcx1qdm8gsqj19216w3z02gyjbycxvr9gkdc5"))))
|
||||
(base32 "166qpfq7pvyrj2w2x07v31ypvqg6c2xyvds5sms9h4g2sg0z23hy"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("zlib" ,zlib)
|
||||
("util-linux" ,util-linux)))
|
||||
|
@ -91,7 +92,7 @@ rich set of boolean query operators.")
|
|||
"/xapian-bindings-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0cwx39764w24xd25w271had4w78lnw1dgz36yvlw1g3i19rqcy34"))))
|
||||
"0z5ma66n742241ys037i3k66c6lvsywviqf33vqsf4jb7j03qsbi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--with-python3")
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages golang))
|
||||
|
||||
(define-public syncthing
|
||||
|
@ -35,6 +36,7 @@
|
|||
(uri (string-append "https://github.com/syncthing/syncthing"
|
||||
"/releases/download/v" version
|
||||
"/syncthing-source-v" version ".tar.gz"))
|
||||
(patches (search-patches "syncthing-fix-crash.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml"))
|
||||
|
|
|
@ -338,6 +338,27 @@ as existing hashing techniques, with provably negligible risk of collisions.")
|
|||
(define-public oniguruma
|
||||
(package
|
||||
(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")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -346,14 +367,7 @@ as existing hashing techniques, with provably negligible risk of collisions.")
|
|||
"/onig-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"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)))
|
||||
"19s79vsclqn170mw0ajwv7j37qsbn4f1yjz3yavnhvva6c820r6m"))))))
|
||||
|
||||
(define-public antiword
|
||||
(package
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
|
||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -22,7 +23,9 @@
|
|||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix packages))
|
||||
|
||||
|
@ -76,6 +79,49 @@ over IRC, instant messaging, network games, and most server software.")
|
|||
(license
|
||||
(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
|
||||
(package
|
||||
(name "libupnp")
|
||||
|
|
|
@ -2410,15 +2410,16 @@ of modern, widely supported codecs.")
|
|||
(define-public openh264
|
||||
(package
|
||||
(name "openh264")
|
||||
(version "1.7.0")
|
||||
(version "1.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gv571bqkxk7ic64dmavs1q8nr7p59mcf4ibqp4lc070gn6w61ww"))))
|
||||
"0niha3wnn1jsndvz9vfwy2wyql8mp9j6v75vjsipy0idwan5yzgf"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("nasm" ,nasm)
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
;;; Copyright © 2017 Marek Benc <dusxmt@gmx.com>
|
||||
;;; Copyright © 2017 Mike Gerwitz <mtg@gnu.org>
|
||||
;;; Copyright © 2018 Thomas Sigurdsen <tonton@riseup.net>
|
||||
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -316,7 +317,7 @@ rasterisation.")
|
|||
(define-public libdrm
|
||||
(package
|
||||
(name "libdrm")
|
||||
(version "2.4.91")
|
||||
(version "2.4.92")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -326,7 +327,7 @@ rasterisation.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0068dn47c478vm1lyyhy02gilrpsma0xmcblhvs0dzqyrk80wjk3"))
|
||||
"1yirzx8hmlvv6r0l7lb3zxmgy5la2mri9al0k16xqfg19pdqzr79"))
|
||||
(patches (search-patches "libdrm-symbol-check.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
|
|
@ -1026,7 +1026,7 @@ of new capabilities and controls for text keyboards.")
|
|||
(define-public libdmx
|
||||
(package
|
||||
(name "libdmx")
|
||||
(version "1.1.3")
|
||||
(version "1.1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1036,7 +1036,7 @@ of new capabilities and controls for text keyboards.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"00djlxas38kbsrglcmwmxfbmxjdchlbj95pqwjvdg8jn5rns6zf9"))))
|
||||
"0hvjfhrcym770cr0zpqajdy3cda30aiwbjzv16iafkqkbl090gr5"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("xorgproto" ,xorgproto)
|
||||
|
@ -2447,7 +2447,7 @@ including most mice, keyboards, tablets and touchscreens.")
|
|||
(define-public xf86-input-libinput
|
||||
(package
|
||||
(name "xf86-input-libinput")
|
||||
(version "0.27.1")
|
||||
(version "0.28.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2455,7 +2455,7 @@ including most mice, keyboards, tablets and touchscreens.")
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1riflw6dc8fp5d74i7zfgsss0zz3z3lsj6zn2lzjm5kgmp2qvbfl"))))
|
||||
"189h8vl0005yizwrs4d0sng6j8lwkd3xi1zwqg8qavn2bw34v691"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -2961,7 +2961,7 @@ It supports a variety of Intel graphics chipsets.")
|
|||
(define-public xf86-video-mach64
|
||||
(package
|
||||
(name "xf86-video-mach64")
|
||||
(version "6.9.5")
|
||||
(version "6.9.6")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2971,7 +2971,7 @@ It supports a variety of Intel graphics chipsets.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y"))
|
||||
"171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs"))
|
||||
(patches (search-patches "xf86-video-mach64-glibc-2.20.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("mesa" ,mesa)
|
||||
|
@ -3176,33 +3176,47 @@ This driver is intended for the spice qxl virtio device.")
|
|||
(home-page "http://www.spice-space.org")
|
||||
(license license:x11)))
|
||||
|
||||
|
||||
(define-public xf86-video-r128
|
||||
(package
|
||||
(name "xf86-video-r128")
|
||||
(version "6.10.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"mirror://xorg/individual/driver/xf86-video-r128-"
|
||||
version
|
||||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pkpka5m4cd6iy0f8iqnmg6xci14nb6887ilvxzn3xrsgx8j3nl4"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("mesa" ,mesa)
|
||||
("xorgproto" ,xorgproto)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(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.
|
||||
;; We need a newer version than 6.10.2 to build against the latest xorg-server.
|
||||
;; Remove this binding and the bootstrap inputs when >6.10.2 is released.
|
||||
(let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "xf86-video-r128")
|
||||
(version (git-version "6.10.2" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url (string-append "https://anongit.freedesktop.org/git/xorg"
|
||||
"/driver/" name ".git"))
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'prevent-configure
|
||||
(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.")
|
||||
(license license:x11)))
|
||||
|
||||
(license license:x11))))
|
||||
|
||||
(define-public xf86-video-savage
|
||||
(package
|
||||
|
@ -3215,6 +3229,7 @@ This driver is intended for ATI Rage 128 based cards.")
|
|||
"mirror://xorg/individual/driver/xf86-video-savage-"
|
||||
version
|
||||
".tar.bz2"))
|
||||
(patches (search-patches "xf86-video-savage-xorg-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"11pcrsdpdrwk0mrgv83s5nsx8a9i4lhmivnal3fjbrvi3zdw94rc"))))
|
||||
|
@ -3267,6 +3282,7 @@ Xorg X server.")
|
|||
"mirror://xorg/individual/driver/xf86-video-sis-"
|
||||
version
|
||||
".tar.bz2"))
|
||||
(patches (search-patches "xf86-video-sis-xorg-compat.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj"))))
|
||||
|
@ -3723,7 +3739,7 @@ alternative implementations like XRandR or TwinView.")
|
|||
(define xkbcomp-intermediate ; used as input for xkeyboard-config
|
||||
(package
|
||||
(name "xkbcomp-intermediate")
|
||||
(version "1.4.1")
|
||||
(version "1.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3733,7 +3749,7 @@ alternative implementations like XRandR or TwinView.")
|
|||
".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0djp7bb0ch2ddwmc1bkg4fddxdvamiiz375x0r0ni5dcb37w93bl"))))
|
||||
"0944rrkkf0dxp07vhh9yr4prslxhqyw63qmbjirbv1bypswvrn3d"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("xorgproto" ,xorgproto)
|
||||
|
@ -5072,7 +5088,7 @@ over Xlib, including:
|
|||
(define-public xorg-server
|
||||
(package
|
||||
(name "xorg-server")
|
||||
(version "1.19.6")
|
||||
(version "1.20.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -5081,7 +5097,7 @@ over Xlib, including:
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7"))
|
||||
"1rnka3sp8yg2bir0bjjhwn33jikj8qd8ckqcxrs94w05bwc7v5lx"))
|
||||
(patches
|
||||
(list
|
||||
;; See:
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
live-service-requirement
|
||||
live-service-running
|
||||
|
||||
with-shepherd-action
|
||||
current-services
|
||||
unload-services
|
||||
unload-service
|
||||
|
@ -168,6 +169,8 @@ return #f."
|
|||
|
||||
(define-syntax-rule (with-shepherd-action service (action args ...)
|
||||
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 ...)
|
||||
(lambda (result) body ...)))
|
||||
|
||||
|
|
|
@ -60,29 +60,71 @@
|
|||
(define (job-file 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
|
||||
(match-lambda
|
||||
(($ <mcron-configuration> mcron ()) ;nothing to do!
|
||||
'())
|
||||
(($ <mcron-configuration> mcron jobs)
|
||||
(list (shepherd-service
|
||||
(provision '(mcron))
|
||||
(requirement '(user-processes))
|
||||
(modules `((srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
,@%default-modules))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$mcron "/bin/mcron")
|
||||
#$@(map job-file jobs))
|
||||
(let ((files (map job-file jobs)))
|
||||
(list (shepherd-service
|
||||
(provision '(mcron))
|
||||
(requirement '(user-processes))
|
||||
(modules `((srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 popen) ;for the 'schedule' action
|
||||
(ice-9 rdelim)
|
||||
(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
|
||||
;; sane value for 'PATH'.
|
||||
#:environment-variables
|
||||
(cons* "GUILE_AUTO_COMPILE=0"
|
||||
"PATH=/run/current-system/profile/bin"
|
||||
(remove (cut string-prefix? "PATH=" <>)
|
||||
(environ)))))
|
||||
(stop #~(make-kill-destructor)))))))
|
||||
;; Disable auto-compilation of the job files and set a
|
||||
;; sane value for 'PATH'.
|
||||
#:environment-variables
|
||||
(cons* "GUILE_AUTO_COMPILE=0"
|
||||
"PATH=/run/current-system/profile/bin"
|
||||
(remove (cut string-prefix? "PATH=" <>)
|
||||
(environ)))))
|
||||
(stop #~(make-kill-destructor))
|
||||
|
||||
(actions
|
||||
(list (shepherd-schedule-action mcron files)))))))))
|
||||
|
||||
(define mcron-service-type
|
||||
(service-type (name 'mcron)
|
||||
|
|
|
@ -49,6 +49,12 @@
|
|||
shepherd-service-auto-start?
|
||||
shepherd-service-modules
|
||||
|
||||
shepherd-action
|
||||
shepherd-action?
|
||||
shepherd-action-name
|
||||
shepherd-action-documentation
|
||||
shepherd-action-procedure
|
||||
|
||||
%default-modules
|
||||
|
||||
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)
|
||||
(stop shepherd-service-stop ;g-expression (procedure)
|
||||
(default #~(const #f)))
|
||||
(actions shepherd-service-actions ;list of <shepherd-action>
|
||||
(default '()))
|
||||
(auto-start? shepherd-service-auto-start? ;Boolean
|
||||
(default #t))
|
||||
(modules shepherd-service-modules ;list of module names
|
||||
(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)
|
||||
"Return the 'canonical name' of SERVICE."
|
||||
(first (shepherd-service-provision service)))
|
||||
|
@ -223,7 +238,13 @@ stored."
|
|||
#:requires '#$(shepherd-service-requirement service)
|
||||
#:respawn? '#$(shepherd-service-respawn? 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)
|
||||
"Return the shepherd configuration file for SERVICES."
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
#:export (libvirt-configuration
|
||||
libvirt-service-type
|
||||
virtlog-configuration
|
||||
virtlog-service-type
|
||||
|
||||
%qemu-platforms
|
||||
|
|
|
@ -632,6 +632,13 @@ non-ASCII names from /tmp.")
|
|||
(wait-for-file "/root/witness-touch" marionette
|
||||
#: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)
|
||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||
|
||||
|
|
|
@ -148,8 +148,7 @@ has a 'meson.build' file."
|
|||
#:search-paths ',(map search-path-specification->sexp
|
||||
search-paths)
|
||||
#:phases
|
||||
(if (string-prefix? "arm" ,(or (%current-target-system)
|
||||
(%current-system)))
|
||||
(if (string-prefix? "arm" ,system)
|
||||
(modify-phases build-phases (delete 'fix-runpath))
|
||||
build-phases)
|
||||
#:configure-flags ,configure-flags
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -68,14 +68,11 @@
|
|||
|
||||
(target (@ (name "manifest"))
|
||||
(mkdir (@ (dir "${manifest.dir}")))
|
||||
(echo (@ (file "${manifest.file}")
|
||||
(message ,(string-append
|
||||
(if main-class
|
||||
(string-append
|
||||
"Main-Class: " main-class
|
||||
"${line.separator}")
|
||||
"")
|
||||
"")))))
|
||||
(manifest (@ (file "${manifest.file}"))
|
||||
,(if main-class
|
||||
`(attribute (@ (name "Main-Class")
|
||||
(value ,main-class)))
|
||||
"")))
|
||||
|
||||
(target (@ (name "compile"))
|
||||
(mkdir (@ (dir "${classes.dir}")))
|
||||
|
@ -150,7 +147,8 @@ to the default GNU unpack strategy."
|
|||
(begin
|
||||
(mkdir "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.
|
||||
((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")
|
||||
#: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)
|
||||
"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."
|
||||
(define (generate-index jar)
|
||||
(invoke "jar" "-i" jar))
|
||||
(every (match-lambda
|
||||
((output . directory)
|
||||
(every generate-index (find-files directory "\\.jar$"))))
|
||||
outputs))
|
||||
(for-each (match-lambda
|
||||
((output . directory)
|
||||
(for-each generate-index (find-files directory "\\.jar$"))))
|
||||
outputs)
|
||||
#t)
|
||||
|
||||
(define* (strip-jar-timestamps #:key outputs
|
||||
#:allow-other-keys)
|
||||
|
@ -194,50 +193,49 @@ repack them. This is necessary to ensure that archives are reproducible."
|
|||
(format #t "repacking ~a\n" jar)
|
||||
(let* ((dir (mkdtemp! "jar-contents.XXXXXX"))
|
||||
(manifest (string-append dir "/META-INF/MANIFEST.MF")))
|
||||
(and (with-directory-excursion dir
|
||||
(zero? (system* "jar" "xf" 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))
|
||||
(with-directory-excursion dir
|
||||
(invoke "jar" "xf" 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))
|
||||
|
||||
;; The jar tool will always set the timestamp on the manifest file
|
||||
;; and the containing directory to the current time, even when we
|
||||
;; reuse an existing manifest file. To avoid this we use "zip"
|
||||
;; instead of "jar". 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))))
|
||||
(unless (zero? (apply system* command))
|
||||
(error "'zip' failed"))))
|
||||
(utime jar 0 0)
|
||||
#t)))
|
||||
;; The jar tool will always set the timestamp on the manifest file
|
||||
;; and the containing directory to the current time, even when we
|
||||
;; reuse an existing manifest file. To avoid this we use "zip"
|
||||
;; instead of "jar". 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)))
|
||||
(utime jar 0 0)
|
||||
#t))
|
||||
|
||||
(every (match-lambda
|
||||
((output . directory)
|
||||
(every repack-archive (find-files directory "\\.jar$"))))
|
||||
outputs))
|
||||
(for-each (match-lambda
|
||||
((output . directory)
|
||||
(for-each repack-archive (find-files directory "\\.jar$"))))
|
||||
outputs)
|
||||
#t)
|
||||
|
||||
(define* (check #:key target (make-flags '()) (tests? (not target))
|
||||
(test-target "check")
|
||||
#:allow-other-keys)
|
||||
(if tests?
|
||||
(zero? (apply system* `("ant" ,test-target ,@make-flags)))
|
||||
(begin
|
||||
(format #t "test suite not run~%")
|
||||
#t)))
|
||||
(apply invoke `("ant" ,test-target ,@make-flags))
|
||||
(format #t "test suite not run~%"))
|
||||
#t)
|
||||
|
||||
(define* (install #:key (make-flags '()) #:allow-other-keys)
|
||||
(zero? (apply system* `("ant" "install" ,@make-flags))))
|
||||
(apply invoke `("ant" "install" ,@make-flags)))
|
||||
|
||||
(define %standard-phases
|
||||
(modify-phases gnu:%standard-phases
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
(define* (ant-build-javadoc #:key (target "javadoc") (make-flags '())
|
||||
#:allow-other-keys)
|
||||
(zero? (apply system* `("ant" ,target ,@make-flags))))
|
||||
(apply invoke `("ant" ,target ,@make-flags)))
|
||||
|
||||
(define* (install-jars jar-directory)
|
||||
"Install jar files from JAR-DIRECTORY to the default target directory. This
|
||||
|
|
|
@ -58,15 +58,14 @@
|
|||
|
||||
(mkdir build-dir)
|
||||
(chdir build-dir)
|
||||
(zero? (apply system* "meson" args))))
|
||||
(apply invoke "meson" args)))
|
||||
|
||||
(define* (build #:key parallel-build?
|
||||
#:allow-other-keys)
|
||||
"Build a given meson package."
|
||||
(zero? (apply system* "ninja"
|
||||
(if parallel-build?
|
||||
`("-j" ,(number->string (parallel-job-count)))
|
||||
'("-j" "1")))))
|
||||
(invoke "ninja" "-j" (if parallel-build?
|
||||
(number->string (parallel-job-count))
|
||||
"1")))
|
||||
|
||||
(define* (check #:key test-target parallel-tests? tests?
|
||||
#:allow-other-keys)
|
||||
|
@ -75,13 +74,13 @@
|
|||
(number->string (parallel-job-count))
|
||||
"1"))
|
||||
(if tests?
|
||||
(zero? (system* "ninja" test-target))
|
||||
(invoke "ninja" test-target)
|
||||
(begin
|
||||
(format #t "test suite not run~%")
|
||||
#t)))
|
||||
|
||||
(define* (install #:rest args)
|
||||
(zero? (system* "ninja" "install")))
|
||||
(invoke "ninja" "install"))
|
||||
|
||||
(define* (fix-runpath #:key (elf-directories '("lib" "lib64" "libexec"
|
||||
"bin" "sbin"))
|
||||
|
@ -135,7 +134,7 @@ for example libraries only needed for the tests."
|
|||
(find-files dir elf-pred))
|
||||
existing-elf-dirs))))
|
||||
(for-each (lambda (elf-file)
|
||||
(system* "patchelf" "--shrink-rpath" elf-file)
|
||||
(invoke "patchelf" "--shrink-rpath" elf-file)
|
||||
(handle-file elf-file elf-list))
|
||||
elf-list)))))
|
||||
(for-each handle-output outputs)
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,6 +24,7 @@
|
|||
#:use-module (guix derivations)
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-9 gnu)
|
||||
|
@ -334,7 +336,7 @@ appears."
|
|||
(%plain-file name content references)
|
||||
plain-file?
|
||||
(name plain-file-name) ;string
|
||||
(content plain-file-content) ;string
|
||||
(content plain-file-content) ;string or bytevector
|
||||
(references plain-file-references)) ;list (currently unused)
|
||||
|
||||
(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)
|
||||
;; "Compile" FILE by adding it to the store.
|
||||
(match file
|
||||
(($ <plain-file> name content references)
|
||||
(text-file name content references))))
|
||||
(($ <plain-file> name (and (? string?) content) references)
|
||||
(text-file name content references))
|
||||
(($ <plain-file> name (and (? bytevector?) content) references)
|
||||
(binary-file name content references))))
|
||||
|
||||
(define-record-type <computed-file>
|
||||
(%computed-file name gexp guile options)
|
||||
|
|
26
guix/git.scm
26
guix/git.scm
|
@ -114,7 +114,8 @@ OID (roughly the commit hash) corresponding to REF."
|
|||
#:key
|
||||
(ref '(branch . "origin/master"))
|
||||
(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
|
||||
values: the cache directory name, and the SHA1 commit (a string) corresponding
|
||||
to REF.
|
||||
|
@ -122,11 +123,10 @@ to REF.
|
|||
REF is pair whose key is [branch | commit | tag] and value the associated
|
||||
data, respectively [<branch name> | <sha1> | <tag name>]."
|
||||
(with-libgit2
|
||||
(let* ((cache-dir (url-cache-directory url cache-directory))
|
||||
(cache-exists? (openable-repository? cache-dir))
|
||||
(let* ((cache-exists? (openable-repository? cache-directory))
|
||||
(repository (if cache-exists?
|
||||
(repository-open cache-dir)
|
||||
(clone* url cache-dir))))
|
||||
(repository-open cache-directory)
|
||||
(clone* url cache-directory))))
|
||||
;; Only fetch remote if it has not been cloned just before.
|
||||
(when cache-exists?
|
||||
(remote-fetch (remote-lookup repository "origin")))
|
||||
|
@ -138,7 +138,7 @@ data, respectively [<branch name> | <sha1> | <tag name>]."
|
|||
'repository-close!)
|
||||
(repository-close! repository))
|
||||
|
||||
(values cache-dir (oid->string oid))))))
|
||||
(values cache-directory (oid->string oid))))))
|
||||
|
||||
(define* (latest-repository-commit store url
|
||||
#:key
|
||||
|
@ -157,12 +157,14 @@ Git repositories are kept in the cache directory specified by
|
|||
(and (string=? (basename file) ".git")
|
||||
(eq? 'directory (stat:type stat))))
|
||||
|
||||
(let*-values (((checkout commit)
|
||||
(update-cached-checkout url
|
||||
#:ref ref
|
||||
#:cache-directory cache-directory))
|
||||
((name)
|
||||
(url+commit->name url commit)))
|
||||
(let*-values
|
||||
(((checkout commit)
|
||||
(update-cached-checkout url
|
||||
#:ref ref
|
||||
#:cache-directory
|
||||
(url-cache-directory url cache-directory)))
|
||||
((name)
|
||||
(url+commit->name url commit)))
|
||||
(values (add-to-store store name #t "sha256" checkout
|
||||
#:select? (negate dot-git?))
|
||||
commit)))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -82,13 +82,14 @@
|
|||
|
||||
(define %package-list-url
|
||||
(string->uri
|
||||
(string-append %gnumaint-base-url "gnupackages.txt")))
|
||||
(string-append %gnumaint-base-url "rec/gnupackages.rec")))
|
||||
|
||||
(define %package-description-url
|
||||
;; 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-append %gnumaint-base-url "pkgblurbs.txt")))
|
||||
(string-append %gnumaint-base-url "rec/pkgblurbs.rec")))
|
||||
|
||||
(define-record-type* <gnu-package-descriptor>
|
||||
gnu-package-descriptor
|
||||
|
@ -121,7 +122,12 @@ to fetch the list of GNU packages over HTTP."
|
|||
(if (null? alist)
|
||||
(reverse result)
|
||||
(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
|
||||
(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)
|
||||
make-gnu-package-descriptor
|
||||
(list "package" "mundane-name" "copyright-holder"
|
||||
(list "package" "mundane_name" "copyright_holder"
|
||||
"savannah" "fsd" "language" "logo"
|
||||
"doc-category" "doc-summary" "description"
|
||||
"doc-url"
|
||||
"download-url")
|
||||
'("doc-url" "language"))))
|
||||
"doc_category" "doc_summary" "description"
|
||||
"doc_url"
|
||||
"download_url")
|
||||
'("doc_url" "language"))))
|
||||
(let* ((port (fetch %package-list-url #:text? #t))
|
||||
(lst (read-records port)))
|
||||
(close-port port)
|
||||
|
|
|
@ -139,8 +139,8 @@ to the stack."
|
|||
"Generate a parser for Cabal files."
|
||||
(lalr-parser
|
||||
;; --- token definitions
|
||||
(CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE
|
||||
(right: IF FLAG EXEC TEST-SUITE SOURCE-REPO BENCHMARK LIB OCURLY)
|
||||
(CCURLY VCCURLY OPAREN CPAREN TEST ID VERSION RELATION TRUE FALSE -ANY -NONE
|
||||
(right: IF FLAG EXEC TEST-SUITE CUSTOM-SETUP SOURCE-REPO BENCHMARK LIB OCURLY)
|
||||
(left: OR)
|
||||
(left: PROPERTY AND)
|
||||
(right: ELSE NOT))
|
||||
|
@ -150,6 +150,7 @@ to the stack."
|
|||
(sections source-repo) : (append $1 (list $2))
|
||||
(sections executables) : (append $1 $2)
|
||||
(sections test-suites) : (append $1 $2)
|
||||
(sections custom-setup) : (append $1 $2)
|
||||
(sections benchmarks) : (append $1 $2)
|
||||
(sections lib-sec) : (append $1 (list $2))
|
||||
() : '())
|
||||
|
@ -172,6 +173,7 @@ to the stack."
|
|||
(ts-sec) : (list $1))
|
||||
(ts-sec (TEST-SUITE OCURLY exprs CCURLY) : `(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))
|
||||
(bm-sec) : (list $1))
|
||||
(bm-sec (BENCHMARK OCURLY exprs CCURLY) : `(section benchmark ,$1 ,$3)
|
||||
|
@ -211,6 +213,10 @@ to the stack."
|
|||
(FALSE) : 'false
|
||||
(TEST OPAREN ID RELATION VERSION CPAREN)
|
||||
: `(,$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)
|
||||
: `(and (,$1 ,(string-append $3 " " $4 " " $5))
|
||||
(,$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_-]+)"
|
||||
regexp/icase))
|
||||
|
||||
(define is-custom-setup (make-rx-matcher "^(custom-setup)"
|
||||
regexp/icase))
|
||||
|
||||
(define is-benchmark (make-rx-matcher "^benchmark +([a-z0-9_-]+)"
|
||||
regexp/icase))
|
||||
|
||||
|
@ -362,13 +371,17 @@ matching a string against the created regexp."
|
|||
|
||||
(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-or s) (string=? s "||"))
|
||||
|
||||
(define (is-id s port)
|
||||
(let ((cabal-reserved-words
|
||||
'("if" "else" "library" "flag" "executable" "test-suite"
|
||||
'("if" "else" "library" "flag" "executable" "test-suite" "custom-setup"
|
||||
"source-repository" "benchmark"))
|
||||
(spaces (read-while (cut char-set-contains? char-set:blank <>) port))
|
||||
(c (peek-char port)))
|
||||
|
@ -392,8 +405,11 @@ matching a string against the created regexp."
|
|||
|
||||
(define (lex-version loc port)
|
||||
(make-lexical-token 'VERSION loc
|
||||
(read-while char-numeric? port
|
||||
(cut char=? #\. <>) char-numeric?)))
|
||||
(read-while (lambda (x)
|
||||
(or (char-numeric? x)
|
||||
(char=? x #\*)
|
||||
(char=? x #\.)))
|
||||
port)))
|
||||
|
||||
(define* (read-while is? port #:optional
|
||||
(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-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-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-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-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-true w) (lex-true 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-or w) (lex-or 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-exec s) => (cut lex-exec <> 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-lib s) (lex-lib 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)
|
||||
(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)
|
||||
"Retrun an alist associating the flag name to its default value from a
|
||||
list of <cabal-flag> objects."
|
||||
|
@ -694,13 +725,20 @@ the ordering operation and the version."
|
|||
(let* ((with-ver-matcher-fn (make-rx-matcher
|
||||
"([a-zA-Z0-9_-]+) *([<>=]+) *([0-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)
|
||||
(cut match:substring <> 1))
|
||||
(and=> (without-ver-matcher-fn-2 spec)
|
||||
(cut match:substring <> 1))
|
||||
(match:substring (without-ver-matcher-fn spec) 1)))
|
||||
(operator (and=> (with-ver-matcher-fn spec)
|
||||
(cut match:substring <> 2)))
|
||||
(version (and=> (with-ver-matcher-fn spec)
|
||||
(cut match:substring <> 3))))
|
||||
(operator (or (and=> (with-ver-matcher-fn spec)
|
||||
(cut match:substring <> 2))
|
||||
(and=> (without-ver-matcher-fn-2 spec)
|
||||
(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)))
|
||||
|
||||
(define (impl haskell)
|
||||
|
@ -716,6 +754,8 @@ the ordering operation and the version."
|
|||
((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 "-any") #t)
|
||||
((string= spec-op "-none") #f)
|
||||
(else
|
||||
(raise (condition
|
||||
(&message (message "Failed to evaluate 'impl' test."))))))
|
||||
|
@ -728,7 +768,6 @@ the ordering operation and the version."
|
|||
(let ((value (or (assoc-ref env name)
|
||||
(assoc-ref (cabal-flags->alist (cabal-flags)) name))))
|
||||
(if (eq? value 'false) #f #t)))
|
||||
|
||||
(define (eval sexp)
|
||||
(match sexp
|
||||
(() '())
|
||||
|
@ -755,6 +794,8 @@ the ordering operation and the version."
|
|||
;; no need to evaluate flag parameters
|
||||
(('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
|
||||
(('section 'library parameters)
|
||||
(list 'section 'library (eval parameters)))
|
||||
|
@ -795,12 +836,15 @@ See the manual for limitations.")))))))
|
|||
(define (make-cabal-section sexp section-type)
|
||||
"Given an SEXP as produced by 'read-cabal', produce a list of objects
|
||||
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 <>
|
||||
(('section (? (cut equal? <> section-type)) name parameters)
|
||||
(case section-type
|
||||
((test-suite) (make-cabal-test-suite
|
||||
name (dependencies parameters)))
|
||||
((custom-setup) (make-cabal-custom-setup
|
||||
name (dependencies parameters "setup-depends")))
|
||||
((executable) (make-cabal-executable
|
||||
name (dependencies parameters)))
|
||||
((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
|
||||
(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
|
||||
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 #\,)))))
|
||||
(map (lambda (d)
|
||||
(let ((rx-result (regexp-exec dependency-name-version-rx d)))
|
||||
|
|
|
@ -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)))
|
|
@ -1521,7 +1521,7 @@ the generation that was current before switching."
|
|||
(profile profile)
|
||||
(generation number)))))
|
||||
(else
|
||||
(switch-symlinks profile generation)
|
||||
(switch-symlinks profile (basename generation))
|
||||
current))))
|
||||
|
||||
(define (switch-to-previous-generation profile)
|
||||
|
|
|
@ -190,7 +190,7 @@ do not treat collisions in MANIFEST as an error."
|
|||
(let* ((entries (manifest-entries manifest))
|
||||
(count (length entries)))
|
||||
(switch-symlinks name prof)
|
||||
(switch-symlinks profile name)
|
||||
(switch-symlinks profile (basename name))
|
||||
(unless (string=? profile %current-profile)
|
||||
(register-gc-root store name))
|
||||
(format #t (N_ "~a package in profile~%"
|
||||
|
|
|
@ -28,9 +28,12 @@
|
|||
#:use-module (guix profiles)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix grafts)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix monads)
|
||||
#:autoload (guix inferior) (open-inferior)
|
||||
#:use-module (guix scripts build)
|
||||
#:autoload (guix self) (whole-package)
|
||||
#:use-module (gnu packages)
|
||||
#:autoload (gnu packages ssh) (guile-ssh)
|
||||
#:autoload (gnu packages tls) (gnutls)
|
||||
#:use-module ((guix scripts package) #:select (build-and-use-profile))
|
||||
|
@ -45,9 +48,11 @@
|
|||
#:use-module ((gnu packages certs) #:select (le-certs))
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (srfi srfi-35)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:export (guix-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)
|
||||
(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
|
||||
#:key verbose? url branch commit)
|
||||
"Build the tool from SOURCE, and install it in CONFIG-DIR."
|
||||
(define update-profile
|
||||
(store-lift build-and-use-profile))
|
||||
|
||||
(define profile
|
||||
(string-append config-dir "/current"))
|
||||
|
||||
(mlet* %store-monad ((drv (build-from-source source
|
||||
#:commit commit
|
||||
#:verbose? verbose?))
|
||||
|
@ -243,8 +268,9 @@ URL, BRANCH, and COMMIT as a property in the manifest entry."
|
|||
#:url url
|
||||
#:branch branch
|
||||
#:commit commit)))
|
||||
(update-profile (string-append config-dir "/current")
|
||||
(manifest (list entry)))))
|
||||
(mbegin %store-monad
|
||||
(update-profile profile (manifest (list entry)))
|
||||
(return (display-profile-news profile)))))
|
||||
|
||||
(define (honor-lets-encrypt-certificates! store)
|
||||
"Tell Guile-Git to use the Let's Encrypt certificates."
|
||||
|
@ -289,6 +315,7 @@ certificates~%"))
|
|||
(define (display-profile-content profile number)
|
||||
"Display the packages in PROFILE, generation NUMBER, in a human-readable
|
||||
way and displaying details about the channel's source code."
|
||||
(display-generation profile number)
|
||||
(for-each (lambda (entry)
|
||||
(format #t " ~a ~a~%"
|
||||
(manifest-entry-name entry)
|
||||
|
@ -310,6 +337,90 @@ way and displaying details about the channel's source code."
|
|||
(manifest-entries
|
||||
(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)
|
||||
"Process any query specified by OPTS."
|
||||
(define profile
|
||||
|
@ -317,29 +428,32 @@ way and displaying details about the channel's source code."
|
|||
|
||||
(match (assoc-ref opts 'query)
|
||||
(('list-generations pattern)
|
||||
(define (list-generation display-function number)
|
||||
(unless (zero? number)
|
||||
(display-generation profile number)
|
||||
(display-function profile number)
|
||||
(newline)))
|
||||
(define (list-generations profile numbers)
|
||||
(match numbers
|
||||
((first rest ...)
|
||||
(display-profile-content profile first)
|
||||
(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
|
||||
(cond ((not (file-exists? profile)) ; XXX: race condition
|
||||
(raise (condition (&profile-not-found-error
|
||||
(profile profile)))))
|
||||
((string-null? pattern)
|
||||
(for-each (lambda (generation)
|
||||
(list-generation display-profile-content generation))
|
||||
(profile-generations profile)))
|
||||
(list-generations profile (profile-generations profile)))
|
||||
((matching-generations pattern profile)
|
||||
=>
|
||||
(match-lambda
|
||||
(()
|
||||
(exit 1))
|
||||
((numbers ...)
|
||||
(for-each (lambda (generation)
|
||||
(list-generation display-profile-content generation))
|
||||
numbers)))))))))
|
||||
(list-generations profile numbers)))))))))
|
||||
|
||||
|
||||
(define (guix-pull . args)
|
||||
|
|
|
@ -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:
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -77,6 +78,7 @@
|
|||
add-data-to-store
|
||||
add-text-to-store
|
||||
add-to-store
|
||||
binary-file
|
||||
build-things
|
||||
build
|
||||
query-failed-paths
|
||||
|
@ -1362,7 +1364,18 @@ taking the store as its first argument."
|
|||
;; 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 '()))
|
||||
"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
|
||||
|
|
|
@ -33,10 +33,11 @@
|
|||
#:use-module (srfi srfi-35)
|
||||
#:use-module (srfi srfi-39)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:use-module (ice-9 ftw)
|
||||
#:autoload (rnrs io ports) (make-custom-binary-input-port)
|
||||
#:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!))
|
||||
#: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 (ice-9 format)
|
||||
#:autoload (ice-9 popen) (open-pipe*)
|
||||
|
@ -631,7 +632,7 @@ delete it when leaving the dynamic extent of this call."
|
|||
(lambda ()
|
||||
(proc tmp-dir))
|
||||
(lambda ()
|
||||
(false-if-exception (rmdir tmp-dir))))))
|
||||
(false-if-exception (delete-file-recursively tmp-dir))))))
|
||||
|
||||
(define (with-atomic-file-output file proc)
|
||||
"Call PROC with an output port for the file that is going to replace FILE.
|
||||
|
|
|
@ -948,7 +948,7 @@
|
|||
(return (and (zero? (close-pipe pipe))
|
||||
(= (expt n 2) (string->number str)))))))
|
||||
|
||||
(test-assertm "gexp->script #:module-path"
|
||||
(test-assert "gexp->script #:module-path"
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(define str
|
||||
|
@ -961,23 +961,24 @@
|
|||
(define-public %fake! ,str))
|
||||
port)))
|
||||
|
||||
(mlet* %store-monad ((exp -> (with-imported-modules '((guix base32))
|
||||
(gexp (begin
|
||||
(use-modules (guix base32))
|
||||
(write (list %load-path
|
||||
%fake!))))))
|
||||
(drv (gexp->script "guile-thing" exp
|
||||
#:guile %bootstrap-guile
|
||||
#:module-path (list directory)))
|
||||
(out -> (derivation->output-path drv))
|
||||
(done (built-derivations (list drv))))
|
||||
(let* ((pipe (open-input-pipe out))
|
||||
(data (read pipe)))
|
||||
(return (and (zero? (close-pipe pipe))
|
||||
(match data
|
||||
((load-path str*)
|
||||
(and (string=? str* str)
|
||||
(not (member directory load-path))))))))))))
|
||||
(run-with-store %store
|
||||
(mlet* %store-monad ((exp -> (with-imported-modules '((guix base32))
|
||||
(gexp (begin
|
||||
(use-modules (guix base32))
|
||||
(write (list %load-path
|
||||
%fake!))))))
|
||||
(drv (gexp->script "guile-thing" exp
|
||||
#:guile %bootstrap-guile
|
||||
#:module-path (list directory)))
|
||||
(out -> (derivation->output-path drv))
|
||||
(done (built-derivations (list drv))))
|
||||
(let* ((pipe (open-input-pipe out))
|
||||
(data (read pipe)))
|
||||
(return (and (zero? (close-pipe pipe))
|
||||
(match data
|
||||
((load-path str*)
|
||||
(and (string=? str* str)
|
||||
(not (member directory load-path)))))))))))))
|
||||
|
||||
(test-assertm "program-file"
|
||||
(let* ((n (random (expt 2 50)))
|
||||
|
@ -996,7 +997,7 @@
|
|||
(return (and (zero? (close-pipe pipe))
|
||||
(= n (string->number str)))))))))
|
||||
|
||||
(test-assertm "program-file #:module-path"
|
||||
(test-assert "program-file #:module-path"
|
||||
(call-with-temporary-directory
|
||||
(lambda (directory)
|
||||
(define text (random-text))
|
||||
|
@ -1014,14 +1015,15 @@
|
|||
(file (program-file "program" exp
|
||||
#:guile %bootstrap-guile
|
||||
#:module-path (list directory))))
|
||||
(mlet* %store-monad ((drv (lower-object file))
|
||||
(out -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
(let* ((pipe (open-input-pipe out))
|
||||
(str (get-string-all pipe)))
|
||||
(return (and (zero? (close-pipe pipe))
|
||||
(string=? text str))))))))))
|
||||
(run-with-store %store
|
||||
(mlet* %store-monad ((drv (lower-object file))
|
||||
(out -> (derivation->output-path drv)))
|
||||
(mbegin %store-monad
|
||||
(built-derivations (list drv))
|
||||
(let* ((pipe (open-input-pipe out))
|
||||
(str (get-string-all pipe)))
|
||||
(return (and (zero? (close-pipe pipe))
|
||||
(string=? text str)))))))))))
|
||||
|
||||
(test-assertm "program-file & with-extensions"
|
||||
(let* ((exp (with-extensions (list %extension-package)
|
||||
|
|
|
@ -185,6 +185,16 @@ grep -E 'emacs[[:blank:]]+42\.5\.9rc7[[:blank:]]+.*-emacs-42.5.9rc7' \
|
|||
rm "$emacs_tarball" "$tmpfile"
|
||||
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.
|
||||
|
@ -215,7 +225,7 @@ do
|
|||
guix package --bootstrap --roll-back
|
||||
! test -f "$HOME/.guix-profile/bin"
|
||||
! test -f "$HOME/.guix-profile/lib"
|
||||
test "`readlink "$default_profile"`" = "$default_profile-0-link"
|
||||
test "`readlink "$default_profile"`" = "`basename $default_profile-0-link`"
|
||||
done
|
||||
|
||||
# Check whether '-p ~/.guix-profile' makes any difference.
|
||||
|
|
|
@ -69,6 +69,65 @@ library
|
|||
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
|
||||
;; of 'and' over 'or', missing final newline, spaces between keywords and
|
||||
;; parentheses and between key and column.
|
||||
|
@ -139,6 +198,18 @@ library
|
|||
(eval-test-with-cabal test-cabal-3
|
||||
#: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"
|
||||
(match (call-with-input-string test-read-cabal-1 read-cabal)
|
||||
((("name" ("test-me"))
|
||||
|
|
|
@ -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")
|
Loading…
Reference in New Issue