Merge remote-tracking branch 'origin/master' into qt-updates
commit
95da608451
2
.mailmap
2
.mailmap
|
@ -43,6 +43,7 @@ Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
|
|||
Mathieu Othacehe <m.othacehe@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> 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@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> <ng@niasterisk.space>
|
||||
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.public12@thebird.nl>
|
||||
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@email>
|
||||
|
|
2
HACKING
2
HACKING
|
@ -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.)
|
||||
|
||||
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
|
||||
"Contributing" in the manual for details.
|
||||
|
||||
|
|
|
@ -111,6 +111,7 @@ MODULES = \
|
|||
guix/build-system/asdf.scm \
|
||||
guix/build-system/glib-or-gtk.scm \
|
||||
guix/build-system/gnu.scm \
|
||||
guix/build-system/guile.scm \
|
||||
guix/build-system/haskell.scm \
|
||||
guix/build-system/perl.scm \
|
||||
guix/build-system/python.scm \
|
||||
|
@ -149,6 +150,7 @@ MODULES = \
|
|||
guix/build/glib-or-gtk-build-system.scm \
|
||||
guix/build/gnu-build-system.scm \
|
||||
guix/build/gnu-dist.scm \
|
||||
guix/build/guile-build-system.scm \
|
||||
guix/build/perl-build-system.scm \
|
||||
guix/build/python-build-system.scm \
|
||||
guix/build/ocaml-build-system.scm \
|
||||
|
@ -498,8 +500,6 @@ EXTRA_DIST += \
|
|||
build-aux/run-system-tests.scm \
|
||||
d3.v3.js \
|
||||
graph.js \
|
||||
srfi/srfi-64.scm \
|
||||
srfi/srfi-64.upstream.scm \
|
||||
tests/test.drv \
|
||||
tests/signing-key.pub \
|
||||
tests/signing-key.sec \
|
||||
|
|
|
@ -4045,6 +4045,21 @@ specified with the @code{#:glib} parameter.
|
|||
Both phases are executed after the @code{install} phase.
|
||||
@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
|
||||
This variable is exported by @code{(guix build-system minify)}. It
|
||||
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
|
||||
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):
|
||||
|
||||
@example
|
||||
|
@ -12149,9 +12164,13 @@ like this (you need to use the @code{(gnu packages cups)} module):
|
|||
(cups-configuration
|
||||
(web-interface? #t)
|
||||
(extensions
|
||||
(list cups-filters escpr hplip))))
|
||||
(list cups-filters escpr hplip-minimal))))
|
||||
@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
|
||||
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
|
||||
|
@ -17742,10 +17761,6 @@ Only evaluate specifications and build derivations once.
|
|||
When substituting a pre-built binary fails, fall back to building
|
||||
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})
|
||||
The Cuirass package to use.
|
||||
@end table
|
||||
|
|
12
gnu/local.mk
12
gnu/local.mk
|
@ -18,6 +18,7 @@
|
|||
# Copyright © 2017, 2018 Gábor Boskovits <boskovits@gmail.com>
|
||||
# Copyright © 2018 Amirouche Boubekki <amirouche@hypermove.net>
|
||||
# Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
# Copyright © 2018 Stefan Stefanović <stefanx2ovic@gmail.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -403,6 +404,7 @@ GNU_SYSTEM_MODULES = \
|
|||
%D%/packages/sssd.scm \
|
||||
%D%/packages/stalonetray.scm \
|
||||
%D%/packages/statistics.scm \
|
||||
%D%/packages/stb.scm \
|
||||
%D%/packages/storage.scm \
|
||||
%D%/packages/suckless.scm \
|
||||
%D%/packages/swig.scm \
|
||||
|
@ -671,13 +673,10 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/fcgi-2.4.0-poll.patch \
|
||||
%D%/packages/patches/fifo-map-fix-flags-for-gcc.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-test-xargs.patch \
|
||||
%D%/packages/patches/flann-cmake-3.11.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-8560.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/ghc-8.0-fall-back-to-madv_dontneed.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-uuid.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/mpc123-initialize-ao.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/mozjs17-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/omake-fix-non-determinism.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/openblas-fix-tests-i686.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-fix-tests.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-fix-tests.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/swish-e-search.patch \
|
||||
%D%/packages/patches/swish-e-format-security.patch \
|
||||
%D%/packages/patches/syncthing-fix-crash.patch \
|
||||
%D%/packages/patches/synfigstudio-fix-ui-with-gtk3.patch \
|
||||
%D%/packages/patches/t1lib-CVE-2010-2642.patch \
|
||||
%D%/packages/patches/t1lib-CVE-2011-0764.patch \
|
||||
|
@ -1162,6 +1164,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/tophat-build-with-later-seqan.patch \
|
||||
%D%/packages/patches/totem-meson-easy-codec.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/unzip-CVE-2014-8139.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-CVE-2013-4342.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-plugindir-environment-variable.patch \
|
||||
%D%/packages/patches/zstd-fix-stdin-list-without-tty.patch \
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system meson)
|
||||
#:use-module (guix build-system perl)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (guix build-system trivial)
|
||||
|
@ -2740,3 +2741,30 @@ support forum. It runs with the @code{/exec} command in most IRC clients.")
|
|||
;; perl-xml-dumper
|
||||
;; ipmitool
|
||||
,@(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+)))
|
||||
|
|
|
@ -139,7 +139,7 @@ solve the shortest vector problem.")
|
|||
(define-public pari-gp
|
||||
(package
|
||||
(name "pari-gp")
|
||||
(version "2.9.4")
|
||||
(version "2.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -147,7 +147,7 @@ solve the shortest vector problem.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ir6m3a8r46md5x6zk4xf159qra7aqparby9zk03k81hjrrxr72g"))))
|
||||
"18f9yj8ffn3dxignbxj1x36771zbxy4js0r18mv6831ymb6cld9q"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("texlive" ,texlive-tiny)))
|
||||
(inputs `(("gmp" ,gmp)
|
||||
|
@ -179,7 +179,7 @@ PARI is also available as a C library to allow for faster computations.")
|
|||
(define-public gp2c
|
||||
(package
|
||||
(name "gp2c")
|
||||
(version "0.0.10")
|
||||
(version "0.0.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -187,7 +187,7 @@ PARI is also available as a C library to allow for faster computations.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xhpz5p81iw261ay1kip283ggr0ir8ydz8qx3v24z8jfms1r3y70"))))
|
||||
"1z69xj2dpd8yyi8108rz26c50xpv0k2j8qnk0bzy1c5lw3pd1adm"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl)))
|
||||
(inputs `(("pari-gp" ,pari-gp)))
|
||||
|
@ -315,7 +315,7 @@ fast arithmetic.")
|
|||
(define-public arb
|
||||
(package
|
||||
(name "arb")
|
||||
(version "2.13.0")
|
||||
(version "2.14.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -324,7 +324,7 @@ fast arithmetic.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"123p3gwx0s3i88rcaj3g4jl37cr3pywhpqackipskzab15ni2xfh"))))
|
||||
"0ncr27nd20xxi18nj30cvpa6r52v59nq7gbi34x3l4xym3p8mlmx"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("flint" ,flint))) ; flint.h is included by arf.h
|
||||
|
@ -342,19 +342,18 @@ fast arithmetic.")
|
|||
(mpfr (assoc-ref inputs "mpfr")))
|
||||
;; do not pass "--enable-fast-install", which makes the
|
||||
;; homebrew configure process fail
|
||||
(zero? (system*
|
||||
"./configure"
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-flint=" flint)
|
||||
(string-append "--with-gmp=" gmp)
|
||||
(string-append "--with-mpfr=" mpfr)))))))))
|
||||
(string-append "--with-mpfr=" mpfr))))))))
|
||||
(synopsis "Arbitrary precision floating-point ball arithmetic")
|
||||
(description
|
||||
"Arb is a C library for arbitrary-precision floating-point ball
|
||||
arithmetic. It supports efficient high-precision computation with
|
||||
polynomials, power series, matrices and special functions over the
|
||||
real and complex numbers, with automatic, rigorous error control.")
|
||||
(license license:gpl2+)
|
||||
(license license:lgpl2.1+)
|
||||
(home-page "http://fredrikj.net/arb/")))
|
||||
|
||||
(define-public ntl
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix licenses)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
|
@ -49,6 +50,19 @@
|
|||
(arguments
|
||||
`(#: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
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((bin/aspell (string-append (assoc-ref outputs "out")
|
||||
|
@ -141,10 +155,10 @@ dictionaries, including personal ones.")
|
|||
|
||||
(define-public aspell-dict-en
|
||||
(aspell-dictionary "en" "English"
|
||||
#:version "2017.08.24-0"
|
||||
#:version "2018.04.16-0"
|
||||
#:sha256
|
||||
(base32
|
||||
"0z2vvm1by485cm0sna21cmw6zb771c2l2lnn676zmrwm46q65d89")))
|
||||
"0bxxdzkk9g27plg22y9qzsx9cfjw3aa29w5bmzs561qc9gkp247i")))
|
||||
|
||||
(define-public aspell-dict-eo
|
||||
(aspell-dictionary "eo" "Esperanto"
|
||||
|
|
|
@ -2505,7 +2505,7 @@ encode and decode wavpack files.")
|
|||
(define-public libmodplug
|
||||
(package
|
||||
(name "libmodplug")
|
||||
(version "0.8.8.5")
|
||||
(version "0.8.9.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -2513,7 +2513,7 @@ encode and decode wavpack files.")
|
|||
name "/" version "/" name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bfsladg7h6vnii47dd66f5vh1ir7qv12mfb8n36qiwrxq92sikp"))))
|
||||
"1pnri98a603xk47smnxr551svbmgbzcw018mq1k6srbrq6kaaz25"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://modplug-xmms.sourceforge.net/")
|
||||
(synopsis "Mod file playing library")
|
||||
|
|
|
@ -373,7 +373,7 @@ and will take advantage of multiple processor cores where possible.")
|
|||
(define-public libtorrent-rasterbar
|
||||
(package
|
||||
(name "libtorrent-rasterbar")
|
||||
(version "1.1.7")
|
||||
(version "1.1.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -383,7 +383,7 @@ and will take advantage of multiple processor cores where possible.")
|
|||
"/libtorrent-rasterbar-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1agkcyjs7xscx4sgkg2ri4nm4v736xsg3br2v8jcrph86dlbycw1"))))
|
||||
"0pcdy26l5ivcs78y2bqh2qca83ikzjfchw5815xh69qf8g88zgvb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -580,6 +580,9 @@ board-independent tools.")))
|
|||
(define-public u-boot-cubieboard
|
||||
(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
|
||||
(let ((base (make-u-boot-package "puma-rk3399" "aarch64-linux-gnu")))
|
||||
(package
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -31,7 +31,7 @@
|
|||
(define-public busybox
|
||||
(package
|
||||
(name "busybox")
|
||||
(version "1.26.2")
|
||||
(version "1.29.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -39,11 +39,18 @@
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"05mg6rh5smkzfwqfcazkpwy6h6555llsazikqnvwkaf17y8l8gns"))))
|
||||
"1hqlr5b3bsyb6avadz1z4za6pyl32r1krnpcpwwqilhnx8q0f9gw"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#: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
|
||||
(lambda _ (invoke "make" "defconfig")))
|
||||
(replace 'check
|
||||
|
|
|
@ -418,7 +418,7 @@ graphical interface.")
|
|||
(define-public libcue
|
||||
(package
|
||||
(name "libcue")
|
||||
(version "2.2.0")
|
||||
(version "2.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -427,8 +427,10 @@ graphical interface.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0y9808vbly1w6i3diaad9csjmmw6iaw572wjjr68ssqamsw193rj"))))
|
||||
"000j5xqp7cc7njwlixr9byahz9kn8pcfdgm76afwv4p8nbmw6yzj"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
|
||||
(native-inputs
|
||||
`(("bison" ,bison)
|
||||
("flex" ,flex)))
|
||||
|
|
|
@ -21,10 +21,15 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gv)
|
||||
#:use-module (gnu packages maths)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#: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 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
|
||||
NumPy < 1.9.")
|
||||
(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)))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -184,8 +185,8 @@ their dependencies.")
|
|||
(license l:gpl3+))))
|
||||
|
||||
(define-public cuirass
|
||||
(let ((commit "238f856e48ee333ed3e19fa32ce5e1742c650c67")
|
||||
(revision "16"))
|
||||
(let ((commit "7b2f9e0de1ad2d320973b7aea132a8afcad8bece")
|
||||
(revision "17"))
|
||||
(package
|
||||
(name "cuirass")
|
||||
(version (string-append "0.0.1-" revision "." (string-take commit 7)))
|
||||
|
@ -197,7 +198,7 @@ their dependencies.")
|
|||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32
|
||||
"15iwdgy561gnsr224rs5z8qn7nrsh1wdlsxr8gwxyk0v4zp6yvbf"))))
|
||||
"0knww99adgjh8s6f38z3hpwi9hxhmnvqj5g35pcj80xv8j4xj3y3"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:modules ((guix build utils)
|
||||
|
|
|
@ -981,6 +981,43 @@ provides encoder and a decoder libraries: libbrotlienc and libbrotlidec,
|
|||
respectively, based on the reference implementation from Google.")
|
||||
(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
|
||||
(package
|
||||
(name "cabextract")
|
||||
|
|
|
@ -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))))
|
||||
|
||||
(define-public libb2
|
||||
(let ((revision "1") ; upstream doesn't ‘do’ releases
|
||||
(commit "60ea749837362c226e8501718f505ab138e5c19d"))
|
||||
(package
|
||||
(name "libb2")
|
||||
(version (git-version "0.0.0" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/BLAKE2/libb2")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07a2m8basxrsj9dsp5lj24y8jraj85lfy56756a7za1nfkgy04z7"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list
|
||||
,@(if (any (cute string-prefix? <> (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("x86_64" "i686"))
|
||||
;; fat only checks for Intel optimisations
|
||||
'("--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
|
||||
(package
|
||||
(name "libb2")
|
||||
(version "0.98")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/BLAKE2/libb2/releases/download/v"
|
||||
version "/libb2-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vq39cvwy05754l565xl11rqr2jvjb6ykjzca886vi9vm71y0sg8"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
(list
|
||||
,@(if (any (cute string-prefix? <> (or (%current-system)
|
||||
(%current-target-system)))
|
||||
'("x86_64" "i686"))
|
||||
;; fat only checks for Intel optimisations
|
||||
'("--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
|
||||
processors, and an interface layer that automatically selects the best
|
||||
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
|
||||
as the latest standard, SHA-3. It is an improved version of the SHA-3 finalist
|
||||
BLAKE.")
|
||||
(license license:public-domain))))
|
||||
(license license:public-domain)))
|
||||
|
||||
(define-public rhash
|
||||
(package
|
||||
|
@ -755,14 +748,14 @@ SHA256, SHA512, SHA3, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R
|
|||
(define-public botan
|
||||
(package
|
||||
(name "botan")
|
||||
(version "2.6.0")
|
||||
(version "2.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://botan.randombit.net/releases/"
|
||||
"Botan-" version ".tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1iawmymmnp5j2mcjj70slivn6bgg8gbpppldc1rjqw5sbdan3wn1"))))
|
||||
"142aqabwc266jxn8wrp0f1ffrmcvdxwvyh8frb38hx9iaqazjbg4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#: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.")
|
||||
(home-page "https://botan.randombit.net")
|
||||
(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)))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; 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 © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
|
||||
|
@ -46,7 +46,9 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#: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
|
||||
(package
|
||||
|
@ -174,6 +176,7 @@ filters for the PDF-centric printing workflow introduced by OpenPrinting.")
|
|||
(define-public cups-minimal
|
||||
(package
|
||||
(name "cups-minimal")
|
||||
(replacement cups-minimal-2.2.8)
|
||||
(version "2.2.6")
|
||||
(source
|
||||
(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.")
|
||||
(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
|
||||
(package (inherit cups-minimal)
|
||||
(package/inherit cups-minimal
|
||||
(name "cups")
|
||||
(arguments
|
||||
`(;; Three tests fail:
|
||||
|
@ -506,6 +522,19 @@ device-specific programs to convert and print many types of files.")
|
|||
`(("perl" ,perl)
|
||||
("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
|
||||
(package
|
||||
(name "foomatic-filters")
|
||||
|
|
|
@ -702,6 +702,7 @@ Language.")
|
|||
as a drop-in replacement of MySQL.")
|
||||
(license license:gpl2)))
|
||||
|
||||
;; Don't forget to update the other postgresql packages when upgrading this one.
|
||||
(define-public postgresql
|
||||
(package
|
||||
(name "postgresql")
|
||||
|
@ -750,14 +751,14 @@ pictures, sounds, or video.")
|
|||
(package
|
||||
(inherit postgresql)
|
||||
(name "postgresql")
|
||||
(version "9.6.8")
|
||||
(version "9.6.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ftp.postgresql.org/pub/source/v"
|
||||
version "/postgresql-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w7bwf19wbdd3jjbjv03cnx56qka4801srcbsayk9v792awv7zga"))))))
|
||||
"0biy8j69dbvdmrag55pdszpc0702agzqhhcwdx21xp02mzim4ydr"))))))
|
||||
|
||||
(define-public qdbm
|
||||
(package
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -57,31 +58,32 @@ clients.")
|
|||
(define-public vdirsyncer
|
||||
(package
|
||||
(name "vdirsyncer")
|
||||
(version "0.16.6")
|
||||
(version "0.16.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"07iqq5c53cfrb5xnmam1rsl683hc3rykmdak896n2gm81r361c66"))))
|
||||
"1vqjhn2bffy2bx45a1r14crsyn2cylf5by567g44c4mhpjwwz6vc"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(setenv "DETERMINISTIC_TESTS" "true")
|
||||
(setenv "DAV_SERVER" "radicale")
|
||||
(setenv "REMOTESTORAGE_SERVER" "skip")
|
||||
(zero? (system* "make" "test"))))
|
||||
(add-after 'install 'manpage
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(zero? (system* "make" "--directory=docs/" "man"))
|
||||
(install-file
|
||||
"docs/_build/man/vdirsyncer.1"
|
||||
(string-append
|
||||
(assoc-ref outputs "out")
|
||||
"/share/man/man1")))))))
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(add-installed-pythonpath inputs outputs)
|
||||
(setenv "DETERMINISTIC_TESTS" "true")
|
||||
(setenv "DAV_SERVER" "radicale")
|
||||
(setenv "REMOTESTORAGE_SERVER" "skip")
|
||||
(invoke "make" "test")))
|
||||
(add-after 'install 'manpage
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(invoke "make" "--directory=docs/" "man")
|
||||
(install-file
|
||||
"docs/_build/man/vdirsyncer.1"
|
||||
(string-append
|
||||
(assoc-ref outputs "out")
|
||||
"/share/man/man1"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("python-setuptools-scm" ,python-setuptools-scm)
|
||||
("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
|
||||
local data can then be accessed via a variety of programs, none of which
|
||||
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)))
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
(define-module (gnu packages debian)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial)
|
||||
|
@ -112,15 +113,17 @@ contains the archive keys used for that.")
|
|||
(define-public debootstrap
|
||||
(package
|
||||
(name "debootstrap")
|
||||
(version "1.0.101")
|
||||
(version "1.0.106")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://debian/pool/main/d/" name "/"
|
||||
name "_" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://salsa.debian.org/installer-team/debootstrap.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1p1a81s8hq73byd7256iljdls389x2q7w6srgrgfmx5bl1csnzp3"))))
|
||||
"1fm5bgllcwgwizrqi4sn8p4fpbzhbzgwprrfppfq9hqdzbmlfmnv"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -165,7 +168,7 @@ contains the archive keys used for that.")
|
|||
`(("binutils" ,binutils)
|
||||
("gnupg" ,gnupg)
|
||||
("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")
|
||||
(description "Debootstrap is used to create a Debian base system from
|
||||
scratch, without requiring the availability of @code{dpkg} or @code{apt}.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 © 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 Sou Bunnbu <iyzsong@gmail.com>
|
||||
|
@ -134,7 +134,7 @@ Qt-style API for Wayland clients.")
|
|||
(define-public sddm
|
||||
(package
|
||||
(name "sddm")
|
||||
(version "0.17.0")
|
||||
(version "0.18.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -143,7 +143,7 @@ Qt-style API for Wayland clients.")
|
|||
"sddm-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ch6rdppgy2vbzw0c2x9a4c6ry46vx7p6b76d8xbh2nvxh23xv0k"))))
|
||||
"0icyi9nqgbp2v6dwh3n3jzff9jv2xy8d4rbsz89hd65x7c3hrv87"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("extra-cmake-modules" ,extra-cmake-modules)
|
||||
|
@ -256,7 +256,7 @@ create smooth, animated user interfaces.")
|
|||
(inputs
|
||||
`(("audit" ,audit)
|
||||
("linux-pam" ,linux-pam)
|
||||
("util-linux" ,util-linux) ; for sbin/nologin
|
||||
("shadow" ,shadow) ;for sbin/nologin
|
||||
("libgcrypt" ,libgcrypt)
|
||||
("libxcb" ,libxcb)))
|
||||
(native-inputs
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
(define-public calibre
|
||||
(package
|
||||
(name "calibre")
|
||||
(version "3.17.0")
|
||||
(version "3.28.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -84,7 +84,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1w6hw1s0d4daa4q2ykzhxdndiq61l8z7ls7rxh7k7p62ia0i5sxp"))
|
||||
"0b3vv03c6m6972sk8zj3zc5sq6b9837irnfgjlqhv9z5i75m0414"))
|
||||
;; Remove non-free or doubtful code, see
|
||||
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
|
||||
(modules '((guix build utils)))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2017 nee <nee.git@cock.li>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -32,7 +33,7 @@
|
|||
(define-public elixir
|
||||
(package
|
||||
(name "elixir")
|
||||
(version "1.5.3")
|
||||
(version "1.6.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/elixir-lang/elixir"
|
||||
|
@ -40,10 +41,11 @@
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0acnxfwvkx1m1d0h5z051mz95n35zm468hcvc3wpmn17c15h5ihg"))))
|
||||
"0c9qz5hasa59a9x1iwpcqpqj6wdbzpijfxqfmzimwj5z8q37nl3l"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:parallel-tests? #f ;see <https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32171#23>
|
||||
#:make-flags (list (string-append "PREFIX="
|
||||
(assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
|
|
|
@ -36,6 +36,8 @@
|
|||
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -107,6 +109,7 @@
|
|||
#:use-module (gnu packages gd)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages password-utils)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages shells)
|
||||
#:use-module (gnu packages gnupg)
|
||||
|
@ -199,7 +202,7 @@
|
|||
("libxft" ,libxft)
|
||||
("libtiff" ,libtiff)
|
||||
("giflib" ,giflib)
|
||||
("libjpeg" ,libjpeg-8)
|
||||
("libjpeg" ,libjpeg)
|
||||
("imagemagick" ,imagemagick)
|
||||
("acl" ,acl)
|
||||
|
||||
|
@ -4573,25 +4576,28 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-wgrep
|
||||
(package
|
||||
(name "emacs-wgrep")
|
||||
(version "2.1.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/mhayashi1120/Emacs-wgrep/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r2bpypar70xg6dsx12x1k74f39ww930rday7rgqpyknzsx1k4l1"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/mhayashi1120/Emacs-wgrep")
|
||||
(synopsis "Edit a grep buffer and apply those changes to the files")
|
||||
(description
|
||||
"Emacs wgrep allows you to edit a grep buffer and apply those changes to
|
||||
the file buffer.")
|
||||
(license license:gpl3+)))
|
||||
(let ((commit "414be70bd313e482cd9f0b70fd2daad4ee23497c"))
|
||||
;; Late commit fixes compatibility issue with Emacs 26+.
|
||||
(package
|
||||
(name "emacs-wgrep")
|
||||
(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 (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sdhd587q3pg92lhiayph87azhalmf1gzrnsprkmqvnphv7mvks9"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/mhayashi1120/Emacs-wgrep")
|
||||
(synopsis "Edit a grep buffer and apply those changes to the files")
|
||||
(description
|
||||
"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
|
||||
(package
|
||||
|
@ -4855,11 +4861,11 @@ extensions.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-evil-collection
|
||||
(let ((commit "ac21b8957cfc22485cdaa316384edf9cb220d837")
|
||||
(revision "1"))
|
||||
(let ((commit "5d739f58118a5a316c4fe25adb4e13ccea3fdc10")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-evil-collection")
|
||||
(version (git-version "20180617" revision commit))
|
||||
(version (git-version "20180721" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -4868,7 +4874,7 @@ extensions.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"082a3c5c2ls9ryqrl5kzb4z6bcprhqx8pypnlj1razbld3lny934"))))
|
||||
"05p612qncd0cp5q61hq2ag1k558vhb10049xrc88n9l6qwz9bpk3"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-evil" ,emacs-evil)))
|
||||
|
@ -6229,14 +6235,14 @@ which code derived from Kelvin H's org-page.")
|
|||
(define-public emacs-xelb
|
||||
(package
|
||||
(name "emacs-xelb")
|
||||
(version "0.14")
|
||||
(version "0.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/xelb-"
|
||||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"09flnbjy9ck784kprz036rwg9qk45hpv0w5hz3pz3zhwyk57fv74"))))
|
||||
"031rvgprsqhf344p9wsczr50vj2qcpwdmhxi80jdbrsm7wyxf3qz"))))
|
||||
(build-system emacs-build-system)
|
||||
;; The following functions and variables needed by emacs-xelb are
|
||||
;; not included in emacs-minimal:
|
||||
|
@ -6268,7 +6274,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
(define-public emacs-exwm
|
||||
(package
|
||||
(name "emacs-exwm")
|
||||
(version "0.18")
|
||||
(version "0.19")
|
||||
(synopsis "Emacs X window manager")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -6276,7 +6282,7 @@ It should enable you to implement low-level X11 applications.")
|
|||
version ".tar"))
|
||||
(sha256
|
||||
(base32
|
||||
"1shz5bf4v4gg3arjaaldics5qkg3aiiaf3ngys8lb6qyxhcpvh6q"))))
|
||||
"11xd2w4h3zdwkdxypvmcz8s7q72cn76lfr9js77jbizyj6b04lr0"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-xelb" ,emacs-xelb)))
|
||||
|
@ -7356,10 +7362,10 @@ messaging service.")
|
|||
("bash-completion-prog" (string-append bash "/bin/bash"))))
|
||||
#t)))))
|
||||
(home-page "https://github.com/szermatt/emacs-bash-completion")
|
||||
(synopsis "BASH completion for the shell buffer")
|
||||
(synopsis "Bash completion for the shell buffer")
|
||||
(description
|
||||
"@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+)))
|
||||
|
||||
(define-public emacs-easy-kill
|
||||
|
@ -8819,23 +8825,33 @@ navigate and display hierarchy structures.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-pulseaudio-control
|
||||
(let ((commit "08c59e1dc45ec96edb62f34036e82cf5f14c0e8b")
|
||||
(revision "1"))
|
||||
(let ((commit "1da372ec79f5d2fb901d1f9f0679fee8848fd011")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "emacs-pulseaudio-control")
|
||||
(version (string-append "0.0.1" "-" revision "."
|
||||
(string-take commit 7)))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/flexibeast/pulseaudio-control.git")
|
||||
(commit commit)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"10cgg1r00kz2fsnnryvzay5pf8s1pwb1dzlds1fbjdnyfvdgammv"))))
|
||||
"02xrsms2pjqdk6327midi61i5vg2h9cq5jwaxv43ldm68wl7hi6k"))))
|
||||
(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")
|
||||
(synopsis "Control @code{pulseaudio} from Emacs")
|
||||
(description
|
||||
|
@ -10218,10 +10234,10 @@ keep Parens and Indentation inline with one another.")
|
|||
(license license:gpl3+)))
|
||||
|
||||
(define-public emacs-helm-eww
|
||||
(let ((commit "5d6c2c66d4694415ef8a16a6d38a37aeae76c5ac"))
|
||||
(let ((commit "1a09f11b2376dec8237df40140f056be8a256ef0"))
|
||||
(package
|
||||
(name "emacs-helm-eww")
|
||||
(version (git-version "0.1" "1" commit))
|
||||
(version (git-version "0.1" "2" commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -10230,7 +10246,7 @@ keep Parens and Indentation inline with one another.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x442ylrr7cx587s4rvfh187h3qbkr79qp95qr57a4igxkkw6183"))))
|
||||
"1kqdjhz2xiqw3bxjhfl9namhqrkbc2x70gcv6ljljya5hbkm62sm"))))
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)))
|
||||
(build-system emacs-build-system)
|
||||
|
@ -11083,10 +11099,10 @@ from @code{emms-source-file-default-directory}.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-helm-exwm
|
||||
(let ((commit "82a856c80c8d295e3be522a01c5a15af50d08990"))
|
||||
(let ((commit "56266f261ba3b3d2753b374b50da20eb768c06f5"))
|
||||
(package
|
||||
(name "emacs-helm-exwm")
|
||||
(version (git-version "20180523" "1" commit))
|
||||
(version (git-version "20180703" "2" commit))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -11096,7 +11112,7 @@ from @code{emms-source-file-default-directory}.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xsg2lar1vh7jmj5lnnyi14vssxkgy95sv9r8pbfhbnkjkbjm9pb"))))
|
||||
"0n7hdiajw5vxl8ha2r9r4cl4i7crza25348825wb6acwhhzijxcj"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("emacs-helm" ,emacs-helm)
|
||||
|
@ -11304,37 +11320,14 @@ file.")
|
|||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-wgrep-helm
|
||||
(let ((commit "1cdd7c136f1e7565bb13d2df69be3dc77b83698d"))
|
||||
(package
|
||||
(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+))))
|
||||
;; `emacs-wgrep-helm' was mistakenly added.
|
||||
(deprecated-package "emacs-wgrep-helm" emacs-wgrep))
|
||||
|
||||
(define-public emacs-mu4e-conversation
|
||||
(let ((commit "b60d6bd27d7220c3dd041ff2a090e29f2166a319"))
|
||||
(let ((commit "223cc66e99c7665326e3d991d6d383cb0d7512bb"))
|
||||
(package
|
||||
(name "emacs-mu4e-conversation")
|
||||
(version (git-version "20180615" "1" commit))
|
||||
(version (git-version "20180722" "2" commit))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -11345,7 +11338,7 @@ apply those changes to the file buffer.")
|
|||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x8kmi0rmbaaxn5zicm1f9yb8ynxi8074hi2n0rvymlfpxbpn0ma"))))
|
||||
"1ivy7pihhma465hi25p1y45dyi8h52nsm2m0cvizj5sw36jw0n81"))))
|
||||
(build-system emacs-build-system)
|
||||
(propagated-inputs
|
||||
`(("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
|
||||
show it; if it's not, we want to hide whatever fold the cursor is in.")
|
||||
(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+)))
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright (C) 2018 Nils Gillmann <ng0@n0.is>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -37,7 +38,7 @@
|
|||
(define-public erlang
|
||||
(package
|
||||
(name "erlang")
|
||||
(version "20.2.3")
|
||||
(version "21.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; The tarball from http://erlang.org/download contains many
|
||||
|
@ -48,7 +49,7 @@
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0s9g4ijdbqq21k4cqggz074d3fiimah942qisv2kgizhlivpw2nm"))
|
||||
"0gv43lra4870xns8b0yjzbq78afzvz9gk6y3q3fa4y4sqcrqwbas"))
|
||||
(patches (search-patches "erlang-man-path.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
|
@ -64,7 +65,7 @@
|
|||
(version-major+minor version) ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pyb8wbk7znsyni8d1k4dj1m01lr191dcrrzisli1z27ks7hh3lm"))))))
|
||||
"0cgv23q0215f6lvmhj4w9skx5m29khjs9mb890635s3yp520xgqh"))))))
|
||||
(inputs
|
||||
`(("ncurses" ,ncurses)
|
||||
("openssl" ,openssl)
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages dns)
|
||||
|
@ -51,6 +52,7 @@
|
|||
#:use-module (gnu packages libusb)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages networking)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages protobuf)
|
||||
#:use-module (gnu packages python)
|
||||
|
@ -69,7 +71,7 @@
|
|||
(define-public bitcoin-core
|
||||
(package
|
||||
(name "bitcoin-core")
|
||||
(version "0.15.1")
|
||||
(version "0.16.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -77,7 +79,7 @@
|
|||
version "/bitcoin-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1d22fgwdcn343kd95lh389hj417zwbmnhi29cij8n7wc0nz2vpil"))))
|
||||
"1zkqp93yircd3pbxczxfnibkpq0sgcv5r7wg6d196b9pwgr9zd39"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("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.")
|
||||
(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
|
||||
;; This package bundles easylogging++ and lmdb.
|
||||
;; 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.
|
||||
(package
|
||||
(name "monero")
|
||||
(version "0.11.1.0")
|
||||
(version "0.12.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/monero-project/monero/archive/v"
|
||||
version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/monero-project/monero")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Delete bundled dependencies.
|
||||
(for-each
|
||||
delete-file-recursively
|
||||
'("external/miniupnpc" "external/rapidjson"
|
||||
"external/unbound"))
|
||||
#t))
|
||||
(patches (search-patches "monero-use-system-miniupnpc.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"16shd834025jyzy68h3gag1sz8vbk875hy4j97hrki8pacz8vd5m"))))
|
||||
"14db9kgjm2ha93c2x5fjdw01xaqshn756qr3x2cnzyyjh7caz5qd"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
|
@ -364,15 +390,19 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
|
|||
(inputs
|
||||
`(("bind" ,isc-bind)
|
||||
("boost" ,boost)
|
||||
("zeromq" ,zeromq)
|
||||
("cppzmq" ,cppzmq)
|
||||
("expat" ,expat)
|
||||
("libsodium" ,libsodium)
|
||||
("libunwind" ,libunwind)
|
||||
("lmdb" ,lmdb)
|
||||
("miniupnpc" ,miniupnpc)
|
||||
("miniupnpc" ,monero-miniupnpc)
|
||||
("openssl" ,openssl)
|
||||
("rapidjson" ,rapidjson)
|
||||
("unbound" ,unbound)))
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
#:build-type "release"
|
||||
#:configure-flags '("-DBUILD_TESTS=ON"
|
||||
,@(if (string=? "aarch64-linux" (%current-system))
|
||||
'("-DARCH=armv8-a")
|
||||
|
@ -400,9 +430,8 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
|
|||
#t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(zero?
|
||||
(system* "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
|
||||
"test"))))
|
||||
(invoke "make" "ARGS=-E 'unit_tests|libwallet_api_tests'"
|
||||
"test")))
|
||||
;; The excluded unit tests need network access
|
||||
(add-after 'check 'unit-tests
|
||||
(lambda _
|
||||
|
@ -415,10 +444,9 @@ other machines/servers. Electrum does not download the Bitcoin blockchain.")
|
|||
"DNSResolver.DNSSECFailure"
|
||||
"DNSResolver.GetTXTRecord")
|
||||
":")))
|
||||
(zero?
|
||||
(system* "tests/unit_tests/unit_tests"
|
||||
(string-append "--gtest_filter=-"
|
||||
excluded-unit-tests))))))
|
||||
(invoke "tests/unit_tests/unit_tests"
|
||||
(string-append "--gtest_filter=-"
|
||||
excluded-unit-tests)))))
|
||||
(add-after 'install 'install-blockchain-import-export
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(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.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public monero-core
|
||||
(define-public monero-gui
|
||||
(package
|
||||
(name "monero-core")
|
||||
(version "0.11.1.0")
|
||||
(name "monero-gui")
|
||||
(version "0.12.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/monero-project/monero-core/archive/v"
|
||||
version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/monero-project/monero-gui")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1q7a9kpcjgp74fbplzs2iszdld6gwbfrydyd9in9izhwp100p1rr"))))
|
||||
"1cnrkwh7kp64lnzz1xfmkf1mhsgm5gls292gpqai3jr8jydpkahl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
|
@ -491,7 +520,7 @@ Monero command line client and daemon.")
|
|||
#t))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(zero? (system* "./build.sh"))))
|
||||
(invoke "./build.sh")))
|
||||
(add-after 'build 'fix-install-path
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(substitute* "build/Makefile"
|
||||
|
@ -508,6 +537,9 @@ Monero command line client and daemon.")
|
|||
Monero GUI client.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public monero-core
|
||||
(deprecated-package "monero-core" monero-gui))
|
||||
|
||||
(define-public python-trezor-agent
|
||||
(package
|
||||
(name "python-trezor-agent")
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -34,27 +35,27 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#: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
|
||||
(package
|
||||
(name "fltk")
|
||||
(version "1.3.3")
|
||||
(version "1.3.4-2")
|
||||
(source
|
||||
(origin
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq"))
|
||||
(patches (search-patches "fltk-shared-lib-defines.patch"
|
||||
"fltk-xfont-on-demand.patch"))))
|
||||
"0459rm1gl5x3famiqma7ja7k6hvan8p5l8lgshvqfl4rik0lklr5"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9
|
||||
`(("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
("libx11" ,libx11)
|
||||
("libxft" ,libxft)
|
||||
|
@ -76,12 +77,11 @@
|
|||
;; Provide -L flags for image libraries when querying fltk-config to
|
||||
;; avoid propagating inputs.
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(use-modules (srfi srfi-26))
|
||||
(let* ((conf (string-append (assoc-ref outputs "out")
|
||||
"/bin/fltk-config"))
|
||||
(jpeg (assoc-ref inputs "libjpeg"))
|
||||
(png (assoc-ref inputs "libpng"))
|
||||
(zlib (assoc-ref inputs "zlib")))
|
||||
(let ((conf (string-append (assoc-ref outputs "out")
|
||||
"/bin/fltk-config"))
|
||||
(jpeg (assoc-ref inputs "libjpeg"))
|
||||
(png (assoc-ref inputs "libpng"))
|
||||
(zlib (assoc-ref inputs "zlib")))
|
||||
(substitute* conf
|
||||
(("-ljpeg") (string-append "-L" jpeg "/lib -ljpeg"))
|
||||
(("-lpng") (string-append "-L" png "/lib -lpng"))
|
||||
|
|
|
@ -455,17 +455,16 @@ using the above tables.")
|
|||
(define-public libspiro
|
||||
(package
|
||||
(name "libspiro")
|
||||
(version "20071029")
|
||||
(version "0.5.20150702")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/libspiro/libspiro/"
|
||||
version "/libspiro_src-" version ".tar.bz2"))
|
||||
(uri (string-append "https://github.com/fontforge/libspiro/releases"
|
||||
"/download/" version "/libspiro-dist-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kylz8pvwnb85yya150r9i6mhbpzx38f32qy523qg3ylgd9b3zhy"))))
|
||||
"153ckwj6h3wwlsgcppzqj8cymv1927hi8ar8fzpchq5q89cj2kai"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:tests? #f)) ;no tests
|
||||
(synopsis "Clothoid to bezier conversion library")
|
||||
(description
|
||||
"Raph Levien's Spiro package as a library. A mechanism for drawing
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages stb)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages video)
|
||||
|
@ -440,7 +441,7 @@ clone.")
|
|||
(define-public sfml
|
||||
(package
|
||||
(name "sfml")
|
||||
(version "2.3.2")
|
||||
(version "2.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
;; Do not fetch the archives from
|
||||
|
@ -451,24 +452,37 @@ clone.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k2fl5xk3ni2q8bsxl0551inx26ww3w6cp6hssvww0wfjdjcirsm"))))
|
||||
"1x3yvhdrln5b6h4g5r4mds76gq8zsxw6icxqpwqkmxsqcq5yviab"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Ensure system libraries are used.
|
||||
(delete-file-recursively "extlibs")
|
||||
#t))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE")
|
||||
(list "-DSFML_INSTALL_PKGCONFIG_FILES=TRUE"
|
||||
"-DSFML_OS_PKGCONFIG_DIR=lib/pkgconfig")
|
||||
#:tests? #f)) ; no tests
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("mesa" ,mesa)
|
||||
("glew" ,glew)
|
||||
("flac" ,flac)
|
||||
("libvorbis" ,libvorbis)
|
||||
("libx11" ,libx11)
|
||||
("xcb-util-image" ,xcb-util-image)
|
||||
("libxrandr" ,libxrandr)
|
||||
("eudev" ,eudev)
|
||||
("freetype" ,freetype)
|
||||
("libjpeg" ,libjpeg)
|
||||
("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)))
|
||||
(home-page "https://www.sfml-dev.org")
|
||||
(synopsis "Simple and Fast Multimedia Library")
|
||||
|
@ -518,7 +532,7 @@ sounds from presets such as \"explosion\" or \"powerup\".")
|
|||
(define-public physfs
|
||||
(package
|
||||
(name "physfs")
|
||||
(version "2.0.3")
|
||||
(version "3.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -527,10 +541,18 @@ sounds from presets such as \"explosion\" or \"powerup\".")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sbbyqzqhyf0g68fcvvv20n3928j0x6ik1njmhn1yigvq2bj11na"))))
|
||||
"1wgj2zqpnfbnyyi1i7bq5pshcc9n5cvwlpzp8im67nb8662ryyxp"))))
|
||||
(build-system cmake-build-system)
|
||||
(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
|
||||
`(("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages imagemagick)
|
||||
#:use-module (gnu packages less)
|
||||
#:use-module (gnu packages libcanberra)
|
||||
#:use-module (gnu packages libedit)
|
||||
#: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!")
|
||||
(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
|
||||
(package
|
||||
(name "prboom-plus")
|
||||
|
@ -955,15 +1081,16 @@ that beneath its ruins lay buried an ancient evil.")
|
|||
(define-public angband
|
||||
(package
|
||||
(name "angband")
|
||||
(version "4.0.5")
|
||||
(version "4.1.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://rephial.org/downloads/4.0/"
|
||||
"angband-" version ".tar.gz"))
|
||||
(uri (string-append "http://rephial.org/downloads/"
|
||||
(version-major+minor version)
|
||||
"/angband-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lpq2kms7hp421vrasx2bkkn9w08kr581ldwik3v0hlq6h7rlxhd"))
|
||||
"0ahfzb66ihxvkxcbhcib816x40sdsp26b3ravr1xqp44w1whkg1h"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
;; 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"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'autogen.sh
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
(substitute* "acinclude.m4"
|
||||
(("ncursesw5-config") "ncursesw6-config"))
|
||||
(zero? (system* "sh" "autogen.sh")))))))
|
||||
(invoke "sh" "autogen.sh"))))))
|
||||
(native-inputs
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)))
|
||||
|
@ -1448,7 +1575,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(define minetest-data
|
||||
(package
|
||||
(name "minetest-data")
|
||||
(version "0.4.16")
|
||||
(version "0.4.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1457,7 +1584,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nibpm600rbv9dg1zgcsl5grlbqx0b5l6cg1lp6sqkwvjialb4ga"))))
|
||||
"0pa9skjwbq27aky6dgr7g3mb0a7c5rpa6xmz2qh0nm618z5hgazh"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("source" ,source)
|
||||
|
@ -1490,7 +1617,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(define-public minetest
|
||||
(package
|
||||
(name "minetest")
|
||||
(version "0.4.16")
|
||||
(version "0.4.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1499,7 +1626,7 @@ match, cannon keep, and grave-itation pit.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0mbnf1ma4gsw9ah68ply04059xkfx5psdxwalxp78sgmx4ypkwqf"))))
|
||||
"0wpbad5bssbbgspgdcq3hhq4bhckrj53nhymsz34d8g01j0csr46"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -1830,7 +1957,7 @@ falling, themeable graphics and sounds, and replays.")
|
|||
(define-public wesnoth
|
||||
(package
|
||||
(name "wesnoth")
|
||||
(version "1.14.3")
|
||||
(version "1.14.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
|
||||
|
@ -1839,7 +1966,7 @@ falling, themeable graphics and sounds, and replays.")
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"06648041nr77sgzr7jpmcn37cma3hp41qynp50xzddx28l17zwg9"))))
|
||||
"1hw1ap8xxpdwyx1sf8fm1g75p6724y3hwb4kpvyqbsq7bwfwsb9i"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f)) ; no check target
|
||||
|
@ -3345,7 +3472,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
(define-public hyperrogue
|
||||
(package
|
||||
(name "hyperrogue")
|
||||
(version "10.0g")
|
||||
(version "10.4j")
|
||||
;; When updating this package, be sure to update the "hyperrogue-data"
|
||||
;; origin in native-inputs.
|
||||
(source (origin
|
||||
|
@ -3356,7 +3483,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
"-src.tgz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0f68pcnsgl406dhm91ckn3f364bar9m9i5njp9vrmvhvv9p2icy0"))))
|
||||
"0909p4xvbi1c2jc5rdgrf8b1c60fmsaapabsi6yyglh5znkf0k27"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
|
@ -3368,7 +3495,6 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
(setenv "CPATH"
|
||||
(string-append (assoc-ref inputs "sdl-union")
|
||||
"/include/SDL"))))
|
||||
;; Fix font and music paths.
|
||||
(replace 'configure
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
@ -3378,17 +3504,18 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
"/share/fonts/truetype"))
|
||||
(dejavu-font "DejaVuSans-Bold.ttf")
|
||||
(music-file "hyperrogue-music.txt"))
|
||||
;; Fix font and music paths.
|
||||
(substitute* "basegraph.cpp"
|
||||
((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
|
||||
(("\\*/")
|
||||
(string-append share-dir "/sounds/"))))
|
||||
;; Fix Makefile.
|
||||
(substitute* "Makefile"
|
||||
(("g\\+\\+ langen.cpp")
|
||||
"g++ langen.cpp ${CXXFLAGS}")
|
||||
(("savepng.c") "savepng.cpp"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
|
@ -3405,21 +3532,18 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
(out (assoc-ref outputs "out"))
|
||||
(sounds (string-append out "/share/hyperrogue/sounds"))
|
||||
(unzip (string-append (assoc-ref inputs "unzip") "/bin/unzip")))
|
||||
(and
|
||||
;; Extract media license information into sounds directory.
|
||||
(zero?
|
||||
(system* unzip "-j" data
|
||||
(string-append
|
||||
"hyperrogue"
|
||||
(string-join (string-split ,version #\.) "")
|
||||
"/sounds/credits.txt") "-d" sounds))
|
||||
;; Extract sounds and music into sounds directory.
|
||||
(zero?
|
||||
(system* "unzip" "-j" data
|
||||
(string-append
|
||||
"hyperrogue"
|
||||
(string-join (string-split ,version #\.) "")
|
||||
"/*.ogg") "-d" sounds)))))))))
|
||||
;; Extract media license information into sounds directory.
|
||||
(invoke unzip "-j" data
|
||||
(string-append
|
||||
"hyperrogue"
|
||||
(string-join (string-split ,version #\.) "")
|
||||
"/sounds/credits.txt") "-d" sounds)
|
||||
;; Extract sounds and music into sounds directory.
|
||||
(invoke "unzip" "-j" data
|
||||
(string-append
|
||||
"hyperrogue"
|
||||
(string-join (string-split ,version #\.) "")
|
||||
"/*.ogg") "-d" sounds)))))))
|
||||
(native-inputs
|
||||
`(("hyperrogue-data"
|
||||
,(origin
|
||||
|
@ -3431,7 +3555,7 @@ throwing people around in pseudo-randomly generated buildings.")
|
|||
"-win.zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bnp077qvlmxjlz1jjd6kpghlv9flxc19ac1xq3m3wyq1w9p3pab"))))
|
||||
"0w61iv2rn93hi0q3hxyyyf9xcr8vi9zd7fjvpz5adpgf94jm3zsc"))))
|
||||
("unzip" ,unzip)))
|
||||
(inputs
|
||||
`(("font-dejavu" ,font-dejavu)
|
||||
|
|
|
@ -180,7 +180,7 @@ and driving.")
|
|||
(inputs
|
||||
`(("cairo" ,cairo)
|
||||
("libpng" ,libpng)
|
||||
("libjepeg-turbo" ,libjpeg-turbo)
|
||||
("libjpeg-turbo" ,libjpeg-turbo)
|
||||
("libtiff" ,libtiff)
|
||||
("libgeotiff" ,libgeotiff)
|
||||
("proj.4" ,proj.4)
|
||||
|
|
|
@ -132,6 +132,7 @@ printing, and psresize, for adjusting page sizes.")
|
|||
(define-public ghostscript
|
||||
(package
|
||||
(name "ghostscript")
|
||||
(replacement ghostscript/fixed)
|
||||
(version "9.23")
|
||||
(source
|
||||
(origin
|
||||
|
@ -250,6 +251,16 @@ output file formats and printers.")
|
|||
(home-page "https://www.ghostscript.com/")
|
||||
(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
|
||||
(package/inherit ghostscript
|
||||
(name (string-append (package-name ghostscript) "-with-x"))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; 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 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)
|
||||
("pango" ,pango)
|
||||
("libpng" ,libpng)
|
||||
("libjpeg" ,libjpeg-8)))
|
||||
("libjpeg" ,libjpeg)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("glib" ,glib "bin") ; for gtester
|
||||
|
@ -154,7 +154,7 @@ buffers.")
|
|||
("glib" ,glib)
|
||||
("glib-networking" ,glib-networking)
|
||||
("libtiff" ,libtiff)
|
||||
("libjpeg" ,libjpeg-8)
|
||||
("libjpeg" ,libjpeg)
|
||||
("atk" ,atk)
|
||||
("gexiv2" ,gexiv2)
|
||||
("gtk+" ,gtk+-2)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public gnu-pw-mgr
|
||||
(package
|
||||
(name "gnu-pw-mgr")
|
||||
(version "2.3.2")
|
||||
(version "2.3.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -38,7 +38,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x60g0syqpd107l8w4bl213imy2lspm4kz1j18yr1sh10rdxlgxd"))))
|
||||
"04xh38j7l0sfnb01kp05xc908pvqfc0lph94k7n9bi46zy3qy7ma"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -67,14 +67,14 @@
|
|||
(define-public libextractor
|
||||
(package
|
||||
(name "libextractor")
|
||||
(version "1.6")
|
||||
(version "1.7")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/libextractor/libextractor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"17gnpgspdhfgcr27j8sn9105vb4lw22yqdrhic62l79q5v5avm16"))))
|
||||
"13wf6vj7mkv6gw8h183cnk7m24ir0gyf198pyb2148ng4klgv9p0"))))
|
||||
(build-system gnu-build-system)
|
||||
;; WARNING: Checks require /dev/shm to be in the build chroot, especially
|
||||
;; not to be a symbolic link to /run/shm.
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -41,6 +42,8 @@
|
|||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pcre)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (ice-9 match)
|
||||
#: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
|
||||
values.")
|
||||
(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))))
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; 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 © 2017 Manolis Fragkiskos Ragkousis <manolis837@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
|
||||
(package
|
||||
(name "assimp")
|
||||
(version "3.3.1")
|
||||
(version "4.1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/assimp/assimp/archive/v"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/assimp/assimp.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1gy7zlgkf4nmyv8n674p3f30asis0gjz8icyy11i693n13ww71fk"))))
|
||||
"1rhyqfhzifdj7yibyanph3rh13ykw3i98dnn8mz65j780472hw28"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
(home-page "http://assimp.org/")
|
||||
(home-page "http://www.assimp.org/")
|
||||
(synopsis "Asset import library")
|
||||
(description
|
||||
"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")
|
||||
(version "1.7.19")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/OpenImageIO/oiio/"
|
||||
"archive/Release-" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/OpenImageIO/oiio.git")
|
||||
(commit (string-append "Release-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1qlmfhvl2wva4aifyiq7c4sdy61ddl7wykwvlpfys9p701xghvj7"))))
|
||||
"0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc"))))
|
||||
(build-system cmake-build-system)
|
||||
;; FIXME: To run all tests successfully, test image sets from multiple
|
||||
;; 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
|
||||
`(("boost" ,boost)
|
||||
("libpng" ,libpng)
|
||||
("libjpeg" ,libjpeg-8)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libtiff" ,libtiff)
|
||||
("giflib" ,giflib)
|
||||
("openexr" ,openexr)
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system guile)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -965,60 +966,8 @@ specification. These are the main features:
|
|||
(sha256
|
||||
(base32
|
||||
"0r50jlpzi940jlmxyy3ddqqwmj5r12gb4bcv0ssini9v8km13xz6"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(build-system guile-build-system)
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(home-page "https://github.com/ijp/minikanren")
|
||||
(synopsis "MiniKanren declarative logic system, packaged for Guile")
|
||||
|
@ -1055,46 +1004,8 @@ See http://minikanren.org/ for more on miniKanren generally.")
|
|||
(sha256
|
||||
(base32
|
||||
"09q51zkw2fypad5xixskfzw2cjhjgs5cswdp3i7cpp651rb3zndh"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(build-system guile-build-system)
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(home-page "https://github.com/fisherdj/miniAdapton")
|
||||
(synopsis "Minimal implementation of incremental computation in Guile
|
||||
|
@ -1120,65 +1031,25 @@ understand, extend, and port to host languages other than Scheme.")
|
|||
(sha256
|
||||
(base32
|
||||
"1ia3m7dp3lcxa048q0gqbiwwsyvn99baw6xkhb4bhhzn4k7bwyqq"))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils)
|
||||
(ice-9 match)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 popen)
|
||||
(guix build gnu-build-system))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(delete 'build)
|
||||
(delete 'check)
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(effective (read-line
|
||||
(open-pipe* OPEN_READ
|
||||
"guile" "-c"
|
||||
"(display (effective-version))")))
|
||||
(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
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'move-files-around
|
||||
(lambda _
|
||||
;; Move the relevant source files to src/ and create the
|
||||
;; rx/ directory to match the expected module hierarchy.
|
||||
(mkdir-p "src/rx/source")
|
||||
(rename-file "irregex-guile.scm"
|
||||
"src/rx/irregex.scm")
|
||||
(rename-file "irregex.scm"
|
||||
"src/rx/source/irregex.scm")
|
||||
;; Not really reachable via guile's packaging system,
|
||||
;; but nice to have around.
|
||||
(rename-file "irregex-utils.scm"
|
||||
"src/rx/source/irregex-utils.scm")
|
||||
#t)))
|
||||
#:source-directory "src"))
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(home-page "http://synthcode.com/scheme/irregex")
|
||||
(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")
|
||||
(commit "fa1d5b6231d0e4d096687b378c025f2148c5f246")))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(patches (search-patches
|
||||
"guile-gdbm-ffi-support-gdbm-1.14.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j8wrsw7v9w6qkl47xz0rdikg50v16nn6kbs3lgzcymjzpa7babj"))))
|
||||
(build-system trivial-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)))
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
`(#:modules
|
||||
((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(ice-9 rdelim)
|
||||
(ice-9 popen))
|
||||
|
||||
;; Avoid warnings we can safely ignore
|
||||
(setenv "GUILE_AUTO_COMPILE" "0")
|
||||
|
||||
(let* ((out (assoc-ref %outputs "out"))
|
||||
(effective-version
|
||||
(read-line
|
||||
(open-pipe* OPEN_READ
|
||||
(string-append
|
||||
(assoc-ref %build-inputs "guile")
|
||||
"/bin/guile")
|
||||
"-c" "(display (effective-version))")))
|
||||
(module-dir (string-append out "/share/guile/site/"
|
||||
effective-version))
|
||||
(source (assoc-ref %build-inputs "source"))
|
||||
(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))))
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'move-examples
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Move examples where they belong.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(doc (string-append out "/share/doc/"
|
||||
(strip-store-file-name out)
|
||||
"/examples")))
|
||||
(copy-recursively "examples" doc)
|
||||
(delete-file-recursively "examples")
|
||||
#t)))
|
||||
(add-after 'unpack 'set-libgdbm-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "gdbm.scm"
|
||||
(("\\(dynamic-link \"libgdbm\"\\)")
|
||||
(format #f "(dynamic-link \"~a/lib/libgdbm.so\")"
|
||||
(assoc-ref inputs "gdbm"))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(inputs
|
||||
`(("gdbm" ,gdbm)))
|
||||
(home-page "https://github.com/ijp/guile-gdbm")
|
||||
(synopsis "Guile bindings to the GDBM library via Guile's FFI")
|
||||
(description
|
||||
|
@ -2142,32 +1965,8 @@ It has a nice, simple s-expression based syntax.")
|
|||
(sha256
|
||||
(base32
|
||||
"16xhc3an6aglnca8xl3mvgi8hsqzqn68vsl5ga4bz8bvbap5fn4p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
(build-system guile-build-system)
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(home-page "https://github.com/NalaGinrut/guile-colorized")
|
||||
(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.")
|
||||
(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
|
||||
(let ((commit "1f3b7c0b9b249c6fde8e8a632b252d8a1b794424")
|
||||
(revision "1"))
|
||||
|
@ -2191,72 +2062,20 @@ It has a nice, simple s-expression based syntax.")
|
|||
(base32
|
||||
"0nj2pd5bsmmgd3c54wh4sixfhmsv1arsq7yam2d7487h3n9q57r7"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system trivial-build-system)
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(srfi srfi-26)
|
||||
(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))
|
||||
(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
|
||||
`(#:source-directory "src"
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-libzmq-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* "src/simple-zmq.scm"
|
||||
(("\\(dynamic-link \"libzmq\"\\)")
|
||||
(format #f "(dynamic-link \"~a/lib/libzmq.so\")"
|
||||
(assoc-ref inputs "zeromq"))))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(propagated-inputs
|
||||
(inputs
|
||||
`(("zeromq" ,zeromq)))
|
||||
(home-page "https://github.com/jerry40/guile-simple-zmq")
|
||||
(synopsis "Guile wrapper over ZeroMQ library")
|
||||
|
@ -2280,106 +2099,46 @@ messaging library.")
|
|||
(sha256
|
||||
(base32
|
||||
"0y5jr0f0dyskvsawqbf6n0bpg8jirw4mhqbarf2a6p9lxhqha9s9"))))
|
||||
(build-system trivial-build-system)
|
||||
(build-system guile-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
#:builder
|
||||
(begin
|
||||
(use-modules (guix build utils)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match)
|
||||
(ice-9 popen)
|
||||
(ice-9 rdelim))
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'unpack 'set-openssl-file-name
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Record the absolute file name of the 'openssl'
|
||||
;; command.
|
||||
(substitute* "src/hmac.scm"
|
||||
(("openssl")
|
||||
(string-append (assoc-ref inputs "openssl")
|
||||
"/bin/openssl")))
|
||||
#t))
|
||||
|
||||
(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))
|
||||
(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)
|
||||
":")))
|
||||
;; XXX: The code uses 'include' to include its own source
|
||||
;; files, and "-L src" isn't enough in this case.
|
||||
(add-before 'build 'chdir
|
||||
(lambda _ (chdir "src") #t))
|
||||
(add-after 'build 'chdir-back
|
||||
(lambda _ (chdir "..") #t))
|
||||
|
||||
;; Make installation directories.
|
||||
(mkdir-p module-dir)
|
||||
(mkdir-p kernel-dir)
|
||||
(mkdir-p go-dir)
|
||||
(add-after 'install 'install-kernel
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(dir (string-append
|
||||
out "/share/jupyter/kernels/guile")))
|
||||
;; Install kernel.
|
||||
(install-file "src/kernel.json" dir)
|
||||
|
||||
;; Make a writable copy of SOURCE.
|
||||
(copy-recursively source ".")
|
||||
|
||||
;; Record the absolute file name of the 'openssl' command.
|
||||
(substitute* "hmac.scm"
|
||||
(("openssl")
|
||||
(string-append (assoc-ref %build-inputs "openssl")
|
||||
"/bin/openssl")))
|
||||
|
||||
;; Compile .scm files and install.
|
||||
(setenv "GUILE_AUTO_COMPILE" "0")
|
||||
(setenv "GUILE_LOAD_PATH" path)
|
||||
(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))))
|
||||
;; Fix hard-coded file name in the kernel.
|
||||
(substitute* (string-append dir "/kernel.json")
|
||||
(("/home/.*/guile-jupyter-kernel.scm")
|
||||
(string-append out "/share/guile/site/"
|
||||
(target-guile-effective-version)
|
||||
"/guile-jupyter-kernel.scm"))
|
||||
(("\"guile\"")
|
||||
(string-append "\"" (assoc-ref inputs "guile")
|
||||
"/bin/guile\""))
|
||||
(("-s")
|
||||
(string-append "--no-auto-compile\", \"-s")))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("openssl" ,openssl)
|
||||
("guile" ,guile-2.2)))
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
(define-public feh
|
||||
(package
|
||||
(name "feh")
|
||||
(version "2.27")
|
||||
(version "2.27.1")
|
||||
(home-page "https://feh.finalrewind.org/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -68,7 +68,7 @@
|
|||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0kn6cka9m76697i495npd60ad64jnfnzv5z6znzyr0vlxx2nhcmg"))))
|
||||
"10zk76l491s22qrv86rax6cvpgwyl3qq0izl2pbk0k1z1kw3ihvf"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases (delete 'configure))
|
||||
|
|
|
@ -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.")
|
||||
(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
|
||||
(package
|
||||
(name "java-swt")
|
||||
|
@ -4449,7 +4480,7 @@ these scripting language engines.")
|
|||
#:tests? #f
|
||||
#:source-dir "src/java"))
|
||||
(inputs
|
||||
`(("java-tomcat" ,java-tomcat)
|
||||
`(("servlet" ,java-classpathx-servletapi)
|
||||
("java-jdom" ,java-jdom)
|
||||
("java-commons-beanutils" ,java-commons-beanutils)))
|
||||
(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/"
|
||||
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
|
||||
(base32
|
||||
"0dwmqjzlavb144ywqqglj3h68hqszkff8ai0a42hyb5il0qh4rbp"))))
|
||||
|
@ -7940,7 +7975,7 @@ Java 6 and above.")
|
|||
#:tests? #f)); FIXME: not in a java subdir
|
||||
(inputs
|
||||
`(("guice" ,java-guice)
|
||||
("servlet" ,java-tomcat)
|
||||
("servlet" ,java-classpathx-servletapi)
|
||||
,@(package-inputs java-guice)))))
|
||||
|
||||
(define-public java-assertj
|
||||
|
@ -8425,15 +8460,15 @@ algorithms and xxHash hashing algorithm.")
|
|||
(define-public java-bouncycastle
|
||||
(package
|
||||
(name "java-bouncycastle")
|
||||
(version "1.59")
|
||||
(version "1.60")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1bwl499whlbq896w18idqw2dkp8v0wp0npv9g71i5fgf8xjh0k3q"))
|
||||
"0v434513y708qc87k4xz13p2kzydc736lk3ks67df9mg11s7hchv"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -10109,7 +10144,7 @@ and reporting) project dependencies. It is characterized by the following:
|
|||
`(("java-guice" ,java-guice)
|
||||
("java-guice-servlet" ,java-guice-servlet)
|
||||
("java-javax-inject" ,java-javax-inject)
|
||||
("java-tomcat" ,java-tomcat)
|
||||
("java-javaee-servletapi" ,java-javaee-servletapi)
|
||||
("java-junit" ,java-junit)
|
||||
("java-slf4j-api" ,java-slf4j-api)
|
||||
("java-jsr305" ,java-jsr305)
|
||||
|
@ -10273,6 +10308,7 @@ static code analysis or code manipulation.")))
|
|||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/qos-ch/logback/archive/v_"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1x6ga74yfgm94cfx98gybakbrlilx8i2gn6dx13l40kasmys06mi"))
|
||||
|
@ -10303,7 +10339,7 @@ static code analysis or code manipulation.")))
|
|||
#t)))))
|
||||
(inputs
|
||||
`(("java-javax-mail" ,java-javax-mail)
|
||||
("java-tomcat" ,java-tomcat)
|
||||
("servlet" ,java-javaee-servletapi)
|
||||
("java-commons-compiler" ,java-commons-compiler)
|
||||
("java-janino" ,java-janino)))
|
||||
(native-inputs
|
||||
|
@ -10347,7 +10383,7 @@ This module lays the groundwork for the other two modules.")
|
|||
(find-files (assoc-ref inputs input)
|
||||
".*.jar"))
|
||||
'("java-logback-core" "java-slf4j-api"
|
||||
"java-commons-compiler" "java-tomcat"
|
||||
"java-commons-compiler" "servlet"
|
||||
"groovy")))
|
||||
":"))
|
||||
(apply invoke "groovyc" "-d" "build/classes" "-j"
|
||||
|
|
|
@ -314,7 +314,7 @@
|
|||
"USE_SYSTEM_LIBGIT2=1"
|
||||
"USE_SYSTEM_OPENSPECFUN=1")))
|
||||
(inputs
|
||||
`(("llvm" ,llvm)
|
||||
`(("llvm" ,llvm-3.9.1)
|
||||
|
||||
;; 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
|
||||
|
|
|
@ -395,7 +395,7 @@ generator library for C++.")
|
|||
("libxrender" ,libxrender)
|
||||
("libxslt" ,libxslt)
|
||||
("lzo" ,lzo)
|
||||
("mysql" ,mysql)
|
||||
("mariadb" ,mariadb)
|
||||
("openssl" ,openssl)
|
||||
("pcre" ,pcre)
|
||||
("pulseaudio" ,pulseaudio)
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
(arguments `(#:configure-flags '("--disable-udev")))
|
||||
;; (inputs `(("eudev" ,eudev)))
|
||||
|
||||
(home-page "http://libusb.info")
|
||||
(home-page "https://libusb.info")
|
||||
(synopsis "User-space USB library")
|
||||
(description
|
||||
"Libusb is a library that gives applications easy access to USB
|
||||
|
@ -91,7 +91,7 @@ devices on various operating systems.")
|
|||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libusb" ,libusb)))
|
||||
(home-page "http://libusb.info")
|
||||
(home-page "https://libusb.info")
|
||||
(synopsis "Compatibility shim for libusb")
|
||||
(description
|
||||
"Libusb-compat provides a shim allowing applications based on older
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
|
||||
;;; Copyright © 2017 Dave Love <fx@gnu.org>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -59,6 +60,7 @@
|
|||
#:use-module (gnu packages calendar)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#: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.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.17.6")
|
||||
(define %linux-libre-hash "0d48r5jpj71ikdalz5z756snwq54cpnwnba8bbhg8r2ri3770wcm")
|
||||
(define %linux-libre-version "4.17.9")
|
||||
(define %linux-libre-hash "1mahjxn4j7sdjdrbkrgal37nfx23njhnmrxcmixmphps8i44rlwm")
|
||||
|
||||
(define-public linux-libre
|
||||
(make-linux-libre %linux-libre-version
|
||||
|
@ -411,8 +413,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
%linux-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.55")
|
||||
(define %linux-libre-4.14-hash "1rlapfwkjfmyk4ahvqwqap4w9flbw2zag0r04fwrmyqz1y5ijayf")
|
||||
(define %linux-libre-4.14-version "4.14.57")
|
||||
(define %linux-libre-4.14-hash "1qp8g87ss4a3iz6k3k4mkllibvdrixh6ys4a9l7jidp2wmkxj3kc")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(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))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.112"
|
||||
"1zrnbvzr7z5ky79r6hpjvn15bxmwcyi8lr7yq2nx1r8ladl8lnb0"
|
||||
(make-linux-libre "4.9.114"
|
||||
"069ckgck4skzci6sjrpk1sja0h1fdmrlcbpnqwl2844m5vfffzk9"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.140"
|
||||
"10h4k2c2ncnc1h61kikqb618dh9lp8fmzagz2ydykrdbb5jjiy82"
|
||||
(make-linux-libre "4.4.143"
|
||||
"0kawgpmmv37gds3cbww791bbzvwfjg760yg3qw3dk913dawhdmzw"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
@ -1609,7 +1611,7 @@ processes currently causing I/O.")
|
|||
(define-public fuse
|
||||
(package
|
||||
(name "fuse")
|
||||
(version "2.9.7")
|
||||
(version "2.9.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/libfuse/libfuse/releases/"
|
||||
|
@ -1617,7 +1619,7 @@ processes currently causing I/O.")
|
|||
"/fuse-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x486nri30f7cgy0acj87v9sjxsjrr0cymrvw4h3r0sgmp8k4943"))
|
||||
"1k4ggl2y5v0lr98l189pc81w0zijj23wbbnijsc6zlx84117nd0j"))
|
||||
(patches (search-patches "fuse-overlapping-headers.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("util-linux" ,util-linux)))
|
||||
|
@ -3588,7 +3590,7 @@ The following service daemons are also provided:
|
|||
(define-public rng-tools
|
||||
(package
|
||||
(name "rng-tools")
|
||||
(version "6.3")
|
||||
(version "6.3.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lc2kqw3idwmjyjnf16sqz0f4r1w7c638n4la1j1n5c3188q26bv"))))
|
||||
"04p7wvcm389s21y9mq8ss6z2szxi4nfrfixzwqjkq2qciz705i4s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB.
|
||||
|
@ -3699,7 +3701,43 @@ as used on certified hardware security devices.")
|
|||
"0zwq19siiwf09h7lwa7n7mgmrr8cxifp45lmwgcfr8c1gviv6b0i"))))
|
||||
(build-system gnu-build-system)
|
||||
(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
|
||||
`(("intltool" ,intltool)
|
||||
("perl" ,perl) ; for pod2man
|
||||
|
@ -3707,6 +3745,9 @@ as used on certified hardware security devices.")
|
|||
(inputs
|
||||
`(("keyutils" ,keyutils)
|
||||
("linux-pam" ,linux-pam)
|
||||
("utils-linux" ,util-linux)
|
||||
("cryptsetup" ,cryptsetup)
|
||||
("lvm2" ,lvm2)
|
||||
("nss" ,nss)))
|
||||
(home-page "http://ecryptfs.org/")
|
||||
(synopsis "eCryptfs cryptographic file system utilities")
|
||||
|
|
|
@ -261,14 +261,14 @@ aliasing facilities to work just as they would on normal mail.")
|
|||
(define-public mutt
|
||||
(package
|
||||
(name "mutt")
|
||||
(version "1.10.0")
|
||||
(version "1.10.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://bitbucket.org/mutt/mutt/downloads/"
|
||||
"mutt-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582"))
|
||||
"182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk"))
|
||||
(patches (search-patches "mutt-store-references.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
|
|
@ -207,6 +207,37 @@ programming languages.")
|
|||
(home-page "https://stcorp.nl/coda")
|
||||
(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
|
||||
(package
|
||||
(name "units")
|
||||
|
@ -1336,6 +1367,7 @@ can solve two kinds of problems:
|
|||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("lapack" ,lapack)
|
||||
("qhull" ,qhull)
|
||||
("readline" ,readline)
|
||||
("gl2ps" ,gl2ps)
|
||||
("glpk" ,glpk)
|
||||
|
|
|
@ -428,7 +428,7 @@ artifact and repository handling code.")
|
|||
("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-slf4j-api" ,java-slf4j-api)
|
||||
("java-tomcat" ,java-tomcat)
|
||||
("java-javaee-servletapi" ,java-javaee-servletapi)
|
||||
("maven-wagon-provider-api" ,maven-wagon-provider-api)))
|
||||
(synopsis "Test classes from maven-wagon")
|
||||
(description "Maven Wagon is a transport abstraction that is used in Maven's
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
|
||||
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr>
|
||||
;;;
|
||||
|
@ -487,14 +487,14 @@ compromised.")
|
|||
(define-public znc
|
||||
(package
|
||||
(name "znc")
|
||||
(version "1.7.0")
|
||||
(version "1.7.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://znc.in/releases/archive/znc-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0vxra50418bsjfdpf8vl70fijv8syvasjqdxfyjliff6k91k2zn0"))))
|
||||
"1i1r1lh9q2mr1bg520zrvrlwhrhy6wibrin78wjxq1gab1qymks4"))))
|
||||
;; TODO: autotools support has been deprecated, and new features like i18n
|
||||
;; are only supported when building with cmake.
|
||||
(build-system gnu-build-system)
|
||||
|
@ -873,7 +873,7 @@ protocols.")
|
|||
(define-public c-toxcore
|
||||
(package
|
||||
(name "c-toxcore")
|
||||
(version "0.2.2")
|
||||
(version "0.2.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -882,7 +882,7 @@ protocols.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"18bfqx0ylbas9gs91rkspf04l5fjjcl0mxm1gfs2d59bv65mvcm3"))))
|
||||
"0sdszy079f82ncrgq1wsjpk2374n5hm4las75gj3lrdhljl15izl"))))
|
||||
(arguments
|
||||
`(#:tests? #f)) ; FIXME: Testsuite seems to stay stuck on test 3. Disable
|
||||
; for now.
|
||||
|
@ -961,14 +961,14 @@ instant messenger with audio and video chat capabilities.")
|
|||
(define-public qtox
|
||||
(package
|
||||
(name "qtox")
|
||||
(version "1.16.1")
|
||||
(version "1.16.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/qTox/qTox/archive/v"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"11l4klw0g6j4qq95krgyd0npxmmpcgk4vp9jq429sbsqn1s039j4"))
|
||||
"10n3cgw9xaqin9la8wpd8v83bkjmimicgbyp5ninsdgsrgky4hmq"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
|
@ -990,7 +990,7 @@ instant messenger with audio and video chat capabilities.")
|
|||
,(list (string-append (assoc-ref inputs "qtsvg")
|
||||
"/lib/qt5/plugins/"))))))))))
|
||||
(inputs
|
||||
`(("ffmpeg" ,ffmpeg-3.4)
|
||||
`(("ffmpeg" ,ffmpeg)
|
||||
("filteraudio" ,filteraudio)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+-2)
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system waf)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (guix build-system go)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages apr)
|
||||
|
@ -128,6 +129,8 @@
|
|||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (gnu packages xiph)
|
||||
#:use-module (gnu packages golang)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module ((srfi srfi-1) #:select (last)))
|
||||
|
||||
(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
|
||||
console music players.")
|
||||
(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))))
|
||||
|
|
|
@ -534,7 +534,7 @@ and up to 1 Mbit/s downstream.")
|
|||
(define-public whois
|
||||
(package
|
||||
(name "whois")
|
||||
(version "5.3.1")
|
||||
(version "5.3.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -542,7 +542,7 @@ and up to 1 Mbit/s downstream.")
|
|||
name "_" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gl98l26dcgmlap0pxllbv4b9n2fr5b7zml3ijf8sf3a60qsskpg"))))
|
||||
"0m3352d5b0ragygbqjbaimghrbx4va2rixa34j5a1g3jj6l4nwbr"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no test suite
|
||||
|
|
|
@ -101,8 +101,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.15.0")
|
||||
(commit "4876bc8234095e2af191b0c6470455ce67d9f5f7")
|
||||
(revision 1))
|
||||
(commit "8bbb79cf95a07a40950448a8a09d888254404ed4")
|
||||
(revision 2))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -118,7 +118,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0qw0ffrxzxfk76pp38kx222ndpsv9mbhlmfycagyipgypgjdd9lq"))
|
||||
"0h83l91v2cg9bb78c7vqx9wj71ckz22jbjmm2fy4vqs9216jnvc0"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -263,7 +263,10 @@
|
|||
|
||||
("sqlite" ,sqlite)
|
||||
("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
|
||||
;; have it here.
|
||||
|
@ -345,7 +348,7 @@ the Nix package manager.")
|
|||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (find-files (string-append out "/libexec"))
|
||||
(("exec \".*/bin/guix\"")
|
||||
"exec ~root/.config/current/bin/guix"))
|
||||
"exec ~root/.config/guix/current/bin/guix"))
|
||||
#t)))
|
||||
(delete 'wrap-program)))))))
|
||||
|
||||
|
|
|
@ -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;
|
|
@ -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 */
|
|
@ -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!
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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))
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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");
|
|
@ -548,23 +548,26 @@ interaction.")
|
|||
(define-public podofo
|
||||
(package
|
||||
(name "podofo")
|
||||
(version "0.9.5")
|
||||
(version "0.9.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/podofo/podofo/" version
|
||||
"/podofo-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"012kgfx5j5n6w4zkc1d290d2cwjk60jhzsjlr2x19g3yi75q2jc5"))))
|
||||
"0wj0y4zcmj4q79wrn3vv3xq4bb0vhhxs8yifafwy9f2sjm83c5p9"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs ; TODO: Add cppunit for tests
|
||||
`(("lua" ,lua-5.1)
|
||||
("libpng" ,libpng)
|
||||
("openssl" ,openssl)
|
||||
("fontconfig" ,fontconfig)
|
||||
(native-inputs
|
||||
`(("cppunit" ,cppunit)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg)
|
||||
("libtiff" ,libtiff)
|
||||
("libjpeg" ,libjpeg-8)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("libpng" ,libpng)
|
||||
("lua" ,lua-5.1)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:configure-flags '("-DPODOFO_BUILD_SHARED=ON"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; 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 © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
|
||||
|
@ -81,7 +81,7 @@
|
|||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("libjpeg" ,libjpeg-8))) ;for lossy DNGs and old Kodak cameras
|
||||
`(("libjpeg" ,libjpeg))) ;for lossy DNGs and old Kodak cameras
|
||||
(propagated-inputs
|
||||
`(("lcms" ,lcms))) ;for color profiles
|
||||
(home-page "https://www.libraw.org")
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
(define-public php
|
||||
(package
|
||||
(name "php")
|
||||
(version "7.2.4")
|
||||
(version "7.2.8")
|
||||
(home-page "https://secure.php.net/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -70,7 +70,7 @@
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"123s0lbyz4fxr3kk91r4v658mk899dym36lggxnx9pwd2jyv25kr"))
|
||||
"03zv1y8ygzsir60617hinpji3f4irk79zbp3ar1b8zcapq40gfjk"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(with-directory-excursion "ext"
|
||||
|
@ -248,6 +248,9 @@
|
|||
;; iconv breaks the loop after the first error with Termsig=11.
|
||||
"ext/iconv/tests/iconv_strpos_variation4.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.
|
||||
;; open_basedir() restriction failure.
|
||||
|
@ -288,7 +291,10 @@
|
|||
"ext/mbstring/tests/mb_ereg_variation3.phpt"
|
||||
"ext/mbstring/tests/mb_ereg_replace_variation1.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.
|
||||
(setenv "SKIP_ONLINE_TESTS" "1")
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
|
||||
|
@ -610,16 +610,17 @@ ECB and OFB).")
|
|||
(define-public python-asn1crypto
|
||||
(package
|
||||
(name "python-asn1crypto")
|
||||
(version "0.22.0")
|
||||
(version "0.24.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/wbond/asn1crypto/archive/"
|
||||
version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/wbond/asn1crypto.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1kn910896l3knmilla1c9ly20q181s43w1ah08lzkbm1h3j6pcz0"))))
|
||||
"10lai2cs5mnz3gpaffbw1m7b885ls8328q5wxm35vfmcip1f0xmb"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "https://github.com/wbond/asn1crypto")
|
||||
(synopsis "ASN.1 parser and serializer in Python")
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
;;; Copyright © 2015, 2016, 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2015, 2017 Ben Woodcroft <donttrustben@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, 2016 Chris Marusich <cmmarusich@gmail.com>
|
||||
;;; 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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9"))))
|
||||
"1rk2dvy3fxrga6bvvxc2fi5lbaynm5h4a0w0aaxyn3bc77rszjg9"))
|
||||
(patches (search-patches "python-cairocffi-dlopen-path.patch"))))
|
||||
(build-system python-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(inputs
|
||||
`(("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("cairo" ,cairo)))
|
||||
`(("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("cairo" ,cairo)
|
||||
("pango" ,pango)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
("python-docutils" ,python-docutils)))
|
||||
(propagated-inputs
|
||||
`(("python-xcffib" ,python-xcffib))) ; used at run time
|
||||
(arguments
|
||||
`(;; FIXME: Tests cannot find 'libcairo.so.2'.
|
||||
#:tests? #f
|
||||
#:tests? #t
|
||||
#: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
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(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
|
||||
(package
|
||||
(name "python-pyasn1")
|
||||
(version "0.4.2")
|
||||
(version "0.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyasn1" version))
|
||||
(sha256
|
||||
(base32
|
||||
"05bxnr4wmrg62m4qr1pg1p3z7bhwrv74jll3k42pgxwl36kv0n6j"))))
|
||||
"1z5h38anjzzrxpraa9iq9llffyx2zs8gx0q6dc1g029miwnn50gv"))))
|
||||
(build-system python-build-system)
|
||||
(home-page "http://pyasn1.sourceforge.net/")
|
||||
(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
|
||||
(package
|
||||
(name "python-pyasn1-modules")
|
||||
(version "0.0.8")
|
||||
(version "0.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyasn1-modules" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0drqgw81xd3fxdlg89kgd79zzrabvfncvkbybi2wr6w2y4s1jmhh"))))
|
||||
"0ivm850yi7ajjbi8j115qpsj95bgxdsx48nbjzg0zip788c3xkx0"))))
|
||||
(build-system python-build-system)
|
||||
(propagated-inputs
|
||||
`(("python-pyasn1" ,python-pyasn1)))
|
||||
|
@ -12242,14 +12272,14 @@ pure Python module.")
|
|||
(define-public python-xenon
|
||||
(package
|
||||
(name "python-xenon")
|
||||
(version "0.5.1")
|
||||
(version "0.5.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "xenon" version))
|
||||
(sha256
|
||||
(base32
|
||||
"14kby2y48vp3sgwxqlm5d5789yibqwb1qli5fwcmdqg3iayrbklc"))))
|
||||
"029cbhysg2vr5n4jz8gpg2793f8wkwnqpr1qgv6c1dn685vy31mc"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-pyyaml" ,python-pyyaml)
|
||||
|
@ -12261,12 +12291,7 @@ pure Python module.")
|
|||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'build 'patch-test-requirements
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Update requirements from dependency==version to
|
||||
;; dependency>=version.
|
||||
(substitute* "requirements.txt"
|
||||
(("==") ">=")
|
||||
((",<1.5.0") ""))
|
||||
(lambda _
|
||||
;; Remove httpretty dependency for tests.
|
||||
(substitute* "setup.py"
|
||||
(("httpretty") ""))
|
||||
|
|
|
@ -446,6 +446,29 @@ outcomes of a code example.")
|
|||
(propagated-inputs
|
||||
`(("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
|
||||
(package
|
||||
(name "ruby-rspec-mocks")
|
||||
|
@ -883,7 +906,8 @@ complexity.")
|
|||
(lambda _
|
||||
;; This is used in the Rakefile, and setting it avoids an issue
|
||||
;; with running the tests.
|
||||
(setenv "LIB" "options"))))))
|
||||
(setenv "LIB" "options")
|
||||
#t)))))
|
||||
(synopsis "Ruby library to parse options from *args cleanly")
|
||||
(description
|
||||
"The @code{options} library helps with parsing keyword options in Ruby
|
||||
|
@ -4982,3 +5006,28 @@ Markdown.")
|
|||
in standard Ruby syntax.")
|
||||
(home-page "https://github.com/ruby/rake")
|
||||
(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)))
|
||||
|
|
|
@ -167,7 +167,7 @@ in turn be used to build the final Rust.")
|
|||
(snippet '(begin (delete-file-recursively "src/llvm") #t))
|
||||
(patches (map search-patch patches))))
|
||||
|
||||
(define-public rust-1.19
|
||||
(define rust-1.19
|
||||
(package
|
||||
(name "rust")
|
||||
(version "1.19.0")
|
||||
|
@ -554,14 +554,28 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
|||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-after 'patch-cargo-tests 'patch-cargo-index-update
|
||||
(lambda* _
|
||||
(lambda _
|
||||
(substitute* "src/tools/cargo/tests/generate-lockfile.rs"
|
||||
;; 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
|
||||
(lambda* _
|
||||
(lambda _
|
||||
(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))))))))
|
||||
|
||||
(define-public rust-1.26
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
|
||||
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
|
||||
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -102,7 +103,7 @@ package contains the library, but no drivers.")
|
|||
(inherit sane-backends-minimal)
|
||||
(name "sane-backends")
|
||||
(inputs
|
||||
`(("hplip" ,(@ (gnu packages cups) hplip))
|
||||
`(("hplip" ,(@ (gnu packages cups) hplip-minimal))
|
||||
,@(package-inputs sane-backends-minimal)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments sane-backends-minimal)
|
||||
|
|
|
@ -132,7 +132,7 @@ joystick, and graphics hardware.")
|
|||
(define-public libmikmod
|
||||
(package
|
||||
(name "libmikmod")
|
||||
(version "3.3.10")
|
||||
(version "3.3.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list
|
||||
|
@ -144,7 +144,7 @@ joystick, and graphics hardware.")
|
|||
version "/libmikmod-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0j7g4jpa2zgzw7x6s3rldypa7zlwjvn97rwx0sylx1iihhlzbcq0"))))
|
||||
"06bdnhb0l81srdzg6gn2v2ydhhaazza7rshrcj3q8dpqr3gn97dd"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; By default, libmikmod tries to dlopen libasound etc., which won't work
|
||||
|
|
|
@ -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.")
|
||||
(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
|
||||
(package
|
||||
(name "java-jdistlib")
|
||||
|
|
|
@ -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."))
|
|
@ -30,16 +30,15 @@
|
|||
(define-public syncthing
|
||||
(package
|
||||
(name "syncthing")
|
||||
(version "0.14.48")
|
||||
(version "0.14.49")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/syncthing/syncthing"
|
||||
"/releases/download/v" version
|
||||
"/syncthing-source-v" version ".tar.gz"))
|
||||
(patches (search-patches "syncthing-fix-crash.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0bxkm5jlj6l4gai23bg0y31brr80r9qllh1rdg29pahjn0c2b4ml"))
|
||||
"06mzzj5iwgqw3yva7azrsqs9zpl84srbamza4gm03grp7v9gf3sj"))
|
||||
(modules '((guix build utils)))
|
||||
;; Delete bundled ("vendored") free software source code.
|
||||
(snippet '(begin
|
||||
|
@ -130,7 +129,6 @@
|
|||
("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-kardianos-osext" ,go-github-com-kardianos-osext)
|
||||
("go-github-com-kballard-go-shellquote"
|
||||
,go-github-com-kballard-go-shellquote)
|
||||
("go-github-com-lib-pq" ,go-github-com-lib-pq)
|
||||
|
@ -703,11 +701,11 @@ database in Go.")
|
|||
(license bsd-2))))
|
||||
|
||||
(define-public go-github-com-thejerf-suture
|
||||
(let ((commit "87e298c9891673c9ae76e10c2c9be589127e5f49")
|
||||
(let ((commit "3f1fb62fe0a3cc6429122d7dc45588a8b59c5bb6")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "go-github-com-thejerf-suture")
|
||||
(version (git-version "2.0.1" revision commit))
|
||||
(version (git-version "2.0.3" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -716,7 +714,7 @@ database in Go.")
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0srw0g94z6jplvlsjqsr6wf7885alnbb6h4fhvbg2i7q1ia5ldy2"))))
|
||||
"0mp7gz6bp6xhggkgmbl33vpmrq3a6n2dkgcxbkb7csnpv4r4d59k"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
`(#:import-path "github.com/thejerf/suture"))
|
||||
|
@ -1088,8 +1086,8 @@ using sh's word-splitting rules.")
|
|||
(license expat))))
|
||||
|
||||
(define-public go-github-com-syncthing-notify
|
||||
(let ((commit "b9ceffc925039c77cd9e0d38f248279ccc4399e2")
|
||||
(revision "0"))
|
||||
(let ((commit "cdf89c4039d13726e227d0a472053ea19de021b4")
|
||||
(revision "1"))
|
||||
(package
|
||||
(name "go-github-com-syncthing-notify")
|
||||
(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))
|
||||
(sha256
|
||||
(base32
|
||||
"1scha9b2r35bvqzqx86sarzjxf72ywvj3g6n9pm3xq4i4xzpylxf"))))
|
||||
"1ra1id9r06i4q8vhrrv1zpybhjxs3361rg35758dxglkyk4pzk6j"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
'(#:import-path "github.com/syncthing/notify"))
|
||||
|
|
|
@ -485,6 +485,8 @@ Mumble consists of two applications for separate usage:
|
|||
(uri (git-reference
|
||||
(url "https://github.com/LubosD/twinkle")
|
||||
(commit commit)))
|
||||
(patches
|
||||
(search-patches "twinkle-include-qregexpvalidator.patch"))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
|
|
|
@ -520,13 +520,13 @@ netcat implementation that supports TLS.")
|
|||
(package
|
||||
(name "python-acme")
|
||||
;; Remember to update the hash of certbot when updating python-acme.
|
||||
(version "0.25.1")
|
||||
(version "0.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "acme" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0d177dhy8a7472pz9v4blrlk02d8fp6s52li7z8v3dv97pvz7da7"))))
|
||||
"1glhwqj6yyb11820lspgd0gl5dqdfljn43kcy4ar5caccpsbbrw6"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -577,7 +577,7 @@ netcat implementation that supports TLS.")
|
|||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kp56gwn1bnlrag9qidhm1i5ifdp5z6y1ravh3yimfrkc4cfa8sw"))))
|
||||
"0rnayqhdabm0rljxh76blqd11h51dqnwlwvql0j6xwzpccym30s9"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(,@(substitute-keyword-arguments (package-arguments python-acme)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.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 © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
|
@ -47,14 +47,14 @@
|
|||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.3.3.7")
|
||||
(version "0.3.3.9")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"036ybfvldj7yfci9ipjki8smpzyxdg8c5r12bghc9yxdqh9basza"))))
|
||||
"0vyf5z0dn5jghp2qjp076aq62lsz9g32qv9jiqf08skf096nnd45"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--enable-gcc-hardening"
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
|
||||
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
|
||||
;;;
|
||||
;;; 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
|
||||
(package
|
||||
(name "ffmpeg")
|
||||
(version "4.0.1")
|
||||
(version "4.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vn04n0n46zdxq14cma3w8ml2ckh5jxwlybsc4xmvcqdqq0mqpv0"))))
|
||||
"15rgzcmdccy4flajs63gkz4n3k24wkkg50r13l1r83lrxg4hqp59"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("fontconfig" ,fontconfig)
|
||||
|
@ -788,26 +789,26 @@ audio/video codec library.")
|
|||
(define-public ffmpeg-3.4
|
||||
(package
|
||||
(inherit ffmpeg)
|
||||
(version "3.4.3")
|
||||
(version "3.4.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0p45s3h7mg7v0jm77bymw2617i08f086dlcdmaylnk7795yind3b"))))))
|
||||
"1iizgnhjbhar9y1ykqlj1czqanlv24knkfq5vvfnppv5x00pcvrq"))))))
|
||||
|
||||
(define-public ffmpeg-2.8
|
||||
(package
|
||||
(inherit ffmpeg)
|
||||
(version "2.8.14")
|
||||
(version "2.8.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05m1272r5qa2r0ym5vq4figdfnpvcys1fgb1026n5s6xdjd1s1pg"))))
|
||||
"065xbvnfmxfbfrc14cavpqyd2slil99vcjksw4ndb7w8zdh0wp3v"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments ffmpeg)
|
||||
((#:configure-flags flags)
|
||||
|
@ -817,18 +818,48 @@ audio/video codec library.")
|
|||
flag))
|
||||
,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
|
||||
(package
|
||||
(name "vlc")
|
||||
(version "3.0.3")
|
||||
(version "3.0.3-1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://download.videolan.org/pub/videolan/vlc/"
|
||||
version "/vlc-" version ".tar.xz"))
|
||||
(car (string-split version #\-))
|
||||
"/vlc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0lavzly8l0ll1d9iris9cnirgcs77g48lxj14058dxqkvd5v1a4v"))))
|
||||
"1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("flex" ,flex)
|
||||
|
@ -998,7 +1029,7 @@ treaming protocols.")
|
|||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("cdparanoia" ,cdparanoia)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("ffmpeg" ,ffmpeg-3.4)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
;; ("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
|
||||
(package
|
||||
(name "mpv")
|
||||
(version "0.28.2")
|
||||
(version "0.29.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1083,7 +1114,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15fp4sa5glqhgidd54vs6knf9dp809wszzsqiqz5nyri4ph19nma"))
|
||||
"06bk8836brzik1qmq8kycwg5n35r438sd2176k6msjg5rrwghakp"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system waf-build-system)
|
||||
(native-inputs
|
||||
|
@ -1224,7 +1255,7 @@ access to mpv's powerful playback capabilities.")
|
|||
(define-public youtube-dl
|
||||
(package
|
||||
(name "youtube-dl")
|
||||
(version "2018.06.19")
|
||||
(version "2018.07.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://yt-dl.org/downloads/"
|
||||
|
@ -1232,7 +1263,7 @@ access to mpv's powerful playback capabilities.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ys2mc84r7mjpn7rykb57sn3ii1kp3divjdn2ivwqknj8jrzg3z6"))))
|
||||
"1rigah941k2drzx5qz937lk68gw9jrizj5lgd9f9znp0bgi2d0xd"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
;; 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
|
||||
`(("bzip2" ,bzip2)
|
||||
("dbus-glib" ,dbus-glib)
|
||||
("ffmpeg" ,ffmpeg)
|
||||
("ffmpeg" ,ffmpeg-3.4) ;compilation errors with ffmpeg-4
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("glib" ,glib)
|
||||
|
|
|
@ -27,12 +27,16 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages documentation)
|
||||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages libevent)
|
||||
#:use-module (gnu packages libidn)
|
||||
#:use-module (gnu packages lua)
|
||||
#:use-module (gnu packages gnome)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
|
@ -41,9 +45,11 @@
|
|||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages image)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages webkit)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
#:use-module (guix build-system python))
|
||||
|
||||
(define-public dillo
|
||||
|
@ -128,6 +134,68 @@ features including, tables, builtin image display, bookmarks, SSL and more.")
|
|||
;; linking of the program with openssl.
|
||||
(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
|
||||
(package
|
||||
(name "lynx")
|
||||
|
|
|
@ -122,14 +122,14 @@
|
|||
(define-public httpd
|
||||
(package
|
||||
(name "httpd")
|
||||
(version "2.4.33")
|
||||
(version "2.4.34")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/httpd/httpd-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"01bghiq4pbgjbgd6gic0nb8bbk6mfpwx3gcsbf21f3dhb4c520ny"))))
|
||||
"1w1q2smdgf6ln0x741lk5pv5r0gzrxj2iza1vslhifzy65bcjlzs"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pcre" ,pcre "bin"))) ;for 'pcre-config'
|
||||
(inputs `(("apr" ,apr)
|
||||
|
@ -719,7 +719,14 @@ current version of any major web browser.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(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)
|
||||
(arguments
|
||||
`(,@(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
|
||||
(package
|
||||
(name "java-tomcat")
|
||||
(version "8.5.28")
|
||||
(version "8.5.32")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://apache/tomcat/tomcat-8/v"
|
||||
version "/src/apache-tomcat-" version "-src.tar.gz"))
|
||||
(sha256
|
||||
(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)
|
||||
(inputs
|
||||
`(("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\"")
|
||||
((",download-validate") ""))
|
||||
#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
|
||||
(lambda _
|
||||
;; This could have been passed to make-flags, but getcwd returns
|
||||
|
@ -5931,7 +5952,7 @@ or embedded instantiation. This package provides utility classes.")
|
|||
#t)))))
|
||||
(inputs
|
||||
`(("slf4j" ,java-slf4j-api)
|
||||
("servlet" ,java-tomcat)
|
||||
("servlet" ,java-javaee-servletapi)
|
||||
("util" ,java-eclipse-jetty-util)))
|
||||
(synopsis "Jetty :: IO Utility")
|
||||
(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)))))
|
||||
(inputs
|
||||
`(("slf4j" ,java-slf4j-api)
|
||||
("servlet" ,java-tomcat)
|
||||
("servlet" ,java-javaee-servletapi)
|
||||
("io" ,java-eclipse-jetty-io)
|
||||
("util" ,java-eclipse-jetty-util)))
|
||||
(synopsis "Jetty :: Http Utility")
|
||||
|
@ -6009,7 +6030,7 @@ or embedded instantiation. This package provides HTTP-related utility classes."
|
|||
#t)))))
|
||||
(inputs
|
||||
`(("slf4j" ,java-slf4j-api)
|
||||
("servlet" ,java-tomcat)
|
||||
("servlet" ,java-javaee-servletapi)
|
||||
("util" ,java-eclipse-jetty-util)))
|
||||
(synopsis "Jetty :: JMX Management")
|
||||
(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)))))
|
||||
(inputs
|
||||
`(("slf4j" ,java-slf4j-api)
|
||||
("servlet" ,java-tomcat)
|
||||
("servlet" ,java-javaee-servletapi)
|
||||
("http" ,java-eclipse-jetty-http)
|
||||
("io" ,java-eclipse-jetty-io)
|
||||
("jmx" ,java-eclipse-jetty-jmx)
|
||||
|
@ -6286,7 +6307,7 @@ container.")))
|
|||
("java-eclipse-jetty-servlet" ,java-eclipse-jetty-servlet)
|
||||
("java-eclipse-jetty-security" ,java-eclipse-jetty-security)
|
||||
("java-eclipse-jetty-xml" ,java-eclipse-jetty-xml)
|
||||
("java-tomcat" ,java-tomcat)))
|
||||
("java-javaee-servletapi" ,java-javaee-servletapi)))
|
||||
(native-inputs
|
||||
`(("java-eclipse-jetty-io" ,java-eclipse-jetty-io)
|
||||
,@(package-native-inputs java-eclipse-jetty-util)))))
|
||||
|
|
|
@ -223,7 +223,7 @@ integrate Windows applications into your desktop.")
|
|||
(define-public wine-staging-patchset-data
|
||||
(package
|
||||
(name "wine-staging-patchset-data")
|
||||
(version "3.12")
|
||||
(version "3.13")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -232,7 +232,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (string-append name "-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hjs36jw8k1d22c713wzwvyhfrb8mi85dpk9wpsggnnw2x57hzs0"))))
|
||||
"0h27h4z4m2m77chp3alkv6fagppjhh9ys39d3n21j0yfjknyhdd8"))))
|
||||
(build-system trivial-build-system)
|
||||
(native-inputs
|
||||
`(("bash" ,bash)
|
||||
|
@ -279,7 +279,7 @@ integrate Windows applications into your desktop.")
|
|||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0zvqmd0018wvlxz4xbm5sbv7770j3l14q0ilpgs0jy49srcw116v"))))
|
||||
"1m5v854r5wgw68b97j6wim1a8692x5sih25c0xp1yb13a94dg187"))))
|
||||
(inputs `(("autoconf" ,autoconf) ; for autoreconf
|
||||
("gtk+" ,gtk+)
|
||||
("libva" ,libva)
|
||||
|
|
|
@ -3177,46 +3177,28 @@ This driver is intended for the spice qxl virtio device.")
|
|||
(license license:x11)))
|
||||
|
||||
(define-public xf86-video-r128
|
||||
;; We need a newer version than 6.10.2 to build against the latest xorg-server.
|
||||
;; Remove this binding and the bootstrap inputs when >6.10.2 is released.
|
||||
(let ((commit "c4c878d2ccb75fa75afe46e0e50ee9975c5c57fc")
|
||||
(revision "0"))
|
||||
(package
|
||||
(name "xf86-video-r128")
|
||||
(version (git-version "6.10.2" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url (string-append "https://anongit.freedesktop.org/git/xorg"
|
||||
"/driver/" name ".git"))
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"01pff30zz4zxjhw28h8bn9x2kq7c6iswgn19b72wnfgl0arxb63j"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'prevent-configure
|
||||
(lambda _
|
||||
;; Prevent autogen from calling "./configure" as part of
|
||||
;; the bootstrap step, which fails due to wrong shebang.
|
||||
(setenv "NOCONFIGURE" "1")
|
||||
#t)))))
|
||||
(inputs `(("mesa" ,mesa)
|
||||
("xorgproto" ,xorgproto)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)))
|
||||
(home-page "https://www.x.org/wiki/")
|
||||
(synopsis "ATI Rage 128 video driver for X server")
|
||||
(description
|
||||
"xf86-video-r128 is a video driver for the Xorg X server.
|
||||
(package
|
||||
(name "xf86-video-r128")
|
||||
(version "6.11.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://xorg/individual/driver/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0snvwmrh8dqyyaq7ggicym6yrsg4brygkx9156r0m095m7fp3rav"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("mesa" ,mesa)
|
||||
("xorgproto" ,xorgproto)
|
||||
("xorg-server" ,xorg-server)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://www.x.org/wiki/")
|
||||
(synopsis "ATI Rage 128 video driver for X server")
|
||||
(description
|
||||
"xf86-video-r128 is a video driver for the Xorg X server.
|
||||
This driver is intended for ATI Rage 128 based cards.")
|
||||
(license license:x11))))
|
||||
(license license:x11)))
|
||||
|
||||
(define-public xf86-video-savage
|
||||
(package
|
||||
|
@ -5111,7 +5093,8 @@ over Xlib, including:
|
|||
(sha256
|
||||
(base32
|
||||
"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)
|
||||
(propagated-inputs
|
||||
`(("libpciaccess" ,libpciaccess)
|
||||
|
@ -5837,7 +5820,7 @@ programs that cannot use the window system directly.")
|
|||
("xcb-proto" ,xcb-proto)
|
||||
("xcb-util" ,xcb-util)
|
||||
("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")
|
||||
(description
|
||||
"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
|
||||
perl programs to display windows and graphics on X11 servers.")
|
||||
(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
|
||||
;; the same terms as Perl itself. (As an exception, the file
|
||||
;; 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)))
|
||||
(propagated-inputs
|
||||
`(("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")
|
||||
(description
|
||||
"@code{X11::Protocol::Other} contains window manager related functions for
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -72,9 +73,7 @@
|
|||
(one-shot? cuirass-configuration-one-shot? ;boolean
|
||||
(default #f))
|
||||
(fallback? cuirass-configuration-fallback? ;boolean
|
||||
(default #f))
|
||||
(load-path cuirass-configuration-load-path
|
||||
(default '())))
|
||||
(default #f)))
|
||||
|
||||
(define (cuirass-shepherd-service config)
|
||||
"Return a <shepherd-service> for the Cuirass service with CONFIG."
|
||||
|
@ -92,8 +91,7 @@
|
|||
(specs (cuirass-configuration-specifications config))
|
||||
(use-substitutes? (cuirass-configuration-use-substitutes? config))
|
||||
(one-shot? (cuirass-configuration-one-shot? config))
|
||||
(fallback? (cuirass-configuration-fallback? config))
|
||||
(load-path (cuirass-configuration-load-path config)))
|
||||
(fallback? (cuirass-configuration-fallback? config)))
|
||||
(list (shepherd-service
|
||||
(documentation "Run Cuirass.")
|
||||
(provision '(cuirass))
|
||||
|
@ -109,9 +107,7 @@
|
|||
"--interval" #$(number->string interval)
|
||||
#$@(if use-substitutes? '("--use-substitutes") '())
|
||||
#$@(if one-shot? '("--one-shot") '())
|
||||
#$@(if fallback? '("--fallback") '())
|
||||
#$@(if (null? load-path) '()
|
||||
`("--load-path" ,(string-join load-path ":"))))
|
||||
#$@(if fallback? '("--fallback") '()))
|
||||
|
||||
#:environment-variables
|
||||
(list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt"
|
||||
|
|
|
@ -455,7 +455,7 @@ of user-name/file-like tuples."
|
|||
|
||||
(list (shepherd-service
|
||||
(documentation "OpenSSH server.")
|
||||
(requirement '(syslogd))
|
||||
(requirement '(syslogd loopback))
|
||||
(provision '(ssh-daemon))
|
||||
(start #~(make-forkexec-constructor #$openssh-command
|
||||
#:pid-file #$pid-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"))))
|
||||
|
||||
;; 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
|
||||
;; installed without downloading/building anything. Also keep the
|
||||
;; things needed by 'profile-derivation' to minimize the amount of
|
||||
|
|
|
@ -210,7 +210,17 @@ include /run/current-system/profile/share/nano/*.nanorc\n"))
|
|||
((module-ref module 'activate-readline))))
|
||||
(else
|
||||
(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)
|
||||
(".gdbinit" ,gdbinit))))
|
||||
|
||||
|
|
|
@ -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)))
|
|
@ -125,17 +125,17 @@ unset. When SOURCE is a directory, copy it instead of unpacking."
|
|||
(copy-recursively source dest #:keep-mtime? #t)
|
||||
#t)
|
||||
(if (string-suffix? ".zip" source)
|
||||
(zero? (system* "unzip" "-d" dest source))
|
||||
(zero? (system* "tar" "-C" dest "-xvf" source))))))
|
||||
(invoke "unzip" "-d" dest source)
|
||||
(invoke "tar" "-C" dest "-xvf" source)))))
|
||||
|
||||
(define* (install-source #:key install-source? outputs #:allow-other-keys)
|
||||
"Install the source code to the output directory."
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(source "src")
|
||||
(dest (string-append out "/" source)))
|
||||
(if install-source?
|
||||
(copy-recursively source dest #:keep-mtime? #t)
|
||||
#t)))
|
||||
(when install-source?
|
||||
(copy-recursively source dest #:keep-mtime? #t))
|
||||
#t))
|
||||
|
||||
(define (go-package? name)
|
||||
(string-prefix? "go-" name))
|
||||
|
@ -178,24 +178,26 @@ respectively."
|
|||
|
||||
(define* (build #:key import-path #:allow-other-keys)
|
||||
"Build the package named by IMPORT-PATH."
|
||||
(or
|
||||
(zero? (system* "go" "install"
|
||||
"-v" ; print the name of packages as they are compiled
|
||||
"-x" ; print each command as it is invoked
|
||||
;; Respectively, strip the symbol table and debug
|
||||
;; information, and the DWARF symbol table.
|
||||
"-ldflags=-s -w"
|
||||
import-path))
|
||||
(begin
|
||||
(with-throw-handler
|
||||
#t
|
||||
(lambda _
|
||||
(invoke "go" "install"
|
||||
"-v" ; print the name of packages as they are compiled
|
||||
"-x" ; print each command as it is invoked
|
||||
;; Respectively, strip the symbol table and debug
|
||||
;; information, and the DWARF symbol table.
|
||||
"-ldflags=-s -w"
|
||||
import-path))
|
||||
(lambda (key . args)
|
||||
(display (string-append "Building '" import-path "' failed.\n"
|
||||
"Here are the results of `go env`:\n"))
|
||||
(system* "go" "env")
|
||||
#f)))
|
||||
(invoke "go" "env"))))
|
||||
|
||||
(define* (check #:key tests? import-path #:allow-other-keys)
|
||||
"Run the tests for the package named by IMPORT-PATH."
|
||||
(if tests?
|
||||
(zero? (system* "go" "test" import-path))))
|
||||
(when tests?
|
||||
(invoke "go" "test" import-path))
|
||||
#t)
|
||||
|
||||
(define* (install #:key outputs #:allow-other-keys)
|
||||
"Install the compiled libraries. `go install` installs these files to
|
||||
|
|
|
@ -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))
|
|
@ -52,18 +52,19 @@ directory."
|
|||
(define* (unpack #:key source #:allow-other-keys)
|
||||
"Unpack the gem SOURCE and enter the resulting directory."
|
||||
(if (gem-archive? source)
|
||||
(and (zero? (system* "gem" "unpack" source))
|
||||
;; The unpacked gem directory is named the same as the archive,
|
||||
;; sans the ".gem" extension. It is renamed to simply "gem" in an
|
||||
;; effort to keep file names shorter to avoid UNIX-domain socket
|
||||
;; file names and shebangs that exceed the system's fixed maximum
|
||||
;; length when running test suites.
|
||||
(let ((dir (match:substring (string-match "^(.*)\\.gem$"
|
||||
(basename source))
|
||||
1)))
|
||||
(rename-file dir "gem")
|
||||
(chdir "gem")
|
||||
#t))
|
||||
(begin
|
||||
(invoke "gem" "unpack" source)
|
||||
;; The unpacked gem directory is named the same as the archive,
|
||||
;; sans the ".gem" extension. It is renamed to simply "gem" in an
|
||||
;; effort to keep file names shorter to avoid UNIX-domain socket
|
||||
;; file names and shebangs that exceed the system's fixed maximum
|
||||
;; length when running test suites.
|
||||
(let ((dir (match:substring (string-match "^(.*)\\.gem$"
|
||||
(basename source))
|
||||
1)))
|
||||
(rename-file dir "gem")
|
||||
(chdir "gem"))
|
||||
#t)
|
||||
;; Use GNU unpack strategy for things that aren't gem archives.
|
||||
(gnu:unpack #:source source)))
|
||||
|
||||
|
@ -77,7 +78,8 @@ operation is not deterministic, we replace it with `find`."
|
|||
(when (not (gem-archive? source))
|
||||
(let ((gemspec (first-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)
|
||||
|
||||
(define* (extract-gemspec #:key source #:allow-other-keys)
|
||||
|
@ -104,7 +106,8 @@ generate the files list."
|
|||
(write-char (read-char pipe) out))))
|
||||
#t)
|
||||
(lambda ()
|
||||
(close-pipe pipe)))))))
|
||||
(close-pipe pipe)))))
|
||||
#t))
|
||||
|
||||
(define* (build #:key source #:allow-other-keys)
|
||||
"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
|
||||
;; dynamic patching done in previous phases to be present in the installed
|
||||
;; gem.
|
||||
(zero? (system* "gem" "build" (first-gemspec))))
|
||||
(invoke "gem" "build" (first-gemspec)))
|
||||
|
||||
(define* (check #:key tests? test-target #:allow-other-keys)
|
||||
"Run the gem's test suite rake task TEST-TARGET. Skip the tests if TESTS?
|
||||
is #f."
|
||||
(if tests?
|
||||
(zero? (system* "rake" test-target))
|
||||
(invoke "rake" test-target)
|
||||
#t))
|
||||
|
||||
(define* (install #:key inputs outputs (gem-flags '())
|
||||
|
@ -137,43 +140,42 @@ GEM-FLAGS are passed to the 'gem' invokation, if present."
|
|||
0
|
||||
(- (string-length gem-file-basename) 4))))
|
||||
(setenv "GEM_VENDOR" vendor-dir)
|
||||
(and (let ((install-succeeded?
|
||||
(zero?
|
||||
(apply system* "gem" "install" gem-file
|
||||
"--local" "--ignore-dependencies" "--vendor"
|
||||
;; Executables should go into /bin, not
|
||||
;; /lib/ruby/gems.
|
||||
"--bindir" (string-append out "/bin")
|
||||
gem-flags))))
|
||||
(or install-succeeded?
|
||||
(begin
|
||||
(simple-format #t "installation failed\n")
|
||||
(let ((failed-output-dir (string-append (getcwd) "/out")))
|
||||
(mkdir failed-output-dir)
|
||||
(copy-recursively out failed-output-dir))
|
||||
#f)))
|
||||
(begin
|
||||
;; Remove the cached gem file as this is unnecessary and contains
|
||||
;; timestamped files rendering builds not reproducible.
|
||||
(let ((cached-gem (string-append vendor-dir "/cache/" gem-file)))
|
||||
(log-file-deletion cached-gem)
|
||||
(delete-file cached-gem))
|
||||
;; For gems with native extensions, several Makefile-related files
|
||||
;; are created that contain timestamps or other elements making
|
||||
;; them not reproducible. They are unnecessary so we remove them.
|
||||
(if (file-exists? (string-append vendor-dir "/ext"))
|
||||
(begin
|
||||
(for-each (lambda (file)
|
||||
(log-file-deletion file)
|
||||
(delete-file file))
|
||||
(append
|
||||
(find-files (string-append vendor-dir "/doc")
|
||||
"page-Makefile.ri")
|
||||
(find-files (string-append vendor-dir "/extensions")
|
||||
"gem_make.out")
|
||||
(find-files (string-append vendor-dir "/ext")
|
||||
"Makefile")))))
|
||||
#t))))
|
||||
|
||||
(or (zero?
|
||||
(apply system* "gem" "install" gem-file
|
||||
"--local" "--ignore-dependencies" "--vendor"
|
||||
;; Executables should go into /bin, not
|
||||
;; /lib/ruby/gems.
|
||||
"--bindir" (string-append out "/bin")
|
||||
gem-flags))
|
||||
(begin
|
||||
(let ((failed-output-dir (string-append (getcwd) "/out")))
|
||||
(mkdir failed-output-dir)
|
||||
(copy-recursively out failed-output-dir))
|
||||
(error "installation failed")))
|
||||
|
||||
;; Remove the cached gem file as this is unnecessary and contains
|
||||
;; timestamped files rendering builds not reproducible.
|
||||
(let ((cached-gem (string-append vendor-dir "/cache/" gem-file)))
|
||||
(log-file-deletion cached-gem)
|
||||
(delete-file cached-gem))
|
||||
|
||||
;; For gems with native extensions, several Makefile-related files
|
||||
;; are created that contain timestamps or other elements making
|
||||
;; them not reproducible. They are unnecessary so we remove them.
|
||||
(when (file-exists? (string-append vendor-dir "/ext"))
|
||||
(for-each (lambda (file)
|
||||
(log-file-deletion file)
|
||||
(delete-file file))
|
||||
(append
|
||||
(find-files (string-append vendor-dir "/doc")
|
||||
"page-Makefile.ri")
|
||||
(find-files (string-append vendor-dir "/extensions")
|
||||
"gem_make.out")
|
||||
(find-files (string-append vendor-dir "/ext")
|
||||
"Makefile"))))
|
||||
|
||||
#t))
|
||||
|
||||
(define* (wrap-ruby-program prog #:key (gem-clear-paths #t) #:rest vars)
|
||||
"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)))
|
||||
(for-each (cut wrap-ruby-program <> var)
|
||||
files)))
|
||||
bindirs)))
|
||||
bindirs))
|
||||
#t)
|
||||
|
||||
(define (log-file-deletion file)
|
||||
(display (string-append "deleting '" file "' for reproducibility\n")))
|
||||
|
|
143
guix/gexp.scm
143
guix/gexp.scm
|
@ -601,6 +601,12 @@ names and file names suitable for the #:allowed-references argument to
|
|||
allowed-references disallowed-references
|
||||
leaked-env-vars
|
||||
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
|
||||
(script-name (string-append name "-builder")))
|
||||
"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))
|
||||
(modules (if (pair? %modules)
|
||||
(imported-modules %modules
|
||||
#:derivation?
|
||||
import-creates-derivation?
|
||||
#:system system
|
||||
#:module-path module-path
|
||||
#:guile guile-for-build
|
||||
|
@ -703,6 +711,8 @@ The other arguments are as for 'derivation'."
|
|||
(return #f)))
|
||||
(compiled (if (pair? %modules)
|
||||
(compiled-modules %modules
|
||||
#:derivation?
|
||||
import-creates-derivation?
|
||||
#:system system
|
||||
#:module-path module-path
|
||||
#:extensions extensions
|
||||
|
@ -735,7 +745,9 @@ The other arguments are as for 'derivation'."
|
|||
"/bin/guile")
|
||||
`("--no-auto-compile"
|
||||
,@(if (pair? %modules)
|
||||
`("-L" ,(derivation->output-path modules)
|
||||
`("-L" ,(if (derivation? modules)
|
||||
(derivation->output-path modules)
|
||||
modules)
|
||||
"-C" ,(derivation->output-path compiled))
|
||||
'())
|
||||
,@(append-map extension-flags exts)
|
||||
|
@ -1013,6 +1025,49 @@ execution environment."
|
|||
;;; 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
|
||||
;; This file provides 'mkdir-p', needed to implement 'imported-files' and
|
||||
;; other primitives below. Note: We give the file name relative to this
|
||||
|
@ -1021,22 +1076,24 @@ execution environment."
|
|||
(local-file "build/utils.scm"
|
||||
"build-utils.scm"))
|
||||
|
||||
(define* (imported-files files
|
||||
#:key (name "file-import")
|
||||
(system (%current-system))
|
||||
(guile (%guile-for-build))
|
||||
(define* (imported-files/derivation files
|
||||
#:key (name "file-import")
|
||||
(symlink? #f)
|
||||
(system (%current-system))
|
||||
(guile (%guile-for-build))
|
||||
|
||||
;; XXX: The only reason we have
|
||||
;; #:deprecation-warnings is because (guix build
|
||||
;; utils), which we use here, relies on _IO*, which
|
||||
;; is deprecated in 2.2. On the next full-rebuild
|
||||
;; cycle, we should disable such warnings
|
||||
;; unconditionally.
|
||||
(deprecation-warnings #f))
|
||||
;; XXX: The only reason we have
|
||||
;; #:deprecation-warnings is because (guix
|
||||
;; build utils), which we use here, relies
|
||||
;; on _IO*, which is deprecated in 2.2. On
|
||||
;; the next full-rebuild cycle, we should
|
||||
;; disable such warnings unconditionally.
|
||||
(deprecation-warnings #f))
|
||||
"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
|
||||
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
|
||||
(match-lambda
|
||||
((final-path . (? string? file-name))
|
||||
|
@ -1059,7 +1116,8 @@ as returned by 'local-file' for example."
|
|||
(for-each (match-lambda
|
||||
((final-path store-path)
|
||||
(mkdir-p (dirname final-path))
|
||||
(symlink store-path final-path)))
|
||||
((ungexp (if symlink? 'symlink 'copy-file))
|
||||
store-path final-path)))
|
||||
'(ungexp files)))))
|
||||
|
||||
;; TODO: Pass FILES as an environment variable so that BUILD remains
|
||||
|
@ -1081,8 +1139,39 @@ as returned by 'local-file' for example."
|
|||
(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
|
||||
#:key (name "module-import")
|
||||
(derivation? #f) ;TODO: remove on next rebuild
|
||||
(system (%current-system))
|
||||
(guile (%guile-for-build))
|
||||
(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
|
||||
last one is created from the given <scheme-file> object."
|
||||
(mlet %store-monad ((files
|
||||
(mapm %store-monad
|
||||
(match-lambda
|
||||
(((module ...) '=> file)
|
||||
(return
|
||||
(cons (module->source-file-name module)
|
||||
file)))
|
||||
((module ...)
|
||||
(let ((f (module->source-file-name module)))
|
||||
(return
|
||||
(cons f (search-path* module-path f))))))
|
||||
modules)))
|
||||
(imported-files files #:name name #:system system
|
||||
(let ((files (map (match-lambda
|
||||
(((module ...) '=> file)
|
||||
(cons (module->source-file-name module)
|
||||
file))
|
||||
((module ...)
|
||||
(let ((f (module->source-file-name module)))
|
||||
(cons f (search-path* module-path f)))))
|
||||
modules)))
|
||||
(imported-files files #:name name
|
||||
#:derivation? derivation?
|
||||
#:system system
|
||||
#:guile guile
|
||||
#:deprecation-warnings deprecation-warnings)))
|
||||
|
||||
(define* (compiled-modules modules
|
||||
#:key (name "module-import-compiled")
|
||||
(derivation? #f) ;TODO: remove on next rebuild
|
||||
(system (%current-system))
|
||||
(guile (%guile-for-build))
|
||||
(module-path %load-path)
|
||||
|
@ -1135,6 +1223,7 @@ they can refer to each other."
|
|||
(not (equal? module-path %load-path))))
|
||||
|
||||
(mlet %store-monad ((modules (imported-modules modules
|
||||
#:derivation? derivation?
|
||||
#:system system
|
||||
#:guile guile
|
||||
#:module-path
|
||||
|
|
|
@ -101,6 +101,7 @@ output port."
|
|||
(open-sha256-md))
|
||||
|
||||
(define digest #f)
|
||||
(define position 0)
|
||||
|
||||
(define (finalize!)
|
||||
(let ((ptr (md-read sha256-md 0)))
|
||||
|
@ -114,14 +115,18 @@ output port."
|
|||
0)
|
||||
(let ((ptr (bytevector->pointer bv offset)))
|
||||
(md-write sha256-md ptr len)
|
||||
(set! position (+ position len))
|
||||
len)))
|
||||
|
||||
(define (get-position)
|
||||
position)
|
||||
|
||||
(define (close)
|
||||
(unless digest
|
||||
(finalize!)))
|
||||
|
||||
(values (make-custom-binary-output-port "sha256"
|
||||
write! #f #f
|
||||
write! get-position #f
|
||||
close)
|
||||
(lambda ()
|
||||
(unless digest
|
||||
|
|
|
@ -51,8 +51,7 @@
|
|||
(define (pypi-fetch name)
|
||||
"Return an alist representation of the PyPI metadata for the package NAME,
|
||||
or #f on failure."
|
||||
(json-fetch-alist (string-append "https://pypi.python.org/pypi/"
|
||||
name "/json")))
|
||||
(json-fetch-alist (string-append "https://pypi.org/pypi/" name "/json")))
|
||||
|
||||
;; For packages found on PyPI that lack a source distribution.
|
||||
(define-condition-type &missing-source-error &error
|
||||
|
@ -87,7 +86,7 @@ package."
|
|||
(string-append "python-" (snake-case name))))
|
||||
|
||||
(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."
|
||||
(define (url->pypi-name url)
|
||||
(hyphen-package-name->name+version
|
||||
|
@ -269,7 +268,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
|
|||
(license ,(license->symbol license)))))))
|
||||
|
||||
(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."
|
||||
(let ((package (pypi-fetch package-name)))
|
||||
(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."
|
||||
|
||||
(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)))
|
||||
|
||||
(let ((source-url (and=> (package-source package) origin-uri))
|
||||
|
|
|
@ -646,6 +646,9 @@ specifies modules in scope when evaluating SNIPPET."
|
|||
|
||||
(let ((name (tarxz-name original-file-name)))
|
||||
(gexp->derivation name build
|
||||
;; TODO: Remove this on the next rebuild cycle.
|
||||
#:import-creates-derivation? #t
|
||||
|
||||
#:graft? #f
|
||||
#:system system
|
||||
#:deprecation-warnings #t ;to avoid a rebuild
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; 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 © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
|
||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||
|
@ -69,7 +68,7 @@
|
|||
(compressor "lzip" ".lz"
|
||||
#~(#+(file-append lzip "/bin/lzip") "-9"))
|
||||
(compressor "xz" ".xz"
|
||||
#~(#+(file-append xz "/bin/xz") "-e -T0"))
|
||||
#~(#+(file-append xz "/bin/xz") "-e"))
|
||||
(compressor "bzip2" ".bz2"
|
||||
#~(#+(file-append bzip2 "/bin/bzip2") "-9"))
|
||||
(compressor "none" "" #f)))
|
||||
|
@ -77,7 +76,7 @@
|
|||
;; This one is only for use in this module, so don't put it in %compressors.
|
||||
(define bootstrap-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)
|
||||
"Return the compressor object called NAME. Error out if it could not be
|
||||
|
|
|
@ -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
|
||||
(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)
|
||||
(let loop ((nodes nodes)
|
||||
(visited (setq))
|
||||
|
@ -166,8 +187,8 @@ must be present in the search path."
|
|||
(closure modules
|
||||
(node-modules/recursive dependencies))))
|
||||
(module-files (map module->import modules))
|
||||
(source (imported-files (string-append name "-source")
|
||||
(append module-files extra-files))))
|
||||
(source (file-mapping (string-append name "-source")
|
||||
(append module-files extra-files))))
|
||||
(node name modules source dependencies
|
||||
(compiled-modules name source
|
||||
(map car module-files)
|
||||
|
@ -766,38 +787,6 @@ assumed to be part of MODULES."
|
|||
;;; 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
|
||||
#:optional
|
||||
(dependencies '())
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
nar-read-error-token
|
||||
|
||||
write-file
|
||||
write-file-tree
|
||||
restore-file))
|
||||
|
||||
;;; Comment:
|
||||
|
@ -211,14 +212,19 @@ substitute invalid byte sequences with question marks. This is a
|
|||
(lambda ()
|
||||
(close-port port))))))
|
||||
|
||||
(write-string "contents" p)
|
||||
(write-long-long size p)
|
||||
(call-with-binary-input-file file
|
||||
;; Use 'sendfile' when P is a file port.
|
||||
(if (file-port? p)
|
||||
(cut sendfile p <> size 0)
|
||||
(cut dump <> p size)))
|
||||
(write-padding size p))
|
||||
(lambda (input)
|
||||
(write-contents-from-port input p size))))
|
||||
|
||||
(define (write-contents-from-port input output size)
|
||||
"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)
|
||||
"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?
|
||||
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."
|
||||
(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)
|
||||
|
||||
(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)
|
||||
(case (stat:type s)
|
||||
((regular)
|
||||
(case type
|
||||
((regular executable)
|
||||
(write-string "type" p)
|
||||
(write-string "regular" p)
|
||||
(if (not (zero? (logand (stat:mode s) #o100)))
|
||||
(begin
|
||||
(write-string "executable" p)
|
||||
(write-string "" p)))
|
||||
(write-contents f p (stat:size s)))
|
||||
(when (eq? 'executable type)
|
||||
(write-string "executable" p)
|
||||
(write-string "" p))
|
||||
(let ((input (file-port f)))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
(write-contents-from-port input p size))
|
||||
(lambda ()
|
||||
(close-port input)))))
|
||||
((directory)
|
||||
(write-string "type" p)
|
||||
(write-string "directory" p)
|
||||
(let ((entries
|
||||
;; '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<?)))
|
||||
(let ((entries (postprocess-entries (directory-entries f))))
|
||||
(for-each (lambda (e)
|
||||
(let* ((f (string-append f "/" e))
|
||||
(s (lstat f)))
|
||||
(when (select? f s)
|
||||
(write-string "entry" p)
|
||||
(write-string "(" p)
|
||||
(write-string "name" p)
|
||||
(write-string e p)
|
||||
(write-string "node" p)
|
||||
(dump f s)
|
||||
(write-string ")" p))))
|
||||
(let* ((f (string-append f "/" e)))
|
||||
(write-string "entry" p)
|
||||
(write-string "(" p)
|
||||
(write-string "name" p)
|
||||
(write-string e p)
|
||||
(write-string "node" p)
|
||||
(dump f)
|
||||
(write-string ")" p)))
|
||||
entries)))
|
||||
((symlink)
|
||||
(write-string "type" p)
|
||||
(write-string "symlink" p)
|
||||
(write-string "target" p)
|
||||
(write-string (readlink f) p))
|
||||
(write-string (symlink-target f) p))
|
||||
(else
|
||||
(raise (condition (&message (message "unsupported file type"))
|
||||
(&nar-error (file f) (port port))))))
|
||||
|
@ -379,4 +451,8 @@ Restore it as FILE."
|
|||
(&message (message "unsupported nar entry type"))
|
||||
(&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
|
||||
|
|
100
guix/store.scm
100
guix/store.scm
|
@ -78,6 +78,7 @@
|
|||
add-data-to-store
|
||||
add-text-to-store
|
||||
add-to-store
|
||||
add-file-tree-to-store
|
||||
binary-file
|
||||
build-things
|
||||
build
|
||||
|
@ -137,6 +138,7 @@
|
|||
set-current-system
|
||||
text-file
|
||||
interned-file
|
||||
interned-file-tree
|
||||
|
||||
%store-prefix
|
||||
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)
|
||||
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
|
||||
(let ((build (operation (build-things (string-list things)
|
||||
(integer mode))
|
||||
|
@ -1402,6 +1499,9 @@ where FILE is the entry's absolute file name and STAT is the result of
|
|||
#:select? select?)
|
||||
store)))
|
||||
|
||||
(define interned-file-tree
|
||||
(store-lift add-file-tree-to-store))
|
||||
|
||||
(define build
|
||||
;; Monadic variant of 'build-things'.
|
||||
(store-lift build-things))
|
||||
|
|
|
@ -190,12 +190,14 @@ Every store item in REFERENCES must already be registered."
|
|||
(define (reset-timestamps file)
|
||||
"Reset the modification time on FILE and on all the files it contains, if
|
||||
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)
|
||||
(type (stat:type (lstat file))))
|
||||
(case type
|
||||
((directory)
|
||||
(chmod file #o555)
|
||||
(utime file 0 0 0 0)
|
||||
(utime file 1 1 0 0)
|
||||
(let ((parent file))
|
||||
(for-each (match-lambda
|
||||
(("." . _) #f)
|
||||
|
@ -209,10 +211,10 @@ it's a directory. While at it, canonicalize file permissions."
|
|||
(type type))))))
|
||||
(scandir* parent))))
|
||||
((symlink)
|
||||
(utime file 0 0 0 0 AT_SYMLINK_NOFOLLOW))
|
||||
(utime file 1 1 0 0 AT_SYMLINK_NOFOLLOW))
|
||||
(else
|
||||
(chmod file (if (executable-file? file) #o555 #o444))
|
||||
(utime file 0 0 0 0)))))
|
||||
(utime file 1 1 0 0)))))
|
||||
|
||||
(define* (register-path path
|
||||
#:key (references '()) deriver prefix
|
||||
|
|
|
@ -31,37 +31,39 @@
|
|||
#:export (nar-sha256
|
||||
deduplicate))
|
||||
|
||||
;; Would it be better to just make WRITE-FILE give size as well? I question
|
||||
;; the general utility of this approach.
|
||||
;; XXX: This port is used as a workaround on Guile <= 2.2.4 where
|
||||
;; '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)
|
||||
"Some custom ports don't implement GET-POSITION at all. But if we want to
|
||||
figure out how many bytes are being written, we will want to use that. So this
|
||||
makes a wrapper around a port which implements GET-POSITION."
|
||||
"Return two values: an output port that wraps OUTPUT-PORT, and a thunk to
|
||||
retrieve the number of bytes written to OUTPUT-PORT."
|
||||
(let ((byte-count 0))
|
||||
(make-custom-binary-output-port "counting-wrapper"
|
||||
(lambda (bytes offset count)
|
||||
(set! byte-count
|
||||
(+ byte-count count))
|
||||
(put-bytevector output-port bytes
|
||||
offset count)
|
||||
count)
|
||||
(lambda ()
|
||||
byte-count)
|
||||
#f
|
||||
(lambda ()
|
||||
(close-port output-port)))))
|
||||
(values (make-custom-binary-output-port "counting-wrapper"
|
||||
(lambda (bytes offset count)
|
||||
(put-bytevector output-port bytes
|
||||
offset count)
|
||||
(set! byte-count
|
||||
(+ byte-count count))
|
||||
count)
|
||||
(lambda ()
|
||||
byte-count)
|
||||
#f
|
||||
(lambda ()
|
||||
(close-port output-port)))
|
||||
(lambda ()
|
||||
byte-count))))
|
||||
|
||||
(define (nar-sha256 file)
|
||||
"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 ((wrapper (counting-wrapper-port port)))
|
||||
(write-file file wrapper)
|
||||
(force-output wrapper)
|
||||
(force-output port)
|
||||
(let ((hash (get-hash))
|
||||
(size (port-position wrapper)))
|
||||
(close-port wrapper)
|
||||
(values hash size)))))
|
||||
(let*-values (((port get-hash) (open-sha256-port))
|
||||
((wrapper get-size) (counting-wrapper-port port)))
|
||||
(write-file file wrapper)
|
||||
(force-output wrapper)
|
||||
(force-output port)
|
||||
(let ((hash (get-hash))
|
||||
(size (get-size)))
|
||||
(close-port wrapper)
|
||||
(values hash size))))
|
||||
|
||||
(define (tempname-in directory)
|
||||
"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
Reference in New Issue