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

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

View File

@ -43,6 +43,7 @@ Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Mathieu Othacehe <m.othacehe@gmail.com>
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>

View File

@ -27,7 +27,7 @@ mailing list. When you get commit access, please make sure to follow the
policy below (discussions of the policy can take place on guix-devel@gnu.org.)
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.

View File

@ -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 \

View File

@ -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

View File

@ -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 \

View File

@ -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+)))

View File

@ -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

View File

@ -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"

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)))

View File

@ -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)))

View File

@ -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)

View File

@ -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")

View File

@ -668,39 +668,32 @@ data on your platform, so the seed itself will be as random as possible.
(license (list license:boost1.0 license:public-domain))))
(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)))

View File

@ -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")

View File

@ -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

View File

@ -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)))

View File

@ -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}.

View File

@ -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

View File

@ -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)))

View File

@ -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

View File

@ -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+)))

View File

@ -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)

View File

@ -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")

View File

@ -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"))

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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"))

View File

@ -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)

View File

@ -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

View File

@ -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.

View File

@ -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))))

View File

@ -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)

View File

@ -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)))

View File

@ -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))

View File

@ -2537,6 +2537,37 @@ ClasspathX project. It provides implementations of version 3.0 of the servlet
API and version 2.1 of the Java ServerPages API.")
(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"

View File

@ -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

View File

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

View File

@ -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

View File

@ -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")

View File

@ -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

View File

@ -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)

View File

@ -428,7 +428,7 @@ artifact and repository handling code.")
("java-eclipse-jetty-server-9.2" ,java-eclipse-jetty-server-9.2)
("java-eclipse-jetty-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

View File

@ -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)

View File

@ -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))))

View File

@ -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

View File

@ -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)))))))

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -548,23 +548,26 @@ interaction.")
(define-public podofo
(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"

View File

@ -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")

View File

@ -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")

View File

@ -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")

View File

@ -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") ""))

View File

@ -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)))

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -5642,6 +5642,26 @@ table made by the command @code{show256Colors()}. You can also set the colors
to any arbitrary string. In this case, it is up to you to set valid values.")
(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")

103
gnu/packages/stb.scm Normal file
View File

@ -0,0 +1,103 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages stb)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module ((guix licenses) #:select (expat public-domain)))
(define stb
;; stb is a collection of libraries developed within the same repository.
;; When updating this, remember to change versions below as appropriate.
(let ((commit "e6afb9cbae4064da8c3e69af3ff5c4629579c1d2")
(revision "0"))
(package
(name "stb")
(home-page "https://github.com/nothings/stb")
(version (git-version "0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit commit)))
(sha256
(base32
"079nsn9bnb8c0vfq26g5l53q6gzx19a5x9q2nb55mpcljxsgxnmf"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
(ice-9 regex)
(srfi srfi-26)
,@%gnu-build-system-modules)
#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'check
(lambda _
(invoke "make" "-C" "tests" "CC=gcc")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(files (make-regexp "\\.(c|h|md)$")))
(for-each (lambda (file)
(install-file file out))
(scandir "." (cut regexp-exec files <>)))
#t))))))
(synopsis "Single file libraries for C/C++")
(description
"This package contains a variety of small independent libraries for
the C programming language.")
;; The user can choose either license.
(license (list expat public-domain)))))
(define (make-stb-header-package name version description)
(package
(inherit stb)
(name name)
(version version)
(source #f)
(inputs `(("stb" ,stb)))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils))
(let ((stb (assoc-ref %build-inputs "stb"))
(lib (string-join (string-split ,name #\-) "_"))
(out (assoc-ref %outputs "out")))
(install-file (string-append stb "/" lib ".h")
(string-append out "/include"))
#t))))
(description description)))
;; TODO: These descriptions are not translatable! They should be
;; converted to macros as outlined in <https://bugs.gnu.org/32155>.
(define-public stb-image
(make-stb-header-package
"stb-image" "2.19"
"stb-image is a small and self-contained library for image loading or
decoding from file or memory. A variety of formats are supported."))
(define-public stb-image-write
(make-stb-header-package
"stb-image-write" "1.09"
"stb-image-write is a small library for writing image files to the
C@tie{}@code{stdio} interface."))

View File

@ -30,16 +30,15 @@
(define-public syncthing
(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"))

View File

@ -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

View File

@ -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)

View File

@ -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"

View File

@ -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)

View File

@ -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")

View File

@ -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)))))

View File

@ -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)

View File

@ -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

View File

@ -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"

View File

@ -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))

View File

@ -298,6 +298,13 @@ You have been warned. Thanks for being so brave.\x1b[0m
`(("/bin/sh" ,(file-append (canonical-package bash)
"/bin/sh"))))
;; 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

View File

@ -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))))

202
guix/build-system/guile.scm Normal file
View File

@ -0,0 +1,202 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix build-system guile)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix search-paths)
#:use-module (guix build-system)
#:use-module (guix build-system gnu)
#:use-module (ice-9 match)
#:use-module (srfi srfi-26)
#:export (%guile-build-system-modules
guile-build-system))
(define %guile-build-system-modules
;; Build-side modules imported by default.
`((guix build guile-build-system)
,@%gnu-build-system-modules))
(define* (lower name
#:key source inputs native-inputs outputs system target
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
;; Note: There's no #:guile argument (unlike, for instance,
;; 'ocaml-build-system' which has #:ocaml.) This is so we can keep
;; procedures like 'package-for-guile-2.0' unchanged and simple.
(define private-keywords
'(#:target #:inputs #:native-inputs))
(bag
(name name)
(system system) (target target)
(host-inputs `(
,@inputs))
(build-inputs `(,@(if source
`(("source" ,source))
'())
,@native-inputs
,@(map (cute assoc <> (standard-packages))
'("tar" "gzip" "bzip2" "xz" "locales"))))
(outputs outputs)
(build (if target guile-cross-build guile-build))
(arguments (strip-keyword-arguments private-keywords arguments))))
(define %compile-flags
;; Flags passed to 'guild compile' by default. We choose a common
;; denominator between Guile 2.0 and 2.2.
''("-Wunbound-variable" "-Warity-mismatch" "-Wformat"))
(define* (guile-build store name inputs
#:key source
(guile #f)
(phases '%standard-phases)
(outputs '("out"))
(search-paths '())
(system (%current-system))
(source-directory ".")
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
(guix build utils))))
"Build SOURCE using Guile taken from the native inputs, and with INPUTS."
(define builder
`(begin
(use-modules ,@modules)
(guile-build #:name ,name
#:source ,(match (assoc-ref inputs "source")
(((? derivation? source))
(derivation->output-path source))
((source)
source)
(source
source))
#:source-directory ,source-directory
#:compile-flags ,compile-flags
#:phases ,phases
#:system ,system
#:outputs %outputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
#:inputs %build-inputs)))
(define guile-for-build
(match guile
((? package?)
(package-derivation store guile system #:graft? #f))
(#f ; the default
(let* ((distro (resolve-interface '(gnu packages commencement)))
(guile (module-ref distro 'guile-final)))
(package-derivation store guile system #:graft? #f)))))
(build-expression->derivation store name builder
#:inputs inputs
#:system system
#:modules imported-modules
#:outputs outputs
#:guile-for-build guile-for-build))
(define* (guile-cross-build store name
#:key
(system (%current-system)) target
native-drvs target-drvs
(guile #f)
source
(outputs '("out"))
(search-paths '())
(native-search-paths '())
(phases '%standard-phases)
(source-directory ".")
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
(guix build utils))))
(define builder
`(begin
(use-modules ,@modules)
(let ()
(define %build-host-inputs
',(map (match-lambda
((name (? derivation? drv) sub ...)
`(,name . ,(apply derivation->output-path drv sub)))
((name path)
`(,name . ,path)))
native-drvs))
(define %build-target-inputs
',(map (match-lambda
((name (? derivation? drv) sub ...)
`(,name . ,(apply derivation->output-path drv sub)))
((name (? package? pkg) sub ...)
(let ((drv (package-cross-derivation store pkg
target system)))
`(,name . ,(apply derivation->output-path drv sub))))
((name path)
`(,name . ,path)))
target-drvs))
(guile-build #:source ,(match (assoc-ref native-drvs "source")
(((? derivation? source))
(derivation->output-path source))
((source)
source)
(source
source))
#:system ,system
#:target ,target
#:outputs %outputs
#:source-directory ,source-directory
#:compile-flags ,compile-flags
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
#:search-paths ',(map search-path-specification->sexp
search-paths)
#:native-search-paths ',(map
search-path-specification->sexp
native-search-paths)
#:phases ,phases))))
(define guile-for-build
(match guile
((? package?)
(package-derivation store guile system #:graft? #f))
(#f ; the default
(let* ((distro (resolve-interface '(gnu packages commencement)))
(guile (module-ref distro 'guile-final)))
(package-derivation store guile system #:graft? #f)))))
(build-expression->derivation store name builder
#:system system
#:inputs (append native-drvs target-drvs)
#:outputs outputs
#:modules imported-modules
#:substitutable? substitutable?
#:guile-for-build guile-for-build))
(define guile-build-system
(build-system
(name 'guile)
(description "The build system for simple Guile packages")
(lower lower)))

View File

@ -125,17 +125,17 @@ unset. When SOURCE is a directory, copy it instead of unpacking."
(copy-recursively source dest #:keep-mtime? #t)
#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

View File

@ -0,0 +1,153 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix build guile-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim)
#:use-module (guix build utils)
#:export (target-guile-effective-version
%standard-phases
guile-build))
(define* (target-guile-effective-version #:optional guile)
"Return the effective version of GUILE or whichever 'guile' is in $PATH.
Return #false if it cannot be determined."
(let* ((pipe (open-pipe* OPEN_READ
(if guile
(string-append guile "/bin/guile")
"guile")
"-c" "(display (effective-version))"))
(line (read-line pipe)))
(and (zero? (close-pipe pipe))
(string? line)
line)))
(define (file-sans-extension file) ;TODO: factorize
"Return the substring of FILE without its extension, if any."
(let ((dot (string-rindex file #\.)))
(if dot
(substring file 0 dot)
file)))
(define %scheme-file-regexp
;; Regexp to match Scheme files.
"\\.(scm|sls)$")
(define %documentation-file-regexp
;; Regexp to match README files and the likes.
"^(README.*|.*\\.html|.*\\.org|.*\\.md)$")
(define* (set-locale-path #:key inputs native-inputs
#:allow-other-keys)
"Set 'GUIX_LOCPATH'."
(match (assoc-ref (or native-inputs inputs) "locales")
(#f #t)
(locales
(setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
#t)))
(define* (build #:key outputs inputs native-inputs
(source-directory ".")
(compile-flags '())
(scheme-file-regexp %scheme-file-regexp)
target
#:allow-other-keys)
"Build files in SOURCE-DIRECTORY that match SCHEME-FILE-REGEXP."
(let* ((out (assoc-ref outputs "out"))
(guile (assoc-ref (or native-inputs inputs) "guile"))
(effective (target-guile-effective-version guile))
(module-dir (string-append out "/share/guile/site/"
effective))
(go-dir (string-append out "/lib/guile/"
effective "/site-ccache/"))
(guild (string-append guile "/bin/guild"))
(flags (if target
(cons (string-append "--target=" target)
compile-flags)
compile-flags)))
(if target
(format #t "Cross-compiling for '~a' with Guile ~a...~%"
target effective)
(format #t "Compiling with Guile ~a...~%" effective))
(format #t "compile flags: ~s~%" flags)
;; Make installation directories.
(mkdir-p module-dir)
(mkdir-p go-dir)
;; Compile .scm files and install.
(setenv "GUILE_AUTO_COMPILE" "0")
(setenv "GUILE_LOAD_COMPILED_PATH"
(string-append go-dir
(match (getenv "GUILE_LOAD_COMPILED_PATH")
(#f "")
(path (string-append ":" path)))))
(for-each (lambda (file)
(let* ((go (string-append go-dir
(file-sans-extension file)
".go")))
;; Install source module.
(install-file (string-append source-directory "/" file)
(string-append module-dir
"/" (dirname file)))
;; Install and compile module.
(apply invoke guild "compile" "-L" source-directory
"-o" go
(string-append source-directory "/" file)
flags)))
;; Arrange to strip SOURCE-DIRECTORY from file names.
(with-directory-excursion source-directory
(find-files "." scheme-file-regexp)))
#t))
(define* (install-documentation #:key outputs
(documentation-file-regexp
%documentation-file-regexp)
#:allow-other-keys)
"Install files that mactch DOCUMENTATION-FILE-REGEXP."
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/"
(strip-store-file-name out))))
(for-each (cut install-file <> doc)
(find-files "." documentation-file-regexp))
#t))
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'install-locale 'set-locale-path
set-locale-path)
(replace 'build build)
(add-after 'build 'install-documentation
install-documentation)
(delete 'check)
(delete 'strip)
(delete 'validate-runpath)
(delete 'install)))
(define* (guile-build #:key (phases %standard-phases)
#:allow-other-keys #:rest args)
"Build the given Guile package, applying all of PHASES in order."
(apply gnu:gnu-build #:phases phases args))

View File

@ -52,18 +52,19 @@ directory."
(define* (unpack #:key source #:allow-other-keys)
"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")))

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -112,6 +112,27 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches."
(dependencies node-dependencies) ;list of nodes
(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 '())

View File

@ -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

View File

@ -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))

View File

@ -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

View File

@ -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