me
/
guix
Archived
1
0
Fork 0

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

master
Efraim Flashner 2018-07-25 21:30:18 +03:00
commit 95da608451
No known key found for this signature in database
GPG Key ID: 41AAE7DCCA3D8351
109 changed files with 3458 additions and 2406 deletions

View File

@ -43,6 +43,7 @@ Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Mathieu Othacehe <m.othacehe@gmail.com> Mathieu Othacehe <m.othacehe@gmail.com>
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com> Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
Nils Gillmann <ng0@n0.is> ng0 <ng0@n0.is> Nils Gillmann <ng0@n0.is> ng0 <ng0@n0.is>
Nils Gillmann <ng0@n0.is> Nils Gillmann <gillmann@infotropique.org>
Nils Gillmann <ng0@n0.is> ng0 <ng0@crash.cx> Nils Gillmann <ng0@n0.is> ng0 <ng0@crash.cx>
Nils Gillmann <ng0@n0.is> ng0 <ng0@crash.cx> Nils Gillmann <ng0@n0.is> ng0 <ng0@crash.cx>
Nils Gillmann <ng0@n0.is> <ng0@infotropique.org> Nils Gillmann <ng0@n0.is> <ng0@infotropique.org>
@ -55,6 +56,7 @@ Nils Gillmann <ng0@n0.is> <ngillmann@runbox.com>
Nils Gillmann <ng0@n0.is> <niasterisk@grrlz.net> Nils Gillmann <ng0@n0.is> <niasterisk@grrlz.net>
Nils Gillmann <ng0@n0.is> <ng@niasterisk.space> Nils Gillmann <ng0@n0.is> <ng@niasterisk.space>
Nils Gillmann <ng0@n0.is> <ng0@libertad.pw> Nils Gillmann <ng0@n0.is> <ng0@libertad.pw>
Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@thebird.nl> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@thebird.nl>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@email> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@email>

View File

@ -27,7 +27,7 @@ mailing list. When you get commit access, please make sure to follow the
policy below (discussions of the policy can take place on guix-devel@gnu.org.) policy below (discussions of the policy can take place on guix-devel@gnu.org.)
Non-trivial patches should always be posted to guix-patches@gnu.org (trivial Non-trivial patches should always be posted to guix-patches@gnu.org (trivial
patches include fixing typos, etc.) This mailing list fills the patches include fixing typos, etc.). This mailing list fills the
patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see patch-tracking database at [[https://bugs.gnu.org/guix-patches]]; see
"Contributing" in the manual for details. "Contributing" in the manual for details.

View File

@ -111,6 +111,7 @@ MODULES = \
guix/build-system/asdf.scm \ guix/build-system/asdf.scm \
guix/build-system/glib-or-gtk.scm \ guix/build-system/glib-or-gtk.scm \
guix/build-system/gnu.scm \ guix/build-system/gnu.scm \
guix/build-system/guile.scm \
guix/build-system/haskell.scm \ guix/build-system/haskell.scm \
guix/build-system/perl.scm \ guix/build-system/perl.scm \
guix/build-system/python.scm \ guix/build-system/python.scm \
@ -149,6 +150,7 @@ MODULES = \
guix/build/glib-or-gtk-build-system.scm \ guix/build/glib-or-gtk-build-system.scm \
guix/build/gnu-build-system.scm \ guix/build/gnu-build-system.scm \
guix/build/gnu-dist.scm \ guix/build/gnu-dist.scm \
guix/build/guile-build-system.scm \
guix/build/perl-build-system.scm \ guix/build/perl-build-system.scm \
guix/build/python-build-system.scm \ guix/build/python-build-system.scm \
guix/build/ocaml-build-system.scm \ guix/build/ocaml-build-system.scm \
@ -498,8 +500,6 @@ EXTRA_DIST += \
build-aux/run-system-tests.scm \ build-aux/run-system-tests.scm \
d3.v3.js \ d3.v3.js \
graph.js \ graph.js \
srfi/srfi-64.scm \
srfi/srfi-64.upstream.scm \
tests/test.drv \ tests/test.drv \
tests/signing-key.pub \ tests/signing-key.pub \
tests/signing-key.sec \ tests/signing-key.sec \

View File

@ -4045,6 +4045,21 @@ specified with the @code{#:glib} parameter.
Both phases are executed after the @code{install} phase. Both phases are executed after the @code{install} phase.
@end defvr @end defvr
@defvr {Scheme Variable} guile-build-system
This build system is for Guile packages that consist exclusively of Scheme
code and that are so lean that they don't even have a makefile, let alone a
@file{configure} script. It compiles Scheme code using @command{guild
compile} (@pxref{Compilation,,, guile, GNU Guile Reference Manual}) and
installs the @file{.scm} and @file{.go} files in the right place. It also
installs documentation.
This build system supports cross-compilation by using the @code{--target}
option of @command{guild compile}.
Packages built with @code{guile-build-system} must provide a Guile package in
their @code{native-inputs} field.
@end defvr
@defvr {Scheme Variable} minify-build-system @defvr {Scheme Variable} minify-build-system
This variable is exported by @code{(guix build-system minify)}. It This variable is exported by @code{(guix build-system minify)}. It
implements a minification procedure for simple JavaScript packages. implements a minification procedure for simple JavaScript packages.
@ -12141,7 +12156,7 @@ secure connections to the print server.
Suppose you want to enable the Web interface of CUPS and also add Suppose you want to enable the Web interface of CUPS and also add
support for Epson printers @i{via} the @code{escpr} package and for HP support for Epson printers @i{via} the @code{escpr} package and for HP
printers @i{via} the @code{hplip} package. You can do that directly, printers @i{via} the @code{hplip-minimal} package. You can do that directly,
like this (you need to use the @code{(gnu packages cups)} module): like this (you need to use the @code{(gnu packages cups)} module):
@example @example
@ -12149,9 +12164,13 @@ like this (you need to use the @code{(gnu packages cups)} module):
(cups-configuration (cups-configuration
(web-interface? #t) (web-interface? #t)
(extensions (extensions
(list cups-filters escpr hplip)))) (list cups-filters escpr hplip-minimal))))
@end example @end example
Note: If you wish to use the Qt5 based GUI which comes with the hplip
package then it is suggested that you install the @code{hplip} package,
either in your OS configuration file or as your user.
The available configuration parameters follow. Each parameter The available configuration parameters follow. Each parameter
definition is preceded by its type; for example, @samp{string-list foo} definition is preceded by its type; for example, @samp{string-list foo}
indicates that the @code{foo} parameter should be specified as a list of indicates that the @code{foo} parameter should be specified as a list of
@ -17742,10 +17761,6 @@ Only evaluate specifications and build derivations once.
When substituting a pre-built binary fails, fall back to building When substituting a pre-built binary fails, fall back to building
packages locally. packages locally.
@item @code{load-path} (default: @code{'()})
This allows users to define their own packages and make them visible to
cuirass as in @command{guix build} command.
@item @code{cuirass} (default: @code{cuirass}) @item @code{cuirass} (default: @code{cuirass})
The Cuirass package to use. The Cuirass package to use.
@end table @end table

View File

@ -18,6 +18,7 @@
# Copyright © 2017, 2018 Gábor Boskovits <boskovits@gmail.com> # Copyright © 2017, 2018 Gábor Boskovits <boskovits@gmail.com>
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net> # Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> # Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -403,6 +404,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/sssd.scm \ %D%/packages/sssd.scm \
%D%/packages/stalonetray.scm \ %D%/packages/stalonetray.scm \
%D%/packages/statistics.scm \ %D%/packages/statistics.scm \
%D%/packages/stb.scm \
%D%/packages/storage.scm \ %D%/packages/storage.scm \
%D%/packages/suckless.scm \ %D%/packages/suckless.scm \
%D%/packages/swig.scm \ %D%/packages/swig.scm \
@ -671,13 +673,10 @@ dist_patch_DATA = \
%D%/packages/patches/fcgi-2.4.0-poll.patch \ %D%/packages/patches/fcgi-2.4.0-poll.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \
%D%/packages/patches/file-CVE-2017-1000249.patch \
%D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/findutils-test-xargs.patch \
%D%/packages/patches/flann-cmake-3.11.patch \ %D%/packages/patches/flann-cmake-3.11.patch \
%D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/flint-ldconfig.patch \
%D%/packages/patches/fltk-shared-lib-defines.patch \
%D%/packages/patches/fltk-xfont-on-demand.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \
%D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \
%D%/packages/patches/freeimage-CVE-2015-0852.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \
@ -716,6 +715,7 @@ dist_patch_DATA = \
%D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
%D%/packages/patches/ghostscript-CVE-2018-10194.patch \
%D%/packages/patches/ghostscript-no-header-id.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \
%D%/packages/patches/ghostscript-no-header-uuid.patch \ %D%/packages/patches/ghostscript-no-header-uuid.patch \
%D%/packages/patches/ghostscript-no-header-creationdate.patch \ %D%/packages/patches/ghostscript-no-header-creationdate.patch \
@ -942,6 +942,7 @@ dist_patch_DATA = \
%D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \ %D%/packages/patches/mingw-w64-5.0rc2-gcc-4.9.3.patch \
%D%/packages/patches/mpc123-initialize-ao.patch \ %D%/packages/patches/mpc123-initialize-ao.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \ %D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \ %D%/packages/patches/mozjs17-aarch64-support.patch \
%D%/packages/patches/mozjs24-aarch64-support.patch \ %D%/packages/patches/mozjs24-aarch64-support.patch \
@ -979,6 +980,7 @@ dist_patch_DATA = \
%D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \ %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch \
%D%/packages/patches/omake-fix-non-determinism.patch \ %D%/packages/patches/omake-fix-non-determinism.patch \
%D%/packages/patches/ola-readdir-r.patch \ %D%/packages/patches/ola-readdir-r.patch \
%D%/packages/patches/openbabel-fix-crash-on-nwchem-output.patch \
%D%/packages/patches/opencascade-oce-glibc-2.26.patch \ %D%/packages/patches/opencascade-oce-glibc-2.26.patch \
%D%/packages/patches/openblas-fix-tests-i686.patch \ %D%/packages/patches/openblas-fix-tests-i686.patch \
%D%/packages/patches/openexr-missing-samples.patch \ %D%/packages/patches/openexr-missing-samples.patch \
@ -1060,6 +1062,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-3-search-paths.patch \ %D%/packages/patches/python-3-search-paths.patch \
%D%/packages/patches/python-3-fix-tests.patch \ %D%/packages/patches/python-3-fix-tests.patch \
%D%/packages/patches/python-axolotl-AES-fix.patch \ %D%/packages/patches/python-axolotl-AES-fix.patch \
%D%/packages/patches/python-cairocffi-dlopen-path.patch \
%D%/packages/patches/python-dendropy-fix-tests.patch \ %D%/packages/patches/python-dendropy-fix-tests.patch \
%D%/packages/patches/python-fix-tests.patch \ %D%/packages/patches/python-fix-tests.patch \
%D%/packages/patches/python-genshi-add-support-for-python-3.4-AST.patch \ %D%/packages/patches/python-genshi-add-support-for-python-3.4-AST.patch \
@ -1136,7 +1139,6 @@ dist_patch_DATA = \
%D%/packages/patches/superlu-dist-scotchmetis.patch \ %D%/packages/patches/superlu-dist-scotchmetis.patch \
%D%/packages/patches/swish-e-search.patch \ %D%/packages/patches/swish-e-search.patch \
%D%/packages/patches/swish-e-format-security.patch \ %D%/packages/patches/swish-e-format-security.patch \
%D%/packages/patches/syncthing-fix-crash.patch \
%D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \ %D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \
%D%/packages/patches/t1lib-CVE-2010-2642.patch \ %D%/packages/patches/t1lib-CVE-2010-2642.patch \
%D%/packages/patches/t1lib-CVE-2011-0764.patch \ %D%/packages/patches/t1lib-CVE-2011-0764.patch \
@ -1162,6 +1164,7 @@ dist_patch_DATA = \
%D%/packages/patches/tophat-build-with-later-seqan.patch \ %D%/packages/patches/tophat-build-with-later-seqan.patch \
%D%/packages/patches/totem-meson-easy-codec.patch \ %D%/packages/patches/totem-meson-easy-codec.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-include-qregexpvalidator.patch \
%D%/packages/patches/unrtf-CVE-2016-10091.patch \ %D%/packages/patches/unrtf-CVE-2016-10091.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \
@ -1230,6 +1233,7 @@ dist_patch_DATA = \
%D%/packages/patches/xinetd-fix-fd-leak.patch \ %D%/packages/patches/xinetd-fix-fd-leak.patch \
%D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \
%D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/xmodmap-asprintf.patch \
%D%/packages/patches/xorg-server-rotate-fb.patch \
%D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \ %D%/packages/patches/zathura-pdf-mupdf-link-to-jpeg-libraries.patch \
%D%/packages/patches/zathura-plugindir-environment-variable.patch \ %D%/packages/patches/zathura-plugindir-environment-variable.patch \
%D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \ %D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \

View File

@ -46,6 +46,7 @@
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
@ -2740,3 +2741,30 @@ support forum. It runs with the @code{/exec} command in most IRC clients.")
;; perl-xml-dumper ;; perl-xml-dumper
;; ipmitool ;; ipmitool
,@(package-inputs inxi-minimal))))) ,@(package-inputs inxi-minimal)))))
(define-public pscircle
(package
(name "pscircle")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://gitlab.com/mildlyparallel/pscircle/-/archive/v"
version "/pscircle-v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1k757yf2bmgfrjd417l6kpcf83hlvi0z1791vz967mwcklrsb3fj"))))
(build-system meson-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("cairo" ,cairo)
("libpng" ,libpng)
("libx11" ,libx11)))
(home-page "https://gitlab.com/mildlyparallel/pscircle")
(synopsis "Visualize Linux processes in a form of radial tree")
(description
"@code{pscircle} visualizes Linux processes in the form of a radial tree.")
(license license:gpl2+)))

View File

@ -139,7 +139,7 @@ solve the shortest vector problem.")
(define-public pari-gp (define-public pari-gp
(package (package
(name "pari-gp") (name "pari-gp")
(version "2.9.4") (version "2.11.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -147,7 +147,7 @@ solve the shortest vector problem.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ir6m3a8r46md5x6zk4xf159qra7aqparby9zk03k81hjrrxr72g")))) "18f9yj8ffn3dxignbxj1x36771zbxy4js0r18mv6831ymb6cld9q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("texlive" ,texlive-tiny))) (native-inputs `(("texlive" ,texlive-tiny)))
(inputs `(("gmp" ,gmp) (inputs `(("gmp" ,gmp)
@ -179,7 +179,7 @@ PARI is also available as a C library to allow for faster computations.")
(define-public gp2c (define-public gp2c
(package (package
(name "gp2c") (name "gp2c")
(version "0.0.10") (version "0.0.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -187,7 +187,7 @@ PARI is also available as a C library to allow for faster computations.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1xhpz5p81iw261ay1kip283ggr0ir8ydz8qx3v24z8jfms1r3y70")))) "1z69xj2dpd8yyi8108rz26c50xpv0k2j8qnk0bzy1c5lw3pd1adm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl))) (native-inputs `(("perl" ,perl)))
(inputs `(("pari-gp" ,pari-gp))) (inputs `(("pari-gp" ,pari-gp)))
@ -315,7 +315,7 @@ fast arithmetic.")
(define-public arb (define-public arb
(package (package
(name "arb") (name "arb")
(version "2.13.0") (version "2.14.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -324,7 +324,7 @@ fast arithmetic.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"123p3gwx0s3i88rcaj3g4jl37cr3pywhpqackipskzab15ni2xfh")))) "0ncr27nd20xxi18nj30cvpa6r52v59nq7gbi34x3l4xym3p8mlmx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("flint" ,flint))) ; flint.h is included by arf.h `(("flint" ,flint))) ; flint.h is included by arf.h
@ -342,19 +342,18 @@ fast arithmetic.")
(mpfr (assoc-ref inputs "mpfr"))) (mpfr (assoc-ref inputs "mpfr")))
;; do not pass "--enable-fast-install", which makes the ;; do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail ;; homebrew configure process fail
(zero? (system* (invoke "./configure"
"./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--with-flint=" flint) (string-append "--with-flint=" flint)
(string-append "--with-gmp=" gmp) (string-append "--with-gmp=" gmp)
(string-append "--with-mpfr=" mpfr))))))))) (string-append "--with-mpfr=" mpfr))))))))
(synopsis "Arbitrary precision floating-point ball arithmetic") (synopsis "Arbitrary precision floating-point ball arithmetic")
(description (description
"Arb is a C library for arbitrary-precision floating-point ball "Arb is a C library for arbitrary-precision floating-point ball
arithmetic. It supports efficient high-precision computation with arithmetic. It supports efficient high-precision computation with
polynomials, power series, matrices and special functions over the polynomials, power series, matrices and special functions over the
real and complex numbers, with automatic, rigorous error control.") real and complex numbers, with automatic, rigorous error control.")
(license license:gpl2+) (license license:lgpl2.1+)
(home-page "http://fredrikj.net/arb/"))) (home-page "http://fredrikj.net/arb/")))
(define-public ntl (define-public ntl

View File

@ -27,6 +27,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -49,6 +50,19 @@
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'set-filter-path
(lambda* (#:key outputs #:allow-other-keys)
;; Change the default value of 'filter-path' so that filters such
;; as 'tex-filter.so' can be found. By default none of the
;; filters would be found.
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib/aspell-"
,(version-major+minor version))))
(substitute* "common/config.cpp"
(("\"filter-path(.*)DICT_DIR" _ middle)
(string-append "\"filter-path" middle
"\"" libdir "\"")))
#t)))
(add-after 'install 'wrap-aspell (add-after 'install 'wrap-aspell
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((bin/aspell (string-append (assoc-ref outputs "out") (let ((bin/aspell (string-append (assoc-ref outputs "out")
@ -141,10 +155,10 @@ dictionaries, including personal ones.")
(define-public aspell-dict-en (define-public aspell-dict-en
(aspell-dictionary "en" "English" (aspell-dictionary "en" "English"
#:version "2017.08.24-0" #:version "2018.04.16-0"
#:sha256 #:sha256
(base32 (base32
"0z2vvm1by485cm0sna21cmw6zb771c2l2lnn676zmrwm46q65d89"))) "0bxxdzkk9g27plg22y9qzsx9cfjw3aa29w5bmzs561qc9gkp247i")))
(define-public aspell-dict-eo (define-public aspell-dict-eo
(aspell-dictionary "eo" "Esperanto" (aspell-dictionary "eo" "Esperanto"

View File

@ -2505,7 +2505,7 @@ encode and decode wavpack files.")
(define-public libmodplug (define-public libmodplug
(package (package
(name "libmodplug") (name "libmodplug")
(version "0.8.8.5") (version "0.8.9.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2513,7 +2513,7 @@ encode and decode wavpack files.")
name "/" version "/" name "-" version ".tar.gz")) name "/" version "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp")))) "1pnri98a603xk47smnxr551svbmgbzcw018mq1k6srbrq6kaaz25"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://modplug-xmms.sourceforge.net/") (home-page "http://modplug-xmms.sourceforge.net/")
(synopsis "Mod file playing library") (synopsis "Mod file playing library")

View File

@ -373,7 +373,7 @@ and will take advantage of multiple processor cores where possible.")
(define-public libtorrent-rasterbar (define-public libtorrent-rasterbar
(package (package
(name "libtorrent-rasterbar") (name "libtorrent-rasterbar")
(version "1.1.7") (version "1.1.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -383,7 +383,7 @@ and will take advantage of multiple processor cores where possible.")
"/libtorrent-rasterbar-" version ".tar.gz")) "/libtorrent-rasterbar-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1agkcyjs7xscx4sgkg2ri4nm4v736xsg3br2v8jcrph86dlbycw1")))) "0pcdy26l5ivcs78y2bqh2qca83ikzjfchw5815xh69qf8g88zgvb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -580,6 +580,9 @@ board-independent tools.")))
(define-public u-boot-cubieboard (define-public u-boot-cubieboard
(make-u-boot-package "Cubieboard" "arm-linux-gnueabihf")) (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf"))
(define-public u-boot-cubietruck
(make-u-boot-package "Cubietruck" "arm-linux-gnueabihf"))
(define-public u-boot-puma-rk3399 (define-public u-boot-puma-rk3399
(let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu"))) (let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
(package (package

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -31,7 +31,7 @@
(define-public busybox (define-public busybox
(package (package
(name "busybox") (name "busybox")
(version "1.26.2") (version "1.29.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -39,11 +39,18 @@
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"05mg6rh5smkzfwqfcazkpwy6h6555llsazikqnvwkaf17y8l8gns")))) "1hqlr5b3bsyb6avadz1z4za6pyl32r1krnpcpwwqilhnx8q0f9gw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'disable-taskset
;; This feature fails its tests in the build environment,
;; was default 'n' until after 1.26.2.
(lambda _
(substitute* "util-linux/taskset.c"
(("default y") "default n"))
#t))
(replace 'configure (replace 'configure
(lambda _ (invoke "make" "defconfig"))) (lambda _ (invoke "make" "defconfig")))
(replace 'check (replace 'check

View File

@ -418,7 +418,7 @@ graphical interface.")
(define-public libcue (define-public libcue
(package (package
(name "libcue") (name "libcue")
(version "2.2.0") (version "2.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -427,8 +427,10 @@ graphical interface.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0y9808vbly1w6i3diaad9csjmmw6iaw572wjjr68ssqamsw193rj")))) "000j5xqp7cc7njwlixr9byahz9kn8pcfdgm76afwv4p8nbmw6yzj"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)
("flex" ,flex))) ("flex" ,flex)))

View File

@ -21,10 +21,15 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download) #:use-module (guix download)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages gv) #:use-module (gnu packages gv)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages xml)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
@ -198,3 +203,42 @@ neutron scattering spectra, but also computes other quantities. The software
is currently not actively maintained and works only with Python 2 and is currently not actively maintained and works only with Python 2 and
NumPy < 1.9.") NumPy < 1.9.")
(license license:cecill))) (license license:cecill)))
(define-public openbabel
(package
(name "openbabel")
(version "2.4.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90"))
(patches
(search-patches "openbabel-fix-crash-on-nwchem-output.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list "-DOPENBABEL_USE_SYSTEM_INCHI=ON"
(string-append "-DINCHI_LIBRARY="
(assoc-ref %build-inputs "inchi")
"/lib/inchi/libinchi.so.1")
(string-append "-DINCHI_INCLUDE_DIR="
(assoc-ref %build-inputs "inchi") "/include/inchi"))
#:test-target "test"))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("eigen" ,eigen)
("inchi" ,inchi)
("libxml2" ,libxml2)
("zlib" ,zlib)))
(home-page "http://openbabel.org/wiki/Main_Page")
(synopsis "Chemistry data manipulation toolbox")
(description
"Open Babel is a chemical toolbox designed to speak the many languages of
chemical data. It's a collaborative project allowing anyone to search, convert,
analyze, or store data from molecular modeling, chemistry, solid-state
materials, biochemistry, or related areas.")
(license license:gpl2)))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -184,8 +185,8 @@ their dependencies.")
(license l:gpl3+)))) (license l:gpl3+))))
(define-public cuirass (define-public cuirass
(let ((commit "238f856e48ee333ed3e19fa32ce5e1742c650c67") (let ((commit "7b2f9e0de1ad2d320973b7aea132a8afcad8bece")
(revision "16")) (revision "17"))
(package (package
(name "cuirass") (name "cuirass")
(version (string-append "0.0.1-" revision "." (string-take commit 7))) (version (string-append "0.0.1-" revision "." (string-take commit 7)))
@ -197,7 +198,7 @@ their dependencies.")
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"15iwdgy561gnsr224rs5z8qn7nrsh1wdlsxr8gwxyk0v4zp6yvbf")))) "0knww99adgjh8s6f38z3hpwi9hxhmnvqj5g35pcj80xv8j4xj3y3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:modules ((guix build utils) '(#:modules ((guix build utils)

View File

@ -981,6 +981,43 @@ provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,
respectively, based on the reference implementation from Google.") respectively, based on the reference implementation from Google.")
(license license:expat)))) (license license:expat))))
(define-public bsdiff
(package
(name "bsdiff")
(version "4.3")
(home-page "https://www.daemonology.net/bsdiff/")
(source (origin
(method url-fetch)
(uri (string-append home-page name "-" version ".tar.gz"))
(sha256
(base32
"0j2zm3z271x5aw63mwhr3vymzn45p2vvrlrpm9cz2nywna41b0hq"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "INSTALL=install" "CC=gcc"
(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases (modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'fix-Makefile
(lambda _
(substitute* "Makefile"
;; Adjust syntax to make it compatible with GNU Make.
(("^\\.") "")
;; Help install(1) create the target directory.
(("\\$\\{PREFIX\\}") "-D -t ${PREFIX}"))
#t)))
#:tests? #f)) ;no tests
(inputs
`(("bzip2" ,bzip2)))
(synopsis "Patch binary files")
(description
"@command{bsdiff} and @command{bspatch} are tools for building and
applying patches to binary files. By using suffix sorting (specifically
Larsson and Sadakane's @code{qsufsort}) and taking advantage of how
executable files change, bsdiff routinely produces binary patches 50-80%
smaller than those produced by @code{Xdelta}.")
(license license:bsd-2)))
(define-public cabextract (define-public cabextract
(package (package
(name "cabextract") (name "cabextract")

View File

@ -668,39 +668,32 @@ data on your platform, so the seed itself will be as random as possible.
(license (list license:boost1.0 license:public-domain)))) (license (list license:boost1.0 license:public-domain))))
(define-public libb2 (define-public libb2
(let ((revision "1") ; upstream doesn't do releases (package
(commit "60ea749837362c226e8501718f505ab138e5c19d")) (name "libb2")
(package (version "0.98")
(name "libb2") (source (origin
(version (git-version "0.0.0" revision commit)) (method url-fetch)
(source (origin (uri (string-append
(method git-fetch) "https://github.com/BLAKE2/libb2/releases/download/v"
(uri (git-reference version "/libb2-" version ".tar.gz"))
(url "https://github.com/BLAKE2/libb2") (sha256
(commit commit))) (base32
(file-name (git-file-name name version)) "0vq39cvwy05754l565xl11rqr2jvjb6ykjzca886vi9vm71y0sg8"))))
(sha256 (build-system gnu-build-system)
(base32 (arguments
"07a2m8basxrsj9dsp5lj24y8jraj85lfy56756a7za1nfkgy04z7")))) `(#:configure-flags
(build-system gnu-build-system) (list
(native-inputs ,@(if (any (cute string-prefix? <> (or (%current-system)
`(("autoconf" ,autoconf) (%current-target-system)))
("automake" ,automake) '("x86_64" "i686"))
("libtool" ,libtool))) ;; fat only checks for Intel optimisations
(arguments '("--enable-fat")
`(#:configure-flags '())
(list "--disable-native"))) ;don't optimise at build time
,@(if (any (cute string-prefix? <> (or (%current-system) (home-page "https://blake2.net/")
(%current-target-system))) (synopsis "Library implementing the BLAKE2 family of hash functions")
'("x86_64" "i686")) (description
;; fat only checks for Intel optimisations "libb2 is a portable implementation of the BLAKE2 family of cryptographic
'("--enable-fat")
'())
"--disable-native"))) ;don't optimise at build time
(home-page "https://blake2.net/")
(synopsis "Library implementing the BLAKE2 family of hash functions")
(description
"libb2 is a portable implementation of the BLAKE2 family of cryptographic
hash functions. It includes optimised implementations for IA-32 and AMD64 hash functions. It includes optimised implementations for IA-32 and AMD64
processors, and an interface layer that automatically selects the best processors, and an interface layer that automatically selects the best
implementation for the processor it is run on. implementation for the processor it is run on.
@ -709,7 +702,7 @@ implementation for the processor it is run on.
that are faster than MD5, SHA-1, SHA-2, and SHA-3, yet are at least as secure that are faster than MD5, SHA-1, SHA-2, and SHA-3, yet are at least as secure
as the latest standard, SHA-3. It is an improved version of the SHA-3 finalist as the latest standard, SHA-3. It is an improved version of the SHA-3 finalist
BLAKE.") BLAKE.")
(license license:public-domain)))) (license license:public-domain)))
(define-public rhash (define-public rhash
(package (package
@ -755,14 +748,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
(define-public botan (define-public botan
(package (package
(name "botan") (name "botan")
(version "2.6.0") (version "2.7.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://botan.randombit.net/releases/" (uri (string-append "https://botan.randombit.net/releases/"
"Botan-" version ".tgz")) "Botan-" version ".tgz"))
(sha256 (sha256
(base32 (base32
"1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1")))) "142aqabwc266jxn8wrp0f1ffrmcvdxwvyh8frb38hx9iaqazjbg4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -797,3 +790,26 @@ specifically designed to be easy to call from other languages. A Python binding
using ctypes is included, and several other language bindings are available.") using ctypes is included, and several other language bindings are available.")
(home-page "https://botan.randombit.net") (home-page "https://botan.randombit.net")
(license license:bsd-2))) (license license:bsd-2)))
(define-public ccrypt
(package
(name "ccrypt")
(version "1.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/ccrypt/ccrypt/"
version "/ccrypt-" version ".tar.gz"))
(sha256
(base32
"184v9676hx2w875cz04rd3a20wrcms33a1zwybvapb0g2yi6vml7"))))
(build-system gnu-build-system)
(home-page "http://ccrypt.sourceforge.net")
(synopsis "Command-line utility for encrypting and decrypting files and streams")
(description "@command{ccrypt} is a utility for encrypting and decrypting
files and streams. It was designed as a replacement for the standard unix
@command{crypt} utility, which is notorious for using a very weak encryption
algorithm. @command{ccrypt} is based on the Rijndael block cipher, a version of
which is also used in the Advanced Encryption Standard (AES, see
@url{http://www.nist.gov/aes}). This cipher is believed to provide very strong
security.")
(license license:gpl2)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
@ -46,7 +46,9 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)) #:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
(define-public cups-filters (define-public cups-filters
(package (package
@ -174,6 +176,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
(define-public cups-minimal (define-public cups-minimal
(package (package
(name "cups-minimal") (name "cups-minimal")
(replacement cups-minimal-2.2.8)
(version "2.2.6") (version "2.2.6")
(source (source
(origin (origin
@ -234,8 +237,21 @@ describe printer capabilities and features, and a wide variety of generic and
device-specific programs to convert and print many types of files.") device-specific programs to convert and print many types of files.")
(license license:gpl2))) (license license:gpl2)))
(define-public cups-minimal-2.2.8
(package
(inherit cups-minimal)
(version "2.2.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/apple/cups/releases/download/v"
version "/cups-" version "-source.tar.gz"))
(sha256
(base32
"1r7r7b3nqpzc1a9dczqpj2mr8rkcwf01676v11sp4j7w4qfzqs1r"))))))
(define-public cups (define-public cups
(package (inherit cups-minimal) (package/inherit cups-minimal
(name "cups") (name "cups")
(arguments (arguments
`(;; Three tests fail: `(;; Three tests fail:
@ -506,6 +522,19 @@ device-specific programs to convert and print many types of files.")
`(("perl" ,perl) `(("perl" ,perl)
("pkg-config" ,pkg-config))))) ("pkg-config" ,pkg-config)))))
(define-public hplip-minimal
(package
(inherit hplip)
(name "hplip-minimal")
(arguments
(substitute-keyword-arguments (package-arguments hplip)
((#:configure-flags cf)
``(,@(delete "--enable-qt5" ,cf)))))
(inputs
`(,@(fold alist-delete (package-inputs hplip)
'("python-pygobject" "python-pyqt"))))
(synopsis "GUI-less version of hplip")))
(define-public foomatic-filters (define-public foomatic-filters
(package (package
(name "foomatic-filters") (name "foomatic-filters")

View File

@ -702,6 +702,7 @@ Language.")
as a drop-in replacement of MySQL.") as a drop-in replacement of MySQL.")
(license license:gpl2))) (license license:gpl2)))
;; Don't forget to update the other postgresql packages when upgrading this one.
(define-public postgresql (define-public postgresql
(package (package
(name "postgresql") (name "postgresql")
@ -750,14 +751,14 @@ pictures, sounds, or video.")
(package (package
(inherit postgresql) (inherit postgresql)
(name "postgresql") (name "postgresql")
(version "9.6.8") (version "9.6.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ftp.postgresql.org/pub/source/v" (uri (string-append "https://ftp.postgresql.org/pub/source/v"
version "/postgresql-" version ".tar.bz2")) version "/postgresql-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0w7bwf19wbdd3jjbjv03cnx56qka4801srcbsayk9v792awv7zga")))))) "0biy8j69dbvdmrag55pdszpc0702agzqhhcwdx21xp02mzim4ydr"))))))
(define-public qdbm (define-public qdbm
(package (package

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -57,31 +58,32 @@ clients.")
(define-public vdirsyncer (define-public vdirsyncer
(package (package
(name "vdirsyncer") (name "vdirsyncer")
(version "0.16.6") (version "0.16.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66")))) "1vqjhn2bffy2bx45a1r14crsyn2cylf5by567g44c4mhpjwwz6vc"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(setenv "DETERMINISTIC_TESTS" "true") (setenv "DETERMINISTIC_TESTS" "true")
(setenv "DAV_SERVER" "radicale") (setenv "DAV_SERVER" "radicale")
(setenv "REMOTESTORAGE_SERVER" "skip") (setenv "REMOTESTORAGE_SERVER" "skip")
(zero? (system* "make" "test")))) (invoke "make" "test")))
(add-after 'install 'manpage (add-after 'install 'manpage
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(zero? (system* "make" "--directory=docs/" "man")) (invoke "make" "--directory=docs/" "man")
(install-file (install-file
"docs/_build/man/vdirsyncer.1" "docs/_build/man/vdirsyncer.1"
(string-append (string-append
(assoc-ref outputs "out") (assoc-ref outputs "out")
"/share/man/man1"))))))) "/share/man/man1"))
#t)))))
(native-inputs (native-inputs
`(("python-setuptools-scm" ,python-setuptools-scm) `(("python-setuptools-scm" ,python-setuptools-scm)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
@ -105,5 +107,5 @@ between two storage locations. The most popular purpose is to
synchronize a CalDAV or CardDAV server with a local folder or file. The synchronize a CalDAV or CardDAV server with a local folder or file. The
local data can then be accessed via a variety of programs, none of which local data can then be accessed via a variety of programs, none of which
have to know or worry about syncing to a server.") have to know or worry about syncing to a server.")
(home-page "https://github.com/untitaker/vdirsyncer") (home-page "https://github.com/pimutils/vdirsyncer")
(license bsd-3))) (license bsd-3)))

View File

@ -17,6 +17,7 @@
(define-module (gnu packages debian) (define-module (gnu packages debian)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
@ -112,15 +113,17 @@ contains the archive keys used for that.")
(define-public debootstrap (define-public debootstrap
(package (package
(name "debootstrap") (name "debootstrap")
(version "1.0.101") (version "1.0.106")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "mirror://debian/pool/main/d/" name "/" (uri (git-reference
name "_" version ".tar.gz")) (url "https://salsa.debian.org/installer-team/debootstrap.git")
(commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3")))) "1fm5bgllcwgwizrqi4sn8p4fpbzhbzgwprrfppfq9hqdzbmlfmnv"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -165,7 +168,7 @@ contains the archive keys used for that.")
`(("binutils" ,binutils) `(("binutils" ,binutils)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
("perl" ,perl))) ("perl" ,perl)))
(home-page "https://anonscm.debian.org/cgit/d-i/debootstrap.git") (home-page "https://tracker.debian.org/pkg/debootstrap")
(synopsis "Bootstrap a basic Debian system") (synopsis "Bootstrap a basic Debian system")
(description "Debootstrap is used to create a Debian base system from (description "Debootstrap is used to create a Debian base system from
scratch, without requiring the availability of @code{dpkg} or @code{apt}. scratch, without requiring the availability of @code{dpkg} or @code{apt}.

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Joshua Grant <tadni@riseup.net> ;;; Copyright © 2013 Joshua Grant <tadni@riseup.net>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
@ -134,7 +134,7 @@ Qt-style API for Wayland clients.")
(define-public sddm (define-public sddm
(package (package
(name "sddm") (name "sddm")
(version "0.17.0") (version "0.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -143,7 +143,7 @@ Qt-style API for Wayland clients.")
"sddm-" version ".tar.xz")) "sddm-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k")))) "0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules) `(("extra-cmake-modules" ,extra-cmake-modules)
@ -256,7 +256,7 @@ create smooth, animated user interfaces.")
(inputs (inputs
`(("audit" ,audit) `(("audit" ,audit)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
("util-linux" ,util-linux) ; for sbin/nologin ("shadow" ,shadow) ;for sbin/nologin
("libgcrypt" ,libgcrypt) ("libgcrypt" ,libgcrypt)
("libxcb" ,libxcb))) ("libxcb" ,libxcb)))
(native-inputs (native-inputs

View File

@ -75,7 +75,7 @@
(define-public calibre (define-public calibre
(package (package
(name "calibre") (name "calibre")
(version "3.17.0") (version "3.28.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -84,7 +84,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1w6hw1s0d4daa4q2ykzhxdndiq61l8z7ls7rxh7k7p62ia0i5sxp")) "0b3vv03c6m6972sk8zj3zc5sq6b9837irnfgjlqhv9z5i75m0414"))
;; Remove non-free or doubtful code, see ;; Remove non-free or doubtful code, see
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html ;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
(modules '((guix build utils))) (modules '((guix build utils)))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 nee <nee.git@cock.li> ;;; Copyright © 2017 nee <nee.git@cock.li>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -32,7 +33,7 @@
(define-public elixir (define-public elixir
(package (package
(name "elixir") (name "elixir")
(version "1.5.3") (version "1.6.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/elixir-lang/elixir" (uri (string-append "https://github.com/elixir-lang/elixir"
@ -40,10 +41,11 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg")))) "0c9qz5hasa59a9x1iwpcqpqj6wdbzpijfxqfmzimwj5z8q37nl3l"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
#:make-flags (list (string-append "PREFIX=" #:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out"))) (assoc-ref %outputs "out")))
#:phases #:phases

View File

@ -36,6 +36,8 @@
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de> ;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -107,6 +109,7 @@
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages password-utils) #:use-module (gnu packages password-utils)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
@ -199,7 +202,7 @@
("libxft" ,libxft) ("libxft" ,libxft)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("giflib" ,giflib) ("giflib" ,giflib)
("libjpeg" ,libjpeg-8) ("libjpeg" ,libjpeg)
("imagemagick" ,imagemagick) ("imagemagick" ,imagemagick)
("acl" ,acl) ("acl" ,acl)
@ -4573,25 +4576,28 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-wgrep (define-public emacs-wgrep
(package (let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
(name "emacs-wgrep") ;; Late commit fixes compatibility issue with Emacs 26+.
(version "2.1.10") (package
(source (origin (name "emacs-wgrep")
(method url-fetch) (version (git-version "2.1.10" "1" commit))
(uri (string-append (source (origin
"https://github.com/mhayashi1120/Emacs-wgrep/archive/" (method git-fetch)
version ".tar.gz")) (uri (git-reference
(file-name (string-append name "-" version ".tar.gz")) (url "https://github.com/mhayashi1120/Emacs-wgrep")
(sha256 (commit commit)))
(base32 (file-name (git-file-name name version))
"1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1")))) (sha256
(build-system emacs-build-system) (base32
(home-page "https://github.com/mhayashi1120/Emacs-wgrep") "1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
(synopsis "Edit a grep buffer and apply those changes to the files") (build-system emacs-build-system)
(description (home-page "https://github.com/mhayashi1120/Emacs-wgrep")
"Emacs wgrep allows you to edit a grep buffer and apply those changes to (synopsis "Edit a grep buffer and apply those changes to the files")
the file buffer.") (description
(license license:gpl3+))) "Emacs wgrep allows you to edit a grep buffer and apply those changes
to the file buffer. Several backends are supported beside the classic grep:
ack, ag, helm and pt.")
(license license:gpl3+))))
(define-public emacs-helm (define-public emacs-helm
(package (package
@ -4855,11 +4861,11 @@ extensions.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-evil-collection (define-public emacs-evil-collection
(let ((commit "ac21b8957cfc22485cdaa316384edf9cb220d837") (let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10")
(revision "1")) (revision "2"))
(package (package
(name "emacs-evil-collection") (name "emacs-evil-collection")
(version (git-version "20180617" revision commit)) (version (git-version "20180721" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -4868,7 +4874,7 @@ extensions.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"082a3c5c2ls9ryqrl5kzb4z6bcprhqx8pypnlj1razbld3lny934")))) "05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-evil" ,emacs-evil))) `(("emacs-evil" ,emacs-evil)))
@ -6229,14 +6235,14 @@ which code derived from Kelvin H's org-page.")
(define-public emacs-xelb (define-public emacs-xelb
(package (package
(name "emacs-xelb") (name "emacs-xelb")
(version "0.14") (version "0.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/xelb-" (uri (string-append "https://elpa.gnu.org/packages/xelb-"
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74")))) "031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
;; The following functions and variables needed by emacs-xelb are ;; The following functions and variables needed by emacs-xelb are
;; not included in emacs-minimal: ;; not included in emacs-minimal:
@ -6268,7 +6274,7 @@ It should enable you to implement low-level X11 applications.")
(define-public emacs-exwm (define-public emacs-exwm
(package (package
(name "emacs-exwm") (name "emacs-exwm")
(version "0.18") (version "0.19")
(synopsis "Emacs X window manager") (synopsis "Emacs X window manager")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -6276,7 +6282,7 @@ It should enable you to implement low-level X11 applications.")
version ".tar")) version ".tar"))
(sha256 (sha256
(base32 (base32
"1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q")))) "11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-xelb" ,emacs-xelb))) `(("emacs-xelb" ,emacs-xelb)))
@ -7356,10 +7362,10 @@ messaging service.")
("bash-completion-prog" (string-append bash "/bin/bash")))) ("bash-completion-prog" (string-append bash "/bin/bash"))))
#t))))) #t)))))
(home-page "https://github.com/szermatt/emacs-bash-completion") (home-page "https://github.com/szermatt/emacs-bash-completion")
(synopsis "BASH completion for the shell buffer") (synopsis "Bash completion for the shell buffer")
(description (description
"@code{bash-completion} defines dynamic completion hooks for shell-mode "@code{bash-completion} defines dynamic completion hooks for shell-mode
and shell-command prompts that are based on bash completion.") and shell-command prompts that are based on Bash completion.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public emacs-easy-kill (define-public emacs-easy-kill
@ -8819,23 +8825,33 @@ navigate and display hierarchy structures.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-pulseaudio-control (define-public emacs-pulseaudio-control
(let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b") (let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
(revision "1")) (revision "2"))
(package (package
(name "emacs-pulseaudio-control") (name "emacs-pulseaudio-control")
(version (string-append "0.0.1" "-" revision "." (version (git-version "0.0.1" revision commit))
(string-take commit 7)))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/flexibeast/pulseaudio-control.git") (url "https://github.com/flexibeast/pulseaudio-control.git")
(commit commit))) (commit commit)))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv")))) "02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-file-name
(lambda* (#:key inputs #:allow-other-keys)
(let ((pulseaudio (assoc-ref inputs "pulseaudio")))
(chmod "pulseaudio-control.el" #o600)
(emacs-substitute-variables "pulseaudio-control.el"
("pulseaudio-control-pactl-path"
(string-append pulseaudio "/bin/pactl")))
#t))))))
(inputs `(("pulseaudio" ,pulseaudio)))
(home-page "https://github.com/flexibeast/pulseaudio-control") (home-page "https://github.com/flexibeast/pulseaudio-control")
(synopsis "Control @code{pulseaudio} from Emacs") (synopsis "Control @code{pulseaudio} from Emacs")
(description (description
@ -10218,10 +10234,10 @@ keep Parens and Indentation inline with one another.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-helm-eww (define-public emacs-helm-eww
(let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac")) (let ((commit "1a09f11b2376dec8237df40140f056be8a256ef0"))
(package (package
(name "emacs-helm-eww") (name "emacs-helm-eww")
(version (git-version "0.1" "1" commit)) (version (git-version "0.1" "2" commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -10230,7 +10246,7 @@ keep Parens and Indentation inline with one another.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183")))) "1kqdjhz2xiqw3bxjhfl9namhqrkbc2x70gcv6ljljya5hbkm62sm"))))
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm))) `(("emacs-helm" ,emacs-helm)))
(build-system emacs-build-system) (build-system emacs-build-system)
@ -11083,10 +11099,10 @@ from @code{emms-source-file-default-directory}.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-helm-exwm (define-public emacs-helm-exwm
(let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990")) (let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
(package (package
(name "emacs-helm-exwm") (name "emacs-helm-exwm")
(version (git-version "20180523" "1" commit)) (version (git-version "20180703" "2" commit))
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -11096,7 +11112,7 @@ from @code{emms-source-file-default-directory}.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb")))) "0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-helm" ,emacs-helm) `(("emacs-helm" ,emacs-helm)
@ -11304,37 +11320,14 @@ file.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-wgrep-helm (define-public emacs-wgrep-helm
(let ((commit "1cdd7c136f1e7565bb13d2df69be3dc77b83698d")) ;; `emacs-wgrep-helm' was mistakenly added.
(package (deprecated-package "emacs-wgrep-helm" emacs-wgrep))
(name "emacs-wgrep-helm")
(version (git-version "2.1.10" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mhayashi1120/Emacs-wgrep")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"057p99hq0r6z1k8sl15w3sxrqvlv0g9wp39zy1pqhccv2mn3g2d6"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-wgrep" ,emacs-wgrep)))
(home-page
"https://github.com/mhayashi1120/Emacs-wgrep")
(synopsis
"Writable helm-grep-mode buffer and apply the changes to files")
(description
"@code{wgrep-helm} allows you to edit a @code{helm-grep-mode} buffer and
apply those changes to the file buffer.")
(license license:gpl3+))))
(define-public emacs-mu4e-conversation (define-public emacs-mu4e-conversation
(let ((commit "b60d6bd27d7220c3dd041ff2a090e29f2166a319")) (let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb"))
(package (package
(name "emacs-mu4e-conversation") (name "emacs-mu4e-conversation")
(version (git-version "20180615" "1" commit)) (version (git-version "20180722" "2" commit))
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -11345,7 +11338,7 @@ apply those changes to the file buffer.")
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"0x8kmi0rmbaaxn5zicm1f9yb8ynxi8074hi2n0rvymlfpxbpn0ma")))) "1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("mu" ,mu))) `(("mu" ,mu)))
@ -11463,3 +11456,158 @@ 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 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.") show it; if it's not, we want to hide whatever fold the cursor is in.")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public emacs-markup-faces
(package
(name "emacs-markup-faces")
(version "1.0.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/markup-faces-"
version ".el"))
(sha256
(base32
"124dxbaa25fwxnpwsygpz7pw6da6dnnw7y2lic3jf8rgz7lw4v32"))))
(build-system emacs-build-system)
(home-page "https://github.com/sensorflo/markup-faces")
(synopsis "Collection of Emacs faces for markup language modes")
(description "emacs-markup-faces is like font-lock-faces, but tailored for
markup languages instead programming languages. The sub group markup-faces-text
is also intended for 'text viewing modes' such as info or (wo)man. This gives a
common look and feel, or let's say theme, across different markup language modes
and 'text viewing modes' respectively.")
(license license:gpl3+)))
(define-public emacs-adoc-mode
(package
(name "emacs-adoc-mode")
(version "0.6.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://stable.melpa.org/packages/adoc-mode-"
version ".el"))
(sha256
(base32
"1c6hrgxxsnl2c19rgjykpm7r4xg9lp6bmk5z6bi7g8pqlrgwffcy"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-markup-faces" ,emacs-markup-faces)))
(home-page "https://github.com/sensorflo/adoc-mode/wiki")
(synopsis "AsciiDoc mode for Emacs")
(description "This package provides an Emacs major mode for editing AsciiDoc
files. It focuses on highlighting the document to improve readability.")
(license license:gpl2+)))
(define-public emacs-rust-mode
(let ((commit
;; Last release is old (2016), use more recent commit to get bug
;; fixes.
"64b4a2450e4d4c47f6307851c9b2598cd2254d68")
(revision "0"))
(package
(name "emacs-rust-mode")
(version (git-version "0.3.0" revision commit))
(source (origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/rust-lang/rust-mode")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0pbz36lljgb7bdgx3h3g0pq1nss1kvn8mhk1l3mknsmynd6w4nd8"))))
(build-system emacs-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "sh" "run_rust_emacs_tests.sh"))))))
(home-page "https://github.com/rust-lang/rust-mode")
(synopsis "Major Emacs mode for editing Rust source code")
(description "This package provides a major Emacs mode for editing Rust
source code.")
(license (list license:expat
license:asl2.0)))))
(define-public emacs-ztree
(let ((commit "c54425a094353ec40a8179f9eab3596f76c6cf94"))
(package
(name "emacs-ztree")
(version (git-version "1.0.5" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fourier/ztree")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0j8fpxds8m1zi04nrs8vv21091abvh4n8ab76f1sgdxnp4l5cfb0"))))
(build-system emacs-build-system)
(home-page "https://github.com/fourier/ztree")
(synopsis "Directory tree comparison mode for Emacs")
(description "Ztree is a project dedicated to implementation of several
text-tree applications inside GNU Emacs. It consists of 2 subprojects:
@command{ztree-diff} and @command{ztree-dir} (the basis of
@command{ztree-diff}).")
(license license:gpl3))))
(define-public emacs-helm-org-contacts
(let ((commit "0af703bd9a43032b89fdf5559673151d1ac2fffc"))
(package
(name "emacs-helm-org-contacts")
(version (git-version "20180707" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tmalsburg/helm-org-contacts")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1cl7cm2ic9pg4vc9cdh84vzjj1x2lpd5ymimiva8h4l17kiphk4s"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-helm" ,emacs-helm)
("emacs-s" ,emacs-s)))
(home-page "https://github.com/tmalsburg/helm-org-contacts")
(synopsis "Helm source for org-contacts")
(description "This Helm source can be used to search contacts stored in
org-contacts format. There are actions for inserting postal addresses, email
addresses, and phone numbers in the buffer where @command{helm-org-contacts}
was called.")
(license license:gpl3))))
(define-public emacs-dired-du
(package
(name "emacs-dired-du")
(version "0.5")
(source
(origin
(method url-fetch)
(uri (string-append
"https://elpa.gnu.org/packages/dired-du-"
version ".tar"))
(sha256
(base32
"09yj37p2fa5f81fqrzwghjkyy2ydsf4rbkfwpn2yyvzd5nd97bpl"))))
(build-system emacs-build-system)
(home-page "http://elpa.gnu.org/packages/dired-du.html")
(synopsis "Dired with recursive directory sizes")
(description
"Display the recursive size of directories in Dired.
This file defines a minor mode @command{dired-du-mode} to show the recursive
size of directories in Dired buffers. If @command{du} program is available,
then the directory sizes are obtained with it. Otherwise, the directory sizes
are obtained with Lisp. The former is faster and provide a more precise
value. For directories where the user doesn't have read permission, the
recursive size is not obtained. Once this mode is enabled, every new Dired
buffer displays recursive dir sizes.")
(license license:gpl3+)))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -37,7 +38,7 @@
(define-public erlang (define-public erlang
(package (package
(name "erlang") (name "erlang")
(version "20.2.3") (version "21.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; The tarball from http://erlang.org/download contains many ;; The tarball from http://erlang.org/download contains many
@ -48,7 +49,7 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0s9g4ijdbqq21k4cqggz074d3fiimah942qisv2kgizhlivpw2nm")) "0gv43lra4870xns8b0yjzbq78afzvz9gk6y3q3fa4y4sqcrqwbas"))
(patches (search-patches "erlang-man-path.patch")))) (patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
@ -64,7 +65,7 @@
(version-major+minor version) ".tar.gz")) (version-major+minor version) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1pyb8wbk7znsyni8d1k4dj1m01lr191dcrrzisli1z27ks7hh3lm")))))) "0cgv23q0215f6lvmhj4w9skx5m29khjs9mb890635s3yp520xgqh"))))))
(inputs (inputs
`(("ncurses" ,ncurses) `(("ncurses" ,ncurses)
("openssl" ,openssl) ("openssl" ,openssl)

View File

@ -39,6 +39,7 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages dns) #:use-module (gnu packages dns)
@ -51,6 +52,7 @@
#:use-module (gnu packages libusb) #:use-module (gnu packages libusb)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages networking)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf) #:use-module (gnu packages protobuf)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -69,7 +71,7 @@
(define-public bitcoin-core (define-public bitcoin-core
(package (package
(name "bitcoin-core") (name "bitcoin-core")
(version "0.15.1") (version "0.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -77,7 +79,7 @@
version "/bitcoin-" version ".tar.gz")) version "/bitcoin-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1d22fgwdcn343kd95lh389hj417zwbmnhi29cij8n7wc0nz2vpil")))) "1zkqp93yircd3pbxczxfnibkpq0sgcv5r7wg6d196b9pwgr9zd39"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -329,6 +331,37 @@ generation from a seed. Your secret keys are encrypted and are never sent to
other machines/servers. Electrum does not download the Bitcoin blockchain.") other machines/servers. Electrum does not download the Bitcoin blockchain.")
(license license:expat))) (license license:expat)))
(define-public electron-cash
(package
(inherit electrum)
(name "electron-cash")
(version "3.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://electroncash.org/downloads/"
version
"/win-linux/ElectronCash-"
version
".tar.gz"))
(sha256
(base32
"1x487hyacdm1qhik1mhfimr4jwcwz7sgsbkh11awrb6j19sxdxym"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete the bundled dependencies.
(delete-file-recursively "packages")
#t))))
(home-page "https://electroncash.org/")
(synopsis "Bitcoin Cash wallet")
(description
"Electroncash is a lightweight Bitcoin Cash client, based on a client-server
protocol. It supports Simple Payment Verification (SPV) and deterministic key
generation from a seed. Your secret keys are encrypted and are never sent to
other machines/servers. Electroncash does not download the Bitcoin Cash blockchain.")
(license license:expat)))
(define-public monero (define-public monero
;; This package bundles easylogging++ and lmdb. ;; This package bundles easylogging++ and lmdb.
;; The bundled easylogging++ is modified, and the changes will not be upstreamed. ;; The bundled easylogging++ is modified, and the changes will not be upstreamed.
@ -336,25 +369,18 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
;; the system's dynamically linked library. ;; the system's dynamically linked library.
(package (package
(name "monero") (name "monero")
(version "0.11.1.0") (version "0.12.3.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/monero-project/monero/archive/v" (uri (git-reference
version ".tar.gz")) (url "https://github.com/monero-project/monero")
(commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils))) (patches (search-patches "monero-use-system-miniupnpc.patch"))
(snippet
'(begin
;; Delete bundled dependencies.
(for-each
delete-file-recursively
'("external/miniupnpc" "external/rapidjson"
"external/unbound"))
#t))
(sha256 (sha256
(base32 (base32
"16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m")))) "14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)
@ -364,15 +390,19 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
(inputs (inputs
`(("bind" ,isc-bind) `(("bind" ,isc-bind)
("boost" ,boost) ("boost" ,boost)
("zeromq" ,zeromq)
("cppzmq" ,cppzmq)
("expat" ,expat) ("expat" ,expat)
("libsodium" ,libsodium)
("libunwind" ,libunwind) ("libunwind" ,libunwind)
("lmdb" ,lmdb) ("lmdb" ,lmdb)
("miniupnpc" ,miniupnpc) ("miniupnpc" ,monero-miniupnpc)
("openssl" ,openssl) ("openssl" ,openssl)
("rapidjson" ,rapidjson) ("rapidjson" ,rapidjson)
("unbound" ,unbound))) ("unbound" ,unbound)))
(arguments (arguments
`(#:out-of-source? #t `(#:out-of-source? #t
#:build-type "release"
#:configure-flags '("-DBUILD_TESTS=ON" #:configure-flags '("-DBUILD_TESTS=ON"
,@(if (string=? "aarch64-linux" (%current-system)) ,@(if (string=? "aarch64-linux" (%current-system))
'("-DARCH=armv8-a") '("-DARCH=armv8-a")
@ -400,9 +430,8 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
#t)) #t))
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
(system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'" "test")))
"test"))))
;; The excluded unit tests need network access ;; The excluded unit tests need network access
(add-after 'check 'unit-tests (add-after 'check 'unit-tests
(lambda _ (lambda _
@ -415,10 +444,9 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
"DNSResolver.DNSSECFailure" "DNSResolver.DNSSECFailure"
"DNSResolver.GetTXTRecord") "DNSResolver.GetTXTRecord")
":"))) ":")))
(zero? (invoke "tests/unit_tests/unit_tests"
(system* "tests/unit_tests/unit_tests" (string-append "--gtest_filter=-"
(string-append "--gtest_filter=-" excluded-unit-tests)))))
excluded-unit-tests))))))
(add-after 'install 'install-blockchain-import-export (add-after 'install 'install-blockchain-import-export
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -432,19 +460,20 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
Monero command line client and daemon.") Monero command line client and daemon.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public monero-core (define-public monero-gui
(package (package
(name "monero-core") (name "monero-gui")
(version "0.11.1.0") (version "0.12.2.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/monero-project/monero-core/archive/v" (uri (git-reference
version ".tar.gz")) (url "https://github.com/monero-project/monero-gui")
(commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr")))) "1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)
@ -491,7 +520,7 @@ Monero command line client and daemon.")
#t)) #t))
(replace 'build (replace 'build
(lambda _ (lambda _
(zero? (system* "./build.sh")))) (invoke "./build.sh")))
(add-after 'build 'fix-install-path (add-after 'build 'fix-install-path
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(substitute* "build/Makefile" (substitute* "build/Makefile"
@ -508,6 +537,9 @@ Monero command line client and daemon.")
Monero GUI client.") Monero GUI client.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public monero-core
(deprecated-package "monero-core" monero-gui))
(define-public python-trezor-agent (define-public python-trezor-agent
(package (package
(name "python-trezor-agent") (name "python-trezor-agent")

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -34,27 +35,27 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system waf)) #:use-module (guix build-system waf)
#:use-module (srfi srfi-1))
(define-public fltk (define-public fltk
(package (package
(name "fltk") (name "fltk")
(version "1.3.3") (version "1.3.4-2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://fltk.org/pub/fltk/" version (uri (string-append "http://fltk.org/pub/fltk/"
(first (string-split version #\-))
"/fltk-" version "-source.tar.gz")) "/fltk-" version "-source.tar.gz"))
(sha256 (sha256
(base32 (base32
"15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq")) "0459rm1gl5x3famiqma7ja7k6hvan8p5l8lgshvqfl4rik0lklr5"))))
(patches (search-patches "fltk-shared-lib-defines.patch"
"fltk-xfont-on-demand.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 `(("libjpeg" ,libjpeg)
("libpng" ,libpng) ("libpng" ,libpng)
("libx11" ,libx11) ("libx11" ,libx11)
("libxft" ,libxft) ("libxft" ,libxft)
@ -76,12 +77,11 @@
;; Provide -L flags for image libraries when querying fltk-config to ;; Provide -L flags for image libraries when querying fltk-config to
;; avoid propagating inputs. ;; avoid propagating inputs.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(use-modules (srfi srfi-26)) (let ((conf (string-append (assoc-ref outputs "out")
(let* ((conf (string-append (assoc-ref outputs "out") "/bin/fltk-config"))
"/bin/fltk-config")) (jpeg (assoc-ref inputs "libjpeg"))
(jpeg (assoc-ref inputs "libjpeg")) (png (assoc-ref inputs "libpng"))
(png (assoc-ref inputs "libpng")) (zlib (assoc-ref inputs "zlib")))
(zlib (assoc-ref inputs "zlib")))
(substitute* conf (substitute* conf
(("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg")) (("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg"))
(("-lpng") (string-append "-L" png "/lib -lpng")) (("-lpng") (string-append "-L" png "/lib -lpng"))

View File

@ -455,17 +455,16 @@ using the above tables.")
(define-public libspiro (define-public libspiro
(package (package
(name "libspiro") (name "libspiro")
(version "20071029") (version "0.5.20150702")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/libspiro/libspiro/" (uri (string-append "https://github.com/fontforge/libspiro/releases"
version "/libspiro_src-" version ".tar.bz2")) "/download/" version "/libspiro-dist-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kylz8pvwnb85yya150r9i6mhbpzx38f32qy523qg3ylgd9b3zhy")))) "153ckwj6h3wwlsgcppzqj8cymv1927hi8ar8fzpchq5q89cj2kai"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments `(#:tests? #f)) ;no tests
(synopsis "Clothoid to bezier conversion library") (synopsis "Clothoid to bezier conversion library")
(description (description
"Raph Levien's Spiro package as a library. A mechanism for drawing "Raph Levien's Spiro package as a library. A mechanism for drawing

View File

@ -74,6 +74,7 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages stb)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages video) #:use-module (gnu packages video)
@ -440,7 +441,7 @@ clone.")
(define-public sfml (define-public sfml
(package (package
(name "sfml") (name "sfml")
(version "2.3.2") (version "2.5.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; Do not fetch the archives from ;; Do not fetch the archives from
@ -451,24 +452,37 @@ clone.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm")))) "1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"))
(modules '((guix build utils)))
(snippet
'(begin
;; Ensure system libraries are used.
(delete-file-recursively "extlibs")
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
(list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE") (list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE"
"-DSFML_OS_PKGCONFIG_DIR=lib/pkgconfig")
#:tests? #f)) ; no tests #:tests? #f)) ; no tests
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("mesa" ,mesa) `(("mesa" ,mesa)
("glew" ,glew) ("glew" ,glew)
("flac" ,flac)
("libvorbis" ,libvorbis)
("libx11" ,libx11) ("libx11" ,libx11)
("xcb-util-image" ,xcb-util-image) ("xcb-util-image" ,xcb-util-image)
("libxrandr" ,libxrandr) ("libxrandr" ,libxrandr)
("eudev" ,eudev) ("eudev" ,eudev)
("freetype" ,freetype)
("libjpeg" ,libjpeg) ("libjpeg" ,libjpeg)
("libsndfile" ,libsndfile) ("libsndfile" ,libsndfile)
("stb-image" ,stb-image)
("stb-image-write" ,stb-image-write)))
(propagated-inputs
;; In Requires.private of pkg-config files.
`(("flac" ,flac)
("freetype" ,freetype)
("libvorbis" ,libvorbis)
("openal" ,openal))) ("openal" ,openal)))
(home-page "https://www.sfml-dev.org") (home-page "https://www.sfml-dev.org")
(synopsis "Simple and Fast Multimedia Library") (synopsis "Simple and Fast Multimedia Library")
@ -518,7 +532,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
(define-public physfs (define-public physfs
(package (package
(name "physfs") (name "physfs")
(version "2.0.3") (version "3.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -527,10 +541,18 @@ sounds from presets such as \"explosion\" or \"powerup\".")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sbbyqzqhyf0g68fcvvv20n3928j0x6ik1njmhn1yigvq2bj11na")))) "1wgj2zqpnfbnyyi1i7bq5pshcc9n5cvwlpzp8im67nb8662ryyxp"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f)) ; no check target '(#:tests? #f ; no check target
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-CMakeLists.txt
(lambda _
(substitute* "CMakeLists.txt"
;; XXX: For some reason CMakeLists.txt disables
;; RUNPATH manipulation when the compiler is GCC.
(("CMAKE_COMPILER_IS_GNUCC") "FALSE"))
#t)))))
(inputs (inputs
`(("zlib" ,zlib))) `(("zlib" ,zlib)))
(native-inputs (native-inputs

View File

@ -87,6 +87,7 @@
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages imagemagick) #:use-module (gnu packages imagemagick)
#:use-module (gnu packages less)
#:use-module (gnu packages libcanberra) #:use-module (gnu packages libcanberra)
#:use-module (gnu packages libedit) #:use-module (gnu packages libedit)
#:use-module (gnu packages libunwind) #:use-module (gnu packages libunwind)
@ -665,6 +666,131 @@ removed lines to all opponents. There is also a Demo mode in which you can
watch your CPU playing while enjoying a cup of tea!") watch your CPU playing while enjoying a cup of tea!")
(license license:gpl2+))) (license license:gpl2+)))
(define-public nethack
(package
(name "nethack")
(version "3.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.nethack.org/download/"
version "/" name "-361-src.tgz"))
(sha256
(base32 "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b"))))
(inputs
`(("ncurses" ,ncurses)
("bison" ,bison)
("flex" ,flex)
("less" ,less)))
(build-system gnu-build-system)
(arguments
'(#:make-flags
`(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-paths
(lambda _
(substitute* "sys/unix/nethack.sh"
(("^ *cd .*$") ""))
(substitute* "sys/unix/Makefile.utl"
(("^YACC *=.*$") "YACC = bison -y\n")
(("^LEX *=.*$") "LEX = flex\n")
(("^# CC = gcc") "CC = gcc"))
(substitute* "sys/unix/hints/linux"
(("/bin/gzip") (string-append
(assoc-ref %build-inputs "gzip")
"/bin/gzip"))
(("^WINTTYLIB=.*") "WINTTYLIB=-lncurses"))
(substitute* "include/config.h"
(("^.*define CHDIR.*$") "")
(("^/\\* *#*define *REPRODUCIBLE_BUILD *\\*/")
;; Honor SOURCE_DATE_EPOCH.
"#define REPRODUCIBLE_BUILD"))
;; Note: 'makedefs' rejects and ignores dates that are too old
;; or too new, so we must choose something reasonable here.
(setenv "SOURCE_DATE_EPOCH" "1531865062")
(substitute* "sys/unix/Makefile.src"
(("^# CC = gcc") "CC = gcc"))
#t))
(replace 'configure
(lambda _
(let ((bash (string-append
(assoc-ref %build-inputs "bash")
"/bin/bash")))
(with-directory-excursion "sys/unix"
(substitute* "setup.sh" (("/bin/sh") bash))
(invoke bash "setup.sh" "hints/linux"))
#t)))
(add-after 'install 'fixup-paths
(lambda _
(let* ((output (assoc-ref %outputs "out"))
(nethack-script (string-append output "/bin/nethack")))
(mkdir-p (string-append output "/games/lib/nethackuserdir"))
(for-each
(lambda (file)
(rename-file
(string-append output "/games/lib/nethackdir/" file)
(string-append output "/games/lib/nethackuserdir/"
file)))
'("xlogfile" "logfile" "perm" "record" "save"))
(mkdir-p (string-append output "/bin"))
(call-with-output-file nethack-script
(lambda (port)
(format port "#!~a/bin/sh
PATH=~a:$PATH
if [ ! -d ~~/.config/nethack ]; then
mkdir -p ~~/.config/nethack
cp -r ~a/games/lib/nethackuserdir/* ~~/.config/nethack
chmod -R +w ~~/.config/nethack
fi
RUNDIR=$(mktemp -d)
cleanup() {
rm -rf $RUNDIR
}
trap cleanup EXIT
cd $RUNDIR
for i in ~~/.config/nethack/*; do
ln -s $i $(basename $i)
done
for i in ~a/games/lib/nethackdir/*; do
ln -s $i $(basename $i)
done
~a/games/nethack"
(assoc-ref %build-inputs "bash")
(list->search-path-as-string
(list
(string-append
(assoc-ref %build-inputs "coreutils") "/bin")
(string-append
(assoc-ref %build-inputs "less") "/bin"))
":")
output
output
output)))
(chmod nethack-script #o555)
#t)))
(delete 'check))))
(home-page "https://nethack.org")
(synopsis "Classic dungeon crawl game")
(description "NetHack is a single player dungeon exploration game that runs
on a wide variety of computer systems, with a variety of graphical and text
interfaces all using the same game engine. Unlike many other Dungeons &
Dragons-inspired games, the emphasis in NetHack is on discovering the detail of
the dungeon and not simply killing everything in sight - in fact, killing
everything in sight is a good way to die quickly. Each game presents a
different landscape - the random number generator provides an essentially
unlimited number of variations of the dungeon and its denizens to be discovered
by the player in one of a number of characters: you can pick your race, your
role, and your gender.")
(license
(license:fsdg-compatible
"https://nethack.org/common/license.html"))))
(define-public prboom-plus (define-public prboom-plus
(package (package
(name "prboom-plus") (name "prboom-plus")
@ -955,15 +1081,16 @@ that beneath its ruins lay buried an ancient evil.")
(define-public angband (define-public angband
(package (package
(name "angband") (name "angband")
(version "4.0.5") (version "4.1.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://rephial.org/downloads/4.0/" (uri (string-append "http://rephial.org/downloads/"
"angband-" version ".tar.gz")) (version-major+minor version)
"/angband-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0lpq2kms7hp421vrasx2bkkn9w08kr581ldwik3v0hlq6h7rlxhd")) "0ahfzb66ihxvkxcbhcib816x40sdsp26b3ravr1xqp44w1whkg1h"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; So, some of the sounds/graphics/tilesets are under different ;; So, some of the sounds/graphics/tilesets are under different
@ -987,11 +1114,11 @@ that beneath its ruins lay buried an ancient evil.")
#:configure-flags (list (string-append "--bindir=" %output "/bin")) #:configure-flags (list (string-append "--bindir=" %output "/bin"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen.sh (replace 'bootstrap
(lambda _ (lambda _
(substitute* "acinclude.m4" (substitute* "acinclude.m4"
(("ncursesw5-config") "ncursesw6-config")) (("ncursesw5-config") "ncursesw6-config"))
(zero? (system* "sh" "autogen.sh"))))))) (invoke "sh" "autogen.sh"))))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake))) ("automake" ,automake)))
@ -1448,7 +1575,7 @@ match, cannon keep, and grave-itation pit.")
(define minetest-data (define minetest-data
(package (package
(name "minetest-data") (name "minetest-data")
(version "0.4.16") (version "0.4.17")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1457,7 +1584,7 @@ match, cannon keep, and grave-itation pit.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0nibpm600rbv9dg1zgcsl5grlbqx0b5l6cg1lp6sqkwvjialb4ga")))) "0pa9skjwbq27aky6dgr7g3mb0a7c5rpa6xmz2qh0nm618z5hgazh"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("source" ,source) `(("source" ,source)
@ -1490,7 +1617,7 @@ match, cannon keep, and grave-itation pit.")
(define-public minetest (define-public minetest
(package (package
(name "minetest") (name "minetest")
(version "0.4.16") (version "0.4.17")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1499,7 +1626,7 @@ match, cannon keep, and grave-itation pit.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0mbnf1ma4gsw9ah68ply04059xkfx5psdxwalxp78sgmx4ypkwqf")))) "0wpbad5bssbbgspgdcq3hhq4bhckrj53nhymsz34d8g01j0csr46"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -1830,7 +1957,7 @@ falling, themeable graphics and sounds, and replays.")
(define-public wesnoth (define-public wesnoth
(package (package
(name "wesnoth") (name "wesnoth")
(version "1.14.3") (version "1.14.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@ -1839,7 +1966,7 @@ falling, themeable graphics and sounds, and replays.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9")))) "1hw1ap8xxpdwyx1sf8fm1g75p6724y3hwb4kpvyqbsq7bwfwsb9i"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f)) ; no check target `(#:tests? #f)) ; no check target
@ -3345,7 +3472,7 @@ throwing people around in pseudo-randomly generated buildings.")
(define-public hyperrogue (define-public hyperrogue
(package (package
(name "hyperrogue") (name "hyperrogue")
(version "10.0g") (version "10.4j")
;; When updating this package, be sure to update the "hyperrogue-data" ;; When updating this package, be sure to update the "hyperrogue-data"
;; origin in native-inputs. ;; origin in native-inputs.
(source (origin (source (origin
@ -3356,7 +3483,7 @@ throwing people around in pseudo-randomly generated buildings.")
"-src.tgz")) "-src.tgz"))
(sha256 (sha256
(base32 (base32
"0f68pcnsgl406dhm91ckn3f364bar9m9i5njp9vrmvhvv9p2icy0")))) "0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no check target `(#:tests? #f ; no check target
@ -3368,7 +3495,6 @@ throwing people around in pseudo-randomly generated buildings.")
(setenv "CPATH" (setenv "CPATH"
(string-append (assoc-ref inputs "sdl-union") (string-append (assoc-ref inputs "sdl-union")
"/include/SDL")))) "/include/SDL"))))
;; Fix font and music paths.
(replace 'configure (replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -3378,17 +3504,18 @@ throwing people around in pseudo-randomly generated buildings.")
"/share/fonts/truetype")) "/share/fonts/truetype"))
(dejavu-font "DejaVuSans-Bold.ttf") (dejavu-font "DejaVuSans-Bold.ttf")
(music-file "hyperrogue-music.txt")) (music-file "hyperrogue-music.txt"))
;; Fix font and music paths.
(substitute* "basegraph.cpp" (substitute* "basegraph.cpp"
((dejavu-font) ((dejavu-font)
(string-append dejavu-dir "/" dejavu-font))) (string-append dejavu-dir "/" dejavu-font)))
(substitute* "sound.cpp"
(((string-append "\\./" music-file))
(string-append share-dir "/" music-file))
(("sounds/")
(string-append share-dir "/sounds/")))
(substitute* music-file (substitute* music-file
(("\\*/") (("\\*/")
(string-append share-dir "/sounds/")))) (string-append share-dir "/sounds/"))))
;; Fix Makefile.
(substitute* "Makefile"
(("g\\+\\+ langen.cpp")
"g++ langen.cpp ${CXXFLAGS}")
(("savepng.c") "savepng.cpp"))
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
@ -3405,21 +3532,18 @@ throwing people around in pseudo-randomly generated buildings.")
(out (assoc-ref outputs "out")) (out (assoc-ref outputs "out"))
(sounds (string-append out "/share/hyperrogue/sounds")) (sounds (string-append out "/share/hyperrogue/sounds"))
(unzip (string-append (assoc-ref inputs "unzip") "/bin/unzip"))) (unzip (string-append (assoc-ref inputs "unzip") "/bin/unzip")))
(and ;; Extract media license information into sounds directory.
;; Extract media license information into sounds directory. (invoke unzip "-j" data
(zero? (string-append
(system* unzip "-j" data "hyperrogue"
(string-append (string-join (string-split ,version #\.) "")
"hyperrogue" "/sounds/credits.txt") "-d" sounds)
(string-join (string-split ,version #\.) "") ;; Extract sounds and music into sounds directory.
"/sounds/credits.txt") "-d" sounds)) (invoke "unzip" "-j" data
;; Extract sounds and music into sounds directory. (string-append
(zero? "hyperrogue"
(system* "unzip" "-j" data (string-join (string-split ,version #\.) "")
(string-append "/*.ogg") "-d" sounds)))))))
"hyperrogue"
(string-join (string-split ,version #\.) "")
"/*.ogg") "-d" sounds)))))))))
(native-inputs (native-inputs
`(("hyperrogue-data" `(("hyperrogue-data"
,(origin ,(origin
@ -3431,7 +3555,7 @@ throwing people around in pseudo-randomly generated buildings.")
"-win.zip")) "-win.zip"))
(sha256 (sha256
(base32 (base32
"0bnp077qvlmxjlz1jjd6kpghlv9flxc19ac1xq3m3wyq1w9p3pab")))) "0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc"))))
("unzip" ,unzip))) ("unzip" ,unzip)))
(inputs (inputs
`(("font-dejavu" ,font-dejavu) `(("font-dejavu" ,font-dejavu)

View File

@ -180,7 +180,7 @@ and driving.")
(inputs (inputs
`(("cairo" ,cairo) `(("cairo" ,cairo)
("libpng" ,libpng) ("libpng" ,libpng)
("libjepeg-turbo" ,libjpeg-turbo) ("libjpeg-turbo" ,libjpeg-turbo)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("libgeotiff" ,libgeotiff) ("libgeotiff" ,libgeotiff)
("proj.4" ,proj.4) ("proj.4" ,proj.4)

View File

@ -132,6 +132,7 @@ printing, and psresize, for adjusting page sizes.")
(define-public ghostscript (define-public ghostscript
(package (package
(name "ghostscript") (name "ghostscript")
(replacement ghostscript/fixed)
(version "9.23") (version "9.23")
(source (source
(origin (origin
@ -250,6 +251,16 @@ output file formats and printers.")
(home-page "https://www.ghostscript.com/") (home-page "https://www.ghostscript.com/")
(license license:agpl3+))) (license license:agpl3+)))
(define-public ghostscript/fixed
(hidden-package
(package
(inherit ghostscript)
(source
(origin
(inherit (package-source ghostscript))
(patches (append (origin-patches (package-source ghostscript))
(search-patches "ghostscript-CVE-2018-10194.patch"))))))))
(define-public ghostscript/x (define-public ghostscript/x
(package/inherit ghostscript (package/inherit ghostscript
(name (string-append (package-name ghostscript) "-with-x")) (name (string-append (package-name ghostscript) "-with-x"))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; ;;;
@ -100,7 +100,7 @@ provided, as well as a framework to add new color models and data types.")
`(("cairo" ,cairo) `(("cairo" ,cairo)
("pango" ,pango) ("pango" ,pango)
("libpng" ,libpng) ("libpng" ,libpng)
("libjpeg" ,libjpeg-8))) ("libjpeg" ,libjpeg)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("glib" ,glib "bin") ; for gtester ("glib" ,glib "bin") ; for gtester
@ -154,7 +154,7 @@ buffers.")
("glib" ,glib) ("glib" ,glib)
("glib-networking" ,glib-networking) ("glib-networking" ,glib-networking)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("libjpeg" ,libjpeg-8) ("libjpeg" ,libjpeg)
("atk" ,atk) ("atk" ,atk)
("gexiv2" ,gexiv2) ("gexiv2" ,gexiv2)
("gtk+" ,gtk+-2) ("gtk+" ,gtk+-2)

View File

@ -30,7 +30,7 @@
(define-public gnu-pw-mgr (define-public gnu-pw-mgr
(package (package
(name "gnu-pw-mgr") (name "gnu-pw-mgr")
(version "2.3.2") (version "2.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -38,7 +38,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0x60g0syqpd107l8w4bl213imy2lspm4kz1j18yr1sh10rdxlgxd")))) "04xh38j7l0sfnb01kp05xc908pvqfc0lph94k7n9bi46zy3qy7ma"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases '(#:phases

View File

@ -67,14 +67,14 @@
(define-public libextractor (define-public libextractor
(package (package
(name "libextractor") (name "libextractor")
(version "1.6") (version "1.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/libextractor/libextractor-" (uri (string-append "mirror://gnu/libextractor/libextractor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17gnpgspdhfgcr27j8sn9105vb4lw22yqdrhic62l79q5v5avm16")))) "13wf6vj7mkv6gw8h183cnk7m24ir0gyf198pyb2148ng4klgv9p0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; WARNING: Checks require /dev/shm to be in the build chroot, especially ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
;; not to be a symbolic link to /run/shm. ;; not to be a symbolic link to /run/shm.

View File

@ -11,6 +11,7 @@
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,6 +42,8 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages lua)
#:use-module (gnu packages mp3)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
@ -1975,3 +1978,383 @@ which satisfies the cron expression.")
"This package provides a Go library for encode and decode YAML "This package provides a Go library for encode and decode YAML
values.") values.")
(license license:asl2.0)))) (license license:asl2.0))))
(define-public go-github-com-mattn-go-isatty
(let ((commit "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c")
(revision "0"))
(package
(name "go-github-com-mattn-go-isatty")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-isatty")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mattn/go-isatty"))
(home-page "https://github.com/mattn/go-isatty")
(synopsis "Provide @code{isatty} for Golang")
(description "This package provides @code{isatty}, a Go module that can
tell you whether a file descriptor points to a terminal and the type of the
terminal.")
(license license:expat))))
(define-public go-github-com-mattn-go-colorable
(let ((commit "efa589957cd060542a26d2dd7832fd6a6c6c3ade")
(revision "0"))
(package
(name "go-github-com-mattn-go-colorable")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-colorable")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-mattn-go-isatty"
,go-github-com-mattn-go-isatty)))
(arguments
'(#:import-path "github.com/mattn/go-colorable"))
(home-page "https://github.com/mattn/go-colorable")
(synopsis "Handle ANSI color escapes on Windows")
(description "This package provides @code{colorable}, a module that
makes it possible to handle ANSI color escapes on Windows.")
(license license:expat))))
(define-public go-github-com-mgutz-ansi
(let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
(revision "0"))
(package
(name "go-github-com-mgutz-ansi")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/mgutz/ansi")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-mattn-go-isatty"
,go-github-com-mattn-go-isatty)
("go-github-com-mattn-go-colorable"
,go-github-com-mattn-go-colorable)))
(arguments
'(#:import-path "github.com/mgutz/ansi"))
(home-page "https://github.com/mgutz/ansi")
(synopsis "Small, fast library to create ANSI colored strings and codes")
(description "This package provides @code{ansi}, a Go module that can
generate ANSI colored strings.")
(license license:expat))))
(define-public go-github-com-aarzilli-golua
(let ((commit "03fc4642d792b1f2bc5e7343b403cf490f8c501d")
(revision "0"))
(package
(name "go-github-com-aarzilli-golua")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/aarzilli/golua")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1d9hr29i36cza98afj3g6rs3l7xbkprwzz0blcxsr9dd7nak20di"))))
(build-system go-build-system)
(native-inputs
`(("lua" ,lua)))
(arguments
`(#:unpack-path "github.com/aarzilli/golua"
#:import-path "github.com/aarzilli/golua/lua"
#:phases
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(invoke "go" "install"
"-v" ; print the name of packages as they are compiled
"-x" ; print each command as it is invoked
"-ldflags=-s -w" ; strip the symbol table and debug
"-tags" "llua" ; Latest Lua on Guix does not have a version number.
import-path)))
(replace 'check
(lambda* (#:key import-path #:allow-other-keys)
(invoke "go" "test"
"-tags" "llua" ; Latest Lua on Guix does not have a version number.
import-path))))))
(home-page "https://github.com/aarzilli/golua")
(synopsis "Go Bindings for the Lua C API")
(description "This package provides @code{lua}, a Go module that can
run a Lua virtual machine.")
(license license:expat))))
(define-public go-gitlab-com-ambrevar-golua-unicode
(let ((commit "97ce517e7a1fe2407a90c317a9c74b173d396144")
(revision "0"))
(package
(name "go-gitlab-com-ambrevar-golua-unicode")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://gitlab.com/ambrevar/golua")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1izcp7p8nagjwqd13shb0020w7xhppib1a3glw2d1468bflhksnm"))))
(build-system go-build-system)
(native-inputs
`(("lua" ,lua)
("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
(arguments
`(#:unpack-path "gitlab.com/ambrevar/golua"
#:import-path "gitlab.com/ambrevar/golua/unicode"
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key import-path #:allow-other-keys)
(setenv "USER" "homeless-dude")
(invoke "go" "test" import-path))))))
(home-page "https://gitlab.com/ambrevar/golua")
(synopsis "Add Unicode support to Golua")
(description "This extension to Arzilli's Golua adds Unicode support to
all functions from the Lua string library. Lua patterns are replaced by Go
regexps. This breaks compatibility with Lua, but Unicode support breaks it
anyways and Go regexps are more powerful.")
(license license:expat))))
(define-public go-github-com-yookoala-realpath
(let ((commit "d19ef9c409d9817c1e685775e53d361b03eabbc8")
(revision "0"))
(package
(name "go-github-com-yookoala-realpath")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/yookoala/realpath")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qvz1dcdldf53rq69fli76z5k1vr7prx9ds1d5rpzgs68kwn40nw"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/yookoala/realpath"))
(home-page "https://github.com/yookoala/realpath")
(synopsis "@code{realpath} for Golang")
(description "This package provides @code{realpath}, a Go module that
when provided with a valid relative path / alias path, it will return you with
a string of its real absolute path in the system.")
(license license:expat))))
(define-public go-gitlab-com-ambrevar-damerau
(let ((commit "883829e1f25fad54015772ea663e69017cf22352")
(revision "0"))
(package
(name "go-gitlab-com-ambrevar-damerau")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://gitlab.com/ambrevar/damerau")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1b9p8fypc914ij1afn6ir346zsgfqrc5mqc1k3d53n4snypq27qv"))))
(build-system go-build-system)
(arguments
`(#:import-path "gitlab.com/ambrevar/damerau"))
(home-page "https://gitlab.com/ambrevar/damerau")
(synopsis "Damerau-Levenshtein distance for Golang")
(description "This is a spelling corrector implementing the
Damerau-Levenshtein distance. Takes a string value input from the user.
Looks for an identical word on a list of words, if none is found, look for a
similar word.")
(license license:expat))))
(define-public go-github-com-stevedonovan-luar
(let ((commit "22d247e5366095f491cd83edf779ee99a78f5ead")
(revision "0"))
(package
(name "go-github-com-stevedonovan-luar")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/stevedonovan/luar")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1acjgw9cz1l0l9mzkyk7irz6cfk31wnxgbwa805fvm1rqcjzin2c"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)))
(arguments
`(#:tests? #f ; Upstream tests are broken.
#:import-path "github.com/stevedonovan/luar"))
(home-page "https://github.com/stevedonovan/luar")
(synopsis "Lua reflection bindings for Go")
(description "Luar is designed to make using Lua from Go more
convenient. Go structs, slices and maps can be automatically converted to Lua
tables and vice-versa. The resulting conversion can either be a copy or a
proxy. In the latter case, any change made to the result will reflect on the
source.
Any Go function can be made available to Lua scripts, without having to write
C-style wrappers.
Luar support cyclic structures (lists, etc.).
User-defined types can be made available to Lua as well: their exported
methods can be called and usual operations such as indexing or arithmetic can
be performed.")
(license license:expat))))
(define-public go-github-com-kr-text
(let ((commit "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f")
(revision "0"))
(package
(name "go-github-com-kr-text")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/kr/text")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/kr/text"))
(home-page "https://github.com/kr/text")
(synopsis "Go package for manipulating paragraphs of text")
(description "Package @code{text} provides manipulation Go functions for
paragraphs of text.")
(license license:expat))))
(define-public go-github-com-michiwend-golang-pretty
(let ((commit "8ac61812ea3fa540f3f141a444fcb0dd713cdca4")
(revision "0"))
(package
(name "go-github-com-michiwend-golang-pretty")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/michiwend/golang-pretty")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0rjfms0csjqi91xnddzx3rcrcaikc7xc027617px3kdwdap80ir4"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-kr-text" ,go-github-com-kr-text)))
(arguments
`(#:tests? #f ; Upstream tests seem to be broken.
#:import-path "github.com/michiwend/golang-pretty"))
(home-page "https://github.com/michiwend/golang-pretty")
(synopsis "Pretty printing for Go values")
(description "Package @code{pretty} provides pretty-printing for Go
values. This is useful during debugging, to avoid wrapping long output lines
in the terminal.
It provides a function, @code{Formatter}, that can be used with any function
that accepts a format string. It also provides convenience wrappers for
functions in packages @code{fmt} and @code{log}.")
(license license:expat))))
(define-public go-github-com-michiwend-gomusicbrainz
(let ((commit "0cdeb13f9b24d2c714feb7e3c63d595cf7121d7d")
(revision "0"))
(package
(name "go-github-com-michiwend-gomusicbrainz")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/michiwend/gomusicbrainz")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1li9daw0kghb80rdmxbh7g72qhxcvx3rvhwq5gs0jrr9hb8pjvcn"))))
(build-system go-build-system)
(native-inputs
`(("go-github-com-michiwend-golang-pretty" ,go-github-com-michiwend-golang-pretty)
("go-github-com-kr-text" ,go-github-com-kr-text)))
(arguments
`(#:import-path "github.com/michiwend/gomusicbrainz"))
(home-page "https://github.com/michiwend/gomusicbrainz")
(synopsis "MusicBrainz WS2 client library for Golang")
(description "Currently GoMusicBrainz provides methods to perform search
and lookup requests. Browse requests are not supported yet.")
(license license:expat))))
(define-public go-github-com-wtolson-go-taglib
(let ((commit "6e68349ff94ecea412de7e748cb5eaa26f472777")
(revision "0"))
(package
(name "go-github-com-wtolson-go-taglib")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/wtolson/go-taglib")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1cpjqnrviwflz150g78iir5ndrp3hh7a93zbp4dwbg6sb2q141p2"))))
(build-system go-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("taglib" ,taglib)))
(arguments
`(#:import-path "github.com/wtolson/go-taglib"))
(home-page "https://github.com/wtolson/go-taglib")
(synopsis "Go wrapper for taglib")
(description "Go wrapper for taglib")
(license license:unlicense))))

View File

@ -3,7 +3,7 @@
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
@ -161,19 +161,20 @@ application can be customized via its API for Python scripting.")
(define-public assimp (define-public assimp
(package (package
(name "assimp") (name "assimp")
(version "3.3.1") (version "4.1.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/assimp/assimp/archive/v" (uri (git-reference
version ".tar.gz")) (url "https://github.com/assimp/assimp.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1gy7zlgkf4nmyv8n674p3f30asis0gjz8icyy11i693n13ww71fk")))) "1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("zlib" ,zlib))) `(("zlib" ,zlib)))
(home-page "http://assimp.org/") (home-page "http://www.assimp.org/")
(synopsis "Asset import library") (synopsis "Asset import library")
(description (description
"The Open Asset Import Library loads more than 40 3D file formats into "The Open Asset Import Library loads more than 40 3D file formats into
@ -373,13 +374,14 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(name "openimageio") (name "openimageio")
(version "1.7.19") (version "1.7.19")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/OpenImageIO/oiio/" (uri (git-reference
"archive/Release-" version ".tar.gz")) (url "https://github.com/OpenImageIO/oiio.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "Release-" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1qlmfhvl2wva4aifyiq7c4sdy61ddl7wykwvlpfys9p701xghvj7")))) "0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc"))))
(build-system cmake-build-system) (build-system cmake-build-system)
;; FIXME: To run all tests successfully, test image sets from multiple ;; FIXME: To run all tests successfully, test image sets from multiple
;; third party sources have to be present. For details see ;; third party sources have to be present. For details see
@ -390,7 +392,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("libpng" ,libpng) ("libpng" ,libpng)
("libjpeg" ,libjpeg-8) ("libjpeg" ,libjpeg)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("giflib" ,giflib) ("giflib" ,giflib)
("openexr" ,openexr) ("openexr" ,openexr)

View File

@ -74,6 +74,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -965,60 +966,8 @@ specification. These are the main features:
(sha256 (sha256
(base32 (base32
"0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6")))) "0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6"))))
(build-system trivial-build-system) (build-system guile-build-system)
(arguments (native-inputs
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match)
(ice-9 popen)
(ice-9 rdelim))
(let* ((out (assoc-ref %outputs "out"))
(guile (assoc-ref %build-inputs "guile"))
(effective (read-line
(open-pipe* OPEN_READ
(string-append guile "/bin/guile")
"-c" "(display (effective-version))")))
(module-dir (string-append out "/share/guile/site/"
effective))
(source (assoc-ref %build-inputs "source"))
(doc (string-append out "/share/doc/guile-minikanren"))
(scm-files '("minikanren.scm"
"minikanren/mkextraforms.scm"
"minikanren/mkprelude.scm"
"minikanren/mk.scm"))
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild")))
;; Make installation directories.
(mkdir-p (string-append module-dir "/minikanren"))
(mkdir-p doc)
;; Compile .scm files and install.
(chdir source)
(setenv "GUILE_AUTO_COMPILE" "0")
(for-each (lambda (file)
(let* ((dest-file (string-append module-dir "/"
file))
(go-file (match (string-split file #\.)
((base _)
(string-append module-dir "/"
base ".go")))))
;; Install source module.
(copy-file file dest-file)
;; Install compiled module.
(invoke guild "compile"
"-L" source
"-o" go-file
file)))
scm-files)
;; Also copy over the README.
(install-file "README.org" doc)
#t))))
(inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(home-page "https://github.com/ijp/minikanren") (home-page "https://github.com/ijp/minikanren")
(synopsis "MiniKanren declarative logic system, packaged for Guile") (synopsis "MiniKanren declarative logic system, packaged for Guile")
@ -1055,46 +1004,8 @@ See http://minikanren.org/ for more on miniKanren generally.")
(sha256 (sha256
(base32 (base32
"09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh")))) "09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
(build-system gnu-build-system) (build-system guile-build-system)
(arguments (native-inputs
`(#:modules ((guix build utils)
(ice-9 popen)
(ice-9 rdelim)
(srfi srfi-1)
(guix build gnu-build-system))
#:tests? #f ; there is no test target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((cwd (getcwd))
(scm-files (find-files "." "\\.scm$"))
(effective (read-line
(open-pipe* OPEN_READ
"guile" "-c"
"(display (effective-version))")))
(module-dir (string-append (assoc-ref outputs "out")
"/share/guile/site/"
effective)))
;; Make installation directories.
(mkdir-p module-dir)
(setenv "GUILE_AUTO_COMPILE" "0")
;; Compile .scm files and install.
(every (lambda (file)
(let ((go-file (string-append module-dir "/"
(basename file ".scm") ".go")))
;; Install source module.
(install-file file module-dir)
;; Compile and install module.
(zero? (system* "guild" "compile" "-L" cwd
"-o" go-file file))))
scm-files)))))))
(inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(home-page "https://github.com/fisherdj/miniAdapton") (home-page "https://github.com/fisherdj/miniAdapton")
(synopsis "Minimal implementation of incremental computation in Guile (synopsis "Minimal implementation of incremental computation in Guile
@ -1120,65 +1031,25 @@ understand, extend, and port to host languages other than Scheme.")
(sha256 (sha256
(base32 (base32
"1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq")))) "1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq"))))
(build-system gnu-build-system) (build-system guile-build-system)
(arguments (arguments
`(#:modules ((guix build utils) '(#:phases (modify-phases %standard-phases
(ice-9 match) (add-after 'unpack 'move-files-around
(ice-9 rdelim) (lambda _
(ice-9 popen) ;; Move the relevant source files to src/ and create the
(guix build gnu-build-system)) ;; rx/ directory to match the expected module hierarchy.
#:phases (mkdir-p "src/rx/source")
(modify-phases %standard-phases (rename-file "irregex-guile.scm"
(delete 'configure) "src/rx/irregex.scm")
(delete 'build) (rename-file "irregex.scm"
(delete 'check) "src/rx/source/irregex.scm")
(replace 'install ;; Not really reachable via guile's packaging system,
(lambda* (#:key inputs outputs #:allow-other-keys) ;; but nice to have around.
(let* ((out (assoc-ref outputs "out")) (rename-file "irregex-utils.scm"
(effective (read-line "src/rx/source/irregex-utils.scm")
(open-pipe* OPEN_READ #t)))
"guile" "-c" #:source-directory "src"))
"(display (effective-version))"))) (native-inputs
(module-dir (string-append out "/share/guile/site/"
effective))
(source (assoc-ref inputs "source"))
(doc (string-append out "/share/doc/guile-irregex/"))
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild")))
;; Make installation directories.
(mkdir-p (string-append module-dir "/rx/source"))
(mkdir-p doc)
;; Compile .scm files and install.
(setenv "GUILE_AUTO_COMPILE" "0")
(for-each (lambda (copy-info)
(match copy-info
((src-file dest-file-basis)
(let* ((dest-file (string-append
module-dir dest-file-basis
".scm"))
(go-file (string-append
module-dir dest-file-basis
".go")))
;; Install source module.
(copy-file src-file
dest-file)
;; Install compiled module.
(invoke guild "compile"
"-L" (getcwd)
"-o" go-file
src-file)))))
'(("irregex-guile.scm" "/rx/irregex")
("irregex.scm" "/rx/source/irregex")
;; Not really reachable via guile's packaging system,
;; but nice to have around
("irregex-utils.scm" "/rx/source/irregex-utils")))
;; Also copy over the README.
(install-file "irregex.html" doc)
#t))))))
(inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(home-page "http://synthcode.com/scheme/irregex") (home-page "http://synthcode.com/scheme/irregex")
(synopsis "S-expression based regular expressions") (synopsis "S-expression based regular expressions")
@ -1207,83 +1078,35 @@ inspired by the SCSH regular expression system.")
(url "https://github.com/ijp/guile-gdbm.git") (url "https://github.com/ijp/guile-gdbm.git")
(commit "fa1d5b6231d0e4d096687b378c025f2148c5f246"))) (commit "fa1d5b6231d0e4d096687b378c025f2148c5f246")))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(patches (search-patches
"guile-gdbm-ffi-support-gdbm-1.14.patch"))
(sha256 (sha256
(base32 (base32
"1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj")))) "1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj"))))
(build-system trivial-build-system) (build-system guile-build-system)
(inputs
`(("guile" ,guile-2.2)
;; patch-and-repack doesn't work for git checkouts,
;; so we must apply the patch manually.
("patch" ,patch)
("patch-file" ,(search-patch
"guile-gdbm-ffi-support-gdbm-1.14.patch"))))
(propagated-inputs
`(("gdbm" ,gdbm)))
(arguments (arguments
`(#:modules '(#:phases (modify-phases %standard-phases
((guix build utils)) (add-after 'unpack 'move-examples
#:builder (lambda* (#:key outputs #:allow-other-keys)
(begin ;; Move examples where they belong.
(use-modules (guix build utils) (let* ((out (assoc-ref outputs "out"))
(ice-9 rdelim) (doc (string-append out "/share/doc/"
(ice-9 popen)) (strip-store-file-name out)
"/examples")))
;; Avoid warnings we can safely ignore (copy-recursively "examples" doc)
(setenv "GUILE_AUTO_COMPILE" "0") (delete-file-recursively "examples")
#t)))
(let* ((out (assoc-ref %outputs "out")) (add-after 'unpack 'set-libgdbm-file-name
(effective-version (lambda* (#:key inputs #:allow-other-keys)
(read-line (substitute* "gdbm.scm"
(open-pipe* OPEN_READ (("\\(dynamic-link \"libgdbm\"\\)")
(string-append (format #f "(dynamic-link \"~a/lib/libgdbm.so\")"
(assoc-ref %build-inputs "guile") (assoc-ref inputs "gdbm"))))
"/bin/guile") #t)))))
"-c" "(display (effective-version))"))) (native-inputs
(module-dir (string-append out "/share/guile/site/" `(("guile" ,guile-2.2)))
effective-version)) (inputs
(source (assoc-ref %build-inputs "source")) `(("gdbm" ,gdbm)))
(doc (string-append out "/share/doc"))
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild"))
(gdbm.scm-dest
(string-append module-dir "/gdbm.scm"))
(gdbm.go-dest
(string-append module-dir "/gdbm.go"))
(compile-file
(lambda (in-file out-file)
(invoke guild "compile" "-o" out-file in-file))))
;; Switch directory for compiling and installing
(chdir source)
;; Install the documentation.
(install-file "README.md" doc)
(copy-recursively "examples" (string-append doc "/examples"))
;; Make installation directories.
(mkdir-p module-dir)
;; copy the source
(copy-file "gdbm.scm" gdbm.scm-dest)
;; Patch the FFI
(substitute* gdbm.scm-dest
(("\\(dynamic-link \"libgdbm\"\\)")
(format #f "(dynamic-link \"~a/lib/libgdbm.so\")"
(assoc-ref %build-inputs "gdbm"))))
;; Apply the patch to add support for gdbm-1.14.
(let ((patch-command (string-append (assoc-ref %build-inputs "patch")
"/bin/patch"))
(patch-file (assoc-ref %build-inputs "patch-file")))
(with-directory-excursion (dirname gdbm.scm-dest)
(format #t "applying '~a'...~%" patch-file)
(invoke patch-command "--force" "--input" patch-file)))
;; compile to the destination
(compile-file gdbm.scm-dest gdbm.go-dest)
#t))))
(home-page "https://github.com/ijp/guile-gdbm") (home-page "https://github.com/ijp/guile-gdbm")
(synopsis "Guile bindings to the GDBM library via Guile's FFI") (synopsis "Guile bindings to the GDBM library via Guile's FFI")
(description (description
@ -2142,32 +1965,8 @@ It has a nice, simple s-expression based syntax.")
(sha256 (sha256
(base32 (base32
"16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p")))) "16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p"))))
(build-system gnu-build-system) (build-system guile-build-system)
(arguments (native-inputs
`(#:modules ((system base compile)
,@%gnu-build-system-modules)
#:tests? #f ;No tests included
#:phases
(modify-phases %standard-phases
(delete 'configure) ;No configure script
(replace 'install
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(module-dir (string-append out "/share/guile/site/2.2"))
(language-dir (string-append module-dir "/ice-9"))
(guild (string-append (assoc-ref inputs "guile")
"/bin/guild")))
;; The original 'make install' is too primitive.
;; copy the source
(install-file "ice-9/colorized.scm" language-dir)
;; compile to the destination
(compile-file "ice-9/colorized.scm"
#:output-file (string-append
language-dir "/colorized.go"))
#t))))))
(inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(home-page "https://github.com/NalaGinrut/guile-colorized") (home-page "https://github.com/NalaGinrut/guile-colorized")
(synopsis "Colorized REPL for Guile") (synopsis "Colorized REPL for Guile")
@ -2175,6 +1974,78 @@ It has a nice, simple s-expression based syntax.")
"Guile-colorized provides you with a colorized REPL for GNU Guile.") "Guile-colorized provides you with a colorized REPL for GNU Guile.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public guile-pfds
(package
(name "guile-pfds")
(version "0.3")
(home-page "https://github.com/ijp/pfds")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(sha256
(base32
"19y33wg94pf0n98dkfqd1zbw93fgky4sawxsxl6s3vyqwl0yi5vh"))
(file-name (string-append name "-" version "-checkout"))))
(build-system guile-build-system)
(arguments
'(#:source-directory "src"
#:phases (modify-phases %standard-phases
(add-after 'unpack 'move-files-around
(lambda _
;; Move files under a pfds/ directory to reflect the
;; module hierarchy.
(mkdir-p "src/pfds")
(for-each (lambda (file)
(rename-file file
(string-append "src/pfds/"
file)))
'("bbtrees.sls"
"deques"
"deques.sls"
"dlists.sls"
"fingertrees.sls"
"hamts.sls"
"heaps.sls"
"private"
"psqs.sls"
"queues"
"queues.sls"
"sequences.sls"
"sets.sls"))
;; In Guile <= 2.2.4, there's no way to tell 'guild
;; compile' to accept the ".sls" extension. So...
(for-each (lambda (file)
(rename-file file
(string-append
(string-drop-right file 4)
".scm")))
(find-files "." "\\.sls$"))
#t)))))
(native-inputs
`(("guile" ,guile-2.2)))
(synopsis "Purely functional data structures for Guile")
(description
"This package provides purely functional data structures written in R6RS
Scheme and compiled for Guile. It has been tested with Racket, Guile 2,
Vicare Scheme and IronScheme. Right now it contains:
@itemize
@item queues
@item deques
@item bbtrees
@item sets
@item dlists
@item priority search queues (PSQs)
@item finger trees
@item sequences
@item heaps
@item hash array mapped tries (HAMTs).
@end itemize\n")
(license license:bsd-3)))
(define-public guile-simple-zmq (define-public guile-simple-zmq
(let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424") (let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424")
(revision "1")) (revision "1"))
@ -2191,72 +2062,20 @@ It has a nice, simple s-expression based syntax.")
(base32 (base32
"0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7")) "0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system trivial-build-system) (build-system guile-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:source-directory "src"
#:builder #:phases (modify-phases %standard-phases
(begin (add-after 'unpack 'set-libzmq-file-name
(use-modules (guix build utils) (lambda* (#:key inputs #:allow-other-keys)
(srfi srfi-26) (substitute* "src/simple-zmq.scm"
(ice-9 match) (("\\(dynamic-link \"libzmq\"\\)")
(ice-9 popen) (format #f "(dynamic-link \"~a/lib/libzmq.so\")"
(ice-9 rdelim)) (assoc-ref inputs "zeromq"))))
#t)))))
(let* ((out (assoc-ref %outputs "out")) (native-inputs
(guile (assoc-ref %build-inputs "guile"))
(effective (read-line
(open-pipe* OPEN_READ
(string-append guile "/bin/guile")
"-c" "(display (effective-version))")))
(module-dir (string-append out "/share/guile/site/"
effective))
(go-dir (string-append out "/lib/guile/"
effective "/site-ccache/"))
(source (string-append (assoc-ref %build-inputs "source")
"/src"))
(scm-file "simple-zmq.scm")
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild"))
(zmq (assoc-ref %build-inputs "zeromq"))
(deps (list zmq))
(path (string-join
(map (cut string-append <>
"/lib/")
deps)
":")))
;; Make installation directories.
(mkdir-p module-dir)
(mkdir-p go-dir)
;; Compile .scm files and install.
(chdir source)
(setenv "GUILE_AUTO_COMPILE" "0")
(for-each (lambda (file)
(let* ((dest-file (string-append module-dir "/"
file))
(go-file (match (string-split file #\.)
((base _)
(string-append go-dir "/"
base ".go")))))
;; Install source module.
(copy-file file dest-file)
(substitute* dest-file
(("\\(dynamic-link \"libzmq\"\\)")
(format #f "(dynamic-link \"~a/lib/libzmq.so\")"
(assoc-ref %build-inputs "zeromq"))))
;; Install and compile module.
(unless (zero? (system* guild "compile"
"-L" source
"-o" go-file
dest-file))
(error (format #f "Failed to compile ~s to ~s!"
file go-file)))))
(list scm-file))
#t))))
(inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(propagated-inputs (inputs
`(("zeromq" ,zeromq))) `(("zeromq" ,zeromq)))
(home-page "https://github.com/jerry40/guile-simple-zmq") (home-page "https://github.com/jerry40/guile-simple-zmq")
(synopsis "Guile wrapper over ZeroMQ library") (synopsis "Guile wrapper over ZeroMQ library")
@ -2280,106 +2099,46 @@ messaging library.")
(sha256 (sha256
(base32 (base32
"0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9")))) "0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"))))
(build-system trivial-build-system) (build-system guile-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) '(#:phases (modify-phases %standard-phases
#:builder (add-after 'unpack 'set-openssl-file-name
(begin (lambda* (#:key inputs #:allow-other-keys)
(use-modules (guix build utils) ;; Record the absolute file name of the 'openssl'
(srfi srfi-26) ;; command.
(ice-9 match) (substitute* "src/hmac.scm"
(ice-9 popen) (("openssl")
(ice-9 rdelim)) (string-append (assoc-ref inputs "openssl")
"/bin/openssl")))
#t))
(let* ((out (assoc-ref %outputs "out")) ;; XXX: The code uses 'include' to include its own source
(guile (assoc-ref %build-inputs "guile")) ;; files, and "-L src" isn't enough in this case.
(effective (read-line (add-before 'build 'chdir
(open-pipe* OPEN_READ (lambda _ (chdir "src") #t))
(string-append guile "/bin/guile") (add-after 'build 'chdir-back
"-c" "(display (effective-version))"))) (lambda _ (chdir "..") #t))
(module-dir (string-append out "/share/guile/site/"
effective))
(kernel-dir (string-append out "/share/jupyter/kernels/guile"))
(go-dir (string-append out "/lib/guile/"
effective
"/site-ccache"))
(source (string-append (assoc-ref %build-inputs "source")
"/src"))
(scm-files '("hmac.scm"
"tools.scm"
"guile-jupyter-kernel.scm"))
(kernel-file "kernel.json")
(guild (string-append (assoc-ref %build-inputs "guile")
"/bin/guild"))
(g-szmq (assoc-ref %build-inputs "guile-simple-zmq"))
(json (assoc-ref %build-inputs "guile-json"))
(deps (list g-szmq json))
(path (string-join
(map (cut string-append <>
"/share/guile/site/"
effective)
deps)
":"))
(gopath (string-join
(map (cut string-append <>
"/lib/guile/" effective
"/site-ccache/")
deps)
":")))
;; Make installation directories. (add-after 'install 'install-kernel
(mkdir-p module-dir) (lambda* (#:key inputs outputs #:allow-other-keys)
(mkdir-p kernel-dir) (let* ((out (assoc-ref outputs "out"))
(mkdir-p go-dir) (dir (string-append
out "/share/jupyter/kernels/guile")))
;; Install kernel.
(install-file "src/kernel.json" dir)
;; Make a writable copy of SOURCE. ;; Fix hard-coded file name in the kernel.
(copy-recursively source ".") (substitute* (string-append dir "/kernel.json")
(("/home/.*/guile-jupyter-kernel.scm")
;; Record the absolute file name of the 'openssl' command. (string-append out "/share/guile/site/"
(substitute* "hmac.scm" (target-guile-effective-version)
(("openssl") "/guile-jupyter-kernel.scm"))
(string-append (assoc-ref %build-inputs "openssl") (("\"guile\"")
"/bin/openssl"))) (string-append "\"" (assoc-ref inputs "guile")
"/bin/guile\""))
;; Compile .scm files and install. (("-s")
(setenv "GUILE_AUTO_COMPILE" "0") (string-append "--no-auto-compile\", \"-s")))
(setenv "GUILE_LOAD_PATH" path) #t))))))
(setenv "GUILE_LOAD_COMPILED_PATH" gopath)
(for-each (lambda (file)
(let* ((dest-file (string-append module-dir "/"
file))
(go-file (match (string-split file #\.)
((base _)
(string-append go-dir "/"
base ".go")))))
;; Install source module.
(copy-file file dest-file)
;; Install compiled module.
(unless (zero? (system* guild "compile"
"-L" source
"-o" go-file
file))
(error (format #f "Failed to compile ~s to ~s!"
file go-file)))))
scm-files)
;; Install kernel
(copy-file kernel-file (string-append kernel-dir "/"
kernel-file))
;; Fix hard-coded file name in the kernel
(substitute* (string-append kernel-dir "/"
kernel-file)
(("/home/jerry/.local/share/jupyter/kernels/guile/guile-jupyter-kernel.scm")
(string-append module-dir "/guile-jupyter-kernel.scm"))
(("\"guile\"")
(string-append "\"" (assoc-ref %build-inputs "guile")
"/bin/guile\""))
(("-s")
(string-append "--no-auto-compile\", \"-s")))
#t))))
(inputs (inputs
`(("openssl" ,openssl) `(("openssl" ,openssl)
("guile" ,guile-2.2))) ("guile" ,guile-2.2)))

View File

@ -60,7 +60,7 @@
(define-public feh (define-public feh
(package (package
(name "feh") (name "feh")
(version "2.27") (version "2.27.1")
(home-page "https://feh.finalrewind.org/") (home-page "https://feh.finalrewind.org/")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -68,7 +68,7 @@
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0kn6cka9m76697i495npd60ad64jnfnzv5z6znzyr0vlxx2nhcmg")))) "10zk76l491s22qrv86rax6cvpgwyl3qq0izl2pbk0k1z1kw3ihvf"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases (delete 'configure)) '(#:phases (modify-phases %standard-phases (delete 'configure))

View File

@ -2537,6 +2537,37 @@ ClasspathX project. It provides implementations of version 3.0 of the servlet
API and version 2.1 of the Java ServerPages API.") API and version 2.1 of the Java ServerPages API.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public java-javaee-servletapi
(package
(name "java-javaee-servletapi")
(version "3.1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/javaee/servlet-spec/"
"archive/" version ".zip"))
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"0m6p13vgfb1ihich1jp5j6fqlhkjsrkn32c86bsbkryp38ipwg8w"))))
(build-system ant-build-system)
(arguments
`(#:jar-name "javax-servletapi.jar"
;; no tests
#:tests? #f
#:source-dir "src/main/java"))
(native-inputs
`(("unzip" ,unzip)))
(home-page "https://javaee.github.io/servlet-spec/")
(synopsis "Java servlet API")
(description "Java Servlet is the foundation web specification in the
Java Enterprise Platform. Developers can build web applications using the
Servlet API to interact with the request/response workflow. This project
provides information on the continued development of the Java Servlet
specification.")
;; Main code is dual-licensed by Oracle under either GLP2 or CDDL 1.1.
;; Some files are licensed under ASL 2.0.
(license (list license:asl2.0 license:gpl2 license:cddl1.1))))
(define-public java-swt (define-public java-swt
(package (package
(name "java-swt") (name "java-swt")
@ -4449,7 +4480,7 @@ these scripting language engines.")
#:tests? #f #:tests? #f
#:source-dir "src/java")) #:source-dir "src/java"))
(inputs (inputs
`(("java-tomcat" ,java-tomcat) `(("servlet" ,java-classpathx-servletapi)
("java-jdom" ,java-jdom) ("java-jdom" ,java-jdom)
("java-commons-beanutils" ,java-commons-beanutils))) ("java-commons-beanutils" ,java-commons-beanutils)))
(native-inputs (native-inputs
@ -7908,6 +7939,10 @@ the dependency is said to be unsatisfied, and the application is broken.")
(uri (string-append "https://github.com/google/guice/archive/" (uri (string-append "https://github.com/google/guice/archive/"
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils)))
(snippet
`(begin
(for-each delete-file (find-files "." ".*.jar"))))
(sha256 (sha256
(base32 (base32
"0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp")))) "0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp"))))
@ -7940,7 +7975,7 @@ Java 6 and above.")
#:tests? #f)); FIXME: not in a java subdir #:tests? #f)); FIXME: not in a java subdir
(inputs (inputs
`(("guice" ,java-guice) `(("guice" ,java-guice)
("servlet" ,java-tomcat) ("servlet" ,java-classpathx-servletapi)
,@(package-inputs java-guice))))) ,@(package-inputs java-guice)))))
(define-public java-assertj (define-public java-assertj
@ -8425,15 +8460,15 @@ algorithms and xxHash hashing algorithm.")
(define-public java-bouncycastle (define-public java-bouncycastle
(package (package
(name "java-bouncycastle") (name "java-bouncycastle")
(version "1.59") (version "1.60")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/bcgit/bc-java/archive/r" (uri (string-append "https://github.com/bcgit/bc-java/archive/r"
(substring version 0 1) "rv" (substring version 0 1) "v"
(substring version 2 4) ".tar.gz")) (substring version 2 4) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bwl499whlbq896w18idqw2dkp8v0wp0npv9g71i5fgf8xjh0k3q")) "0v434513y708qc87k4xz13p2kzydc736lk3ks67df9mg11s7hchv"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -10109,7 +10144,7 @@ and reporting) project dependencies. It is characterized by the following:
`(("java-guice" ,java-guice) `(("java-guice" ,java-guice)
("java-guice-servlet" ,java-guice-servlet) ("java-guice-servlet" ,java-guice-servlet)
("java-javax-inject" ,java-javax-inject) ("java-javax-inject" ,java-javax-inject)
("java-tomcat" ,java-tomcat) ("java-javaee-servletapi" ,java-javaee-servletapi)
("java-junit" ,java-junit) ("java-junit" ,java-junit)
("java-slf4j-api" ,java-slf4j-api) ("java-slf4j-api" ,java-slf4j-api)
("java-jsr305" ,java-jsr305) ("java-jsr305" ,java-jsr305)
@ -10273,6 +10308,7 @@ static code analysis or code manipulation.")))
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/qos-ch/logback/archive/v_" (uri (string-append "https://github.com/qos-ch/logback/archive/v_"
version ".tar.gz")) version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi")) "1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
@ -10303,7 +10339,7 @@ static code analysis or code manipulation.")))
#t))))) #t)))))
(inputs (inputs
`(("java-javax-mail" ,java-javax-mail) `(("java-javax-mail" ,java-javax-mail)
("java-tomcat" ,java-tomcat) ("servlet" ,java-javaee-servletapi)
("java-commons-compiler" ,java-commons-compiler) ("java-commons-compiler" ,java-commons-compiler)
("java-janino" ,java-janino))) ("java-janino" ,java-janino)))
(native-inputs (native-inputs
@ -10347,7 +10383,7 @@ This module lays the groundwork for the other two modules.")
(find-files (assoc-ref inputs input) (find-files (assoc-ref inputs input)
".*.jar")) ".*.jar"))
'("java-logback-core" "java-slf4j-api" '("java-logback-core" "java-slf4j-api"
"java-commons-compiler" "java-tomcat" "java-commons-compiler" "servlet"
"groovy"))) "groovy")))
":")) ":"))
(apply invoke "groovyc" "-d" "build/classes" "-j" (apply invoke "groovyc" "-d" "build/classes" "-j"

View File

@ -314,7 +314,7 @@
"USE_SYSTEM_LIBGIT2=1" "USE_SYSTEM_LIBGIT2=1"
"USE_SYSTEM_OPENSPECFUN=1"))) "USE_SYSTEM_OPENSPECFUN=1")))
(inputs (inputs
`(("llvm" ,llvm) `(("llvm" ,llvm-3.9.1)
;; The bundled version is 3.3.0 so stick to that version. With other ;; The bundled version is 3.3.0 so stick to that version. With other
;; versions, we get test failures in 'linalg/arnoldi' as described in ;; versions, we get test failures in 'linalg/arnoldi' as described in

View File

@ -395,7 +395,7 @@ generator library for C++.")
("libxrender" ,libxrender) ("libxrender" ,libxrender)
("libxslt" ,libxslt) ("libxslt" ,libxslt)
("lzo" ,lzo) ("lzo" ,lzo)
("mysql" ,mysql) ("mariadb" ,mariadb)
("openssl" ,openssl) ("openssl" ,openssl)
("pcre" ,pcre) ("pcre" ,pcre)
("pulseaudio" ,pulseaudio) ("pulseaudio" ,pulseaudio)

View File

@ -65,7 +65,7 @@
(arguments `(#:configure-flags '("--disable-udev"))) (arguments `(#:configure-flags '("--disable-udev")))
;; (inputs `(("eudev" ,eudev))) ;; (inputs `(("eudev" ,eudev)))
(home-page "http://libusb.info") (home-page "https://libusb.info")
(synopsis "User-space USB library") (synopsis "User-space USB library")
(description (description
"Libusb is a library that gives applications easy access to USB "Libusb is a library that gives applications easy access to USB
@ -91,7 +91,7 @@ devices on various operating systems.")
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("libusb" ,libusb))) `(("libusb" ,libusb)))
(home-page "http://libusb.info") (home-page "https://libusb.info")
(synopsis "Compatibility shim for libusb") (synopsis "Compatibility shim for libusb")
(description (description
"Libusb-compat provides a shim allowing applications based on older "Libusb-compat provides a shim allowing applications based on older

View File

@ -28,6 +28,7 @@
;;; Copyright © 2017 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Dave Love <fx@gnu.org> ;;; Copyright © 2017 Dave Love <fx@gnu.org>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -59,6 +60,7 @@
#:use-module (gnu packages calendar) #:use-module (gnu packages calendar)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
@ -402,8 +404,8 @@ It has been modified to remove all non-free binary blobs.")
;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; supports qemu "virt" machine and possibly a large number of ARM boards.
;; See : https://wiki.debian.org/DebianKernel/ARMMP. ;; See : https://wiki.debian.org/DebianKernel/ARMMP.
(define %linux-libre-version "4.17.6") (define %linux-libre-version "4.17.9")
(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm") (define %linux-libre-hash "1mahjxn4j7sdjdrbkrgal37nfx23njhnmrxcmixmphps8i44rlwm")
(define-public linux-libre (define-public linux-libre
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -411,8 +413,8 @@ It has been modified to remove all non-free binary blobs.")
%linux-compatible-systems %linux-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.55") (define %linux-libre-4.14-version "4.14.57")
(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf") (define %linux-libre-4.14-hash "1qp8g87ss4a3iz6k3k4mkllibvdrixh6ys4a9l7jidp2wmkxj3kc")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -421,14 +423,14 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.112" (make-linux-libre "4.9.114"
"1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0" "069ckgck4skzci6sjrpk1sja0h1fdmrlcbpnqwl2844m5vfffzk9"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.140" (make-linux-libre "4.4.143"
"10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82" "0kawgpmmv37gds3cbww791bbzvwfjg760yg3qw3dk913dawhdmzw"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -1609,7 +1611,7 @@ processes currently causing I/O.")
(define-public fuse (define-public fuse
(package (package
(name "fuse") (name "fuse")
(version "2.9.7") (version "2.9.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/libfuse/libfuse/releases/" (uri (string-append "https://github.com/libfuse/libfuse/releases/"
@ -1617,7 +1619,7 @@ processes currently causing I/O.")
"/fuse-" version ".tar.gz")) "/fuse-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0x486nri30f7cgy0acj87v9sjxsjrr0cymrvw4h3r0sgmp8k4943")) "1k4ggl2y5v0lr98l189pc81w0zijj23wbbnijsc6zlx84117nd0j"))
(patches (search-patches "fuse-overlapping-headers.patch")))) (patches (search-patches "fuse-overlapping-headers.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux))) (inputs `(("util-linux" ,util-linux)))
@ -3588,7 +3590,7 @@ The following service daemons are also provided:
(define-public rng-tools (define-public rng-tools
(package (package
(name "rng-tools") (name "rng-tools")
(version "6.3") (version "6.3.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/nhorman/rng-tools/" (uri (string-append "https://github.com/nhorman/rng-tools/"
@ -3596,7 +3598,7 @@ The following service daemons are also provided:
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv")))) "04p7wvcm389s21y9mq8ss6z2szxi4nfrfixzwqjkq2qciz705i4s"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
@ -3699,7 +3701,43 @@ as used on certified hardware security devices.")
"0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i")))) "0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--disable-pywrap"))) `(#:configure-flags (list "--disable-pywrap")
#:phases
(modify-phases %standard-phases
(add-after 'patch-source-shebangs 'patch-hardcoded-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(utils-linux (assoc-ref inputs "utils-linux"))
(cryptsetup (assoc-ref inputs "cryptsetup"))
(linux-pam (assoc-ref inputs "linux-pam"))
(lvm2 (assoc-ref inputs "lvm2")))
(substitute* '("src/utils/ecryptfs-mount-private"
"src/utils/ecryptfs-umount-private"
"src/utils/ecryptfs-setup-private"
"src/utils/mount.ecryptfs.c"
"src/pam_ecryptfs/pam_ecryptfs.c"
"src/desktop/ecryptfs-mount-private.desktop.in"
"src/utils/ecryptfs-setup-swap")
(("/bin/mount")
(string-append utils-linux "/bin/mount"))
(("/bin/umount")
(string-append utils-linux "/bin/umount"))
(("/sbin/mount.ecryptfs_private")
(string-append out "/sbin/mount.ecryptfs_private"))
(("/sbin/umount.ecryptfs_private")
(string-append out "/sbin/umount.ecryptfs_private"))
(("/usr/bin/ecryptfs-mount-private")
(string-append out "/bin/ecryptfs-mount-private"))
(("/usr/bin/ecryptfs-rewrite-file")
(string-append out "/bin/ecryptfs-rewrite-file"))
(("/usr/bin/ecryptfs-setup-private")
(string-append out "/bin/ecryptfs-setup-private"))
(("/sbin/cryptsetup")
(string-append cryptsetup "/sbin/cryptsetup"))
(("/sbin/unix_chkpwd")
(string-append linux-pam "/sbin/unix_chkpwd"))
(("/sbin/dmsetup")
(string-append lvm2 "/sbin/dmsetup")))))))))
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("perl" ,perl) ; for pod2man ("perl" ,perl) ; for pod2man
@ -3707,6 +3745,9 @@ as used on certified hardware security devices.")
(inputs (inputs
`(("keyutils" ,keyutils) `(("keyutils" ,keyutils)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
("utils-linux" ,util-linux)
("cryptsetup" ,cryptsetup)
("lvm2" ,lvm2)
("nss" ,nss))) ("nss" ,nss)))
(home-page "http://ecryptfs.org/") (home-page "http://ecryptfs.org/")
(synopsis "eCryptfs cryptographic file system utilities") (synopsis "eCryptfs cryptographic file system utilities")

View File

@ -261,14 +261,14 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt (define-public mutt
(package (package
(name "mutt") (name "mutt")
(version "1.10.0") (version "1.10.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
"mutt-" version ".tar.gz")) "mutt-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582")) "182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk"))
(patches (search-patches "mutt-store-references.patch")))) (patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs

View File

@ -207,6 +207,37 @@ programming languages.")
(home-page "https://stcorp.nl/coda") (home-page "https://stcorp.nl/coda")
(license license:gpl2+))) (license license:gpl2+)))
(define-public qhull
(package
(name "qhull")
(version "2015.2")
(source (origin
(method url-fetch)
(uri (string-append "http://www.qhull.org/download/qhull-"
(car (string-split version #\.))
"-src-7.2.0.tgz"))
(sha256
(base32
"0dm4b2xr3asy6w74khq2zg4gf26zsy3qf9sq7pf7lmrvbj911c3q"))))
(build-system cmake-build-system)
(synopsis "Calculate convex hulls and related structures")
(description
"@code{Qhull} computes the convex hull, Delaunay triangulation, Voronoi
diagram, halfspace intersection about a point, furthest-site Delaunay
triangulation, and furthest-site Voronoi diagram. The source code runs in 2-d,
3-d, 4-d, and higher dimensions. @code{Qhull} implements the Quickhull
algorithm for computing the convex hull. It handles roundoff errors from
floating point arithmetic. It computes volumes, surface areas, and
approximations to the convex hull.
@code{Qhull} does not support triangulation of non-convex surfaces, mesh
generation of non-convex objects, medium-sized inputs in 9-D and higher, alpha
shapes, weighted Voronoi diagrams, Voronoi volumes, or constrained Delaunay
triangulations.")
(home-page "http://qhull.org")
(license (license:non-copyleft "file://COPYING.txt"
"See COPYING in the distribution."))))
(define-public units (define-public units
(package (package
(name "units") (name "units")
@ -1336,6 +1367,7 @@ can solve two kinds of problems:
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("lapack" ,lapack) `(("lapack" ,lapack)
("qhull" ,qhull)
("readline" ,readline) ("readline" ,readline)
("gl2ps" ,gl2ps) ("gl2ps" ,gl2ps)
("glpk" ,glpk) ("glpk" ,glpk)

View File

@ -428,7 +428,7 @@ artifact and repository handling code.")
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2) ("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2) ("java-eclipse-jetty-servlet-9.2" ,java-eclipse-jetty-servlet-9.2)
("java-slf4j-api" ,java-slf4j-api) ("java-slf4j-api" ,java-slf4j-api)
("java-tomcat" ,java-tomcat) ("java-javaee-servletapi" ,java-javaee-servletapi)
("maven-wagon-provider-api" ,maven-wagon-provider-api))) ("maven-wagon-provider-api" ,maven-wagon-provider-api)))
(synopsis "Test classes from maven-wagon") (synopsis "Test classes from maven-wagon")
(description "Maven Wagon is a transport abstraction that is used in Maven's (description "Maven Wagon is a transport abstraction that is used in Maven's

View File

@ -12,7 +12,7 @@
;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org> ;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
;;; ;;;
@ -487,14 +487,14 @@ compromised.")
(define-public znc (define-public znc
(package (package
(name "znc") (name "znc")
(version "1.7.0") (version "1.7.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://znc.in/releases/archive/znc-" (uri (string-append "http://znc.in/releases/archive/znc-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0")))) "1i1r1lh9q2mr1bg520zrvrlwhrhy6wibrin78wjxq1gab1qymks4"))))
;; TODO: autotools support has been deprecated, and new features like i18n ;; TODO: autotools support has been deprecated, and new features like i18n
;; are only supported when building with cmake. ;; are only supported when building with cmake.
(build-system gnu-build-system) (build-system gnu-build-system)
@ -873,7 +873,7 @@ protocols.")
(define-public c-toxcore (define-public c-toxcore
(package (package
(name "c-toxcore") (name "c-toxcore")
(version "0.2.2") (version "0.2.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -882,7 +882,7 @@ protocols.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18bfqx0ylbas9gs91rkspf04l5fjjcl0mxm1gfs2d59bv65mvcm3")))) "0sdszy079f82ncrgq1wsjpk2374n5hm4las75gj3lrdhljl15izl"))))
(arguments (arguments
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable `(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
; for now. ; for now.
@ -961,14 +961,14 @@ instant messenger with audio and video chat capabilities.")
(define-public qtox (define-public qtox
(package (package
(name "qtox") (name "qtox")
(version "1.16.1") (version "1.16.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/qTox/qTox/archive/v" (uri (string-append "https://github.com/qTox/qTox/archive/v"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"11l4klw0g6j4qq95krgyd0npxmmpcgk4vp9jq429sbsqn1s039j4")) "10n3cgw9xaqin9la8wpd8v83bkjmimicgbyp5ninsdgsrgky4hmq"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
@ -990,7 +990,7 @@ instant messenger with audio and video chat capabilities.")
,(list (string-append (assoc-ref inputs "qtsvg") ,(list (string-append (assoc-ref inputs "qtsvg")
"/lib/qt5/plugins/")))))))))) "/lib/qt5/plugins/"))))))))))
(inputs (inputs
`(("ffmpeg" ,ffmpeg-3.4) `(("ffmpeg" ,ffmpeg)
("filteraudio" ,filteraudio) ("filteraudio" ,filteraudio)
("glib" ,glib) ("glib" ,glib)
("gtk+" ,gtk+-2) ("gtk+" ,gtk+-2)

View File

@ -50,6 +50,7 @@
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system waf) #:use-module (guix build-system waf)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (guix build-system go)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages apr) #:use-module (gnu packages apr)
@ -128,6 +129,8 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages golang)
#:use-module (gnu packages lua)
#:use-module ((srfi srfi-1) #:select (last))) #:use-module ((srfi srfi-1) #:select (last)))
(define-public aria-maestosa (define-public aria-maestosa
@ -4131,3 +4134,89 @@ at @code{musicbrainz.org}.")
It can be used in daemon mode along with the Music-on-Console (MOC) and cmus It can be used in daemon mode along with the Music-on-Console (MOC) and cmus
console music players.") console music players.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public demlo
(let ((commit "fe9ec4c8ac2fa995ec18e6ac86d50d46df06ec01")
(revision "0"))
(package
(name "demlo")
(version (git-version "3.8" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url
"https://gitlab.com/ambrevar/demlo")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1afkbqhzn6da7zaf5ab7dvyqj1izqhzprwfb4hw448fllda9bdvk"))))
(build-system go-build-system)
(native-inputs
`(("lua" ,lua)
("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)
("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
("go-github-com-aarzilli-golua" ,go-github-com-aarzilli-golua)
("go-gitlab-com-ambrevar-damerau" ,go-gitlab-com-ambrevar-damerau)
("go-gitlab-com-ambrevar-golua-unicode" ,go-gitlab-com-ambrevar-golua-unicode)
("go-github-com-mgutz-ansi" ,go-github-com-mgutz-ansi)
("go-github-com-michiwend-gomusicbrainz" ,go-github-com-michiwend-gomusicbrainz)
("go-github-com-stevedonovan-luar" ,go-github-com-stevedonovan-luar)
("go-github-com-wtolson-go-taglib" ,go-github-com-wtolson-go-taglib)
("go-github-com-yookoala-realpath" ,go-github-com-yookoala-realpath)))
(inputs
`(("chromaprint" ,chromaprint)
("ffmpeg" ,ffmpeg)))
(arguments
`(#:import-path "gitlab.com/ambrevar/demlo"
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(ffmpeg (assoc-ref inputs "ffmpeg"))
(chromaprint (assoc-ref inputs "chromaprint")))
(wrap-program (string-append out "/bin/demlo")
`("XDG_DATA_DIRS" ":" prefix (,out))
`("PATH" ":" prefix
,(map (lambda (dir)
(string-append dir "/bin:"
dir "/sbin"))
(list ffmpeg chromaprint))))
#t)))
(add-after 'install-source 'install-scripts
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(root (string-append out "/src/gitlab.com/ambrevar/demlo"))
(xdg-data-dirs (string-append out "/demlo")))
(copy-recursively (string-append root "/actions")
(string-append xdg-data-dirs "/actions"))
(copy-recursively (string-append root "/scripts")
(string-append xdg-data-dirs "/scripts"))
(install-file (string-append root "/config.lua") xdg-data-dirs)
;; TODO: Test fish completion.
(install-file (string-append root "/completion/demlo.fish")
(string-append out "/share/fish/vendor_completions.d"))
#t))))))
(home-page "https://gitlab.com/ambrevar/demlo")
(synopsis "Dynamic and extensible music library organizer")
(description "Demlo is a music library organizer. It can encode, fix
case, change folder hierarchy according to tags or file properties, tag from
an online database, copy covers while ignoring duplicates or those below a
quality threshold, and much more. It makes it possible to manage your
libraries uniformly and dynamically. You can write your own rules to fit your
needs best.
Demlo can address any of these recurring music library issues (and much more):
@itemize
@item Fix the lack of folder structure.
@item Normalize tags, fix their case, chose which tags to keep and which to
discard.
@item Handle lossy and lossless audio differently.
@item Handle mp3 id3tags hell...
@item Handle multiple covers, whether embedded and/or external, resize covers,
discard bad quality ones.
@end itemize\n")
(license license:expat))))

View File

@ -534,7 +534,7 @@ and up to 1 Mbit/s downstream.")
(define-public whois (define-public whois
(package (package
(name "whois") (name "whois")
(version "5.3.1") (version "5.3.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -542,7 +542,7 @@ and up to 1 Mbit/s downstream.")
name "_" version ".tar.xz")) name "_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0gl98l26dcgmlap0pxllbv4b9n2fr5b7zml3ijf8sf3a60qsskpg")))) "0m3352d5b0ragygbqjbaimghrbx4va2rixa34j5a1g3jj6l4nwbr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no test suite `(#:tests? #f ; no test suite

View File

@ -101,8 +101,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "0.15.0") (let ((version "0.15.0")
(commit "4876bc8234095e2af191b0c6470455ce67d9f5f7") (commit "8bbb79cf95a07a40950448a8a09d888254404ed4")
(revision 1)) (revision 2))
(package (package
(name "guix") (name "guix")
@ -118,7 +118,7 @@
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"0qw0ffrxzxfk76pp38kx222ndpsv9mbhlmfycagyipgypgjdd9lq")) "0h83l91v2cg9bb78c7vqx9wj71ckz22jbjmm2fy4vqs9216jnvc0"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -263,7 +263,10 @@
("sqlite" ,sqlite) ("sqlite" ,sqlite)
("libgcrypt" ,libgcrypt) ("libgcrypt" ,libgcrypt)
("guile" ,guile-2.2)
;; Use 2.2.4 to avoid various thread-safety issues while building
;; code in parallel.
("guile" ,guile-2.2.4)
;; Many tests rely on the 'guile-bootstrap' package, which is why we ;; Many tests rely on the 'guile-bootstrap' package, which is why we
;; have it here. ;; have it here.
@ -345,7 +348,7 @@ the Nix package manager.")
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(substitute* (find-files (string-append out "/libexec")) (substitute* (find-files (string-append out "/libexec"))
(("exec \".*/bin/guix\"") (("exec \".*/bin/guix\"")
"exec ~root/.config/current/bin/guix")) "exec ~root/.config/guix/current/bin/guix"))
#t))) #t)))
(delete 'wrap-program))))))) (delete 'wrap-program)))))))

View File

@ -1,27 +0,0 @@
https://github.com/file/file/commit/35c94dc6acc418f1ad7f6241a6680e5327495793.patch
http://openwall.com/lists/oss-security/2017/09/05/3
The patch is minorly modified to apply to file-5.30
From 35c94dc6acc418f1ad7f6241a6680e5327495793 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Sun, 27 Aug 2017 07:55:02 +0000
Subject: [PATCH] Fix always true condition (Thomas Jarosch)
---
src/readelf.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/readelf.c b/src/readelf.c
index 81451827..5f425c97 100644
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -511,7 +511,7 @@ do_bid_note(struct magic_set *ms, unsigned char *nbuf, uint32_t type,
size_t noff, size_t doff, int *flags)
{
if (namesz == 4 && strcmp((char *)&nbuf[noff], "GNU") == 0 &&
- type == NT_GNU_BUILD_ID && (descsz >= 4 || descsz <= 20)) {
+ type == NT_GNU_BUILD_ID && (descsz >= 4 && descsz <= 20)) {
uint8_t desc[20];
const char *btype;
uint32_t i;

View File

@ -1,51 +0,0 @@
This patch from upstream revision 10588.
--- fltk-1.3.3/src/Xutf8.h
+++ fltk-1.3.3/src/Xutf8.h
@@ -25,6 +25,7 @@
#include <X11/Xlib.h>
#include <X11/Xlocale.h>
#include <X11/Xutil.h>
+#include <FL/Fl_Export.H>
typedef struct {
int nb_font;
@@ -98,8 +99,8 @@
XUtf8FontStruct *font_set,
unsigned int ucs);
-int
-XGetUtf8FontAndGlyph(
+FL_EXPORT int
+fl_XGetUtf8FontAndGlyph(
XUtf8FontStruct *font_set,
unsigned int ucs,
XFontStruct **fnt,
--- fltk-1.3.3/src/gl_draw.cxx
+++ fltk-1.3.3/src/gl_draw.cxx
@@ -114,7 +114,7 @@
for (int i = 0; i < 0x400; i++) {
XFontStruct *font = NULL;
unsigned short id;
- XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
+ fl_XGetUtf8FontAndGlyph(gl_fontsize->font, ii, &font, &id);
if (font) glXUseXFont(font->fid, id, 1, gl_fontsize->listbase+ii);
ii++;
}
--- fltk-1.3.3/src/xutf8/utf8Wrap.c
+++ fltk-1.3.3/src/xutf8/utf8Wrap.c
@@ -816,10 +816,10 @@
/** get the X font and glyph ID of a UCS char **/
/*****************************************************************************/
int
-XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set,
- unsigned int ucs,
- XFontStruct **fnt,
- unsigned short *id) {
+fl_XGetUtf8FontAndGlyph(XUtf8FontStruct *font_set,
+ unsigned int ucs,
+ XFontStruct **fnt,
+ unsigned short *id) {
/* int x; */
int *encodings; /* encodings array */

View File

@ -1,45 +0,0 @@
Fixes undefined reference to `Fl_XFont_On_Demand::value()'.
From <http://www.fltk.org/str.php?L3156+P0+S0+C0+I0+E0+V1+QOn_Demand>.
Index: src/fl_font.cxx
===================================================================
--- fltk-1.3.3/src/fl_font.cxx (revision 10503)
+++ fltk-1.3.3/src/fl_font.cxx (revision 10504)
@@ -55,6 +55,12 @@
# include "fl_font_x.cxx"
#endif // WIN32
+#if ! (defined(WIN32) || defined(__APPLE__))
+XFontStruct *fl_X_core_font()
+{
+ return fl_xfont.value();
+}
+#endif
double fl_width(const char* c) {
if (c) return fl_width(c, (int) strlen(c));
Index: src/gl_draw.cxx
===================================================================
--- fltk-1.3.3/src/gl_draw.cxx (revision 10503)
+++ fltk-1.3.3/src/gl_draw.cxx (revision 10504)
@@ -81,7 +81,7 @@
* then sorting through them at draw time (for normal X rendering) to find which one can
* render the current glyph... But for now, just use the first font in the list for GL...
*/
- XFontStruct *font = fl_xfont;
+ XFontStruct *font = fl_X_core_font();
int base = font->min_char_or_byte2;
int count = font->max_char_or_byte2-base+1;
fl_fontsize->listbase = glGenLists(256);
Index: FL/x.H
===================================================================
--- fltk-1.3.3/FL/x.H (revision 10503)
+++ fltk-1.3.3/FL/x.H (revision 10504)
@@ -132,6 +132,7 @@
XFontStruct *ptr;
};
extern FL_EXPORT Fl_XFont_On_Demand fl_xfont;
+extern FL_EXPORT XFontStruct* fl_X_core_font();
// this object contains all X-specific stuff about a window:
// Warning: this object is highly subject to change!

View File

@ -0,0 +1,52 @@
Fix CVE-2018-10194:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-10194
https://bugs.ghostscript.com/show_bug.cgi?id=699255
Patch copied from upstream source repository:
https://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=39b1e54b2968620723bf32e96764c88797714879
From 39b1e54b2968620723bf32e96764c88797714879 Mon Sep 17 00:00:00 2001
From: Ken Sharp <ken.sharp@artifex.com>
Date: Wed, 18 Apr 2018 15:46:32 +0100
Subject: [PATCH] pdfwrite - Guard against trying to output an infinite number
Bug #699255 " Buffer overflow on pprintg1 due to mishandle postscript file data to pdf"
The file uses an enormous parameter to xyxhow, causing an overflow in
the calculation of text positioning (value > 1e39).
Since this is basically a nonsense value, and PostScript only supports
real values up to 1e38, this patch follows the same approach as for
a degenerate CTM, and treats it as 0.
Adobe Acrobat Distiller throws a limitcheck error, so we could do that
instead if this approach proves to be a problem.
---
devices/vector/gdevpdts.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/devices/vector/gdevpdts.c b/devices/vector/gdevpdts.c
index 848ad781f..172fe6bc3 100644
--- a/devices/vector/gdevpdts.c
+++ b/devices/vector/gdevpdts.c
@@ -103,9 +103,14 @@ append_text_move(pdf_text_state_t *pts, double dw)
static int
set_text_distance(gs_point *pdist, double dx, double dy, const gs_matrix *pmat)
{
- int code = gs_distance_transform_inverse(dx, dy, pmat, pdist);
+ int code;
double rounded;
+ if (dx > 1e38 || dy > 1e38)
+ code = gs_error_undefinedresult;
+ else
+ code = gs_distance_transform_inverse(dx, dy, pmat, pdist);
+
if (code == gs_error_undefinedresult) {
/* The CTM is degenerate.
Can't know the distance in user space.
--
2.18.0

View File

@ -0,0 +1,111 @@
This reverts commit 1e20d705e7c64d2b17c031f345057d1e8850fafa, so that it's possible to use our own
miniupnpc, instead of a git submodule.
---
CMakeLists.txt | 8 ++++++++
external/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++----------
src/p2p/net_node.inl | 13 ++++++++++---
3 files changed, 49 insertions(+), 13 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3b93988e..ef948885 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -430,6 +430,14 @@ include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
add_subdirectory(external)
+# Final setup for miniupnpc
+if(UPNP_STATIC OR IOS)
+ add_definitions("-DUPNP_STATIC")
+else()
+ add_definitions("-DUPNP_DYNAMIC")
+ include_directories(${UPNP_INCLUDE})
+endif()
+
# Final setup for libunbound
include_directories(${UNBOUND_INCLUDE})
link_directories(${UNBOUND_LIBRARY_DIRS})
diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt
index 1fc4d64c..b4f712ee 100644
--- a/external/CMakeLists.txt
+++ b/external/CMakeLists.txt
@@ -34,21 +34,42 @@
# We always compile if we are building statically to reduce static dependency issues...
# ...except for FreeBSD, because FreeBSD is a special case that doesn't play well with
# others.
+if(NOT IOS)
+ find_package(Miniupnpc QUIET)
+endif()
-find_package(Miniupnpc REQUIRED)
+# If we have the correct shared version and we're not building static, use it
+if(STATIC OR IOS)
+ set(USE_SHARED_MINIUPNPC false)
+elseif(MINIUPNP_FOUND AND MINIUPNPC_VERSION_1_7_OR_HIGHER)
+ set(USE_SHARED_MINIUPNPC true)
+endif()
-message(STATUS "Using in-tree miniupnpc")
+if(USE_SHARED_MINIUPNPC)
+ message(STATUS "Using shared miniupnpc found at ${MINIUPNP_INCLUDE_DIR}")
-add_subdirectory(miniupnp/miniupnpc)
+ set(UPNP_STATIC false PARENT_SCOPE)
+ set(UPNP_INCLUDE ${MINIUPNP_INCLUDE_DIR} PARENT_SCOPE)
+ set(UPNP_LIBRARIES ${MINIUPNP_LIBRARY} PARENT_SCOPE)
+else()
+ if(STATIC)
+ message(STATUS "Using miniupnpc from local source tree for static build")
+ else()
+ message(STATUS "Using miniupnpc from local source tree (/external/miniupnp/miniupnpc)")
+ endif()
-set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
-if(MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
-elseif(NOT MSVC)
- set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
-endif()
+ add_subdirectory(miniupnp/miniupnpc)
+
+ set_property(TARGET libminiupnpc-static PROPERTY FOLDER "external")
+ if(MSVC)
+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -wd4244 -wd4267")
+ elseif(NOT MSVC)
+ set_property(TARGET libminiupnpc-static APPEND_STRING PROPERTY COMPILE_FLAGS " -Wno-undef -Wno-unused-result -Wno-unused-value")
+ endif()
-set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
+ set(UPNP_STATIC true PARENT_SCOPE)
+ set(UPNP_LIBRARIES "libminiupnpc-static" PARENT_SCOPE)
+endif()
find_package(Unbound)
diff --git a/src/p2p/net_node.inl b/src/p2p/net_node.inl
index 9b21705e..76340a22 100644
--- a/src/p2p/net_node.inl
+++ b/src/p2p/net_node.inl
@@ -49,9 +49,16 @@
#include "storages/levin_abstract_invoke2.h"
#include "cryptonote_core/cryptonote_core.h"
-#include <miniupnp/miniupnpc/miniupnpc.h>
-#include <miniupnp/miniupnpc/upnpcommands.h>
-#include <miniupnp/miniupnpc/upnperrors.h>
+// We have to look for miniupnpc headers in different places, dependent on if its compiled or external
+#ifdef UPNP_STATIC
+ #include <miniupnp/miniupnpc/miniupnpc.h>
+ #include <miniupnp/miniupnpc/upnpcommands.h>
+ #include <miniupnp/miniupnpc/upnperrors.h>
+#else
+ #include "miniupnpc.h"
+ #include "upnpcommands.h"
+ #include "upnperrors.h"
+#endif
#undef MONERO_DEFAULT_LOG_CATEGORY
#define MONERO_DEFAULT_LOG_CATEGORY "net.p2p"
--
2.16.2

View File

@ -0,0 +1,34 @@
From 52cea818bf68f8a2d3c48d55d00c2f8b7da25e4c Mon Sep 17 00:00:00 2001
From: Daniel Hogan <daniel.hogan@usask.ca>
Date: Tue, 28 Mar 2017 22:21:18 -0600
Subject: [PATCH] Remove delete statement.
When from_scratch is true, coordinates is not allocated. A separate if
statement was added to handle the case when from_scratch is true that
does not try to free coordinates.
---
src/formats/nwchemformat.cpp | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/formats/nwchemformat.cpp b/src/formats/nwchemformat.cpp
index 6f625ad5b..79298555f 100644
--- a/src/formats/nwchemformat.cpp
+++ b/src/formats/nwchemformat.cpp
@@ -232,11 +232,14 @@ static const char* OPTIMIZATION_END_PATTERN = " Optimization converged";
break;
tokenize(vs,buffer);
}
- if ((from_scratch)||(i != natoms))
- {
+ if (from_scratch)
+ {
+ return;
+ }
+ if (i != natoms) {
delete[] coordinates;
return;
- }
+ }
molecule->AddConformer(coordinates);
}

View File

@ -0,0 +1,10 @@
--- cairocffi-0.8.0/cairocffi/__init__.py.orig 2018-07-16 11:00:59.075664158 +0200
+++ cairocffi-0.8.0/cairocffi/__init__.py 2018-07-16 17:09:42.471958015 +0200
@@ -35,6 +35,7 @@
return lib
except OSError:
pass
+ return ffi.dlopen(name)
raise OSError("dlopen() failed to load a library: %s" % ' / '.join(names))

View File

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

View File

@ -0,0 +1,123 @@
Copied from upstream:
https://github.com/LubosD/twinkle/commit/4b42755619011c117a76bdf98e417ebedc47e319
From 4b42755619011c117a76bdf98e417ebedc47e319 Mon Sep 17 00:00:00 2001
From: Michal Kubecek <mkubecek@suse.cz>
Date: Wed, 6 Jun 2018 10:07:21 +0200
Subject: [PATCH] Include <QRegExpValidator> explicitly
Since Qt 5.11, generated ui_getprofilename.h no longer includes QHeaderView
which breaks the chain that included qvalidator.h in getprofilename.cpp.
As it feels rather fragile to rely on such indirect includes, let's include
<QRegExpValidator> explicitly in each file using QRegExpValidator class.
---
src/gui/diamondcardprofileform.cpp | 1 +
src/gui/getprofilenameform.cpp | 2 +-
src/gui/inviteform.cpp | 1 +
src/gui/mphoneform.cpp | 1 +
src/gui/numberconversionform.cpp | 1 +
src/gui/syssettingsform.cpp | 1 +
src/gui/userprofileform.cpp | 1 +
src/gui/wizardform.cpp | 1 +
8 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/gui/diamondcardprofileform.cpp b/src/gui/diamondcardprofileform.cpp
index 6656909..517180b 100644
--- a/src/gui/diamondcardprofileform.cpp
+++ b/src/gui/diamondcardprofileform.cpp
@@ -21,6 +21,7 @@
#include <QRegExp>
#include <QValidator>
+#include <QRegExpValidator>
#include "gui.h"
#include "diamondcard.h"
#include "getprofilenameform.h"
diff --git a/src/gui/getprofilenameform.cpp b/src/gui/getprofilenameform.cpp
index 1319e1d..89c715e 100644
--- a/src/gui/getprofilenameform.cpp
+++ b/src/gui/getprofilenameform.cpp
@@ -1,7 +1,7 @@
#include "getprofilenameform.h"
-
#include <QDir>
#include <QMessageBox>
+#include <QRegExpValidator>
#include "user.h"
#include "protocol.h"
diff --git a/src/gui/inviteform.cpp b/src/gui/inviteform.cpp
index 433fb22..2a5b68d 100644
--- a/src/gui/inviteform.cpp
+++ b/src/gui/inviteform.cpp
@@ -7,6 +7,7 @@
#include "sys_settings.h"
#include <QRegExp>
#include <QValidator>
+#include <QRegExpValidator>
/*
Copyright (C) 2005-2009 Michel de Boer <michel@twinklephone.com>
diff --git a/src/gui/mphoneform.cpp b/src/gui/mphoneform.cpp
index 260fda7..c4e3c1d 100644
--- a/src/gui/mphoneform.cpp
+++ b/src/gui/mphoneform.cpp
@@ -54,6 +54,7 @@
#include <QRegExp>
#include <QValidator>
#include <QSettings>
+#include <QRegExpValidator>
#include "buddyform.h"
#include "diamondcardprofileform.h"
#include "osd.h"
diff --git a/src/gui/numberconversionform.cpp b/src/gui/numberconversionform.cpp
index f8ae64c..8481a9b 100644
--- a/src/gui/numberconversionform.cpp
+++ b/src/gui/numberconversionform.cpp
@@ -1,5 +1,6 @@
#include "numberconversionform.h"
+#include <QRegExpValidator>
#include "gui.h"
/*
diff --git a/src/gui/syssettingsform.cpp b/src/gui/syssettingsform.cpp
index 216af54..355df59 100644
--- a/src/gui/syssettingsform.cpp
+++ b/src/gui/syssettingsform.cpp
@@ -28,6 +28,7 @@
#include "twinkle_config.h"
#include <QRegExp>
#include <QValidator>
+#include <QRegExpValidator>
#include "syssettingsform.h"
/*
* Constructs a SysSettingsForm as a child of 'parent', with the
diff --git a/src/gui/userprofileform.cpp b/src/gui/userprofileform.cpp
index 28700a6..9ed9209 100644
--- a/src/gui/userprofileform.cpp
+++ b/src/gui/userprofileform.cpp
@@ -31,6 +31,7 @@
#include <QStringList>
#include "twinkle_config.h"
#include <QListWidget>
+#include <QRegExpValidator>
#include "numberconversionform.h"
#include "util.h"
#include "userprofileform.h"
diff --git a/src/gui/wizardform.cpp b/src/gui/wizardform.cpp
index 777aa12..f925875 100644
--- a/src/gui/wizardform.cpp
+++ b/src/gui/wizardform.cpp
@@ -23,6 +23,7 @@
#include <QTextStream>
#include "gui.h"
#include <QFile>
+#include <QRegExpValidator>
#include "wizardform.h"
#define PROV_NONE QT_TRANSLATE_NOOP("WizardForm", "None (direct IP to IP calls)")
--
2.17.0

View File

@ -0,0 +1,35 @@
commit a85e94a50c94b07574c8701a3ff3c1243f4257f4
Author: Olivier Fourdan <ofourdan@redhat.com>
Date: Fri Jun 15 08:57:12 2018 +0200
modesetting: use drmmode_bo_import() for rotate_fb
drmmode_shadow_allocate() still uses drmModeAddFB() which may fail if
the format is not as expected, preventing from using a rotated output.
Change it to use the new function drmmode_bo_import() which takes care
of calling the drmModeAddFB2() API.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106715
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Tested-by: Tomas Pelka <tpelka@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
index 859a21a9d..ec11b3f56 100644
--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
+++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
@@ -1794,11 +1794,8 @@ drmmode_shadow_allocate(xf86CrtcPtr crtc, int width, int height)
return NULL;
}
- ret = drmModeAddFB(drmmode->fd, width, height, crtc->scrn->depth,
- drmmode->kbpp,
- drmmode_bo_get_pitch(&drmmode_crtc->rotate_bo),
- drmmode_bo_get_handle(&drmmode_crtc->rotate_bo),
- &drmmode_crtc->rotate_fb_id);
+ ret = drmmode_bo_import(drmmode, &drmmode_crtc->rotate_bo,
+ &drmmode_crtc->rotate_fb_id);
if (ret) {
ErrorF("failed to add rotate fb\n");

View File

@ -548,23 +548,26 @@ interaction.")
(define-public podofo (define-public podofo
(package (package
(name "podofo") (name "podofo")
(version "0.9.5") (version "0.9.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/podofo/podofo/" version (uri (string-append "mirror://sourceforge/podofo/podofo/" version
"/podofo-" version ".tar.gz")) "/podofo-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"012kgfx5j5n6w4zkc1d290d2cwjk60jhzsjlr2x19g3yi75q2jc5")))) "0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs ; TODO: Add cppunit for tests (native-inputs
`(("lua" ,lua-5.1) `(("cppunit" ,cppunit)
("libpng" ,libpng) ("pkg-config" ,pkg-config)))
("openssl" ,openssl) (inputs
("fontconfig" ,fontconfig) `(("libjpeg" ,libjpeg)
("libtiff" ,libtiff) ("libtiff" ,libtiff)
("libjpeg" ,libjpeg-8) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("libpng" ,libpng)
("lua" ,lua-5.1)
("openssl" ,openssl)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
`(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON" `(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON"

View File

@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
@ -81,7 +81,7 @@
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("libjpeg" ,libjpeg-8))) ;for lossy DNGs and old Kodak cameras `(("libjpeg" ,libjpeg))) ;for lossy DNGs and old Kodak cameras
(propagated-inputs (propagated-inputs
`(("lcms" ,lcms))) ;for color profiles `(("lcms" ,lcms))) ;for color profiles
(home-page "https://www.libraw.org") (home-page "https://www.libraw.org")

View File

@ -62,7 +62,7 @@
(define-public php (define-public php
(package (package
(name "php") (name "php")
(version "7.2.4") (version "7.2.8")
(home-page "https://secure.php.net/") (home-page "https://secure.php.net/")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -70,7 +70,7 @@
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"123s0lbyz4fxr3kk91r4v658mk899dym36lggxnx9pwd2jyv25kr")) "03zv1y8ygzsir60617hinpji3f4irk79zbp3ar1b8zcapq40gfjk"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(with-directory-excursion "ext" '(with-directory-excursion "ext"
@ -248,6 +248,9 @@
;; iconv breaks the loop after the first error with Termsig=11. ;; iconv breaks the loop after the first error with Termsig=11.
"ext/iconv/tests/iconv_strpos_variation4.phpt" "ext/iconv/tests/iconv_strpos_variation4.phpt"
"ext/iconv/tests/iconv_strrpos_variation3.phpt" "ext/iconv/tests/iconv_strrpos_variation3.phpt"
;; Expects "invalid multibyte sequence" but got
;; "unknown error".
"ext/iconv/tests/bug76249.phpt"
;; XXX: These test failures appear legitimate, needs investigation. ;; XXX: These test failures appear legitimate, needs investigation.
;; open_basedir() restriction failure. ;; open_basedir() restriction failure.
@ -288,7 +291,10 @@
"ext/mbstring/tests/mb_ereg_variation3.phpt" "ext/mbstring/tests/mb_ereg_variation3.phpt"
"ext/mbstring/tests/mb_ereg_replace_variation1.phpt" "ext/mbstring/tests/mb_ereg_replace_variation1.phpt"
"ext/mbstring/tests/bug72994.phpt" "ext/mbstring/tests/bug72994.phpt"
"ext/ldap/tests/ldap_set_option_error.phpt")) "ext/ldap/tests/ldap_set_option_error.phpt"
;; Sometimes cannot start the LDAP server.
"ext/ldap/tests/bug76248.phpt"))
;; Skip tests requiring network access. ;; Skip tests requiring network access.
(setenv "SKIP_ONLINE_TESTS" "1") (setenv "SKIP_ONLINE_TESTS" "1")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
@ -610,16 +610,17 @@ ECB and OFB).")
(define-public python-asn1crypto (define-public python-asn1crypto
(package (package
(name "python-asn1crypto") (name "python-asn1crypto")
(version "0.22.0") (version "0.24.0")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/wbond/asn1crypto/archive/" (uri (git-reference
version ".tar.gz")) (url "https://github.com/wbond/asn1crypto.git")
(file-name (string-append name "-" version ".tar.gz")) (commit version)))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1kn910896l3knmilla1c9ly20q181s43w1ah08lzkbm1h3j6pcz0")))) "10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/wbond/asn1crypto") (home-page "https://github.com/wbond/asn1crypto")
(synopsis "ASN.1 parser and serializer in Python") (synopsis "ASN.1 parser and serializer in Python")

View File

@ -14,7 +14,7 @@
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2015, 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2015, 2017 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2015, 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
@ -4210,23 +4210,53 @@ support for Python 3 and PyPy. It is based on cffi.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9")))) "1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9"))
(patches (search-patches "python-cairocffi-dlopen-path.patch"))))
(build-system python-build-system) (build-system python-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(inputs (inputs
`(("gdk-pixbuf" ,gdk-pixbuf) `(("glib" ,glib)
("cairo" ,cairo))) ("gtk+" ,gtk+)
("gdk-pixbuf" ,gdk-pixbuf)
("cairo" ,cairo)
("pango" ,pango)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("python-pytest" ,python-pytest)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
("python-docutils" ,python-docutils))) ("python-docutils" ,python-docutils)))
(propagated-inputs (propagated-inputs
`(("python-xcffib" ,python-xcffib))) ; used at run time `(("python-xcffib" ,python-xcffib))) ; used at run time
(arguments (arguments
`(;; FIXME: Tests cannot find 'libcairo.so.2'. `(;; FIXME: Tests cannot find 'libcairo.so.2'.
#:tests? #f #:tests? #t
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* (find-files "." "\\.py$")
(("dlopen\\(ffi, 'cairo'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "cairo")
"/lib/libcairo.so.2'"))
(("dlopen\\(ffi, 'gdk-3'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "gtk+")
"/lib/libgtk-3.so.0'"))
(("dlopen\\(ffi, 'gdk_pixbuf-2.0'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "gdk-pixbuf")
"/lib/libgdk_pixbuf-2.0.so.0'"))
(("dlopen\\(ffi, 'glib-2.0'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "glib")
"/lib/libglib-2.0.so.0'"))
(("dlopen\\(ffi, 'gobject-2.0'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "glib")
"/lib/libgobject-2.0.so.0'"))
(("dlopen\\(ffi, 'pangocairo-1.0'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "pango")
"/lib/libpangocairo-1.0.so.0'"))
(("dlopen\\(ffi, 'pango-1.0'")
(string-append "dlopen(ffi, '" (assoc-ref inputs "pango")
"/lib/libpango-1.0.so.0'")))
#t))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "doc") "/share")) (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@ -6284,14 +6314,14 @@ designed to efficiently cope with extremely large amounts of data.")
(define-public python-pyasn1 (define-public python-pyasn1
(package (package
(name "python-pyasn1") (name "python-pyasn1")
(version "0.4.2") (version "0.4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyasn1" version)) (uri (pypi-uri "pyasn1" version))
(sha256 (sha256
(base32 (base32
"05bxnr4wmrg62m4qr1pg1p3z7bhwrv74jll3k42pgxwl36kv0n6j")))) "1z5h38anjzzrxpraa9iq9llffyx2zs8gx0q6dc1g029miwnn50gv"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "http://pyasn1.sourceforge.net/") (home-page "http://pyasn1.sourceforge.net/")
(synopsis "ASN.1 types and codecs") (synopsis "ASN.1 types and codecs")
@ -6306,14 +6336,14 @@ suitable for a wide range of protocols based on the ASN.1 specification.")
(define-public python-pyasn1-modules (define-public python-pyasn1-modules
(package (package
(name "python-pyasn1-modules") (name "python-pyasn1-modules")
(version "0.0.8") (version "0.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyasn1-modules" version)) (uri (pypi-uri "pyasn1-modules" version))
(sha256 (sha256
(base32 (base32
"0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh")))) "0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-pyasn1" ,python-pyasn1))) `(("python-pyasn1" ,python-pyasn1)))
@ -12242,14 +12272,14 @@ pure Python module.")
(define-public python-xenon (define-public python-xenon
(package (package
(name "python-xenon") (name "python-xenon")
(version "0.5.1") (version "0.5.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "xenon" version)) (uri (pypi-uri "xenon" version))
(sha256 (sha256
(base32 (base32
"14kby2y48vp3sgwxqlm5d5789yibqwb1qli5fwcmdqg3iayrbklc")))) "029cbhysg2vr5n4jz8gpg2793f8wkwnqpr1qgv6c1dn685vy31mc"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-pyyaml" ,python-pyyaml) `(("python-pyyaml" ,python-pyyaml)
@ -12261,12 +12291,7 @@ pure Python module.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'patch-test-requirements (add-before 'build 'patch-test-requirements
(lambda* (#:key inputs #:allow-other-keys) (lambda _
;; Update requirements from dependency==version to
;; dependency>=version.
(substitute* "requirements.txt"
(("==") ">=")
((",<1.5.0") ""))
;; Remove httpretty dependency for tests. ;; Remove httpretty dependency for tests.
(substitute* "setup.py" (substitute* "setup.py"
(("httpretty") "")) (("httpretty") ""))

View File

@ -446,6 +446,29 @@ outcomes of a code example.")
(propagated-inputs (propagated-inputs
`(("ruby-diff-lcs" ,ruby-diff-lcs))))) `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
(define-public ruby-rspec-its
(package
(name "ruby-rspec-its")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "rspec-its" version))
(sha256
(base32
"1pwphny5jawcm1hda3vs9pjv1cybaxy17dc1s75qd7drrvx697p3"))))
(build-system ruby-build-system)
(arguments
`(#:tests? #f)) ; needs cucumber.
(propagated-inputs
`(("ruby-rspec-core" ,ruby-rspec-core)
("ruby-rspec-expectations" ,ruby-rspec-expectations)))
(synopsis "RSpec extension gem for attribute matching")
(description "@code{rspec-its} is an RSpec extension gem for attribute
matching.")
(home-page "https://github.com/rspec/rspec-its")
(license license:expat)))
(define-public ruby-rspec-mocks (define-public ruby-rspec-mocks
(package (package
(name "ruby-rspec-mocks") (name "ruby-rspec-mocks")
@ -883,7 +906,8 @@ complexity.")
(lambda _ (lambda _
;; This is used in the Rakefile, and setting it avoids an issue ;; This is used in the Rakefile, and setting it avoids an issue
;; with running the tests. ;; with running the tests.
(setenv "LIB" "options")))))) (setenv "LIB" "options")
#t)))))
(synopsis "Ruby library to parse options from *args cleanly") (synopsis "Ruby library to parse options from *args cleanly")
(description (description
"The @code{options} library helps with parsing keyword options in Ruby "The @code{options} library helps with parsing keyword options in Ruby
@ -4982,3 +5006,28 @@ Markdown.")
in standard Ruby syntax.") in standard Ruby syntax.")
(home-page "https://github.com/ruby/rake") (home-page "https://github.com/ruby/rake")
(license license:expat))) (license license:expat)))
(define-public ruby-childprocess
(package
(name "ruby-childprocess")
(version "0.9.0")
(source
(origin
(method url-fetch)
(uri (rubygems-uri "childprocess" version))
(sha256
(base32
"0a61922kmvcxyj5l70fycapr87gz1dzzlkfpq85rfqk5vdh3d28p"))))
(build-system ruby-build-system)
(arguments
`(#:tests? #f))
(native-inputs
`(("bundler" ,bundler)
("ruby-rspec" ,ruby-rspec)))
(propagated-inputs
`(("ruby-ffi" ,ruby-ffi)))
(synopsis "Control external programs running in the background, in Ruby")
(description "@code{childprocess} provides a gem to control external
programs running in the background, in Ruby.")
(home-page "http://github.com/enkessler/childprocess")
(license license:expat)))

View File

@ -167,7 +167,7 @@ in turn be used to build the final Rust.")
(snippet '(begin (delete-file-recursively "src/llvm") #t)) (snippet '(begin (delete-file-recursively "src/llvm") #t))
(patches (map search-patch patches)))) (patches (map search-patch patches))))
(define-public rust-1.19 (define rust-1.19
(package (package
(name "rust") (name "rust")
(version "1.19.0") (version "1.19.0")
@ -554,14 +554,28 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
(add-after 'patch-cargo-tests 'patch-cargo-index-update (add-after 'patch-cargo-tests 'patch-cargo-index-update
(lambda* _ (lambda _
(substitute* "src/tools/cargo/tests/generate-lockfile.rs" (substitute* "src/tools/cargo/tests/generate-lockfile.rs"
;; This test wants to update the crate index. ;; This test wants to update the crate index.
(("fn no_index_update") "#[ignore]\nfn no_index_update")))) (("fn no_index_update") "#[ignore]\nfn no_index_update"))
#t))
(add-after 'configure 'enable-codegen-tests (add-after 'configure 'enable-codegen-tests
(lambda* _ (lambda _
(substitute* "config.toml" (substitute* "config.toml"
(("codegen-tests = false") "")))) (("codegen-tests = false") ""))
#t))
(replace 'patch-aarch64-test
(lambda _
(substitute* "src/librustc_metadata/dynamic_lib.rs"
;; This test is known to fail on aarch64 and powerpc64le:
;; https://github.com/rust-lang/rust/issues/45410
(("fn test_loading_cosine") "#[ignore]\nfn test_loading_cosine"))
;; This test fails on aarch64 with llvm@6.0:
;; https://github.com/rust-lang/rust/issues/49807
;; other possible solution:
;; https://github.com/rust-lang/rust/pull/47688
(delete-file "src/test/debuginfo/by-value-self-argument-in-trait-impl.rs")
#t))
(delete 'ignore-glibc-2.27-incompatible-test)))))))) (delete 'ignore-glibc-2.27-incompatible-test))))))))
(define-public rust-1.26 (define-public rust-1.26

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -102,7 +103,7 @@ package contains the library, but no drivers.")
(inherit sane-backends-minimal) (inherit sane-backends-minimal)
(name "sane-backends") (name "sane-backends")
(inputs (inputs
`(("hplip" ,(@ (gnu packages cups) hplip)) `(("hplip" ,(@ (gnu packages cups) hplip-minimal))
,@(package-inputs sane-backends-minimal))) ,@(package-inputs sane-backends-minimal)))
(arguments (arguments
(substitute-keyword-arguments (package-arguments sane-backends-minimal) (substitute-keyword-arguments (package-arguments sane-backends-minimal)

View File

@ -132,7 +132,7 @@ joystick, and graphics hardware.")
(define-public libmikmod (define-public libmikmod
(package (package
(name "libmikmod") (name "libmikmod")
(version "3.3.10") (version "3.3.11.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (uri (list
@ -144,7 +144,7 @@ joystick, and graphics hardware.")
version "/libmikmod-" version ".tar.gz"))) version "/libmikmod-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0j7g4jpa2zgzw7x6s3rldypa7zlwjvn97rwx0sylx1iihhlzbcq0")))) "06bdnhb0l81srdzg6gn2v2ydhhaazza7rshrcj3q8dpqr3gn97dd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; By default, libmikmod tries to dlopen libasound etc., which won't work ;; By default, libmikmod tries to dlopen libasound etc., which won't work

View File

@ -5642,6 +5642,26 @@ table made by the command @code{show256Colors()}. You can also set the colors
to any arbitrary string. In this case, it is up to you to set valid values.") to any arbitrary string. In this case, it is up to you to set valid values.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public r-txtplot
(package
(name "r-txtplot")
(version "1.0-3")
(source
(origin
(method url-fetch)
(uri (cran-uri "txtplot" version))
(sha256
(base32
"1949ab1bzvysdb79g8x1gaknj0ih3d6g63pv9512h5m5l3a6c31h"))))
(build-system r-build-system)
(home-page "https://cran.r-project.org/web/packages/txtplot/")
(synopsis "Text-based plotting")
(description "This package provides functions to produce rudimentary ASCII
graphics directly in the terminal window. This package provides a basic
plotting function (and equivalents of curve, density, acf and barplot) as well
as a boxplot function.")
(license license:lgpl3+)))
(define-public java-jdistlib (define-public java-jdistlib
(package (package
(name "java-jdistlib") (name "java-jdistlib")

View File

@ -0,0 +1,103 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;;
;;; 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 (gnu packages stb)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:select (expat public-domain)))
(define stb
;; stb is a collection of libraries developed within the same repository.
;; When updating this, remember to change versions below as appropriate.
(let ((commit "e6afb9cbae4064da8c3e69af3ff5c4629579c1d2")
(revision "0"))
(package
(name "stb")
(home-page "https://github.com/nothings/stb")
(version (git-version "0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"079nsn9bnb8c0vfq26g5l53q6gzx19a5x9q2nb55mpcljxsgxnmf"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
(ice-9 regex)
(srfi srfi-26)
,@%gnu-build-system-modules)
#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'check
(lambda _
(invoke "make" "-C" "tests" "CC=gcc")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(files (make-regexp "\\.(c|h|md)$")))
(for-each (lambda (file)
(install-file file out))
(scandir "." (cut regexp-exec files <>)))
#t))))))
(synopsis "Single file libraries for C/C++")
(description
"This package contains a variety of small independent libraries for
the C programming language.")
;; The user can choose either license.
(license (list expat public-domain)))))
(define (make-stb-header-package name version description)
(package
(inherit stb)
(name name)
(version version)
(source #f)
(inputs `(("stb" ,stb)))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((stb (assoc-ref %build-inputs "stb"))
(lib (string-join (string-split ,name #\-) "_"))
(out (assoc-ref %outputs "out")))
(install-file (string-append stb "/" lib ".h")
(string-append out "/include"))
#t))))
(description description)))
;; TODO: These descriptions are not translatable! They should be
;; converted to macros as outlined in <https://bugs.gnu.org/32155>.
(define-public stb-image
(make-stb-header-package
"stb-image" "2.19"
"stb-image is a small and self-contained library for image loading or
decoding from file or memory. A variety of formats are supported."))
(define-public stb-image-write
(make-stb-header-package
"stb-image-write" "1.09"
"stb-image-write is a small library for writing image files to the
C@tie{}@code{stdio} interface."))

View File

@ -30,16 +30,15 @@
(define-public syncthing (define-public syncthing
(package (package
(name "syncthing") (name "syncthing")
(version "0.14.48") (version "0.14.49")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/syncthing/syncthing" (uri (string-append "https://github.com/syncthing/syncthing"
"/releases/download/v" version "/releases/download/v" version
"/syncthing-source-v" version ".tar.gz")) "/syncthing-source-v" version ".tar.gz"))
(patches (search-patches "syncthing-fix-crash.patch"))
(sha256 (sha256
(base32 (base32
"0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml")) "06mzzj5iwgqw3yva7azrsqs9zpl84srbamza4gm03grp7v9gf3sj"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Delete bundled ("vendored") free software source code. ;; Delete bundled ("vendored") free software source code.
(snippet '(begin (snippet '(begin
@ -130,7 +129,6 @@
("go-github-com-golang-groupcache-lru" ("go-github-com-golang-groupcache-lru"
,go-github-com-golang-groupcache-lru) ,go-github-com-golang-groupcache-lru)
("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway) ("go-github-com-jackpal-gateway" ,go-github-com-jackpal-gateway)
("go-github-com-kardianos-osext" ,go-github-com-kardianos-osext)
("go-github-com-kballard-go-shellquote" ("go-github-com-kballard-go-shellquote"
,go-github-com-kballard-go-shellquote) ,go-github-com-kballard-go-shellquote)
("go-github-com-lib-pq" ,go-github-com-lib-pq) ("go-github-com-lib-pq" ,go-github-com-lib-pq)
@ -703,11 +701,11 @@ database in Go.")
(license bsd-2)))) (license bsd-2))))
(define-public go-github-com-thejerf-suture (define-public go-github-com-thejerf-suture
(let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49") (let ((commit "3f1fb62fe0a3cc6429122d7dc45588a8b59c5bb6")
(revision "0")) (revision "0"))
(package (package
(name "go-github-com-thejerf-suture") (name "go-github-com-thejerf-suture")
(version (git-version "2.0.1" revision commit)) (version (git-version "2.0.3" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -716,7 +714,7 @@ database in Go.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2")))) "0mp7gz6bp6xhggkgmbl33vpmrq3a6n2dkgcxbkb7csnpv4r4d59k"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
`(#:import-path "github.com/thejerf/suture")) `(#:import-path "github.com/thejerf/suture"))
@ -1088,8 +1086,8 @@ using sh's word-splitting rules.")
(license expat)))) (license expat))))
(define-public go-github-com-syncthing-notify (define-public go-github-com-syncthing-notify
(let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2") (let ((commit "cdf89c4039d13726e227d0a472053ea19de021b4")
(revision "0")) (revision "1"))
(package (package
(name "go-github-com-syncthing-notify") (name "go-github-com-syncthing-notify")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -1101,7 +1099,7 @@ using sh's word-splitting rules.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf")))) "1ra1id9r06i4q8vhrrv1zpybhjxs3361rg35758dxglkyk4pzk6j"))))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path "github.com/syncthing/notify")) '(#:import-path "github.com/syncthing/notify"))

View File

@ -485,6 +485,8 @@ Mumble consists of two applications for separate usage:
(uri (git-reference (uri (git-reference
(url "https://github.com/LubosD/twinkle") (url "https://github.com/LubosD/twinkle")
(commit commit))) (commit commit)))
(patches
(search-patches "twinkle-include-qregexpvalidator.patch"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32

View File

@ -520,13 +520,13 @@ netcat implementation that supports TLS.")
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.25.1") (version "0.26.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7")))) "1glhwqj6yyb11820lspgd0gl5dqdfljn43kcy4ar5caccpsbbrw6"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -577,7 +577,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw")))) "0rnayqhdabm0rljxh76blqd11h51dqnwlwvql0j6xwzpccym30s9"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(substitute-keyword-arguments (package-arguments python-acme)

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
@ -47,14 +47,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.3.3.7") (version "0.3.3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"036ybfvldj7yfci9ipjki8smpzyxdg8c5r12bghc9yxdqh9basza")))) "0vyf5z0dn5jghp2qjp076aq62lsz9g32qv9jiqf08skf096nnd45"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags (list "--enable-gcc-hardening" `(#:configure-flags (list "--enable-gcc-hardening"

View File

@ -26,6 +26,7 @@
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -612,14 +613,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
(define-public ffmpeg (define-public ffmpeg
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "4.0.1") (version "4.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0")))) "15rgzcmdccy4flajs63gkz4n3k24wkkg50r13l1r83lrxg4hqp59"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("fontconfig" ,fontconfig) `(("fontconfig" ,fontconfig)
@ -788,26 +789,26 @@ audio/video codec library.")
(define-public ffmpeg-3.4 (define-public ffmpeg-3.4
(package (package
(inherit ffmpeg) (inherit ffmpeg)
(version "3.4.3") (version "3.4.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0p45s3h7mg7v0jm77bymw2617i08f086dlcdmaylnk7795yind3b")))))) "1iizgnhjbhar9y1ykqlj1czqanlv24knkfq5vvfnppv5x00pcvrq"))))))
(define-public ffmpeg-2.8 (define-public ffmpeg-2.8
(package (package
(inherit ffmpeg) (inherit ffmpeg)
(version "2.8.14") (version "2.8.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"05m1272r5qa2r0ym5vq4figdfnpvcys1fgb1026n5s6xdjd1s1pg")))) "065xbvnfmxfbfrc14cavpqyd2slil99vcjksw4ndb7w8zdh0wp3v"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments ffmpeg) (substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags flags) ((#:configure-flags flags)
@ -817,18 +818,48 @@ audio/video codec library.")
flag)) flag))
,flags)))))) ,flags))))))
(define-public ffmpegthumbnailer
(package
(name "ffmpegthumbnailer")
(version "2.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dirkvdb/"
name "/archive/" version ".tar.gz"))
(sha256
(base32
"13qs4iwd4l3iiim30s5051n80z0vgsnikym8vsn321cnm9algiwb"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("ffmpeg" ,ffmpeg)
("libjpeg-turbo" ,libjpeg-turbo)
("libpng" ,libpng)
("gvfs" ,gvfs)))
(arguments
`(#:configure-flags (list "-DENABLE_GIO=ON" "-DENABLE_THUMBNAILER=ON")))
(home-page "https://github.com/dirkvdb/ffmpegthumbnailer")
(synopsis "Create thumbnails from video files")
(description "FFmpegthumbnailer is a lightweight video thumbnailer that
can be used by file managers to create thumbnails for your video files. The
thumbnailer uses ffmpeg to decode frames from the video files, so supported
videoformats depend on the configuration flags of ffmpeg.")
(license license:gpl2+)))
(define-public vlc (define-public vlc
(package (package
(name "vlc") (name "vlc")
(version "3.0.3") (version "3.0.3-1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://download.videolan.org/pub/videolan/vlc/" "https://download.videolan.org/pub/videolan/vlc/"
version "/vlc-" version ".tar.xz")) (car (string-split version #\-))
"/vlc-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0lavzly8l0ll1d9iris9cnirgcs77g48lxj14058dxqkvd5v1a4v")))) "1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("flex" ,flex) `(("flex" ,flex)
@ -998,7 +1029,7 @@ treaming protocols.")
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
("cdparanoia" ,cdparanoia) ("cdparanoia" ,cdparanoia)
("ffmpeg" ,ffmpeg) ("ffmpeg" ,ffmpeg-3.4)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
@ -1075,7 +1106,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(define-public mpv (define-public mpv
(package (package
(name "mpv") (name "mpv")
(version "0.28.2") (version "0.29.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1083,7 +1114,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15fp4sa5glqhgidd54vs6knf9dp809wszzsqiqz5nyri4ph19nma")) "06bk8836brzik1qmq8kycwg5n35r438sd2176k6msjg5rrwghakp"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system waf-build-system) (build-system waf-build-system)
(native-inputs (native-inputs
@ -1224,7 +1255,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl (define-public youtube-dl
(package (package
(name "youtube-dl") (name "youtube-dl")
(version "2018.06.19") (version "2018.07.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/" (uri (string-append "https://yt-dl.org/downloads/"
@ -1232,7 +1263,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ys2mc84r7mjpn7rykb57sn3ii1kp3divjdn2ivwqknj8jrzg3z6")))) "1rigah941k2drzx5qz937lk68gw9jrizj5lgd9f9znp0bgi2d0xd"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The problem here is that the directory for the man page and completion ;; The problem here is that the directory for the man page and completion
@ -2336,7 +2367,7 @@ supported players in addition to this package.")
(inputs (inputs
`(("bzip2" ,bzip2) `(("bzip2" ,bzip2)
("dbus-glib" ,dbus-glib) ("dbus-glib" ,dbus-glib)
("ffmpeg" ,ffmpeg) ("ffmpeg" ,ffmpeg-3.4) ;compilation errors with ffmpeg-4
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("glib" ,glib) ("glib" ,glib)

View File

@ -27,12 +27,16 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages fltk) #:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages libidn) #:use-module (gnu packages libidn)
#:use-module (gnu packages lua)
#:use-module (gnu packages gnome)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -41,9 +45,11 @@
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
(define-public dillo (define-public dillo
@ -128,6 +134,68 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
;; linking of the program with openssl. ;; linking of the program with openssl.
(license license:gpl1+))) (license license:gpl1+)))
(define-public luakit
(package
(name "luakit")
(version "2017.08.10")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/luakit/luakit/archive/" version
".tar.gz"))
(sha256
(base32
"0dwxhnq90whakgdg21lzcf03n2g1c7hqgliwhav8av5na5mqpn93"))
(file-name (string-append name "-" version ".tar.gz"))))
(inputs
`(("lua-5.1", lua-5.1)
("gtk+" ,gtk+)
("gsettings-desktop-schemas", gsettings-desktop-schemas)
("glib-networking", glib-networking)
("lua5.1-filesystem", lua5.1-filesystem)
("luajit", luajit)
("webkitgtk", webkitgtk)
("sqlite", sqlite)))
(native-inputs
`(("pkg-config", pkg-config)))
(build-system glib-or-gtk-build-system)
(arguments
'(#:make-flags
(let ((out (assoc-ref %outputs "out")))
(list
"CC=gcc"
"LUA_BIN_NAME=lua"
"DEVELOPMENT_PATHS=0"
(string-append "PREFIX=" out)
(string-append "XDGPREFIX=" out "/etc/xdg")))
#:phases
(modify-phases %standard-phases
(add-before 'build 'lfs-workaround
(lambda _
(setenv "LUA_CPATH"
(string-append
(assoc-ref %build-inputs "lua5.1-filesystem")
"/lib/lua/5.1/?.so;;"))
#t))
(delete 'configure)
(delete 'check)
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((luakit (assoc-ref outputs "out"))
(lua5.1-filesystem (assoc-ref inputs "lua5.1-filesystem") )
(gtk (assoc-ref inputs "gtk+"))
(gtk-share (string-append gtk "/share")))
(wrap-program (string-append luakit "/bin/luakit")
`("LUA_CPATH" prefix
(,(string-append lua5.1-filesystem
"/lib/lua/5.1/?.so;;"))))
#t))))))
(synopsis "Fast, lightweight, and simple browser based on WebKit")
(description "Luakit is a fast, lightweight, and simple to use
micro-browser framework extensible by Lua using the WebKit web content engine
and the GTK+ toolkit.")
(home-page "https://luakit.github.io/")
(license license:gpl3+)))
(define-public lynx (define-public lynx
(package (package
(name "lynx") (name "lynx")

View File

@ -122,14 +122,14 @@
(define-public httpd (define-public httpd
(package (package
(name "httpd") (name "httpd")
(version "2.4.33") (version "2.4.34")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://apache/httpd/httpd-" (uri (string-append "mirror://apache/httpd/httpd-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"01bghiq4pbgjbgd6gic0nb8bbk6mfpwx3gcsbf21f3dhb4c520ny")))) "1w1q2smdgf6ln0x741lk5pv5r0gzrxj2iza1vslhifzy65bcjlzs"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config' (native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
(inputs `(("apr" ,apr) (inputs `(("apr" ,apr)
@ -719,7 +719,14 @@ current version of any major web browser.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z")))) "13nrpvw8f1wx0ga7svbzld7pgrv8l172nangpipnj7jaf0lysz5z"))
(modules '((guix build utils)))
(snippet
'(begin
;; Remove code using the problematic JSON license (see
;; <https://www.gnu.org/licenses/license-list.html#JSON>).
(delete-file-recursively "bin/jsonchecker")
#t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(,@(if (string-prefix? "aarch64" (or (%current-target-system) `(,@(if (string-prefix? "aarch64" (or (%current-target-system)
@ -5705,14 +5712,20 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
(define-public java-tomcat (define-public java-tomcat
(package (package
(name "java-tomcat") (name "java-tomcat")
(version "8.5.28") (version "8.5.32")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://apache/tomcat/tomcat-8/v" (uri (string-append "mirror://apache/tomcat/tomcat-8/v"
version "/src/apache-tomcat-" version "-src.tar.gz")) version "/src/apache-tomcat-" version "-src.tar.gz"))
(sha256 (sha256
(base32 (base32
"0q2bc3sajrmcx3z3vhhwp78y47ryc2ky8ssbdmfk24zvqdb76hvl")))) "1qjsr6zmkdciakya4jqz0ssnsk02qlmmd898c05rasfwcrpj0xi6"))
(modules '((guix build utils)))
;; Delete bundled jars.
(snippet
'(begin
(for-each delete-file (find-files "." "\\.jar$"))
#t))))
(build-system ant-build-system) (build-system ant-build-system)
(inputs (inputs
`(("java-eclipse-jdt-core" ,java-eclipse-jdt-core))) `(("java-eclipse-jdt-core" ,java-eclipse-jdt-core)))
@ -5734,6 +5747,14 @@ encoder/decoder based on the draft-12 specification for UBJSON.")
(("depends=\"validate\"") "depends=\"build-prepare\"") (("depends=\"validate\"") "depends=\"build-prepare\"")
((",download-validate") "")) ((",download-validate") ""))
#t)) #t))
(add-after 'unpack 'strip-timestamps
(lambda _
(substitute* "build.xml"
(("<filter token=\"YEAR\" value=.*")
"<filter token=\"YEAR\" value=\"1970\"/>")
(("<filter token=\"VERSION_BUILT\" value=.*")
"<filter token=\"VERSION_BUILT\" value=\"Jan 1 1970 00:00:00 UTC\"/>"))
#t))
(add-after 'unpack 'generate-properties (add-after 'unpack 'generate-properties
(lambda _ (lambda _
;; This could have been passed to make-flags, but getcwd returns ;; This could have been passed to make-flags, but getcwd returns
@ -5931,7 +5952,7 @@ or embedded instantiation. This package provides utility classes.")
#t))))) #t)))))
(inputs (inputs
`(("slf4j" ,java-slf4j-api) `(("slf4j" ,java-slf4j-api)
("servlet" ,java-tomcat) ("servlet" ,java-javaee-servletapi)
("util" ,java-eclipse-jetty-util))) ("util" ,java-eclipse-jetty-util)))
(synopsis "Jetty :: IO Utility") (synopsis "Jetty :: IO Utility")
(description "The Jetty Web Server provides an HTTP server and Servlet (description "The Jetty Web Server provides an HTTP server and Servlet
@ -5974,7 +5995,7 @@ or embedded instantiation. This package provides IO-related utility classes."))
#t))))) #t)))))
(inputs (inputs
`(("slf4j" ,java-slf4j-api) `(("slf4j" ,java-slf4j-api)
("servlet" ,java-tomcat) ("servlet" ,java-javaee-servletapi)
("io" ,java-eclipse-jetty-io) ("io" ,java-eclipse-jetty-io)
("util" ,java-eclipse-jetty-util))) ("util" ,java-eclipse-jetty-util)))
(synopsis "Jetty :: Http Utility") (synopsis "Jetty :: Http Utility")
@ -6009,7 +6030,7 @@ or embedded instantiation. This package provides HTTP-related utility classes."
#t))))) #t)))))
(inputs (inputs
`(("slf4j" ,java-slf4j-api) `(("slf4j" ,java-slf4j-api)
("servlet" ,java-tomcat) ("servlet" ,java-javaee-servletapi)
("util" ,java-eclipse-jetty-util))) ("util" ,java-eclipse-jetty-util)))
(synopsis "Jetty :: JMX Management") (synopsis "Jetty :: JMX Management")
(description "The Jetty Web Server provides an HTTP server and Servlet (description "The Jetty Web Server provides an HTTP server and Servlet
@ -6090,7 +6111,7 @@ or embedded instantiation. This package provides the JMX management.")))
#t))))) #t)))))
(inputs (inputs
`(("slf4j" ,java-slf4j-api) `(("slf4j" ,java-slf4j-api)
("servlet" ,java-tomcat) ("servlet" ,java-javaee-servletapi)
("http" ,java-eclipse-jetty-http) ("http" ,java-eclipse-jetty-http)
("io" ,java-eclipse-jetty-io) ("io" ,java-eclipse-jetty-io)
("jmx" ,java-eclipse-jetty-jmx) ("jmx" ,java-eclipse-jetty-jmx)
@ -6286,7 +6307,7 @@ container.")))
("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet) ("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
("java-eclipse-jetty-security" ,java-eclipse-jetty-security) ("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml) ("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
("java-tomcat" ,java-tomcat))) ("java-javaee-servletapi" ,java-javaee-servletapi)))
(native-inputs (native-inputs
`(("java-eclipse-jetty-io" ,java-eclipse-jetty-io) `(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
,@(package-native-inputs java-eclipse-jetty-util))))) ,@(package-native-inputs java-eclipse-jetty-util)))))

View File

@ -223,7 +223,7 @@ integrate Windows applications into your desktop.")
(define-public wine-staging-patchset-data (define-public wine-staging-patchset-data
(package (package
(name "wine-staging-patchset-data") (name "wine-staging-patchset-data")
(version "3.12") (version "3.13")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -232,7 +232,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".zip")) (file-name (string-append name "-" version ".zip"))
(sha256 (sha256
(base32 (base32
"1hjs36jw8k1d22c713wzwvyhfrb8mi85dpk9wpsggnnw2x57hzs0")))) "0h27h4z4m2m77chp3alkv6fagppjhh9ys39d3n21j0yfjknyhdd8"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(native-inputs (native-inputs
`(("bash" ,bash) `(("bash" ,bash)
@ -279,7 +279,7 @@ integrate Windows applications into your desktop.")
(file-name (string-append name "-" version ".tar.xz")) (file-name (string-append name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0zvqmd0018wvlxz4xbm5sbv7770j3l14q0ilpgs0jy49srcw116v")))) "1m5v854r5wgw68b97j6wim1a8692x5sih25c0xp1yb13a94dg187"))))
(inputs `(("autoconf" ,autoconf) ; for autoreconf (inputs `(("autoconf" ,autoconf) ; for autoreconf
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("libva" ,libva) ("libva" ,libva)

View File

@ -3177,46 +3177,28 @@ This driver is intended for the spice qxl virtio device.")
(license license:x11))) (license license:x11)))
(define-public xf86-video-r128 (define-public xf86-video-r128
;; We need a newer version than 6.10.2 to build against the latest xorg-server. (package
;; Remove this binding and the bootstrap inputs when >6.10.2 is released. (name "xf86-video-r128")
(let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc") (version "6.11.0")
(revision "0")) (source (origin
(package (method url-fetch)
(name "xf86-video-r128") (uri (string-append "mirror://xorg/individual/driver/"
(version (git-version "6.10.2" revision commit)) name "-" version ".tar.bz2"))
(source (origin (sha256
(method git-fetch) (base32
(uri (git-reference "0snvwmrh8dqyyaq7ggicym6yrsg4brygkx9156r0m095m7fp3rav"))))
(url (string-append "https://anongit.freedesktop.org/git/xorg" (build-system gnu-build-system)
"/driver/" name ".git")) (inputs `(("mesa" ,mesa)
(commit commit))) ("xorgproto" ,xorgproto)
(file-name (git-file-name name version)) ("xorg-server" ,xorg-server)))
(sha256 (native-inputs
(base32 `(("pkg-config" ,pkg-config)))
"01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j")))) (home-page "https://www.x.org/wiki/")
(build-system gnu-build-system) (synopsis "ATI Rage 128 video driver for X server")
(arguments (description
`(#:phases (modify-phases %standard-phases "xf86-video-r128 is a video driver for the Xorg X server.
(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.") This driver is intended for ATI Rage 128 based cards.")
(license license:x11)))) (license license:x11)))
(define-public xf86-video-savage (define-public xf86-video-savage
(package (package
@ -5111,7 +5093,8 @@ over Xlib, including:
(sha256 (sha256
(base32 (base32
"0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
(file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))
(search-patch "xorg-server-rotate-fb.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("libpciaccess" ,libpciaccess) `(("libpciaccess" ,libpciaccess)
@ -5837,7 +5820,7 @@ programs that cannot use the window system directly.")
("xcb-proto" ,xcb-proto) ("xcb-proto" ,xcb-proto)
("xcb-util" ,xcb-util) ("xcb-util" ,xcb-util)
("xcb-util-wm" ,xcb-util-wm))) ("xcb-util-wm" ,xcb-util-wm)))
(home-page "http://search.cpan.org/dist/X11-XCB") (home-page "https://metacpan.org/release/X11-XCB")
(synopsis "Perl bindings for libxcb") (synopsis "Perl bindings for libxcb")
(description (description
"These bindings wrap @code{libxcb} (a C library to speak with X11, "These bindings wrap @code{libxcb} (a C library to speak with X11,
@ -5864,7 +5847,7 @@ interface to its methods (using @code{Mouse}).")
"X11::Protocol is a client-side interface to the X11 Protocol, allowing "X11::Protocol is a client-side interface to the X11 Protocol, allowing
perl programs to display windows and graphics on X11 servers.") perl programs to display windows and graphics on X11 servers.")
(home-page (home-page
(string-append "http://search.cpan.org/~smccam/X11-Protocol-" version)) (string-append "https://metacpan.org/release/SMCCAM/X11-Protocol-" version))
;; From the package README: "you can redistribute and/or modify it under ;; From the package README: "you can redistribute and/or modify it under
;; the same terms as Perl itself. (As an exception, the file ;; the same terms as Perl itself. (As an exception, the file
;; Keysyms.pm,which is derived from a file in the standard X11 ;; Keysyms.pm,which is derived from a file in the standard X11
@ -5892,7 +5875,7 @@ perl programs to display windows and graphics on X11 servers.")
("perl-module-util" ,perl-module-util))) ("perl-module-util" ,perl-module-util)))
(propagated-inputs (propagated-inputs
`(("perl-x11-protocol" ,perl-x11-protocol))) `(("perl-x11-protocol" ,perl-x11-protocol)))
(home-page "http://search.cpan.org/dist/X11-Protocol-Other/") (home-page "https://metacpan.org/release/X11-Protocol-Other")
(synopsis "Miscellaneous helpers for @code{X11::Protocol} connections") (synopsis "Miscellaneous helpers for @code{X11::Protocol} connections")
(description (description
"@code{X11::Protocol::Other} contains window manager related functions for "@code{X11::Protocol::Other} contains window manager related functions for

View File

@ -4,6 +4,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -72,9 +73,7 @@
(one-shot? cuirass-configuration-one-shot? ;boolean (one-shot? cuirass-configuration-one-shot? ;boolean
(default #f)) (default #f))
(fallback? cuirass-configuration-fallback? ;boolean (fallback? cuirass-configuration-fallback? ;boolean
(default #f)) (default #f)))
(load-path cuirass-configuration-load-path
(default '())))
(define (cuirass-shepherd-service config) (define (cuirass-shepherd-service config)
"Return a <shepherd-service> for the Cuirass service with CONFIG." "Return a <shepherd-service> for the Cuirass service with CONFIG."
@ -92,8 +91,7 @@
(specs (cuirass-configuration-specifications config)) (specs (cuirass-configuration-specifications config))
(use-substitutes? (cuirass-configuration-use-substitutes? config)) (use-substitutes? (cuirass-configuration-use-substitutes? config))
(one-shot? (cuirass-configuration-one-shot? config)) (one-shot? (cuirass-configuration-one-shot? config))
(fallback? (cuirass-configuration-fallback? config)) (fallback? (cuirass-configuration-fallback? config)))
(load-path (cuirass-configuration-load-path config)))
(list (shepherd-service (list (shepherd-service
(documentation "Run Cuirass.") (documentation "Run Cuirass.")
(provision '(cuirass)) (provision '(cuirass))
@ -109,9 +107,7 @@
"--interval" #$(number->string interval) "--interval" #$(number->string interval)
#$@(if use-substitutes? '("--use-substitutes") '()) #$@(if use-substitutes? '("--use-substitutes") '())
#$@(if one-shot? '("--one-shot") '()) #$@(if one-shot? '("--one-shot") '())
#$@(if fallback? '("--fallback") '()) #$@(if fallback? '("--fallback") '()))
#$@(if (null? load-path) '()
`("--load-path" ,(string-join load-path ":"))))
#:environment-variables #:environment-variables
(list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt" (list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"

View File

@ -455,7 +455,7 @@ of user-name/file-like tuples."
(list (shepherd-service (list (shepherd-service
(documentation "OpenSSH server.") (documentation "OpenSSH server.")
(requirement '(syslogd)) (requirement '(syslogd loopback))
(provision '(ssh-daemon)) (provision '(ssh-daemon))
(start #~(make-forkexec-constructor #$openssh-command (start #~(make-forkexec-constructor #$openssh-command
#:pid-file #$pid-file)) #:pid-file #$pid-file))

View File

@ -298,6 +298,13 @@ You have been warned. Thanks for being so brave.\x1b[0m
`(("/bin/sh" ,(file-append (canonical-package bash) `(("/bin/sh" ,(file-append (canonical-package bash)
"/bin/sh")))) "/bin/sh"))))
;; Loopback device, needed by OpenSSH notably.
(service static-networking-service-type
(list (static-networking (interface "lo")
(ip "127.0.0.1")
(requirement '())
(provision '(loopback)))))
;; Keep a reference to BARE-BONES-OS to make sure it can be ;; Keep a reference to BARE-BONES-OS to make sure it can be
;; installed without downloading/building anything. Also keep the ;; installed without downloading/building anything. Also keep the
;; things needed by 'profile-derivation' to minimize the amount of ;; things needed by 'profile-derivation' to minimize the amount of

View File

@ -210,7 +210,17 @@ include /run/current-system/profile/share/nano/*.nanorc\n"))
((module-ref module 'activate-readline)))) ((module-ref module 'activate-readline))))
(else (else
(display \"Consider installing the 'guile-readline' package for (display \"Consider installing the 'guile-readline' package for
convenient interactive line editing and input history.\\n\\n\")))\n")) convenient interactive line editing and input history.\\n\\n\")))
(unless (getenv \"INSIDE_EMACS\")
(cond ((false-if-exception (resolve-interface '(ice-9 colorized)))
=>
(lambda (module)
;; Enable completion and input history at the REPL.
((module-ref module 'activate-colorized))))
(else
(display \"Consider installing the 'guile-colorized' package
for a colorful Guile experience.\\n\\n\"))))\n"))
(".guile-wm" ,guile-wm) (".guile-wm" ,guile-wm)
(".gdbinit" ,gdbinit)))) (".gdbinit" ,gdbinit))))

View File

@ -0,0 +1,202 @@
;;; 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 build-system guile)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
#:use-module (srfi srfi-26)
#:export (%guile-build-system-modules
guile-build-system))
(define %guile-build-system-modules
;; Build-side modules imported by default.
`((guix build guile-build-system)
,@%gnu-build-system-modules))
(define* (lower name
#:key source inputs native-inputs outputs system target
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
;; Note: There's no #:guile argument (unlike, for instance,
;; 'ocaml-build-system' which has #:ocaml.) This is so we can keep
;; procedures like 'package-for-guile-2.0' unchanged and simple.
(define private-keywords
'(#:target #:inputs #:native-inputs))
(bag
(name name)
(system system) (target target)
(host-inputs `(
,@inputs))
(build-inputs `(,@(if source
`(("source" ,source))
'())
,@native-inputs
,@(map (cute assoc <> (standard-packages))
'("tar" "gzip" "bzip2" "xz" "locales"))))
(outputs outputs)
(build (if target guile-cross-build guile-build))
(arguments (strip-keyword-arguments private-keywords arguments))))
(define %compile-flags
;; Flags passed to 'guild compile' by default. We choose a common
;; denominator between Guile 2.0 and 2.2.
''("-Wunbound-variable" "-Warity-mismatch" "-Wformat"))
(define* (guile-build store name inputs
#:key source
(guile #f)
(phases '%standard-phases)
(outputs '("out"))
(search-paths '())
(system (%current-system))
(source-directory ".")
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
(guix build utils))))
"Build SOURCE using Guile taken from the native inputs, and with INPUTS."
(define builder
`(begin
(use-modules ,@modules)
(guile-build #:name ,name
#:source ,(match (assoc-ref inputs "source")
(((? derivation? source))
(derivation->output-path source))
((source)
source)
(source
source))
#:source-directory ,source-directory
#:compile-flags ,compile-flags
#:phases ,phases
#:system ,system
#:outputs %outputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
#:inputs %build-inputs)))
(define guile-for-build
(match guile
((? package?)
(package-derivation store guile system #:graft? #f))
(#f ; the default
(let* ((distro (resolve-interface '(gnu packages commencement)))
(guile (module-ref distro 'guile-final)))
(package-derivation store guile system #:graft? #f)))))
(build-expression->derivation store name builder
#:inputs inputs
#:system system
#:modules imported-modules
#:outputs outputs
#:guile-for-build guile-for-build))
(define* (guile-cross-build store name
#:key
(system (%current-system)) target
native-drvs target-drvs
(guile #f)
source
(outputs '("out"))
(search-paths '())
(native-search-paths '())
(phases '%standard-phases)
(source-directory ".")
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
(guix build utils))))
(define builder
`(begin
(use-modules ,@modules)
(let ()
(define %build-host-inputs
',(map (match-lambda
((name (? derivation? drv) sub ...)
`(,name . ,(apply derivation->output-path drv sub)))
((name path)
`(,name . ,path)))
native-drvs))
(define %build-target-inputs
',(map (match-lambda
((name (? derivation? drv) sub ...)
`(,name . ,(apply derivation->output-path drv sub)))
((name (? package? pkg) sub ...)
(let ((drv (package-cross-derivation store pkg
target system)))
`(,name . ,(apply derivation->output-path drv sub))))
((name path)
`(,name . ,path)))
target-drvs))
(guile-build #:source ,(match (assoc-ref native-drvs "source")
(((? derivation? source))
(derivation->output-path source))
((source)
source)
(source
source))
#:system ,system
#:target ,target
#:outputs %outputs
#:source-directory ,source-directory
#:compile-flags ,compile-flags
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
#:native-search-paths ',(map
search-path-specification->sexp
native-search-paths)
#:phases ,phases))))
(define guile-for-build
(match guile
((? package?)
(package-derivation store guile system #:graft? #f))
(#f ; the default
(let* ((distro (resolve-interface '(gnu packages commencement)))
(guile (module-ref distro 'guile-final)))
(package-derivation store guile system #:graft? #f)))))
(build-expression->derivation store name builder
#:system system
#:inputs (append native-drvs target-drvs)
#:outputs outputs
#:modules imported-modules
#:substitutable? substitutable?
#:guile-for-build guile-for-build))
(define guile-build-system
(build-system
(name 'guile)
(description "The build system for simple Guile packages")
(lower lower)))

View File

@ -125,17 +125,17 @@ unset. When SOURCE is a directory, copy it instead of unpacking."
(copy-recursively source dest #:keep-mtime? #t) (copy-recursively source dest #:keep-mtime? #t)
#t) #t)
(if (string-suffix? ".zip" source) (if (string-suffix? ".zip" source)
(zero? (system* "unzip" "-d" dest source)) (invoke "unzip" "-d" dest source)
(zero? (system* "tar" "-C" dest "-xvf" source)))))) (invoke "tar" "-C" dest "-xvf" source)))))
(define* (install-source #:key install-source? outputs #:allow-other-keys) (define* (install-source #:key install-source? outputs #:allow-other-keys)
"Install the source code to the output directory." "Install the source code to the output directory."
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(source "src") (source "src")
(dest (string-append out "/" source))) (dest (string-append out "/" source)))
(if install-source? (when install-source?
(copy-recursively source dest #:keep-mtime? #t) (copy-recursively source dest #:keep-mtime? #t))
#t))) #t))
(define (go-package? name) (define (go-package? name)
(string-prefix? "go-" name)) (string-prefix? "go-" name))
@ -178,24 +178,26 @@ respectively."
(define* (build #:key import-path #:allow-other-keys) (define* (build #:key import-path #:allow-other-keys)
"Build the package named by IMPORT-PATH." "Build the package named by IMPORT-PATH."
(or (with-throw-handler
(zero? (system* "go" "install" #t
"-v" ; print the name of packages as they are compiled (lambda _
"-x" ; print each command as it is invoked (invoke "go" "install"
;; Respectively, strip the symbol table and debug "-v" ; print the name of packages as they are compiled
;; information, and the DWARF symbol table. "-x" ; print each command as it is invoked
"-ldflags=-s -w" ;; Respectively, strip the symbol table and debug
import-path)) ;; information, and the DWARF symbol table.
(begin "-ldflags=-s -w"
import-path))
(lambda (key . args)
(display (string-append "Building '" import-path "' failed.\n" (display (string-append "Building '" import-path "' failed.\n"
"Here are the results of `go env`:\n")) "Here are the results of `go env`:\n"))
(system* "go" "env") (invoke "go" "env"))))
#f)))
(define* (check #:key tests? import-path #:allow-other-keys) (define* (check #:key tests? import-path #:allow-other-keys)
"Run the tests for the package named by IMPORT-PATH." "Run the tests for the package named by IMPORT-PATH."
(if tests? (when tests?
(zero? (system* "go" "test" import-path)))) (invoke "go" "test" import-path))
#t)
(define* (install #:key outputs #:allow-other-keys) (define* (install #:key outputs #:allow-other-keys)
"Install the compiled libraries. `go install` installs these files to "Install the compiled libraries. `go install` installs these files to

View File

@ -0,0 +1,153 @@
;;; 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 build guile-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
#:use-module (guix build utils)
#:export (target-guile-effective-version
%standard-phases
guile-build))
(define* (target-guile-effective-version #:optional guile)
"Return the effective version of GUILE or whichever 'guile' is in $PATH.
Return #false if it cannot be determined."
(let* ((pipe (open-pipe* OPEN_READ
(if guile
(string-append guile "/bin/guile")
"guile")
"-c" "(display (effective-version))"))
(line (read-line pipe)))
(and (zero? (close-pipe pipe))
(string? line)
line)))
(define (file-sans-extension file) ;TODO: factorize
"Return the substring of FILE without its extension, if any."
(let ((dot (string-rindex file #\.)))
(if dot
(substring file 0 dot)
file)))
(define %scheme-file-regexp
;; Regexp to match Scheme files.
"\\.(scm|sls)$")
(define %documentation-file-regexp
;; Regexp to match README files and the likes.
"^(README.*|.*\\.html|.*\\.org|.*\\.md)$")
(define* (set-locale-path #:key inputs native-inputs
#:allow-other-keys)
"Set 'GUIX_LOCPATH'."
(match (assoc-ref (or native-inputs inputs) "locales")
(#f #t)
(locales
(setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
#t)))
(define* (build #:key outputs inputs native-inputs
(source-directory ".")
(compile-flags '())
(scheme-file-regexp %scheme-file-regexp)
target
#:allow-other-keys)
"Build files in SOURCE-DIRECTORY that match SCHEME-FILE-REGEXP."
(let* ((out (assoc-ref outputs "out"))
(guile (assoc-ref (or native-inputs inputs) "guile"))
(effective (target-guile-effective-version guile))
(module-dir (string-append out "/share/guile/site/"
effective))
(go-dir (string-append out "/lib/guile/"
effective "/site-ccache/"))
(guild (string-append guile "/bin/guild"))
(flags (if target
(cons (string-append "--target=" target)
compile-flags)
compile-flags)))
(if target
(format #t "Cross-compiling for '~a' with Guile ~a...~%"
target effective)
(format #t "Compiling with Guile ~a...~%" effective))
(format #t "compile flags: ~s~%" flags)
;; Make installation directories.
(mkdir-p module-dir)
(mkdir-p go-dir)
;; Compile .scm files and install.
(setenv "GUILE_AUTO_COMPILE" "0")
(setenv "GUILE_LOAD_COMPILED_PATH"
(string-append go-dir
(match (getenv "GUILE_LOAD_COMPILED_PATH")
(#f "")
(path (string-append ":" path)))))
(for-each (lambda (file)
(let* ((go (string-append go-dir
(file-sans-extension file)
".go")))
;; Install source module.
(install-file (string-append source-directory "/" file)
(string-append module-dir
"/" (dirname file)))
;; Install and compile module.
(apply invoke guild "compile" "-L" source-directory
"-o" go
(string-append source-directory "/" file)
flags)))
;; Arrange to strip SOURCE-DIRECTORY from file names.
(with-directory-excursion source-directory
(find-files "." scheme-file-regexp)))
#t))
(define* (install-documentation #:key outputs
(documentation-file-regexp
%documentation-file-regexp)
#:allow-other-keys)
"Install files that mactch DOCUMENTATION-FILE-REGEXP."
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/"
(strip-store-file-name out))))
(for-each (cut install-file <> doc)
(find-files "." documentation-file-regexp))
#t))
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'install-locale 'set-locale-path
set-locale-path)
(replace 'build build)
(add-after 'build 'install-documentation
install-documentation)
(delete 'check)
(delete 'strip)
(delete 'validate-runpath)
(delete 'install)))
(define* (guile-build #:key (phases %standard-phases)
#:allow-other-keys #:rest args)
"Build the given Guile package, applying all of PHASES in order."
(apply gnu:gnu-build #:phases phases args))

View File

@ -52,18 +52,19 @@ directory."
(define* (unpack #:key source #:allow-other-keys) (define* (unpack #:key source #:allow-other-keys)
"Unpack the gem SOURCE and enter the resulting directory." "Unpack the gem SOURCE and enter the resulting directory."
(if (gem-archive? source) (if (gem-archive? source)
(and (zero? (system* "gem" "unpack" source)) (begin
;; The unpacked gem directory is named the same as the archive, (invoke "gem" "unpack" source)
;; sans the ".gem" extension. It is renamed to simply "gem" in an ;; The unpacked gem directory is named the same as the archive,
;; effort to keep file names shorter to avoid UNIX-domain socket ;; sans the ".gem" extension. It is renamed to simply "gem" in an
;; file names and shebangs that exceed the system's fixed maximum ;; effort to keep file names shorter to avoid UNIX-domain socket
;; length when running test suites. ;; file names and shebangs that exceed the system's fixed maximum
(let ((dir (match:substring (string-match "^(.*)\\.gem$" ;; length when running test suites.
(basename source)) (let ((dir (match:substring (string-match "^(.*)\\.gem$"
1))) (basename source))
(rename-file dir "gem") 1)))
(chdir "gem") (rename-file dir "gem")
#t)) (chdir "gem"))
#t)
;; Use GNU unpack strategy for things that aren't gem archives. ;; Use GNU unpack strategy for things that aren't gem archives.
(gnu:unpack #:source source))) (gnu:unpack #:source source)))
@ -77,7 +78,8 @@ operation is not deterministic, we replace it with `find`."
(when (not (gem-archive? source)) (when (not (gem-archive? source))
(let ((gemspec (first-gemspec))) (let ((gemspec (first-gemspec)))
(substitute* gemspec (substitute* gemspec
(("`git ls-files`") "`find . -type f |sort`")))) (("`git ls-files`") "`find . -type f |sort`")
(("`git ls-files -z`") "`find . -type f -print0 |sort -z`"))))
#t) #t)
(define* (extract-gemspec #:key source #:allow-other-keys) (define* (extract-gemspec #:key source #:allow-other-keys)
@ -104,7 +106,8 @@ generate the files list."
(write-char (read-char pipe) out)))) (write-char (read-char pipe) out))))
#t) #t)
(lambda () (lambda ()
(close-pipe pipe))))))) (close-pipe pipe)))))
#t))
(define* (build #:key source #:allow-other-keys) (define* (build #:key source #:allow-other-keys)
"Build a new gem using the gemspec from the SOURCE gem." "Build a new gem using the gemspec from the SOURCE gem."
@ -112,13 +115,13 @@ generate the files list."
;; Build a new gem from the current working directory. This also allows any ;; Build a new gem from the current working directory. This also allows any
;; dynamic patching done in previous phases to be present in the installed ;; dynamic patching done in previous phases to be present in the installed
;; gem. ;; gem.
(zero? (system* "gem" "build" (first-gemspec)))) (invoke "gem" "build" (first-gemspec)))
(define* (check #:key tests? test-target #:allow-other-keys) (define* (check #:key tests? test-target #:allow-other-keys)
"Run the gem's test suite rake task TEST-TARGET. Skip the tests if TESTS? "Run the gem's test suite rake task TEST-TARGET. Skip the tests if TESTS?
is #f." is #f."
(if tests? (if tests?
(zero? (system* "rake" test-target)) (invoke "rake" test-target)
#t)) #t))
(define* (install #:key inputs outputs (gem-flags '()) (define* (install #:key inputs outputs (gem-flags '())
@ -137,43 +140,42 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
0 0
(- (string-length gem-file-basename) 4)))) (- (string-length gem-file-basename) 4))))
(setenv "GEM_VENDOR" vendor-dir) (setenv "GEM_VENDOR" vendor-dir)
(and (let ((install-succeeded?
(zero? (or (zero?
(apply system* "gem" "install" gem-file (apply system* "gem" "install" gem-file
"--local" "--ignore-dependencies" "--vendor" "--local" "--ignore-dependencies" "--vendor"
;; Executables should go into /bin, not ;; Executables should go into /bin, not
;; /lib/ruby/gems. ;; /lib/ruby/gems.
"--bindir" (string-append out "/bin") "--bindir" (string-append out "/bin")
gem-flags)))) gem-flags))
(or install-succeeded? (begin
(begin (let ((failed-output-dir (string-append (getcwd) "/out")))
(simple-format #t "installation failed\n") (mkdir failed-output-dir)
(let ((failed-output-dir (string-append (getcwd) "/out"))) (copy-recursively out failed-output-dir))
(mkdir failed-output-dir) (error "installation failed")))
(copy-recursively out failed-output-dir))
#f))) ;; Remove the cached gem file as this is unnecessary and contains
(begin ;; timestamped files rendering builds not reproducible.
;; Remove the cached gem file as this is unnecessary and contains (let ((cached-gem (string-append vendor-dir "/cache/" gem-file)))
;; timestamped files rendering builds not reproducible. (log-file-deletion cached-gem)
(let ((cached-gem (string-append vendor-dir "/cache/" gem-file))) (delete-file cached-gem))
(log-file-deletion cached-gem)
(delete-file cached-gem)) ;; For gems with native extensions, several Makefile-related files
;; For gems with native extensions, several Makefile-related files ;; are created that contain timestamps or other elements making
;; are created that contain timestamps or other elements making ;; them not reproducible. They are unnecessary so we remove them.
;; them not reproducible. They are unnecessary so we remove them. (when (file-exists? (string-append vendor-dir "/ext"))
(if (file-exists? (string-append vendor-dir "/ext")) (for-each (lambda (file)
(begin (log-file-deletion file)
(for-each (lambda (file) (delete-file file))
(log-file-deletion file) (append
(delete-file file)) (find-files (string-append vendor-dir "/doc")
(append "page-Makefile.ri")
(find-files (string-append vendor-dir "/doc") (find-files (string-append vendor-dir "/extensions")
"page-Makefile.ri") "gem_make.out")
(find-files (string-append vendor-dir "/extensions") (find-files (string-append vendor-dir "/ext")
"gem_make.out") "Makefile"))))
(find-files (string-append vendor-dir "/ext")
"Makefile"))))) #t))
#t))))
(define* (wrap-ruby-program prog #:key (gem-clear-paths #t) #:rest vars) (define* (wrap-ruby-program prog #:key (gem-clear-paths #t) #:rest vars)
"Make a wrapper for PROG. VARS should look like this: "Make a wrapper for PROG. VARS should look like this:
@ -301,7 +303,8 @@ extended with definitions for VARS."
(let ((files (list-of-files dir))) (let ((files (list-of-files dir)))
(for-each (cut wrap-ruby-program <> var) (for-each (cut wrap-ruby-program <> var)
files))) files)))
bindirs))) bindirs))
#t)
(define (log-file-deletion file) (define (log-file-deletion file)
(display (string-append "deleting '" file "' for reproducibility\n"))) (display (string-append "deleting '" file "' for reproducibility\n")))

View File

@ -601,6 +601,12 @@ names and file names suitable for the #:allowed-references argument to
allowed-references disallowed-references allowed-references disallowed-references
leaked-env-vars leaked-env-vars
local-build? (substitutable? #t) local-build? (substitutable? #t)
;; TODO: This parameter is transitional; it's here
;; to avoid a full rebuild. Remove it on the next
;; rebuild cycle.
import-creates-derivation?
deprecation-warnings deprecation-warnings
(script-name (string-append name "-builder"))) (script-name (string-append name "-builder")))
"Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a "Return a derivation NAME that runs EXP (a gexp) with GUILE-FOR-BUILD (a
@ -695,6 +701,8 @@ The other arguments are as for 'derivation'."
extensions)) extensions))
(modules (if (pair? %modules) (modules (if (pair? %modules)
(imported-modules %modules (imported-modules %modules
#:derivation?
import-creates-derivation?
#:system system #:system system
#:module-path module-path #:module-path module-path
#:guile guile-for-build #:guile guile-for-build
@ -703,6 +711,8 @@ The other arguments are as for 'derivation'."
(return #f))) (return #f)))
(compiled (if (pair? %modules) (compiled (if (pair? %modules)
(compiled-modules %modules (compiled-modules %modules
#:derivation?
import-creates-derivation?
#:system system #:system system
#:module-path module-path #:module-path module-path
#:extensions extensions #:extensions extensions
@ -735,7 +745,9 @@ The other arguments are as for 'derivation'."
"/bin/guile") "/bin/guile")
`("--no-auto-compile" `("--no-auto-compile"
,@(if (pair? %modules) ,@(if (pair? %modules)
`("-L" ,(derivation->output-path modules) `("-L" ,(if (derivation? modules)
(derivation->output-path modules)
modules)
"-C" ,(derivation->output-path compiled)) "-C" ,(derivation->output-path compiled))
'()) '())
,@(append-map extension-flags exts) ,@(append-map extension-flags exts)
@ -1013,6 +1025,49 @@ execution environment."
;;; Module handling. ;;; Module handling.
;;; ;;;
(define %not-slash
(char-set-complement (char-set #\/)))
(define (file-mapping->tree mapping)
"Convert MAPPING, an alist like:
((\"guix/build/utils.scm\" . \"…/utils.scm\"))
to a tree suitable for 'interned-file-tree'."
(let ((mapping (map (match-lambda
((destination . source)
(cons (string-tokenize destination
%not-slash)
source)))
mapping)))
(fold (lambda (pair result)
(match pair
((destination . source)
(let loop ((destination destination)
(result result))
(match destination
((file)
(let* ((mode (stat:mode (stat source)))
(type (if (zero? (logand mode #o100))
'regular
'executable)))
(alist-cons file
`(,type (file ,source))
result)))
((file rest ...)
(let ((directory (assoc-ref result file)))
(alist-cons file
`(directory
,@(loop rest
(match directory
(('directory . entries) entries)
(#f '()))))
(if directory
(alist-delete file result)
result)))))))))
'()
mapping)))
(define %utils-module (define %utils-module
;; This file provides 'mkdir-p', needed to implement 'imported-files' and ;; This file provides 'mkdir-p', needed to implement 'imported-files' and
;; other primitives below. Note: We give the file name relative to this ;; other primitives below. Note: We give the file name relative to this
@ -1021,22 +1076,24 @@ execution environment."
(local-file "build/utils.scm" (local-file "build/utils.scm"
"build-utils.scm")) "build-utils.scm"))
(define* (imported-files files (define* (imported-files/derivation files
#:key (name "file-import") #:key (name "file-import")
(system (%current-system)) (symlink? #f)
(guile (%guile-for-build)) (system (%current-system))
(guile (%guile-for-build))
;; XXX: The only reason we have ;; XXX: The only reason we have
;; #:deprecation-warnings is because (guix build ;; #:deprecation-warnings is because (guix
;; utils), which we use here, relies on _IO*, which ;; build utils), which we use here, relies
;; is deprecated in 2.2. On the next full-rebuild ;; on _IO*, which is deprecated in 2.2. On
;; cycle, we should disable such warnings ;; the next full-rebuild cycle, we should
;; unconditionally. ;; disable such warnings unconditionally.
(deprecation-warnings #f)) (deprecation-warnings #f))
"Return a derivation that imports FILES into STORE. FILES must be a list "Return a derivation that imports FILES into STORE. FILES must be a list
of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the
resulting store path. FILE can be either a file name, or a file-like object, resulting store path. FILE can be either a file name, or a file-like object,
as returned by 'local-file' for example." as returned by 'local-file' for example. If SYMLINK? is true, create symlinks
to the source files instead of copying them."
(define file-pair (define file-pair
(match-lambda (match-lambda
((final-path . (? string? file-name)) ((final-path . (? string? file-name))
@ -1059,7 +1116,8 @@ as returned by 'local-file' for example."
(for-each (match-lambda (for-each (match-lambda
((final-path store-path) ((final-path store-path)
(mkdir-p (dirname final-path)) (mkdir-p (dirname final-path))
(symlink store-path final-path))) ((ungexp (if symlink? 'symlink 'copy-file))
store-path final-path)))
'(ungexp files))))) '(ungexp files)))))
;; TODO: Pass FILES as an environment variable so that BUILD remains ;; TODO: Pass FILES as an environment variable so that BUILD remains
@ -1081,8 +1139,39 @@ as returned by 'local-file' for example."
(else (else
'()))))) '())))))
(define* (imported-files files
#:key (name "file-import")
;; TODO: Remove this parameter on the next rebuild
;; cycle.
(derivation? #f)
;; The following parameters make sense when creating
;; an actual derivation.
(system (%current-system))
(guile (%guile-for-build))
(deprecation-warnings #f))
"Import FILES into the store and return the resulting derivation or store
file name (a derivation is created if and only if some elements of FILES are
file-like objects and not local file names.) FILES must be a list
of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the
resulting store path. FILE can be either a file name, or a file-like object,
as returned by 'local-file' for example."
(if (or derivation?
(any (match-lambda
((_ . (? struct? source)) #t)
(_ #f))
files))
(imported-files/derivation files #:name name
#:symlink? derivation?
#:system system #:guile guile
#:deprecation-warnings deprecation-warnings)
(interned-file-tree `(,name directory
,@(file-mapping->tree files)))))
(define* (imported-modules modules (define* (imported-modules modules
#:key (name "module-import") #:key (name "module-import")
(derivation? #f) ;TODO: remove on next rebuild
(system (%current-system)) (system (%current-system))
(guile (%guile-for-build)) (guile (%guile-for-build))
(module-path %load-path) (module-path %load-path)
@ -1098,24 +1187,23 @@ by an arrow followed by a file-like object. For example:
In this example, the first two modules are taken from MODULE-PATH, and the In this example, the first two modules are taken from MODULE-PATH, and the
last one is created from the given <scheme-file> object." last one is created from the given <scheme-file> object."
(mlet %store-monad ((files (let ((files (map (match-lambda
(mapm %store-monad (((module ...) '=> file)
(match-lambda (cons (module->source-file-name module)
(((module ...) '=> file) file))
(return ((module ...)
(cons (module->source-file-name module) (let ((f (module->source-file-name module)))
file))) (cons f (search-path* module-path f)))))
((module ...) modules)))
(let ((f (module->source-file-name module))) (imported-files files #:name name
(return #:derivation? derivation?
(cons f (search-path* module-path f)))))) #:system system
modules)))
(imported-files files #:name name #:system system
#:guile guile #:guile guile
#:deprecation-warnings deprecation-warnings))) #:deprecation-warnings deprecation-warnings)))
(define* (compiled-modules modules (define* (compiled-modules modules
#:key (name "module-import-compiled") #:key (name "module-import-compiled")
(derivation? #f) ;TODO: remove on next rebuild
(system (%current-system)) (system (%current-system))
(guile (%guile-for-build)) (guile (%guile-for-build))
(module-path %load-path) (module-path %load-path)
@ -1135,6 +1223,7 @@ they can refer to each other."
(not (equal? module-path %load-path)))) (not (equal? module-path %load-path))))
(mlet %store-monad ((modules (imported-modules modules (mlet %store-monad ((modules (imported-modules modules
#:derivation? derivation?
#:system system #:system system
#:guile guile #:guile guile
#:module-path #:module-path

View File

@ -101,6 +101,7 @@ output port."
(open-sha256-md)) (open-sha256-md))
(define digest #f) (define digest #f)
(define position 0)
(define (finalize!) (define (finalize!)
(let ((ptr (md-read sha256-md 0))) (let ((ptr (md-read sha256-md 0)))
@ -114,14 +115,18 @@ output port."
0) 0)
(let ((ptr (bytevector->pointer bv offset))) (let ((ptr (bytevector->pointer bv offset)))
(md-write sha256-md ptr len) (md-write sha256-md ptr len)
(set! position (+ position len))
len))) len)))
(define (get-position)
position)
(define (close) (define (close)
(unless digest (unless digest
(finalize!))) (finalize!)))
(values (make-custom-binary-output-port "sha256" (values (make-custom-binary-output-port "sha256"
write! #f #f write! get-position #f
close) close)
(lambda () (lambda ()
(unless digest (unless digest

View File

@ -51,8 +51,7 @@
(define (pypi-fetch name) (define (pypi-fetch name)
"Return an alist representation of the PyPI metadata for the package NAME, "Return an alist representation of the PyPI metadata for the package NAME,
or #f on failure." or #f on failure."
(json-fetch-alist (string-append "https://pypi.python.org/pypi/" (json-fetch-alist (string-append "https://pypi.org/pypi/" name "/json")))
name "/json")))
;; For packages found on PyPI that lack a source distribution. ;; For packages found on PyPI that lack a source distribution.
(define-condition-type &missing-source-error &error (define-condition-type &missing-source-error &error
@ -87,7 +86,7 @@ package."
(string-append "python-" (snake-case name)))) (string-append "python-" (snake-case name))))
(define (guix-package->pypi-name package) (define (guix-package->pypi-name package)
"Given a Python PACKAGE built from pypi.python.org, return the name of the "Given a Python PACKAGE built from pypi.org, return the name of the
package on PyPI." package on PyPI."
(define (url->pypi-name url) (define (url->pypi-name url)
(hyphen-package-name->name+version (hyphen-package-name->name+version
@ -269,7 +268,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
(license ,(license->symbol license))))))) (license ,(license->symbol license)))))))
(define (pypi->guix-package package-name) (define (pypi->guix-package package-name)
"Fetch the metadata for PACKAGE-NAME from pypi.python.org, and return the "Fetch the metadata for PACKAGE-NAME from pypi.org, and return the
`package' s-expression corresponding to that package, or #f on failure." `package' s-expression corresponding to that package, or #f on failure."
(let ((package (pypi-fetch package-name))) (let ((package (pypi-fetch package-name)))
(and package (and package
@ -304,7 +303,8 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
"Return true if PACKAGE is a Python package from PyPI." "Return true if PACKAGE is a Python package from PyPI."
(define (pypi-url? url) (define (pypi-url? url)
(or (string-prefix? "https://pypi.python.org/" url) (or (string-prefix? "https://pypi.org/" url)
(string-prefix? "https://pypi.python.org/" url)
(string-prefix? "https://pypi.io/packages" url))) (string-prefix? "https://pypi.io/packages" url)))
(let ((source-url (and=> (package-source package) origin-uri)) (let ((source-url (and=> (package-source package) origin-uri))

View File

@ -646,6 +646,9 @@ specifies modules in scope when evaluating SNIPPET."
(let ((name (tarxz-name original-file-name))) (let ((name (tarxz-name original-file-name)))
(gexp->derivation name build (gexp->derivation name build
;; TODO: Remove this on the next rebuild cycle.
#:import-creates-derivation? #t
#:graft? #f #:graft? #f
#:system system #:system system
#:deprecation-warnings #t ;to avoid a rebuild #:deprecation-warnings #t ;to avoid a rebuild

View File

@ -1,6 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net> ;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
@ -69,7 +68,7 @@
(compressor "lzip" ".lz" (compressor "lzip" ".lz"
#~(#+(file-append lzip "/bin/lzip") "-9")) #~(#+(file-append lzip "/bin/lzip") "-9"))
(compressor "xz" ".xz" (compressor "xz" ".xz"
#~(#+(file-append xz "/bin/xz") "-e -T0")) #~(#+(file-append xz "/bin/xz") "-e"))
(compressor "bzip2" ".bz2" (compressor "bzip2" ".bz2"
#~(#+(file-append bzip2 "/bin/bzip2") "-9")) #~(#+(file-append bzip2 "/bin/bzip2") "-9"))
(compressor "none" "" #f))) (compressor "none" "" #f)))
@ -77,7 +76,7 @@
;; This one is only for use in this module, so don't put it in %compressors. ;; This one is only for use in this module, so don't put it in %compressors.
(define bootstrap-xz (define bootstrap-xz
(compressor "bootstrap-xz" ".xz" (compressor "bootstrap-xz" ".xz"
#~(#+(file-append %bootstrap-coreutils&co "/bin/xz") "-e -T0"))) #~(#+(file-append %bootstrap-coreutils&co "/bin/xz") "-e")))
(define (lookup-compressor name) (define (lookup-compressor name)
"Return the compressor object called NAME. Error out if it could not be "Return the compressor object called NAME. Error out if it could not be

View File

@ -112,6 +112,27 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches."
(dependencies node-dependencies) ;list of nodes (dependencies node-dependencies) ;list of nodes
(compiled node-compiled)) ;node -> lowerable object (compiled node-compiled)) ;node -> lowerable object
;; File mappings are essentially an alist as passed to 'imported-files'.
(define-record-type <file-mapping>
(file-mapping name alist)
file-mapping?
(name file-mapping-name)
(alist file-mapping-alist))
(define-gexp-compiler (file-mapping-compiler (mapping <file-mapping>)
system target)
;; Here we use 'imported-files', which can arrange to directly import all
;; the files instead of creating a derivation, when possible.
(imported-files (map (match-lambda
((destination (? local-file? file))
(cons destination
(local-file-absolute-file-name file)))
((destination source)
(cons destination source))) ;silliness
(file-mapping-alist mapping))
#:name (file-mapping-name mapping)
#:system system))
(define (node-fold proc init nodes) (define (node-fold proc init nodes)
(let loop ((nodes nodes) (let loop ((nodes nodes)
(visited (setq)) (visited (setq))
@ -166,8 +187,8 @@ must be present in the search path."
(closure modules (closure modules
(node-modules/recursive dependencies)))) (node-modules/recursive dependencies))))
(module-files (map module->import modules)) (module-files (map module->import modules))
(source (imported-files (string-append name "-source") (source (file-mapping (string-append name "-source")
(append module-files extra-files)))) (append module-files extra-files))))
(node name modules source dependencies (node name modules source dependencies
(compiled-modules name source (compiled-modules name source
(map car module-files) (map car module-files)
@ -766,38 +787,6 @@ assumed to be part of MODULES."
;;; Building. ;;; Building.
;;; ;;;
(define (imported-files name files)
;; This is a non-monadic, simplified version of 'imported-files' from (guix
;; gexp).
(define same-target?
(match-lambda*
(((file1 . _) (file2 . _))
(string=? file1 file2))))
(define build
(with-imported-modules (source-module-closure
'((guix build utils)))
#~(begin
(use-modules (ice-9 match)
(guix build utils))
(mkdir (ungexp output)) (chdir (ungexp output))
(for-each (match-lambda
((final-path store-path)
(mkdir-p (dirname final-path))
;; Note: We need regular files to be regular files, not
;; symlinks, as this makes a difference for
;; 'add-to-store'.
(copy-file store-path final-path)))
'#$(delete-duplicates files same-target?)))))
;; We're just copying files around, no need to substitute or offload it.
(computed-file name build
#:options '(#:local-build? #t
#:substitutable? #f
#:env-vars (("COLUMNS" . "200")))))
(define* (compiled-modules name module-tree module-files (define* (compiled-modules name module-tree module-files
#:optional #:optional
(dependencies '()) (dependencies '())

View File

@ -47,6 +47,7 @@
nar-read-error-token nar-read-error-token
write-file write-file
write-file-tree
restore-file)) restore-file))
;;; Comment: ;;; Comment:
@ -211,14 +212,19 @@ substitute invalid byte sequences with question marks. This is a
(lambda () (lambda ()
(close-port port)))))) (close-port port))))))
(write-string "contents" p)
(write-long-long size p)
(call-with-binary-input-file file (call-with-binary-input-file file
;; Use 'sendfile' when P is a file port. (lambda (input)
(if (file-port? p) (write-contents-from-port input p size))))
(cut sendfile p <> size 0)
(cut dump <> p size))) (define (write-contents-from-port input output size)
(write-padding size p)) "Write SIZE bytes from port INPUT to port OUTPUT."
(write-string "contents" output)
(write-long-long size output)
;; Use 'sendfile' when both OUTPUT and INPUT are file ports.
(if (and (file-port? output) (file-port? input))
(sendfile output input size 0)
(dump input output size))
(write-padding size output))
(define (read-contents in out) (define (read-contents in out)
"Read the contents of a file from the Nar at IN, write it to OUT, and return "Read the contents of a file from the Nar at IN, write it to OUT, and return
@ -263,47 +269,113 @@ the size in bytes."
sub-directories of FILE as needed. For each directory entry, call (SELECT? sub-directories of FILE as needed. For each directory entry, call (SELECT?
FILE STAT), where FILE is the entry's absolute file name and STAT is the FILE STAT), where FILE is the entry's absolute file name and STAT is the
result of 'lstat'; exclude entries for which SELECT? does not return true." result of 'lstat'; exclude entries for which SELECT? does not return true."
(write-file-tree file port
#:file-type+size
(lambda (file)
(let* ((stat (lstat file))
(size (stat:size stat)))
(case (stat:type stat)
((directory)
(values 'directory size))
((regular)
(values (if (zero? (logand (stat:mode stat)
#o100))
'regular
'executable)
size))
(else
(values (stat:type stat) size))))) ;bah!
#:file-port (cut open-file <> "r0b")
#:symlink-target readlink
#:directory-entries
(lambda (directory)
;; 'scandir' defaults to 'string-locale<?' to sort files,
;; but this happens to be case-insensitive (at least in
;; 'en_US' locale on libc 2.18.) Conversely, we want
;; files to be sorted in a case-sensitive fashion.
(define basenames
(scandir directory (negate (cut member <> '("." "..")))
string<?))
(filter-map (lambda (base)
(let ((file (string-append directory
"/" base)))
(and (not (member base '("." "..")))
(select? file (lstat file))
base)))
basenames))
;; The 'scandir' call above gives us filtered and sorted
;; entries, so no post-processing is needed.
#:postprocess-entries identity))
(define (filter/sort-directory-entries lst)
"Remove dot and dot-dot entries from LST, and sort it in lexicographical
order."
(delete-duplicates
(sort (remove (cute member <> '("." "..")) lst)
string<?)
string=?))
(define* (write-file-tree file port
#:key
file-type+size
file-port
symlink-target
directory-entries
(postprocess-entries filter/sort-directory-entries))
"Write the contents of FILE to PORT in Nar format, recursing into
sub-directories of FILE as needed.
This procedure does not make any file-system I/O calls. Instead, it calls the
user-provided FILE-TYPE+SIZE, FILE-PORT, SYMLINK-TARGET, and DIRECTORY-ENTRIES
procedures, which roughly correspond to 'lstat', 'readlink', and 'scandir'.
POSTPROCESS-ENTRIES ensures that directory entries are valid; leave it as-is
unless you know that DIRECTORY-ENTRIES provide filtered and sorted entries, in
which case you can use 'identity'."
(define p port) (define p port)
(write-string %archive-version-1 p) (write-string %archive-version-1 p)
(let dump ((f file) (s (lstat file))) (let dump ((f file))
(define-values (type size)
(file-type+size f))
(write-string "(" p) (write-string "(" p)
(case (stat:type s) (case type
((regular) ((regular executable)
(write-string "type" p) (write-string "type" p)
(write-string "regular" p) (write-string "regular" p)
(if (not (zero? (logand (stat:mode s) #o100))) (when (eq? 'executable type)
(begin (write-string "executable" p)
(write-string "executable" p) (write-string "" p))
(write-string "" p))) (let ((input (file-port f)))
(write-contents f p (stat:size s))) (dynamic-wind
(const #t)
(lambda ()
(write-contents-from-port input p size))
(lambda ()
(close-port input)))))
((directory) ((directory)
(write-string "type" p) (write-string "type" p)
(write-string "directory" p) (write-string "directory" p)
(let ((entries (let ((entries (postprocess-entries (directory-entries f))))
;; 'scandir' defaults to 'string-locale<?' to sort files, but
;; this happens to be case-insensitive (at least in 'en_US'
;; locale on libc 2.18.) Conversely, we want files to be
;; sorted in a case-sensitive fashion.
(scandir f (negate (cut member <> '("." ".."))) string<?)))
(for-each (lambda (e) (for-each (lambda (e)
(let* ((f (string-append f "/" e)) (let* ((f (string-append f "/" e)))
(s (lstat f))) (write-string "entry" p)
(when (select? f s) (write-string "(" p)
(write-string "entry" p) (write-string "name" p)
(write-string "(" p) (write-string e p)
(write-string "name" p) (write-string "node" p)
(write-string e p) (dump f)
(write-string "node" p) (write-string ")" p)))
(dump f s)
(write-string ")" p))))
entries))) entries)))
((symlink) ((symlink)
(write-string "type" p) (write-string "type" p)
(write-string "symlink" p) (write-string "symlink" p)
(write-string "target" p) (write-string "target" p)
(write-string (readlink f) p)) (write-string (symlink-target f) p))
(else (else
(raise (condition (&message (message "unsupported file type")) (raise (condition (&message (message "unsupported file type"))
(&nar-error (file f) (port port)))))) (&nar-error (file f) (port port))))))
@ -379,4 +451,8 @@ Restore it as FILE."
(&message (message "unsupported nar entry type")) (&message (message "unsupported nar entry type"))
(&nar-read-error (port port) (file file) (token x))))))))) (&nar-read-error (port port) (file file) (token x)))))))))
;;; Local Variables:
;;; eval: (put 'call-with-binary-input-file 'scheme-indent-function 1)
;;; End:
;;; serialization.scm ends here ;;; serialization.scm ends here

View File

@ -78,6 +78,7 @@
add-data-to-store add-data-to-store
add-text-to-store add-text-to-store
add-to-store add-to-store
add-file-tree-to-store
binary-file binary-file
build-things build-things
build build
@ -137,6 +138,7 @@
set-current-system set-current-system
text-file text-file
interned-file interned-file
interned-file-tree
%store-prefix %store-prefix
store-path store-path
@ -951,6 +953,101 @@ where FILE is the entry's absolute file name and STAT is the result of
(hash-set! cache args path) (hash-set! cache args path)
path)))))) path))))))
(define %not-slash
(char-set-complement (char-set #\/)))
(define* (add-file-tree-to-store server tree
#:key
(hash-algo "sha256")
(recursive? #t))
"Add the given TREE to the store on SERVER. TREE must be an entry such as:
(\"my-tree\" directory
(\"a\" regular (data \"hello\"))
(\"b\" symlink \"a\")
(\"c\" directory
(\"d\" executable (file \"/bin/sh\"))))
This is a generalized version of 'add-to-store'. It allows you to reproduce
an arbitrary directory layout in the store without creating a derivation."
;; Note: The format of TREE was chosen to allow trees to be compared with
;; 'equal?', which in turn allows us to memoize things.
(define root
;; TREE is a single entry.
(list tree))
(define basename
(match tree
((name . _) name)))
(define (lookup file)
(let loop ((components (string-tokenize file %not-slash))
(tree root))
(match components
((basename)
(assoc basename tree))
((head . rest)
(loop rest
(match (assoc-ref tree head)
(('directory . entries) entries)))))))
(define (file-type+size file)
(match (lookup file)
((_ (and type (or 'directory 'symlink)) . _)
(values type 0))
((_ type ('file file))
(values type (stat:size (stat file))))
((_ type ('data (? string? data)))
(values type (string-length data)))
((_ type ('data (? bytevector? data)))
(values type (bytevector-length data)))))
(define (file-port file)
(match (lookup file)
((_ (or 'regular 'executable) content)
(match content
(('file (? string? file))
(open-file file "r0b"))
(('data (? string? str))
(open-input-string str))
(('data (? bytevector? bv))
(open-bytevector-input-port bv))))))
(define (symlink-target file)
(match (lookup file)
((_ 'symlink target) target)))
(define (directory-entries directory)
(match (lookup directory)
((_ 'directory (names . _) ...) names)))
(define cache
(nix-server-add-to-store-cache server))
(or (hash-ref cache tree)
(begin
;; We don't use the 'operation' macro so we can use 'write-file-tree'
;; instead of 'write-file'.
(record-operation 'add-to-store/tree)
(let ((port (nix-server-socket server)))
(write-int (operation-id add-to-store) port)
(write-string basename port)
(write-int 1 port) ;obsolete, must be #t
(write-int (if recursive? 1 0) port)
(write-string hash-algo port)
(write-file-tree basename port
#:file-type+size file-type+size
#:file-port file-port
#:symlink-target symlink-target
#:directory-entries directory-entries)
(let loop ((done? (process-stderr server)))
(or done? (loop (process-stderr server))))
(let ((result (read-store-path port)))
(hash-set! cache tree result)
result)))))
(define build-things (define build-things
(let ((build (operation (build-things (string-list things) (let ((build (operation (build-things (string-list things)
(integer mode)) (integer mode))
@ -1402,6 +1499,9 @@ where FILE is the entry's absolute file name and STAT is the result of
#:select? select?) #:select? select?)
store))) store)))
(define interned-file-tree
(store-lift add-file-tree-to-store))
(define build (define build
;; Monadic variant of 'build-things'. ;; Monadic variant of 'build-things'.
(store-lift build-things)) (store-lift build-things))

View File

@ -190,12 +190,14 @@ Every store item in REFERENCES must already be registered."
(define (reset-timestamps file) (define (reset-timestamps file)
"Reset the modification time on FILE and on all the files it contains, if "Reset the modification time on FILE and on all the files it contains, if
it's a directory. While at it, canonicalize file permissions." it's a directory. While at it, canonicalize file permissions."
;; Note: We're resetting to one second after the Epoch like 'guix-daemon'
;; has always done.
(let loop ((file file) (let loop ((file file)
(type (stat:type (lstat file)))) (type (stat:type (lstat file))))
(case type (case type
((directory) ((directory)
(chmod file #o555) (chmod file #o555)
(utime file 0 0 0 0) (utime file 1 1 0 0)
(let ((parent file)) (let ((parent file))
(for-each (match-lambda (for-each (match-lambda
(("." . _) #f) (("." . _) #f)
@ -209,10 +211,10 @@ it's a directory. While at it, canonicalize file permissions."
(type type)))))) (type type))))))
(scandir* parent)))) (scandir* parent))))
((symlink) ((symlink)
(utime file 0 0 0 0 AT_SYMLINK_NOFOLLOW)) (utime file 1 1 0 0 AT_SYMLINK_NOFOLLOW))
(else (else
(chmod file (if (executable-file? file) #o555 #o444)) (chmod file (if (executable-file? file) #o555 #o444))
(utime file 0 0 0 0))))) (utime file 1 1 0 0)))))
(define* (register-path path (define* (register-path path
#:key (references '()) deriver prefix #:key (references '()) deriver prefix

View File

@ -31,37 +31,39 @@
#:export (nar-sha256 #:export (nar-sha256
deduplicate)) deduplicate))
;; Would it be better to just make WRITE-FILE give size as well? I question ;; XXX: This port is used as a workaround on Guile <= 2.2.4 where
;; the general utility of this approach. ;; 'port-position' throws to 'out-of-range' when the offset is great than or
;; equal to 2^32: <https://bugs.gnu.org/32161>.
(define (counting-wrapper-port output-port) (define (counting-wrapper-port output-port)
"Some custom ports don't implement GET-POSITION at all. But if we want to "Return two values: an output port that wraps OUTPUT-PORT, and a thunk to
figure out how many bytes are being written, we will want to use that. So this retrieve the number of bytes written to OUTPUT-PORT."
makes a wrapper around a port which implements GET-POSITION."
(let ((byte-count 0)) (let ((byte-count 0))
(make-custom-binary-output-port "counting-wrapper" (values (make-custom-binary-output-port "counting-wrapper"
(lambda (bytes offset count) (lambda (bytes offset count)
(set! byte-count (put-bytevector output-port bytes
(+ byte-count count)) offset count)
(put-bytevector output-port bytes (set! byte-count
offset count) (+ byte-count count))
count) count)
(lambda () (lambda ()
byte-count) byte-count)
#f #f
(lambda () (lambda ()
(close-port output-port))))) (close-port output-port)))
(lambda ()
byte-count))))
(define (nar-sha256 file) (define (nar-sha256 file)
"Gives the sha256 hash of a file and the size of the file in nar form." "Gives the sha256 hash of a file and the size of the file in nar form."
(let-values (((port get-hash) (open-sha256-port))) (let*-values (((port get-hash) (open-sha256-port))
(let ((wrapper (counting-wrapper-port port))) ((wrapper get-size) (counting-wrapper-port port)))
(write-file file wrapper) (write-file file wrapper)
(force-output wrapper) (force-output wrapper)
(force-output port) (force-output port)
(let ((hash (get-hash)) (let ((hash (get-hash))
(size (port-position wrapper))) (size (get-size)))
(close-port wrapper) (close-port wrapper)
(values hash size))))) (values hash size))))
(define (tempname-in directory) (define (tempname-in directory)
"Gives an unused temporary name under DIRECTORY. Not guaranteed to still be "Gives an unused temporary name under DIRECTORY. Not guaranteed to still be

Some files were not shown because too many files have changed in this diff Show More