me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into core-updates

master
Mark H Weaver 2017-06-18 02:36:51 -04:00
commit 9d4385634d
No known key found for this signature in database
GPG Key ID: 7CEF29847562C516
106 changed files with 4333 additions and 1190 deletions

View File

@ -42,14 +42,15 @@ Mathieu Lirzin <mthl@gnu.org> <mthl@openmailbox.org>
Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org> Mathieu Lirzin <mthl@gnu.org> <mathieu.lirzin@openmailbox.org>
Mathieu Othacehe <m.othacehe@gmail.com> Mathieu Othacehe <m.othacehe@gmail.com>
Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com> Nikita Karetnikov <nikita@karetnikov.org> <nikita.karetnikov@gmail.com>
ng0 <ng0@no-reply.pragmatique.xyz> ng0 <ng0@no-reply.infotropique.org>
ng0 <ng0@no-reply.pragmatique.xyz> <ng0@pragmatique.xyz> ng0 <ng0@no-reply.infotropique.org> <ng0@no-reply.pragmatique.xyz>
ng0 <ng0@no-reply.pragmatique.xyz> <contact.ng0@cryptolab.net> ng0 <ng0@no-reply.infotropique.org> <ng0@pragmatique.xyz>
ng0 <ng0@no-reply.pragmatique.xyz> <ng0@we.make.ritual.n0.is> ng0 <ng0@no-reply.infotropique.org> <contact.ng0@cryptolab.net>
ng0 <ng0@no-reply.pragmatique.xyz> <ngillmann@runbox.com> ng0 <ng0@no-reply.infotropique.org> <ng0@we.make.ritual.n0.is>
ng0 <ng0@no-reply.pragmatique.xyz> <niasterisk@grrlz.net> ng0 <ng0@no-reply.infotropique.org> <ngillmann@runbox.com>
ng0 <ng0@no-reply.pragmatique.xyz> <ng@niasterisk.space> ng0 <ng0@no-reply.infotropique.org> <niasterisk@grrlz.net>
ng0 <ng0@no-reply.pragmatique.xyz> <ng0@libertad.pw> ng0 <ng0@no-reply.infotropique.org> <ng@niasterisk.space>
ng0 <ng0@no-reply.infotropique.org> <ng0@libertad.pw>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public01@thebird.nl>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@thebird.nl> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@thebird.nl>
Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@email> Pjotr Prins <pjotr.guix@thebird.nl> <pjotr.public12@email>

View File

@ -6,6 +6,7 @@
# Copyright © 2016, 2017 Mark H Weaver <mhw@netris.org> # Copyright © 2016, 2017 Mark H Weaver <mhw@netris.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name> # Copyright © 2017 Leo Famulari <leo@famulari.name>
# Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
# #
# This file is part of GNU Guix. # This file is part of GNU Guix.
# #
@ -87,6 +88,7 @@ MODULES = \
guix/build-system/waf.scm \ guix/build-system/waf.scm \
guix/build-system/r.scm \ guix/build-system/r.scm \
guix/build-system/ruby.scm \ guix/build-system/ruby.scm \
guix/build-system/texlive.scm \
guix/build-system/trivial.scm \ guix/build-system/trivial.scm \
guix/ftp-client.scm \ guix/ftp-client.scm \
guix/http-client.scm \ guix/http-client.scm \
@ -114,6 +116,7 @@ MODULES = \
guix/build/ocaml-build-system.scm \ guix/build/ocaml-build-system.scm \
guix/build/r-build-system.scm \ guix/build/r-build-system.scm \
guix/build/ruby-build-system.scm \ guix/build/ruby-build-system.scm \
guix/build/texlive-build-system.scm \
guix/build/waf-build-system.scm \ guix/build/waf-build-system.scm \
guix/build/haskell-build-system.scm \ guix/build/haskell-build-system.scm \
guix/build/store-copy.scm \ guix/build/store-copy.scm \
@ -142,6 +145,7 @@ MODULES = \
guix/import/cran.scm \ guix/import/cran.scm \
guix/import/hackage.scm \ guix/import/hackage.scm \
guix/import/elpa.scm \ guix/import/elpa.scm \
guix/import/texlive.scm \
guix/scripts.scm \ guix/scripts.scm \
guix/scripts/download.scm \ guix/scripts/download.scm \
guix/scripts/perform-download.scm \ guix/scripts/perform-download.scm \
@ -164,6 +168,7 @@ MODULES = \
guix/scripts/import/nix.scm \ guix/scripts/import/nix.scm \
guix/scripts/import/hackage.scm \ guix/scripts/import/hackage.scm \
guix/scripts/import/elpa.scm \ guix/scripts/import/elpa.scm \
guix/scripts/import/texlive.scm \
guix/scripts/environment.scm \ guix/scripts/environment.scm \
guix/scripts/publish.scm \ guix/scripts/publish.scm \
guix/scripts/edit.scm \ guix/scripts/edit.scm \
@ -300,6 +305,7 @@ SCM_TESTS = \
tests/hackage.scm \ tests/hackage.scm \
tests/cran.scm \ tests/cran.scm \
tests/elpa.scm \ tests/elpa.scm \
tests/texlive.scm \
tests/store.scm \ tests/store.scm \
tests/monads.scm \ tests/monads.scm \
tests/gexp.scm \ tests/gexp.scm \

View File

@ -245,7 +245,11 @@ valid."
(cond ((member package base-packages) (cond ((member package base-packages)
#f) #f)
((supported-package? package system) ((supported-package? package system)
(package-job store (job-name package) package system)) (let ((drv (package-derivation store package system
#:graft? #f)))
(and (substitutable-derivation? drv)
(package-job store (job-name package)
package system))))
(else (else
#f))))) #f)))))

View File

@ -21,7 +21,7 @@ Copyright @copyright{} 2015, 2016 Mathieu Lirzin@*
Copyright @copyright{} 2014 Pierre-Antoine Rault@* Copyright @copyright{} 2014 Pierre-Antoine Rault@*
Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@* Copyright @copyright{} 2015 Taylan Ulrich Bayırlı/Kammer@*
Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@* Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@*
Copyright @copyright{} 2015, 2016 Ricardo Wurmus@* Copyright @copyright{} 2015, 2016, 2017 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@* Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016 Chris Marusich@* Copyright @copyright{} 2016 Chris Marusich@*
Copyright @copyright{} 2016, 2017 Efraim Flashner@* Copyright @copyright{} 2016, 2017 Efraim Flashner@*
@ -1441,6 +1441,30 @@ some reason, you want to avoid auto-loading Emacs packages installed
with Guix, you can do so by running Emacs with @code{--no-site-file} with Guix, you can do so by running Emacs with @code{--no-site-file}
option (@pxref{Init File,,, emacs, The GNU Emacs Manual}). option (@pxref{Init File,,, emacs, The GNU Emacs Manual}).
@subsection The GCC toolchain
@cindex GCC
@cindex ld-wrapper
Guix offers individual compiler packages such as @code{gcc} but if you
are in need of a complete toolchain for compiling and linking source
code what you really want is the @code{gcc-toolchain} package. This
package provides a complete GCC toolchain for C/C++ development,
including GCC itself, the GNU C Library (headers and binaries, plus
debugging symbols in the @code{debug} output), Binutils, and a linker
wrapper.
@cindex attempt to use impure library, error message
The wrapper's purpose is to inspect the @code{-L} and @code{-l} switches
passed to the linker, add corresponding @code{-rpath} arguments, and
invoke the actual linker with this new set of arguments. By default,
the linker wrapper refuses to link to libraries outside the store to
ensure ``purity''. This can be annoying when using the toolchain to
link with local libraries. To allow references to libraries outside the
store you need to define the environment variable
@code{GUIX_LD_WRAPPER_ALLOW_IMPURITIES}.
@c TODO What else? @c TODO What else?
@c ********************************************************************* @c *********************************************************************
@ -1742,18 +1766,17 @@ of packages:
(list guile-2.0 "debug"))) (list guile-2.0 "debug")))
@end example @end example
@findex specification->package+output @findex specifications->manifest
In this example we have to know which modules define the @code{emacs} In this example we have to know which modules define the @code{emacs}
and @code{guile-2.0} variables to provide the right and @code{guile-2.0} variables to provide the right
@code{use-package-modules} line, which can be cumbersome. We can @code{use-package-modules} line, which can be cumbersome. We can
instead provide regular package specifications and let instead provide regular package specifications and let
@code{specification->package-output} look up the corresponding package @code{specifications->manifest} look up the corresponding package
objects, like this: objects, like this:
@example @example
(packages->manifest (specifications->manifest
(map (compose list specification->package+output) '("emacs" "guile@@2.2" "guile@@2.2:debug"))
'("emacs" "guile@@2.0" "guile@@2.0:debug")))
@end example @end example
@item --roll-back @item --roll-back
@ -1855,7 +1878,7 @@ availability of packages:
@itemx -s @var{regexp} @itemx -s @var{regexp}
@cindex searching for packages @cindex searching for packages
List the available packages whose name, synopsis, or description matches List the available packages whose name, synopsis, or description matches
@var{regexp}. Print all the metadata of matching packages in @var{regexp}, sorted by relevance. Print all the metadata of matching packages in
@code{recutils} format (@pxref{Top, GNU recutils databases,, recutils, @code{recutils} format (@pxref{Top, GNU recutils databases,, recutils,
GNU recutils manual}). GNU recutils manual}).
@ -1863,12 +1886,18 @@ This allows specific fields to be extracted using the @command{recsel}
command, for instance: command, for instance:
@example @example
$ guix package -s malloc | recsel -p name,version $ guix package -s malloc | recsel -p name,version,relevance
name: jemalloc
version: 4.5.0
relevance: 6
name: glibc name: glibc
version: 2.17 version: 2.25
relevance: 1
name: libgc name: libgc
version: 7.2alpha6 version: 7.6.0
relevance: 1
@end example @end example
Similarly, to show the name of all the packages available under the Similarly, to show the name of all the packages available under the
@ -3575,6 +3604,25 @@ are run after installation using the R function
@code{tools::testInstalledPackage}. @code{tools::testInstalledPackage}.
@end defvr @end defvr
@defvr {Scheme Variable} texlive-build-system
This variable is exported by @code{(guix build-system texlive)}. It is
used to build TeX packages in batch mode with a specified engine. The
build system sets the @code{TEXINPUTS} variable to find all TeX source
files in the inputs.
By default it runs @code{luatex} on all files ending on @code{ins}. A
different engine and format can be specified with the
@code{#:tex-format} argument. Different build targets can be specified
with the @code{#:build-targets} argument, which expects a list of file
names. The build system adds only @code{texlive-bin} and
@code{texlive-latex-base} (both from @code{(gnu packages tex}) to the
inputs. Both can be overridden with the arguments @code{#:texlive-bin}
and @code{#:texlive-latex-base}, respectively.
The @code{#:tex-directory} parameter tells the build system where to
install the built files under the texmf tree.
@end defvr
@defvr {Scheme Variable} ruby-build-system @defvr {Scheme Variable} ruby-build-system
This variable is exported by @code{(guix build-system ruby)}. It This variable is exported by @code{(guix build-system ruby)}. It
implements the RubyGems build procedure used by Ruby packages, which implements the RubyGems build procedure used by Ruby packages, which
@ -5647,6 +5695,38 @@ R package:
guix import cran --archive=bioconductor GenomicRanges guix import cran --archive=bioconductor GenomicRanges
@end example @end example
@item texlive
@cindex TeX Live
@cindex CTAN
Import metadata from @uref{http://www.ctan.org/, CTAN}, the
comprehensive TeX archive network for TeX packages that are part of the
@uref{https://www.tug.org/texlive/, TeX Live distribution}.
Information about the package is obtained through the XML API provided
by CTAN, while the source code is downloaded from the SVN repository of
the Tex Live project. This is done because the CTAN does not keep
versioned archives.
The command command below imports metadata for the @code{fontspec}
TeX package:
@example
guix import texlive fontspec
@end example
When @code{--archive=DIRECTORY} is added, the source code is downloaded
not from the @file{latex} sub-directory of the @file{texmf-dist/source}
tree in the TeX Live SVN repository, but from the specified sibling
directory under the same root.
The command below imports metadata for the @code{ifxetex} package from
CTAN while fetching the sources from the directory
@file{texmf/source/generic}:
@example
guix import texlive --archive=generic ifxetex
@end example
@item nix @item nix
Import metadata from a local copy of the source of the Import metadata from a local copy of the source of the
@uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This @uref{http://nixos.org/nixpkgs/, Nixpkgs distribution}@footnote{This
@ -7716,10 +7796,11 @@ Create a disk image that will hold the installed system. To make a
qcow2-formatted disk image, use the @command{qemu-img} command: qcow2-formatted disk image, use the @command{qemu-img} command:
@example @example
qemu-img create -f qcow2 guixsd.img 5G qemu-img create -f qcow2 guixsd.img 50G
@end example @end example
This will create a 5GB file. The resulting file will be much smaller than 50 GB (typically less than
1 MB), but it will grow as the virtualized storage device is filled up.
@item @item
Boot the USB installation image in an VM: Boot the USB installation image in an VM:
@ -9544,7 +9625,7 @@ services admin)} module provides an interface to GNU@tie{}Rot[t]log, a
log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}). log rotation tool (@pxref{Top,,, rottlog, GNU Rot[t]log Manual}).
The example below defines an operating system that provides log rotation The example below defines an operating system that provides log rotation
with the default settings. with the default settings, for commonly encountered log files.
@lisp @lisp
(use-modules (guix) (gnu)) (use-modules (guix) (gnu))
@ -9562,6 +9643,9 @@ with the default settings.
This is the type of the Rottlog service, whose value is a This is the type of the Rottlog service, whose value is a
@code{rottlog-configuration} object. @code{rottlog-configuration} object.
Other services can extend this one with new @code{log-rotation} objects
(see below), thereby augmenting the set of files to be rotated.
This service type can define mcron jobs (@pxref{Scheduled Job This service type can define mcron jobs (@pxref{Scheduled Job
Execution}) to run the rottlog service. Execution}) to run the rottlog service.
@end defvr @end defvr
@ -9577,23 +9661,8 @@ The Rottlog package to use.
The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,, The Rottlog configuration file to use (@pxref{Mandatory RC Variables,,,
rottlog, GNU Rot[t]log Manual}). rottlog, GNU Rot[t]log Manual}).
@item @code{periodic-rotations} (default: @code{`(("weekly" %default-rotations))}) @item @code{rotations} (default: @code{%default-rotations})
A list of Rottlog period-name/period-config tuples. A list of @code{log-rotation} objects as defined below.
For example, taking an example from the Rottlog manual (@pxref{Period
Related File Examples,,, rottlog, GNU Rot[t]log Manual}), a valid tuple
might be:
@example
("daily" ,(plain-file "daily"
"\
/var/log/apache/* @{
storedir apache-archives
rotate 6
notifempty
nocompress
@}"))
@end example
@item @code{jobs} @item @code{jobs}
This is a list of gexps where each gexp corresponds to an mcron job This is a list of gexps where each gexp corresponds to an mcron job
@ -9601,9 +9670,44 @@ specification (@pxref{Scheduled Job Execution}).
@end table @end table
@end deftp @end deftp
@deftp {Data Type} log-rotation
Data type representing the rotation of a group of log files.
Taking an example from the Rottlog manual (@pxref{Period Related File
Examples,,, rottlog, GNU Rot[t]log Manual}), a log rotation might be
defined like this:
@example
(log-rotation
(frequency 'daily)
(files '("/var/log/apache/*"))
(options '("storedir apache-archives"
"rotate 6"
"notifempty"
"nocompress")))
@end example
The list of fields is as follows:
@table @asis
@item @code{frequency} (default: @code{'weekly})
The log rotation frequency, a symbol.
@item @code{files}
The list of files or file glob patterns to rotate.
@item @code{options} (default: @code{'()})
The list of rottlog options for this rotation (@pxref{Configuration
parameters,,, rottlog, GNU Rot[t]lg Manual}).
@item @code{post-rotate} (default: @code{#f})
Either @code{#f} or a gexp to execute once the rotation has completed.
@end table
@end deftp
@defvr {Scheme Variable} %default-rotations @defvr {Scheme Variable} %default-rotations
Specifies weekly rotation of @var{%rotated-files} and Specifies weekly rotation of @var{%rotated-files} and
@code{"/var/log/shepherd.log"}. a couple of other files.
@end defvr @end defvr
@defvr {Scheme Variable} %rotated-files @defvr {Scheme Variable} %rotated-files

View File

@ -419,6 +419,10 @@ warning and #f as the result."
#f) #f)
((= ENOMEDIUM errno) ;for removable media ((= ENOMEDIUM errno) ;for removable media
#f) #f)
((= EIO errno) ;unreadable hardware like audio CDs
(format (current-error-port)
"warning: failed to read from device '~a'~%" device)
#f)
(else (else
(apply throw args)))))))) (apply throw args))))))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +25,7 @@
#:export (marionette? #:export (marionette?
make-marionette make-marionette
marionette-eval marionette-eval
wait-for-file
marionette-control marionette-control
marionette-screen-text marionette-screen-text
wait-for-screen-text wait-for-screen-text
@ -164,6 +165,20 @@ QEMU monitor and to the guest's backdoor REPL."
(newline repl) (newline repl)
(read repl)))) (read repl))))
(define* (wait-for-file file marionette #:key (timeout 10))
"Wait until FILE exists in MARIONETTE; 'read' its content and return it. If
FILE has not shown up after TIMEOUT seconds, raise an error."
(marionette-eval
`(let loop ((i ,timeout))
(cond ((file-exists? ,file)
(call-with-input-file ,file read))
((> i 0)
(sleep 1)
(loop (- i 1)))
(else
(error "file didn't show up" ,file))))
marionette))
(define (marionette-control command marionette) (define (marionette-control command marionette)
"Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as "Run COMMAND in the QEMU monitor of MARIONETTE. COMMAND is a string such as
\"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc) \"sendkey ctrl-alt-f1\" or \"screendump foo.ppm\" (info \"(qemu-doc)

View File

@ -548,6 +548,7 @@ dist_patch_DATA = \
%D%/packages/patches/cpufrequtils-fix-aclocal.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \
%D%/packages/patches/cracklib-CVE-2016-6318.patch \ %D%/packages/patches/cracklib-CVE-2016-6318.patch \
%D%/packages/patches/cracklib-fix-buffer-overflow.patch \ %D%/packages/patches/cracklib-fix-buffer-overflow.patch \
%D%/packages/patches/crawl-upgrade-saves.patch \
%D%/packages/patches/crda-optional-gcrypt.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \
%D%/packages/patches/crossmap-allow-system-pysam.patch \ %D%/packages/patches/crossmap-allow-system-pysam.patch \
%D%/packages/patches/csound-header-ordering.patch \ %D%/packages/patches/csound-header-ordering.patch \
@ -600,6 +601,7 @@ dist_patch_DATA = \
%D%/packages/patches/gcc-cross-environment-variables.patch \ %D%/packages/patches/gcc-cross-environment-variables.patch \
%D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \
%D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-strmov-store-file-names.patch \
%D%/packages/patches/gcc-4.6-gnu-inline.patch \
%D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \ %D%/packages/patches/gcc-4.9.3-mingw-gthr-default.patch \
%D%/packages/patches/gcc-5.0-libvtv-runpath.patch \ %D%/packages/patches/gcc-5.0-libvtv-runpath.patch \
%D%/packages/patches/gcc-5-source-date-epoch-1.patch \ %D%/packages/patches/gcc-5-source-date-epoch-1.patch \
@ -647,8 +649,9 @@ dist_patch_DATA = \
%D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-present-coding.patch \
%D%/packages/patches/guile-relocatable.patch \ %D%/packages/patches/guile-relocatable.patch \
%D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \
%D%/packages/patches/guile-ssh-rexec-bug.patch \ gnu/packages/patches/guile-ssh-channel-finalization.patch \
%D%/packages/patches/guile-ssh-double-free.patch \ %D%/packages/patches/guile-ssh-double-free.patch \
%D%/packages/patches/guile-ssh-rexec-bug.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
%D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \
%D%/packages/patches/gtk2-theme-paths.patch \ %D%/packages/patches/gtk2-theme-paths.patch \
@ -721,7 +724,6 @@ dist_patch_DATA = \
%D%/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch \ %D%/packages/patches/libevent-2.0-evbuffer-add-use-last-with-datap.patch \
%D%/packages/patches/libevent-2.1-dns-tests.patch \ %D%/packages/patches/libevent-2.1-dns-tests.patch \
%D%/packages/patches/libevent-2.1-skip-failing-test.patch \ %D%/packages/patches/libevent-2.1-skip-failing-test.patch \
%D%/packages/patches/libextractor-ffmpeg-3.patch \
%D%/packages/patches/libgit2-0.25.1-mtime-0.patch \ %D%/packages/patches/libgit2-0.25.1-mtime-0.patch \
%D%/packages/patches/libgdata-fix-tests.patch \ %D%/packages/patches/libgdata-fix-tests.patch \
%D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \
@ -736,6 +738,7 @@ dist_patch_DATA = \
%D%/packages/patches/libmad-armv7-thumb-pt2.patch \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \
%D%/packages/patches/libmad-frame-length.patch \ %D%/packages/patches/libmad-frame-length.patch \
%D%/packages/patches/libmad-mips-newgcc.patch \ %D%/packages/patches/libmad-mips-newgcc.patch \
%D%/packages/patches/libmwaw-CVE-2017-9433.patch \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \
@ -828,7 +831,6 @@ dist_patch_DATA = \
%D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/ninja-zero-mtime.patch \ %D%/packages/patches/ninja-zero-mtime.patch \
%D%/packages/patches/node-9077.patch \ %D%/packages/patches/node-9077.patch \
%D%/packages/patches/nss-disable-long-b64-tests.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \ %D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-pkgconfig.patch \ %D%/packages/patches/nss-pkgconfig.patch \
%D%/packages/patches/ntfs-3g-CVE-2017-0358.patch \ %D%/packages/patches/ntfs-3g-CVE-2017-0358.patch \
@ -852,6 +854,7 @@ dist_patch_DATA = \
%D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \ %D%/packages/patches/openssl-1.1.0-c-rehash-in.patch \
%D%/packages/patches/openssl-c-rehash-in.patch \ %D%/packages/patches/openssl-c-rehash-in.patch \
%D%/packages/patches/orpheus-cast-errors-and-includes.patch \ %D%/packages/patches/orpheus-cast-errors-and-includes.patch \
%D%/packages/patches/osip-CVE-2017-7853.patch \
%D%/packages/patches/ots-no-include-missing-file.patch \ %D%/packages/patches/ots-no-include-missing-file.patch \
%D%/packages/patches/p7zip-CVE-2016-9296.patch \ %D%/packages/patches/p7zip-CVE-2016-9296.patch \
%D%/packages/patches/p7zip-remove-unused-code.patch \ %D%/packages/patches/p7zip-remove-unused-code.patch \
@ -1058,7 +1061,13 @@ dist_patch_DATA = \
%D%/packages/patches/xinetd-CVE-2013-4342.patch \ %D%/packages/patches/xinetd-CVE-2013-4342.patch \
%D%/packages/patches/xmodmap-asprintf.patch \ %D%/packages/patches/xmodmap-asprintf.patch \
%D%/packages/patches/libyaml-CVE-2014-9130.patch \ %D%/packages/patches/libyaml-CVE-2014-9130.patch \
%D%/packages/patches/zathura-plugindir-environment-variable.patch %D%/packages/patches/zathura-plugindir-environment-variable.patch \
%D%/packages/patches/zziplib-CVE-2017-5974.patch \
%D%/packages/patches/zziplib-CVE-2017-5975.patch \
%D%/packages/patches/zziplib-CVE-2017-5976.patch \
%D%/packages/patches/zziplib-CVE-2017-5978.patch \
%D%/packages/patches/zziplib-CVE-2017-5979.patch \
%D%/packages/patches/zziplib-CVE-2017-5981.patch
MISC_DISTRO_FILES = \ MISC_DISTRO_FILES = \
%D%/packages/ld-wrapper.in %D%/packages/ld-wrapper.in

View File

@ -29,6 +29,7 @@
#:use-module ((guix build utils) #:use-module ((guix build utils)
#:select ((package-name->name+version #:select ((package-name->name+version
. hyphen-separated-name->name+version))) . hyphen-separated-name->name+version)))
#:autoload (guix profiles) (packages->manifest)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -53,7 +54,8 @@
find-newest-available-packages find-newest-available-packages
specification->package specification->package
specification->package+output)) specification->package+output
specifications->manifest))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -278,3 +280,11 @@ version; if SPEC does not specify an output, return OUTPUT."
(leave (G_ "package `~a' lacks output `~a'~%") (leave (G_ "package `~a' lacks output `~a'~%")
(package-full-name package) (package-full-name package)
sub-drv)))))) sub-drv))))))
(define (specifications->manifest specs)
"Given SPECS, a list of specifications such as \"emacs@25.2\" or
\"guile:debug\", return a profile manifest."
;; This procedure exists mostly so users of 'guix package -m' don't have to
;; fiddle with multiple-value returns.
(packages->manifest
(map (compose list specification->package+output) specs)))

View File

@ -50,7 +50,7 @@
(origin (origin
(method url-fetch) (method url-fetch)
(uri (uri
(string-append "http://abisource.org/downloads/" name "/" version (string-append "https://www.abisource.com/downloads/" name "/" version
"/source/" name "-" version ".tar.gz")) "/source/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg")) (base32 "08imry821g81apdwym3gcs4nss0l9j5blqk31j5rv602zmcd9gxg"))
@ -111,7 +111,7 @@
("glib:bin" ,glib "bin") ("glib:bin" ,glib "bin")
("libtool" ,libtool) ("libtool" ,libtool)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(home-page "http://abisource.org/") (home-page "https://www.abisource.com/")
(synopsis "Word processing program") (synopsis "Word processing program")
;; HACKERS: The comment below is here so that it shows up early in the ;; HACKERS: The comment below is here so that it shows up early in the

View File

@ -1359,14 +1359,14 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible (define-public ansible
(package (package
(name "ansible") (name "ansible")
(version "2.3.0.0") (version "2.3.1.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "ansible" version)) (uri (pypi-uri "ansible" version))
(sha256 (sha256
(base32 (base32
"0n54h8g6a6hcp41sasvjqa4yz1pwd8mshbwlcghj0sjnrl3kk7r9")))) "1xdr82fy8gahxh3586wm5k1bxksys7yl1f2n24shrk8gf99qyjyd"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python2-pycrypto" ,python2-pycrypto) `(("python2-pycrypto" ,python2-pycrypto)
@ -1582,14 +1582,14 @@ done with the @code{auditctl} utility.")
(define-public nmap (define-public nmap
(package (package
(name "nmap") (name "nmap")
(version "7.40") (version "7.50")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://nmap.org/dist/nmap-" version (uri (string-append "https://nmap.org/dist/nmap-" version
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"121i9mgyc28ra2825akd0ix5qyssv4xc2qlx296mam6hzxgnc54y")) "1ckl2qxqxkrfa2qxdrqyaa4k1hhj273aqckrc46fijdz0a76mag9"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(map delete-file-recursively '(map delete-file-recursively
@ -1701,7 +1701,7 @@ throughput (in the same interval).")
(define-public thefuck (define-public thefuck
(package (package
(name "thefuck") (name "thefuck")
(version "3.16") (version "3.18")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/nvbn/thefuck/archive/" (uri (string-append "https://github.com/nvbn/thefuck/archive/"
@ -1709,7 +1709,7 @@ throughput (in the same interval).")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0jrhfxmj2asx4jdix9ks3fpl364ph8w9prhwpk4488aj1a0q4rak")) "1xsvkqh89rgxq5w03mnlcfkn9y39nfwhb2pjabjspcc2mi2mq5y6"))
(patches (search-patches "thefuck-test-environ.patch")))) (patches (search-patches "thefuck-test-environ.patch"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments

View File

@ -117,7 +117,7 @@ programs for the manipulation and analysis of astronomical data.")
(define-public stellarium (define-public stellarium
(package (package
(name "stellarium") (name "stellarium")
(version "0.15.1") (version "0.15.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/stellarium/" (uri (string-append "mirror://sourceforge/stellarium/"
@ -125,7 +125,7 @@ programs for the manipulation and analysis of astronomical data.")
version "/stellarium-" version ".tar.gz")) version "/stellarium-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"04avigz8i8mi2x6x71bqr9np85n1p9qnvbj2hxr947f1jv22zr8g")))) "19nxj482g1hh9qicgskpcgy61pri254jgxnkd10icxbnza4c0hv9"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)
@ -141,6 +141,14 @@ programs for the manipulation and analysis of astronomical data.")
(arguments (arguments
`(#:test-target "tests" `(#:test-target "tests"
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-version-check
(lambda _
;; Previously-deprecated cmake variable vanished in
;; Qt 5.9.
;; See <https://bugreports.qt.io/browse/QTBUG-60936>.
(substitute* "CMakeLists.txt"
(("Qt5Core_VERSION_STRING") "Qt5Core_VERSION"))
#t))
(add-before 'check 'set-offscreen-display (add-before 'check 'set-offscreen-display
(lambda _ (lambda _
;; make Qt render "offscreen", required for tests ;; make Qt render "offscreen", required for tests

View File

@ -118,7 +118,7 @@ spying and/or modification by the server.")
(define-public par2cmdline (define-public par2cmdline
(package (package
(name "par2cmdline") (name "par2cmdline")
(version "0.7.1") (version "0.7.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/Parchive/par2cmdline/archive/v" (uri (string-append "https://github.com/Parchive/par2cmdline/archive/v"
@ -126,7 +126,7 @@ spying and/or modification by the server.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0b2m90jmxm37zpvwcmhshdznnh3l5g5ahdx459a9ckgsxy77jkl9")))) "0rsrca7903g08zrifv4102gkxrhmzvgwd1sb6vw9pa00qhzsfkzs"))))
(native-inputs (native-inputs
`(("automake" ,automake) `(("automake" ,automake)
("autoconf" ,autoconf))) ("autoconf" ,autoconf)))

View File

@ -97,7 +97,8 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages zip) #:use-module (gnu packages zip)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public r-ape (define-public r-ape
(package (package
@ -2094,7 +2095,7 @@ identify enrichments with functional annotations of the genome.")
(define-public diamond (define-public diamond
(package (package
(name "diamond") (name "diamond")
(version "0.9.6") (version "0.9.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2103,7 +2104,7 @@ identify enrichments with functional annotations of the genome.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1y8a10b695pvgn7kk2s87jdwbdf7iszpnr6139pw8ina1ajs4w8y")))) "04f501vj3i95i2b4n60831k00ljalifrq33419bbz0y3sjlmcnj3"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:tests? #f ; no "check" target '(#:tests? #f ; no "check" target
@ -2718,19 +2719,26 @@ comment or quality sections.")
("zlib" ,zlib))) ("zlib" ,zlib)))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags '("FORCE_DYNAMIC=1") ; use shared libs `(#:make-flags
'(,@(if (any (cute string-prefix? <> (or (%current-system)
(%current-target-system)))
'("x86_64" "mips64el" "aarch64"))
'("FORCE_DYNAMIC=1") ; use shared libs
'("FORCE_DYNAMIC=1" "FORCE_32BIT=1")))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-before 'build 'bin-mkdir (add-before 'build 'bin-mkdir
(lambda _ (lambda _
(mkdir-p "bin"))) (mkdir-p "bin")
#t))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(install-file "bin/gemma" (install-file "bin/gemma"
(string-append (string-append
out "/bin")))))) out "/bin")))
#t)))
#:tests? #f)) ; no tests included yet #:tests? #f)) ; no tests included yet
(home-page "https://github.com/xiangzhou/GEMMA") (home-page "https://github.com/xiangzhou/GEMMA")
(synopsis "Tool for genome-wide efficient mixed model association") (synopsis "Tool for genome-wide efficient mixed model association")
@ -9527,7 +9535,7 @@ applications for tackling some common problems in a user-friendly way.")
"TADbit is a complete Python library to deal with all steps to analyze, "TADbit is a complete Python library to deal with all steps to analyze,
model, and explore 3C-based data. With TADbit the user can map FASTQ files to model, and explore 3C-based data. With TADbit the user can map FASTQ files to
obtain raw interaction binned matrices (Hi-C like matrices), normalize and obtain raw interaction binned matrices (Hi-C like matrices), normalize and
correct interaction matrices, identify adn compare the so-called correct interaction matrices, identify and compare the so-called
@dfn{Topologically Associating Domains} (TADs), build 3D models from the @dfn{Topologically Associating Domains} (TADs), build 3D models from the
interaction matrices, and finally, extract structural properties from the interaction matrices, and finally, extract structural properties from the
models. TADbit is complemented by TADkit for visualizing 3D models.") models. TADbit is complemented by TADkit for visualizing 3D models.")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2017 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,12 +22,13 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages ncurses)) #:use-module (gnu packages ncurses))
(define-public calcurse (define-public calcurse
(package (package
(name "calcurse") (name "calcurse")
(version "4.0.0") (version "4.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -35,14 +36,21 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0d33cpkbhyidvm3xx6iw9ljqdvl6477c2kcwix3bs63nj0ch06v2")))) "0il0y06akdqgy0f9p40m4x6arn66nh7sr1w1i41bszycs7div266"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses))) (inputs `(("ncurses" ,ncurses)
("tzdata" ,tzdata)))
(arguments (arguments
;; The ical tests all want to create a ".calcurse" directory, and may ;; The ical tests all want to create a ".calcurse" directory, and may
;; fail with "cannot create directory '.calcurse': File exists" if run ;; fail with "cannot create directory '.calcurse': File exists" if run
;; concurently. ;; concurently.
'(#:parallel-tests? #f)) '(#:parallel-tests? #f
#:phases (modify-phases %standard-phases
(add-before 'check 'check-setup
(lambda* (#:key inputs #:allow-other-keys)
(setenv "TZDIR" ;for test/ical-007.sh
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo")))))))
(home-page "http://www.calcurse.org") (home-page "http://www.calcurse.org")
(synopsis "Text-based calendar and scheduling") (synopsis "Text-based calendar and scheduling")
(description (description

View File

@ -74,7 +74,7 @@
(define-public nss-certs (define-public nss-certs
(package (package
(name "nss-certs") (name "nss-certs")
(version "3.30.2") (version "3.31")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -85,7 +85,7 @@
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"096frzvyp3z257x84rxknscfgsbavzh2a0gyibx7kvmw4vzpfjhd")))) "0pd643a8ns7q5az5ai3ascrw666i2kbfiyy1c9hlhw9jd8jn21g9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out")) (outputs '("out"))
(native-inputs (native-inputs

View File

@ -181,13 +181,13 @@ format.")
(define-public cppcheck (define-public cppcheck
(package (package
(name "cppcheck") (name "cppcheck")
(version "1.78") (version "1.79")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/danmar/cppcheck/archive/" (uri (string-append "https://github.com/danmar/cppcheck/archive/"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "1dnizw0rfj6faqgnmg8qh6njr9q89j8brhba7qmx2i47vl0qj11i")) (base32 "1qf7l0hx2k2qsc1rm3gh00bc0hwf9wqkrvrk08141yjj2js2y8lw"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "http://cppcheck.sourceforge.net") (home-page "http://cppcheck.sourceforge.net")

View File

@ -5,7 +5,7 @@
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016, 2017 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -315,18 +315,18 @@ no man page, refer to the home page for usage details.")
(define-public tomb (define-public tomb
(package (package
(name "tomb") (name "tomb")
(version "2.3") (version "2.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://files.dyne.org/tomb/" (uri (string-append "https://files.dyne.org/tomb/"
"Tomb-" version ".tar.gz")) "Tomb-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1j90ab8x4cf10167yw4cs4frz694gb0qwkhgqiz1ly7mnr8ysmby")))) "1hv1w79as7swqj0n137vz8n8mwvcgwlvd91sdyssz41jarg7f1vr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("sudo" ,sudo))) ;presence needed for 'check' phase
(inputs (inputs
`(("zsh" ,zsh) `(("zsh" ,zsh)
("sudo" ,sudo)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
("cryptsetup" ,cryptsetup) ("cryptsetup" ,cryptsetup)
("e2fsprogs" ,e2fsprogs) ;for mkfs.ext4 ("e2fsprogs" ,e2fsprogs) ;for mkfs.ext4
@ -334,8 +334,7 @@ no man page, refer to the home page for usage details.")
("mlocate" ,mlocate) ("mlocate" ,mlocate)
("pinentry" ,pinentry) ("pinentry" ,pinentry)
("qrencode" ,qrencode) ("qrencode" ,qrencode)
("steghide" ,steghide) ("steghide" ,steghide)))
("swish-e" ,swish-e)))
(arguments (arguments
`(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
;; TODO: Build and install gtk and qt trays ;; TODO: Build and install gtk and qt trays
@ -358,7 +357,7 @@ no man page, refer to the home page for usage details.")
(error "program not found:" program))) (error "program not found:" program)))
'("seq" "mkfs.ext4" "pinentry" "sudo" '("seq" "mkfs.ext4" "pinentry" "sudo"
"gpg" "cryptsetup" "gettext" "gpg" "cryptsetup" "gettext"
"qrencode" "steghide" "swish-e"))))) "qrencode" "steghide")))))
#t))) #t)))
(delete 'check) (delete 'check)
(add-after 'wrap 'check (add-after 'wrap 'check

View File

@ -40,14 +40,14 @@
(define-public curl (define-public curl
(package (package
(name "curl") (name "curl")
(version "7.54.0") (version "7.54.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://curl.haxx.se/download/curl-" (uri (string-append "https://curl.haxx.se/download/curl-"
version ".tar.lzma")) version ".tar.lzma"))
(sha256 (sha256
(base32 (base32
"02h7qhl8ynp75g1vcaw18ks0gp7nahvvkqck19pb1q0kkw1scsnd")))) "0vnv3cz0s1l5cjby86hm0x6pgzqijmdm97qa9q5px200956z6yib"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ;1.2 MiB of man3 pages "doc")) ;1.2 MiB of man3 pages

View File

@ -459,7 +459,8 @@ as a drop-in replacement of MySQL.")
"1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n")))) "1imrjp4vfslxj5rrvphcrrk21zv8kqw3gacmwradixh1d5rv6i8n"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:configure-flags '("--with-uuid=e2fs")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'patch-/bin/sh (add-before 'configure 'patch-/bin/sh
(lambda _ (lambda _
@ -467,9 +468,16 @@ as a drop-in replacement of MySQL.")
(substitute* '("src/bin/pg_ctl/pg_ctl.c" (substitute* '("src/bin/pg_ctl/pg_ctl.c"
"src/bin/psql/command.c") "src/bin/psql/command.c")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
#t))))) #t))
(add-after 'build 'build-contrib
(lambda _
(zero? (system* "make" "-C" "contrib"))))
(add-after 'install 'install-contrib
(lambda _
(zero? (system* "make" "-C" "contrib" "install")))))))
(inputs (inputs
`(("readline" ,readline) `(("readline" ,readline)
("libuuid" ,util-linux)
("zlib" ,zlib))) ("zlib" ,zlib)))
(home-page "https://www.postgresql.org/") (home-page "https://www.postgresql.org/")
(synopsis "Powerful object-relational database system") (synopsis "Powerful object-relational database system")
@ -1210,6 +1218,7 @@ sets, bitmaps and hyperloglogs.")
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list (list
"--disable-opt" ;"-march=native". XXX this also turns off -O0.
(string-append "LDFLAGS=-Wl,-rpath=" (string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib")))) (assoc-ref %outputs "out") "/lib"))))
(inputs `(("zlib" ,zlib))) (inputs `(("zlib" ,zlib)))
@ -1326,14 +1335,14 @@ trees (LSM), for sustained throughput under random insert workloads.")
(define-public lmdb (define-public lmdb
(package (package
(name "lmdb") (name "lmdb")
(version "0.9.18") (version "0.9.21")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/LMDB/lmdb/archive/" (uri (string-append "https://github.com/LMDB/lmdb/archive/"
"LMDB_" version ".tar.gz")) "LMDB_" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"12crvzxky8in99ibh22k4ppmkgqs28yy3v7yy944za7fsrqv8dfx")))) "0ndmj07hkm2ic60z1f4rdscxs7pq45hk9fibjyv5nhfclhsvd1qi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"

View File

@ -97,14 +97,14 @@ in between these sequences may be different in both content and length.")
(define-public liburcu (define-public liburcu
(package (package
(name "liburcu") (name "liburcu")
(version "0.9.3") (version "0.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.lttng.org/files/urcu/" (uri (string-append "https://www.lttng.org/files/urcu/"
"userspace-rcu-" version ".tar.bz2")) "userspace-rcu-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"01j0xp3f0w147yfyzybkjvb7i67i7prsvnkssgvgwry9lvk35khv")))) "141imnd1s4bcd4wz0wk7sp3fj649kp8whp82gw49h48mlmxqmdbw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("perl" ,perl))) ; for tests `(("perl" ,perl))) ; for tests

View File

@ -93,7 +93,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public isc-bind (define-public isc-bind
(package (package
(name "bind") (name "bind")
(version "9.11.1") (version "9.11.1-P1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -101,7 +101,7 @@ and BOOTP/TFTP for network booting of diskless machines.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1chhphaa4lmfxj9daqsxph5ng4h3qq51jx21rj2i6an8ynah0192")))) "0f56bhkxx7bga3f1a4whlm8fh5q8lz7ah97fdayp310vsn43w6vb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs `("out" "utils")) (outputs `("out" "utils"))
(inputs (inputs

View File

@ -1740,6 +1740,29 @@ keep pressing the key until it selects what you want. There's also
column by drawing a thin line down the length of the editing window.") column by drawing a thin line down the length of the editing window.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-inf-ruby
(package
(name "emacs-inf-ruby")
(version "2.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/nonsequitur/inf-ruby/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0m7323k649ckxql1grsdnf71bjhys7l4qb8wbpphb1mr1q8i4066"))))
(build-system emacs-build-system)
(home-page "https://github.com/nonsequitur/inf-ruby")
(synopsis "Provides a REPL buffer connected to a Ruby subprocess in Emacs")
(description
"@code{inf-ruby} provides a Read Eval Print Loop (REPL) buffer, allowing
for easy interaction with a ruby subprocess. Features include support for
detecting specific uses of Ruby, e.g. when using rails, and using a
appropriate console.")
(license license:gpl3+)))
(define-public emacs-znc (define-public emacs-znc
(package (package
(name "emacs-znc") (name "emacs-znc")
@ -2780,7 +2803,7 @@ highlighted. Pressing that character will switch to that window.")
(define-public emacs-iedit (define-public emacs-iedit
(package (package
(name "emacs-iedit") (name "emacs-iedit")
(version "0.9.9") (version "0.9.9.9")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2789,7 +2812,7 @@ highlighted. Pressing that character will switch to that window.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00v86zllcsivmiibigbr91qij2zdf1lr9db8z8again1sn63wkdj")))) "1hv8q6pr85ss9g3158l1fqv3m62vsq8rslsi86jicr2dcxyascr0"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "http://www.emacswiki.org/emacs/Iedit") (home-page "http://www.emacswiki.org/emacs/Iedit")
(synopsis "Edit multiple regions in the same way simultaneously") (synopsis "Edit multiple regions in the same way simultaneously")
@ -3097,7 +3120,7 @@ strings, and code folding.")
(define-public emacs-markdown-mode (define-public emacs-markdown-mode
(package (package
(name "emacs-markdown-mode") (name "emacs-markdown-mode")
(version "2.1") (version "2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/jrblevin" (uri (string-append "https://raw.githubusercontent.com/jrblevin"
@ -3106,7 +3129,7 @@ strings, and code folding.")
(file-name (string-append "markdown-mode-" version ".el")) (file-name (string-append "markdown-mode-" version ".el"))
(sha256 (sha256
(base32 (base32
"1faibar32jnjia9202swblw91q6z1g5s4k9xmypwjahfh8yznl6w")))) "04isd2sdnms9acpmkd6n7b7y7j0x2kank2kry0zwbxs3bwdavgav"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "http://jblevins.org/projects/markdown-mode/") (home-page "http://jblevins.org/projects/markdown-mode/")
(synopsis "Emacs Major mode for Markdown files") (synopsis "Emacs Major mode for Markdown files")
@ -3144,7 +3167,7 @@ If you want to mark a folder manually as a project just create an empty
(define-public emacs-elfeed (define-public emacs-elfeed
(package (package
(name "emacs-elfeed") (name "emacs-elfeed")
(version "2.1.0") (version "2.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/skeeto/elfeed/archive/" (uri (string-append "https://github.com/skeeto/elfeed/archive/"
@ -3152,7 +3175,7 @@ If you want to mark a folder manually as a project just create an empty
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"145glas04zd0s2rmnif46vhyijs4z03v871gfp1dcrwxvvvns8ap")))) "1wlwc8fbkg6w1c8p856ikc20xm72f51clnzz419p0g8cavy27npw"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -3305,7 +3328,7 @@ that uses the standard completion function completing-read.")
(define-public emacs-yaml-mode (define-public emacs-yaml-mode
(package (package
(name "emacs-yaml-mode") (name "emacs-yaml-mode")
(version "0.0.12") (version "0.0.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/yoshiki" (uri (string-append "https://raw.githubusercontent.com/yoshiki"
@ -3313,7 +3336,7 @@ that uses the standard completion function completing-read.")
(file-name (string-append "yaml-mode-" version ".el")) (file-name (string-append "yaml-mode-" version ".el"))
(sha256 (sha256
(base32 (base32
"17wq433ycli0qx4gdhgrmb392qblm6y2dwcyn38j5ja1lasfb0ax")))) "0im88sk9dqw03x6d6zaspgvg9i0pfpgb8f2zygrmbifh2w4pwmvj"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/yoshiki/yaml-mode") (home-page "https://github.com/yoshiki/yaml-mode")
(synopsis "Major mode for editing YAML files") (synopsis "Major mode for editing YAML files")
@ -3351,7 +3374,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
(define-public emacs-helm (define-public emacs-helm
(package (package
(name "emacs-helm") (name "emacs-helm")
(version "2.7.0") (version "2.7.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -3360,7 +3383,7 @@ Dust.js, React/JSX, Angularjs, ejs, etc.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1scdirpclgq3pi1j2c90gqaaqg1pgvasp98f4jqw8c5xbqcr7jdw")))) "0pay8pi3fszykgskfbxsp4byad497cgfz4m886mxnkba1naxf6h7"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-async" ,emacs-async) `(("emacs-async" ,emacs-async)

View File

@ -488,6 +488,28 @@ with a layered architecture of JTAG interface and TAP support.")
(home-page "https://github.com/totalspectrum/gcc-propeller") (home-page "https://github.com/totalspectrum/gcc-propeller")
(synopsis "GCC for the Parallax Propeller")))) (synopsis "GCC for the Parallax Propeller"))))
(define-public propeller-gcc-4
(let ((xgcc propeller-gcc)
(commit "f1b01001b760d691a91ff1db4830d41bb712557f")
(revision "1"))
(package (inherit xgcc)
(name "propeller-gcc")
(version (string-append "4.6.1-" revision "." (string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dbetz/propgcc-gcc.git")
(commit commit)))
(file-name (string-append name "-" commit "-checkout"))
(sha256
(base32
"15mxrhk2v4vqmdkvcqy33ag1wrg9x9q20kx2w33kkw8pkrijknbi"))
(patches
(append
(origin-patches (package-source gcc-4.7))
(search-patches "gcc-4.6-gnu-inline.patch")))))
(home-page "https://github.com/dbetz/propgcc-gcc"))))
;; There is no release, so we take the latest version as referenced from here: ;; There is no release, so we take the latest version as referenced from here:
;; https://github.com/dbetz/propeller-gcc ;; https://github.com/dbetz/propeller-gcc
(define-public proplib (define-public proplib
@ -654,7 +676,7 @@ upload binaries to a Parallax Propeller micro-controller.")
(define-public spin2cpp (define-public spin2cpp
(package (package
(name "spin2cpp") (name "spin2cpp")
(version "3.4.0") (version "3.6.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/totalspectrum/spin2cpp/" (uri (string-append "https://github.com/totalspectrum/spin2cpp/"
@ -662,7 +684,7 @@ upload binaries to a Parallax Propeller micro-controller.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00i8i0dspd5115ggkv5vx2xqb21l6y38wz0bakgby8n3b4k9xnk0")))) "0v5vzh69bp1r2byrpz12rql1w24ff2v9msr31596zq6hd6n82lnh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ;; The tests assume that a micro-controller is connected. `(#:tests? #f ;; The tests assume that a micro-controller is connected.

View File

@ -44,6 +44,7 @@
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
@ -57,6 +58,7 @@
#:use-module (gnu packages linux) ;FIXME: for pcb #:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
@ -812,3 +814,32 @@ the 'showing the effect of'-style of operation.")
for mathematical functions. It also provides an machine-independent for mathematical functions. It also provides an machine-independent
interface to select the best such procedures to use on a given system.") interface to select the best such procedures to use on a given system.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public minicom
(package
(name "minicom")
(version "2.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://alioth.debian.org/frs/download.php/"
"file/4215/" name "-" version ".tar.gz"))
(sha256
(base32
"1wa1l36fa4npd21xa9nz60yrqwkk5cq713fa3p5v0zk7g9mq6bsk"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-lock-dir=/var/lock")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-lock-check
(lambda _
(substitute* "configure"
(("test -d [$]UUCPLOCK") "true"))
#t)))))
(inputs
`(("ncurses" ,ncurses)))
(home-page "https://alioth.debian.org/projects/minicom/")
(synopsis "Serial terminal emulator")
(description "@code{minicom} is a serial terminal emulator.")
(license license:gpl2+)))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz> ;;; Copyright © 2015 Tomáš Čech <sleep_walker@suse.cz>
;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org> ;;; Copyright © 2015 Daniel Pimentel <d4n1@member.fsf.org>
;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -208,7 +209,19 @@ Libraries with some extra bells and whistles.")
"1xvngjdsa0p901vfhrh2qpa50k32hwwhc8bgi16a9b5d9byzfhvn")))) "1xvngjdsa0p901vfhrh2qpa50k32hwwhc8bgi16a9b5d9byzfhvn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--enable-mount-eeze"))) `(#:configure-flags '("--enable-mount-eeze")
#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-keyboard
(lambda _
(let ((xkeyboard (assoc-ref %build-inputs "xkeyboard-config")))
;; We need to patch the path to 'base.lst' to be able
;; to switch the keyboard layout in E.
(substitute* "src/modules/xkbswitch/e_mod_parse.c"
(("/usr/share/X11/xkb/rules/xorg.lst")
(string-append xkeyboard
"/share/X11/xkb/rules/base.lst")))
#t))))))
(native-inputs (native-inputs
`(("gettext" ,gettext-minimal) `(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
@ -220,7 +233,8 @@ Libraries with some extra bells and whistles.")
("libxcb" ,libxcb) ("libxcb" ,libxcb)
("libxext" ,libxext) ("libxext" ,libxext)
("linux-pam" ,linux-pam) ("linux-pam" ,linux-pam)
("xcb-util-keysyms" ,xcb-util-keysyms))) ("xcb-util-keysyms" ,xcb-util-keysyms)
("xkeyboard-config" ,xkeyboard-config)))
(home-page "https://www.enlightenment.org/about-enlightenment") (home-page "https://www.enlightenment.org/about-enlightenment")
(synopsis "Lightweight desktop environment") (synopsis "Lightweight desktop environment")
(description (description

View File

@ -555,28 +555,13 @@ fonts.")
(version "2.005") (version "2.005")
(source (source
(origin (origin
(method url-fetch) (method url-fetch/zipbomb)
(uri (string-append "http://www.gust.org.pl/projects/e-foundry/" (uri (string-append "http://www.gust.org.pl/projects/e-foundry/"
"tex-gyre/whole/tg-" version "otf.zip")) "tex-gyre/whole/tg-" version "otf.zip"))
(sha256 (sha256
(base32 (base32
"0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31")))) "0kph9l3g7jb2bpmxdbdg5zl56wacmnvdvsdn7is1gc750sqvsn31"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(font-dir (string-append %output "/share/fonts/opentype")))
(mkdir-p font-dir)
(system* unzip
(assoc-ref %build-inputs "source")
"-d" font-dir)))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/") (home-page "http://www.gust.org.pl/projects/e-foundry/tex-gyre/")
(synopsis "Remake of Ghostscript fonts") (synopsis "Remake of Ghostscript fonts")
(description "The TeX Gyre collection of fonts is the result of an (description "The TeX Gyre collection of fonts is the result of an
@ -598,28 +583,7 @@ Heros, Pagella, Schola, Termes.")
(sha256 (sha256
(base32 (base32
"1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6")))) "1asj6lykvxh46czbal7ymy2k861zlcdqpz8x3s5bbpqwlm3mhrl6"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(font-dir (string-append %output "/share/fonts/truetype"))
(doc-dir (string-append %output "/share/doc/" ,name)))
(system* unzip (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir)
(chdir (string-append "AnonymousPro-" ,version ".001"))
(for-each (lambda (ttf)
(install-file ttf font-dir))
(find-files "." "\\.ttf$"))
(for-each (lambda (doc)
(install-file doc doc-dir))
(find-files "." "\\.txt$"))))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://www.marksimonson.com/fonts/view/anonymous-pro") (home-page "http://www.marksimonson.com/fonts/view/anonymous-pro")
(synopsis "Fixed-width fonts designed with coding in mind") (synopsis "Fixed-width fonts designed with coding in mind")
(description "Anonymous Pro is a family of four fixed-width fonts designed (description "Anonymous Pro is a family of four fixed-width fonts designed
@ -740,27 +704,7 @@ display all Unicode symbols.")
(sha256 (sha256
(base32 (base32
"0spscx08fad7i8qs7icns96iwcapniq8lwwqqvbf7bamvs8qfln4")))) "0spscx08fad7i8qs7icns96iwcapniq8lwwqqvbf7bamvs8qfln4"))))
(native-inputs `(("unzip" ,unzip))) (build-system font-build-system)
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let ((PATH (string-append (assoc-ref %build-inputs
"unzip")
"/bin"))
(font-dir (string-append %output
"/share/fonts/truetype")))
(setenv "PATH" PATH)
(system* "unzip" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(chdir "roboto-hinted")
(for-each (lambda (ttf)
(install-file ttf font-dir))
(find-files "." "\\.ttf$"))))))
(home-page "https://github.com/google/roboto") (home-page "https://github.com/google/roboto")
(synopsis "The Roboto family of fonts") (synopsis "The Roboto family of fonts")
(description (description
@ -782,33 +726,7 @@ visual language \"Material Design\".")
(sha256 (sha256
(base32 (base32
"13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv")))) "13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((tar (string-append (assoc-ref %build-inputs "tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs "gzip")
"/bin"))
(font-dir (string-append %output "/share/fonts/truetype"))
(doc-dir (string-append %output "/share/doc/" ,name)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir)
(chdir (string-append "un-fonts"))
(for-each (lambda (ttf)
(install-file ttf font-dir))
(find-files "." "\\.ttf$"))
(for-each (lambda (doc)
(install-file doc doc-dir))
'("COPYING" "README"))))))
(native-inputs
`(("tar" ,tar)
("gzip" ,gzip)))
(home-page "https://kldp.net/projects/unfonts/") (home-page "https://kldp.net/projects/unfonts/")
(synopsis "Collection of Korean fonts") (synopsis "Collection of Korean fonts")
(description (description
@ -876,7 +794,7 @@ glyph designs, not just an added slant.")
(name "font-hack") (name "font-hack")
(version "2.020") (version "2.020")
(source (origin (source (origin
(method url-fetch) (method url-fetch/zipbomb)
(uri (string-append (uri (string-append
"https://github.com/chrissimpkins/Hack/releases/download/v" "https://github.com/chrissimpkins/Hack/releases/download/v"
version "/Hack-v" version "/Hack-v"
@ -885,28 +803,7 @@ glyph designs, not just an added slant.")
(sha256 (sha256
(base32 (base32
"16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184")))) "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let ((PATH (string-append (assoc-ref %build-inputs
"unzip")
"/bin"))
(font-dir (string-append %output
"/share/fonts/truetype")))
(setenv "PATH" PATH)
(system* "unzip" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(for-each (lambda (ttf)
(install-file ttf font-dir))
(find-files "." "\\.ttf$"))))))
(native-inputs
`(("source" ,source)
("unzip" ,unzip)))
(home-page "https://sourcefoundry.org/hack/") (home-page "https://sourcefoundry.org/hack/")
(synopsis "Typeface designed for source code") (synopsis "Typeface designed for source code")
(description (description
@ -933,26 +830,7 @@ Powerline support.")
(sha256 (sha256
(base32 (base32
"0arhhsf3i7ss39ykn73d1j8k4n8vx7115xph6jwkd970p1cxvr54")))) "0arhhsf3i7ss39ykn73d1j8k4n8vx7115xph6jwkd970p1cxvr54"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((tar (string-append (assoc-ref %build-inputs "tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs "gzip")
"/bin"))
(font-dir (string-append %output "/share/fonts/opentype")))
(setenv "PATH" PATH)
(mkdir-p font-dir)
(zero? (system* tar "-C" font-dir "--strip-components=2"
"-xvf" (assoc-ref %build-inputs "source")
(string-append "source-code-pro-"
,version "/OTF")))))))
(native-inputs
`(("gzip" ,gzip)
("tar" ,tar)))
(home-page "https://github.com/adobe-fonts/source-code-pro") (home-page "https://github.com/adobe-fonts/source-code-pro")
(synopsis (synopsis
"Monospaced font family for user interface and coding environments") "Monospaced font family for user interface and coding environments")
@ -974,23 +852,7 @@ designed to work well in user interface environments.")
(sha256 (sha256
(base32 (base32
"1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi")))) "1z65x0dw5dq6rs6p9wyfrir50rlh95vgzsxr8jcd40nqazw4jhpi"))))
(build-system trivial-build-system) (build-system font-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((unzip (string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(font-dir (string-append %output "/share/fonts/opentype")))
(mkdir-p font-dir)
(system* unzip
"-j"
(assoc-ref %build-inputs "source")
"*.otf"
"-d" font-dir)))))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://mozilla.github.io/Fira/") (home-page "http://mozilla.github.io/Fira/")
(synopsis "Mozilla's monospace font") (synopsis "Mozilla's monospace font")
(description "This is the typeface used by Mozilla in Firefox OS.") (description "This is the typeface used by Mozilla in Firefox OS.")

View File

@ -129,14 +129,14 @@ freedesktop.org project.")
(define-public libinput (define-public libinput
(package (package
(name "libinput") (name "libinput")
(version "1.7.0") (version "1.7.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/" (uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1a58q60j3456d3qfhkkv319aq2hn4bpimcyhib4yks817pv719hj")))) "07fbzxddvhjcch43hdxb24sj7ri96zzpcjalvsicmw0i4wnn2v89"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("cairo" ,cairo) `(("cairo" ,cairo)
@ -968,3 +968,35 @@ library to access fingerprint readers, over the D-Bus interprocess
communication bus. This daemon layer above libfprint solves problems related communication bus. This daemon layer above libfprint solves problems related
to applications simultaneously competing for fingerprint readers.") to applications simultaneously competing for fingerprint readers.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public desktop-file-utils
(package
(name "desktop-file-utils")
(version "0.23")
(source (origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/" name
"/releases/" name "-" version ".tar.xz"))
(sha256
(base32
"119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)))
(home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
(synopsis "Utilities for working with desktop entries")
(description
"This package contains a few command line utilities for working with
desktop entries:
desktop-file-validate: validates a desktop file and prints warnings/errors
about desktop entry specification violations.
desktop-file-install: installs a desktop file to the applications directory,
optionally munging it a bit in transit.
update-desktop-database: updates the database containing a cache of MIME types
handled by desktop files.")
(license license:gpl2+)))

View File

@ -39,6 +39,7 @@
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fribidi) #:use-module (gnu packages fribidi)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnunet) #:use-module (gnu packages gnunet)
@ -295,7 +296,7 @@ support.")
(define-public tiled (define-public tiled
(package (package
(name "tiled") (name "tiled")
(version "1.0.0") (version "1.0.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/bjorn/tiled/archive/v" (uri (string-append "https://github.com/bjorn/tiled/archive/v"
@ -303,7 +304,7 @@ support.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0g6ld9znydbdzy4x9h532gf1fg5bnz1mmrpvw4jg2a4lxkrz3rd5")))) "1y75jmpcf2lv8s3g9v3ghnrwvs2fc4ni7nx74csaylg1g04cwlq7"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("qtbase" ,qtbase) `(("qtbase" ,qtbase)

View File

@ -1569,7 +1569,7 @@ is programmed in Haskell.")
(define-public manaplus (define-public manaplus
(package (package
(name "manaplus") (name "manaplus")
(version "1.7.5.14") (version "1.7.6.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1577,7 +1577,7 @@ is programmed in Haskell.")
version "/manaplus-" version ".tar.xz")) version "/manaplus-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1b5q79jkdrck5lq8lvhnpq2mly257r8lylp7b8sp8xn4365f86ch")))) "0l7swvpzq20am4w2rsjpp6fsvbjv07il6wbfy45a7h9zsdihmqhl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -2238,14 +2238,14 @@ and a game metadata scraper.")
(define openttd-engine (define openttd-engine
(package (package
(name "openttd-engine") (name "openttd-engine")
(version "1.7.0") (version "1.7.1")
(source (source
(origin (method url-fetch) (origin (method url-fetch)
(uri (string-append "http://binaries.openttd.org/releases/" (uri (string-append "http://binaries.openttd.org/releases/"
version "/openttd-" version "-source.tar.xz")) version "/openttd-" version "-source.tar.xz"))
(sha256 (sha256
(base32 (base32
"1q4r5860dpkkw4fpfz3f8mvdd8xjpnwwzr9zybgmgb255bs0g4yz")) "0dhv5bbbg1dmmq7fi3xss0a9jq2rqgb5sf9fsqzlsjcdm590j6b1"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; The DOS port contains proprietary software. ;; The DOS port contains proprietary software.
@ -4049,7 +4049,8 @@ fish. The whole game is accompanied by quiet, comforting music.")
version "-nodeps.tar.xz"))) version "-nodeps.tar.xz")))
(sha256 (sha256
(base32 (base32
"0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd")))) "0127dgldij2h4m7cf32yy9ndv4vcz03g4km71lmxrsi5mw7ljgpd"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("lua51" ,lua-5.1) `(("lua51" ,lua-5.1)
@ -4101,6 +4102,9 @@ fabulous Orb of Zot.")
license:zlib license:zlib
license:asl2.0)))) license:asl2.0))))
;; The linter here claims that patch file names should start with the package
;; name. But, in this case, the patches are inherited from crawl with the
;; "crawl-" prefix instead of "crawl-tiles-".
(define-public crawl-tiles (define-public crawl-tiles
(package (package
(inherit crawl) (inherit crawl)

View File

@ -24,6 +24,8 @@
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -65,6 +67,7 @@
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages djvu) #:use-module (gnu packages djvu)
#:use-module (gnu packages dns) #:use-module (gnu packages dns)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages enchant) #:use-module (gnu packages enchant)
@ -103,6 +106,7 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages rdesktop) #:use-module (gnu packages rdesktop)
#:use-module (gnu packages scanner) #:use-module (gnu packages scanner)
#:use-module (gnu packages selinux)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
@ -735,38 +739,6 @@ Specification, the icon naming utility maps the icon names used by the
GNOME and KDE desktops to the icon names proposed in the specification.") GNOME and KDE desktops to the icon names proposed in the specification.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public desktop-file-utils
(package
(name "desktop-file-utils")
(version "0.23")
(source (origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/" name
"/releases/" name "-" version ".tar.xz"))
(sha256
(base32
"119kj2w0rrxkhg4f9cf5waa55jz1hj8933vh47vcjipcplql02bc"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)))
(home-page "http://www.freedesktop.org/wiki/Software/desktop-file-utils/")
(synopsis "Utilities for working with desktop entries")
(description
"This package contains a few command line utilities for working with
desktop entries:
desktop-file-validate: validates a desktop file and prints warnings/errors
about desktop entry specification violations.
desktop-file-install: installs a desktop file to the applications directory,
optionally munging it a bit in transit.
update-desktop-database: updates the database containing a cache of MIME types
handled by desktop files.")
(license license:gpl2+)))
(define-public gnome-icon-theme (define-public gnome-icon-theme
(package (package
(name "gnome-icon-theme") (name "gnome-icon-theme")
@ -2449,6 +2421,37 @@ and the GLib main loop, to integrate well with GNOME applications.")
and other secrets. It communicates with the \"Secret Service\" using DBus.") and other secrets. It communicates with the \"Secret Service\" using DBus.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public five-or-more
(package
(name "five-or-more")
(version "3.22.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1b26afyjr26wqy5j008gzsi3hpblbmabh0192lx6414lml1qxkxs"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)
("desktop-file-utils" ,desktop-file-utils)
("intltool" ,intltool)
("itstool" ,itstool)
("xmllint" ,libxml2)))
(inputs
`(("gtk+" ,gtk+)
("librsvg" ,librsvg)))
(home-page "https://wiki.gnome.org/Apps/Five%20or%20more")
(synopsis "Logic puzzle game")
(description "Five or More is a game where you try to align
five or more objects of the same color and shape causing them to disappear.
On every turn more objects will appear, until the board is full.
Try to last as long as possible.")
(license license:gpl2+)))
(define-public gnome-mines (define-public gnome-mines
(package (package
(name "gnome-mines") (name "gnome-mines")
@ -2777,7 +2780,7 @@ service via the system message bus.")
(define-public libgweather (define-public libgweather
(package (package
(name "libgweather") (name "libgweather")
(version "3.24.0") (version "3.24.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -2785,7 +2788,7 @@ service via the system message bus.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0ggspn3wmlkdxpfv4ym68qn1mzqc3hv666sykv8sv1ah40rbk28h")))) "0g35xfcw9vh3sfff42blk9ksrlmkrjmj46h3ad0sqgdn6xh329qj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -3324,7 +3327,7 @@ as possible!")
(define-public grilo (define-public grilo
(package (package
(name "grilo") (name "grilo")
(version "0.3.2") (version "0.3.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -3333,7 +3336,7 @@ as possible!")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0nvzr2gfk2mpzf99442zawv0n5yjcyy50rqkrvdsibknbm56hvzj")))) "1qx072m0gl6m3d5g5cbbf13p4h217icmlxjnrn829x5xqwi451sw"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal
@ -3341,10 +3344,11 @@ as possible!")
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("gobject-introspection" ,gobject-introspection))) ("gobject-introspection" ,gobject-introspection)))
(inputs (inputs
`(("glib" ,glib) `(("cyrus-sasl" ,cyrus-sasl)
("glib" ,glib)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
;; XXX TODO: Add oauth ("liboauth" ,liboauth)
("libsoup" ,libsoup) ("libsoup" ,libsoup)
("nettle" ,nettle) ("nettle" ,nettle)
("totem-pl-parser" ,totem-pl-parser))) ("totem-pl-parser" ,totem-pl-parser)))
@ -4499,7 +4503,7 @@ window manager.")
(define-public gnome-online-accounts (define-public gnome-online-accounts
(package (package
(name "gnome-online-accounts") (name "gnome-online-accounts")
(version "3.24.0") (version "3.24.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -4507,7 +4511,7 @@ window manager.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0yy10znqj278lnhdiqjcqxrwwv5c1jdjd0ncjbbdyh8n0q77hbwy")))) "0lgniqmkr6ffdw3kcqd34lvp969j2q2qzcy30zkzl5c09r7anc0a"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@ -4662,7 +4666,7 @@ users.")
(define-public network-manager (define-public network-manager
(package (package
(name "network-manager") (name "network-manager")
(version "1.6.2") (version "1.8.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/NetworkManager/" (uri (string-append "mirror://gnome/sources/NetworkManager/"
@ -4670,7 +4674,7 @@ users.")
"NetworkManager-" version ".tar.xz")) "NetworkManager-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1y96k82rav8if334jl500zc024d210c4pgprh94yqyz3rmanyaxj")) "17pn7kzilyl0qk525gp9xnbz4x0ssrdmgk1lvw95pyfd6rm5qnps"))
(snippet (snippet
'(begin '(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
@ -4751,8 +4755,11 @@ users.")
("python-dbus" ,python-dbus) ("python-dbus" ,python-dbus)
("python-pygobject" ,python-pygobject))) ("python-pygobject" ,python-pygobject)))
(inputs (inputs
`(("dbus-glib" ,dbus-glib) `(("curl" ,curl)
("cyrus-sasl" ,cyrus-sasl)
("dbus-glib" ,dbus-glib)
("dnsmasq" ,dnsmasq) ("dnsmasq" ,dnsmasq)
("eudev" ,eudev)
("gnutls" ,gnutls) ("gnutls" ,gnutls)
("iptables" ,iptables) ("iptables" ,iptables)
("isc-dhcp" ,isc-dhcp) ("isc-dhcp" ,isc-dhcp)
@ -4803,7 +4810,7 @@ services.")
(define-public network-manager-applet (define-public network-manager-applet
(package (package
(name "network-manager-applet") (name "network-manager-applet")
(version "1.4.2") (version "1.8.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -4811,12 +4818,9 @@ services.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"16a43sl9aijmvxbb08hbjqyjnlshj8dckycbgi9nm333fr47n6s3")))) "09f9hjpn9nkhw57mk6pi7q1bq3lhf5hvmwas0fknscssak7yjmry"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
;; TODO: WWAN support supposedly requires an update of glibmm which in turn (arguments '(#:configure-flags '("--disable-migration")))
;; requires an update of the its dependencies (glib and others).
(arguments '(#:configure-flags '("--disable-migration"
"--without-wwan")))
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
@ -4831,7 +4835,9 @@ services.")
("libgudev" ,libgudev) ("libgudev" ,libgudev)
("libnotify" ,libnotify) ("libnotify" ,libnotify)
("libsecret" ,libsecret) ("libsecret" ,libsecret)
("jansson" ,jansson))) ;for team support ("libselinux" ,libselinux)
("jansson" ,jansson) ; for team support
("modem-manager" ,modem-manager)))
(synopsis "Applet for managing network connections") (synopsis "Applet for managing network connections")
(home-page "http://www.gnome.org/projects/NetworkManager/") (home-page "http://www.gnome.org/projects/NetworkManager/")
(description (description
@ -5595,7 +5601,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
(define-public gnome-calendar (define-public gnome-calendar
(package (package
(name "gnome-calendar") (name "gnome-calendar")
(version "3.24.2") (version "3.24.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -5603,7 +5609,7 @@ Microsoft SkyDrive and Hotmail, using their REST protocols.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0lc0xdgn0y12i87775xyy0p3a5l82w9k49cmwl1my8r8pwf9lp6s")))) "1v7k1wcl5yg9bd4l0rz0z03h32d35zgfp4qzz21widjcyis41jry"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
@ -6218,7 +6224,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
(define-public gspell (define-public gspell
(package (package
(name "gspell") (name "gspell")
(version "1.3.2") (version "1.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -6226,7 +6232,7 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1n4kd5i11l79h8bpvx3cz79ww0b4z89y99h4czvyg80qlarn585w")) "1ghh1xdzf04mfgb13zqpj88krpa44xv2vbyhm6k017kzrpz8hbs4"))
(patches (search-patches "gspell-dash-test.patch")))) (patches (search-patches "gspell-dash-test.patch"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
@ -6267,3 +6273,48 @@ that support the Assistive Technology Service Provider Interface (AT-SPI).")
application. It provides a GObject API, spell-checking to text entries and application. It provides a GObject API, spell-checking to text entries and
text views, and buttons to choose the language.") text views, and buttons to choose the language.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public gnome-planner
(package
(name "gnome-planner")
(version "0.14.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/planner/"
(version-major+minor version) "/planner-"
version ".tar.xz"))
(sha256
(base32
"15h6ps58giy5r1g66sg1l4xzhjssl362mfny2x09khdqsvk2j38k"))))
(build-system glib-or-gtk-build-system)
(arguments
;; Disable the Python bindings because the Planner program functions
;; without them, and (as of 2017-06-13) we have not packaged all of
;; packages that are necessary for building the Python bindings.
`(#:configure-flags (list "--disable-python")))
(inputs
`(("libgnomecanvas" ,libgnomecanvas)
("libgnomeui" ,libgnomeui)
("libglade" ,libglade)
("gnome-vfs" ,gnome-vfs)
("gconf" ,gconf)
("libxml2" ,libxml2)
("libxslt" ,libxslt)
("gtk+" ,gtk+)
("glib" ,glib)))
(native-inputs
`(("intltool" ,intltool)
("scrollkeeper" ,scrollkeeper)
("pkg-config" ,pkg-config)))
(home-page "https://wiki.gnome.org/Apps/Planner")
(synopsis "Project management software for the GNOME desktop")
(description
"GNOME Planner is a project management tool based on the Work Breakdown
Structure (WBS). Its goal is to enable you to easily plan projects. Based on
the resources, tasks, and constraints that you define, Planner generates
various views into a project. For example, Planner can show a Gantt chart of
the project. It can show a detailed summary of tasks including their
duration, cost, and current progress. It can also show a report of resource
utilization that highlights under-utilized and over-utilized resources. These
views can be printed as PDF or PostScript files, or exported to HTML.")
(license license:gpl2+)))

View File

@ -5,7 +5,7 @@
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.infotropique.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -66,22 +66,14 @@
(define-public libextractor (define-public libextractor
(package (package
(name "libextractor") (name "libextractor")
(version "1.3") (version "1.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/libextractor/libextractor-" (uri (string-append "mirror://gnu/libextractor/libextractor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6")) "0v7ns5jhsyp1wzvbaydfgxnva5zd63gkzm9djhckmam9liq824l4"))))
(patches (search-patches "libextractor-ffmpeg-3.patch"))
(modules '((guix build utils)))
(snippet
;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not
;; 'application/ogg'. Adjust accordingly.
'(substitute* "src/plugins/test_mime.c"
(("application/ogg")
"audio/ogg")))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; WARNING: Checks require /dev/shm to be in the build chroot, especially ;; WARNING: Checks require /dev/shm to be in the build chroot, especially
;; not to be a symbolic link to /run/shm. ;; not to be a symbolic link to /run/shm.
@ -184,14 +176,14 @@ and support for SSL3 and TLS.")
(define-public gnurl (define-public gnurl
(package (package
(name "gnurl") (name "gnurl")
(version "7.54.0") (version "7.54.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gnunet.org/sites/default/files/" (uri (string-append "https://gnunet.org/sites/default/files/"
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1ww346cdsxln6iq158a4wm38bmicg5wspd2c83gnqf1glx22hza0")))) "0szbj352h95sgc9kbx9wzkgjksmg3g5k6cvlc7hz3wrbdh5gb0a4"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ; 1.5 MiB of man3 pages "doc")) ; 1.5 MiB of man3 pages

View File

@ -250,7 +250,7 @@ in C/C++.")
(define-public nspr (define-public nspr
(package (package
(name "nspr") (name "nspr")
(version "4.14") (version "4.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -258,7 +258,7 @@ in C/C++.")
version "/src/nspr-" version ".tar.gz")) version "/src/nspr-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1m8p9l3prabhfxz6zs889fl7gmcka72a62i46a8klh2pca11iz34")))) "101dksqm1z0hzd7ap82ccbxjr48s6q3xhshdl81qkj6hqdmy1p97"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("perl" ,perl))) `(("perl" ,perl)))
@ -282,7 +282,7 @@ in the Mozilla clients.")
(define-public nss (define-public nss
(package (package
(name "nss") (name "nss")
(version "3.30.2") (version "3.31")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -293,10 +293,9 @@ in the Mozilla clients.")
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"096frzvyp3z257x84rxknscfgsbavzh2a0gyibx7kvmw4vzpfjhd")) "0pd643a8ns7q5az5ai3ascrw666i2kbfiyy1c9hlhw9jd8jn21g9"))
;; Create nss.pc and nss-config. ;; Create nss.pc and nss-config.
(patches (search-patches "nss-pkgconfig.patch" (patches (search-patches "nss-pkgconfig.patch"
"nss-disable-long-b64-tests.patch"
"nss-increase-test-timeout.patch")))) "nss-increase-test-timeout.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "bin")) (outputs '("out" "bin"))
@ -329,16 +328,6 @@ in the Mozilla clients.")
`((setenv "USE_64" "1"))) `((setenv "USE_64" "1")))
(_ (_
'())) '()))
;; The timeout values in "increase-test-timeouts" are still
;; too low, so apply this workaround on armhf for now to avoid
;; rebuilding on all platforms. This should be incorporated in
;; the patch for the next update.
;; https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00472.html
,@(if (string-prefix? "armhf" (or (%current-target-system)
(%current-system)))
`((substitute* "nss/gtests/ssl_gtest/tls_connect.cc"
(("25000\\);") "300000);")))
'())
#t)) #t))
(replace 'check (replace 'check
(lambda _ (lambda _
@ -427,35 +416,35 @@ standards.")
(mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa") (mozilla-patch "icecat-bug-1342366.patch" "fb43f6690a26" "1vnkjpq2bcqwzmjkgyqv8wj0ndrrsyix3qy1rsb5is6pjmi9sbaa")
(mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6") (mozilla-patch "icecat-bug-1343818.patch" "90f870bbec29" "0mbki955f71n4yr9p0yc7kh5jwq7vs4bs4rhaazdncirbr564hm6")
(mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w") (mozilla-patch "icecat-bug-1348454.patch" "c1cd8a02669f" "1wf0107763rw45kxkak7478vlax06ay7076cbm7ysxl7vijbr52w")
(mozilla-patch "icecat-bug-1297111.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha") (mozilla-patch "icecat-CVE-2017-5470-pt01.patch" "2553531f83b9" "0ibf59pa8czdyhc25sas6zhh2gf1k8vr8fklis2b1ms3n1qnzrha")
(mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj") (mozilla-patch "icecat-bug-1355873.patch" "9ee455ddcd68" "0d38hi4556635g9ag805vfyffdgfsp4a8v3d9ldffdp99ypv2ixj")
(mozilla-patch "icecat-bug-1348424-pt1.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws") (mozilla-patch "icecat-CVE-2017-5470-pt02.patch" "6472c7006a73" "1fgydas23fzj49n4g43133bgjn98b2h38bii4knl7z7pm3fs2wws")
(mozilla-patch "icecat-bug-1348424-pt2.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x") (mozilla-patch "icecat-CVE-2017-5470-pt03.patch" "0d5a26b29816" "03mkghl9i83jk1axr8bvw8la6shbggkabf23if8a9vi5jdv8182x")
(mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm") (mozilla-patch "icecat-bug-1357092.patch" "e78c943af07f" "0r830k6hja8z9rjk2nqjg8zfzr0wjcnic8rddh7jmc1inr1w3crm")
(mozilla-patch "icecat-bug-1352093.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4") (mozilla-patch "icecat-CVE-2017-5470-pt04.patch" "d7c06f2d0d13" "1ahyns5v37w91bilvb3pa8kkdzkkn3fcxmi49jr5bycjlawljrm4")
(mozilla-patch "icecat-bug-1349595.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n") (mozilla-patch "icecat-CVE-2017-5470-pt05.patch" "9071c7d4cc9c" "12128sf8s3zwv2w16kfl5jry9d6ky7hvps2006184rg23p32aj6n")
(mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw") (mozilla-patch "icecat-bug-1336979.patch" "8bbc7b586d68" "0c13imyp1nq18in3yb1zcyi41b69svh4fn8msyj0c2lhbf8qnqcw")
(mozilla-patch "icecat-bug-1352556.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13") (mozilla-patch "icecat-CVE-2017-5470-pt06.patch" "6d80ca63ff8b" "0s893fn6v0p323lcnl4cbkg1zd7gs1p0bw76ki6cmiapkn63gs13")
(mozilla-patch "icecat-bug-1359547.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h") (mozilla-patch "icecat-CVE-2017-7752.patch" "43d7b98d8743" "1dhgy1jkvn3c4k27hbv8p16w7l09b8hd4w9zzpk8dpn4h78ncs3h")
(mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a") (mozilla-patch "icecat-CVE-2017-5031.patch" "bd4fcdee9a06" "0xz1r342023a0bsllhjbzn6v75lpqznwacqyikb7q8i4hxkxh78a")
(mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc") (mozilla-patch "icecat-bug-1346499.patch" "747fd6c81983" "00iscyn4wr69205ppiaghlnd32845f5lcsl303v0fcdd4d1v04vc")
(mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv") (mozilla-patch "icecat-bug-1334443-pt1.patch" "16201e8478df" "1k91xaai25vn1svkaldnsd2s8br3fgvnk5l54k3n3lk3m5vj55hv")
(mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj") (mozilla-patch "icecat-bug-1334443-pt2.patch" "f100e5cf3bcb" "1cgbbbnkrd3ydfw99rhnpqdp5zq65537mg8sa1s9ajxkjjd1dkwj")
(mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx") (mozilla-patch "icecat-bug-1354810.patch" "e579ef6e8d11" "0cmrh8dl85lzjxpbni08xbs8qq15sljnpg70a7rsl0jdbgih3mdx")
(mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj") (mozilla-patch "icecat-bug-1356755.patch" "4a3fce67b52d" "126i9nwxsb3sjwb7dvhafacq86glnhx7r7jjv0h9v21s1w0kx4wj")
(mozilla-patch "icecat-bug-1273265.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q") (mozilla-patch "icecat-CVE-2017-7765.patch" "7902fea300b8" "1jkrl8hdycsi17dd1m1vvl6gm1skhpf10q2m29zwfr8l40fd6a3q")
(mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0") (mozilla-patch "icecat-bug-1353204.patch" "b5a21502aeff" "13rbrhvr37w95av9d4hkgi913nq0j6k2iijydylvprcn18cwibp0")
(mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c") (mozilla-patch "icecat-bug-1028195.patch" "69a5ca2bf867" "0q8cgi6837ikpg7gsvywmzhq0i102845apcbrd6mw0205qqsnw5c")
(mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv") (mozilla-patch "icecat-bug-1347835.patch" "bc635f45af37" "1fny422l6yc80901x6swybr8nk0in1wxfgy97ky4bdkcqlnmzpqv")
(mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv") (mozilla-patch "icecat-bug-1241066.patch" "b922ca70cce5" "09hcf9rm7ng3vj5y267w0c9h6pqinnz8gjlkwx1337xh43mdvqjv")
(mozilla-patch "icecat-bug-1346012.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc") (mozilla-patch "icecat-CVE-2017-5470-pt07.patch" "1ce6d0652921" "163ji64a86h682frh1jq016w1mjf8g24r8cni0irsdmiihis7zxc")
(mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg") (mozilla-patch "icecat-bug-1324140.patch" "8886f9cd5dd3" "0byabs9md8r3pc4r67sv2759427n1za0gfayln40nx47n2p52kmg")
(mozilla-patch "icecat-bug-1342552.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa") (mozilla-patch "icecat-CVE-2017-5470-pt08.patch" "ad995e90916b" "02nq9sg675p26z99nr2pykbz51hi2phf0gmrb1bjpq9pjbll7gsa")
(mozilla-patch "icecat-bug-1355039.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd") (mozilla-patch "icecat-CVE-2017-7749.patch" "4ae71415fecf" "0yfkkdkkimad9a3w734xx85lb7hrl870c8k8an7w78fq3vl3fjnd")
(mozilla-patch "icecat-bug-1363396.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza") (mozilla-patch "icecat-CVE-2017-7751.patch" "24cbb7f2e0ff" "006f0zhz5nxs72q9plwzhq4l79b47svzizvv510m5g2krsfrccza")
(mozilla-patch "icecat-bug-1356558.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj") (mozilla-patch "icecat-CVE-2017-7750.patch" "89c7fb6c5be3" "19650nmc4vn1prbpn5h06kz9d1al279xkc23v39577h4zhdrknkj")
(mozilla-patch "icecat-bug-1337810.patch" "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz") (mozilla-patch "icecat-bug-1337810.patch" "0f6dd3564c76" "1sxajqh6r7fjs45xhvjwg94smpvyvplh3rdvq11d3q5m9v4kg7mz")
(mozilla-patch "icecat-bug-1347748.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76") (mozilla-patch "icecat-CVE-2017-5470-pt09.patch" "145905da25d3" "0c2q9f000snpm9x0qda2y0awrsm313iwxbv0kh33ca0kpza49a76")
(mozilla-patch "icecat-bug-1345355.patch" "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr") (mozilla-patch "icecat-bug-1345355.patch" "c5012009a0b2" "0m772bgrwb8iwv2bdgx694ybg5wgbf58xg5v245x0p7gwhgwiwmr")
(mozilla-patch "icecat-bug-1351340.patch" "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl") (mozilla-patch "icecat-bug-1351340.patch" "047f19a1b9a0" "0qjnhybibs3cpcba3ga4g7d4c0w716xa9jf87y2ir8yz7dw1f9vl")
(mozilla-patch "icecat-bug-1056322.patch" "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml") (mozilla-patch "icecat-bug-1056322.patch" "f076a30f6c29" "0xgskjl6zmxi3v4l0f3wlas0qb2403fin5lv1hi3jf2142ihpaml")
@ -480,32 +469,44 @@ standards.")
(mozilla-patch "icecat-bug-1360574-pt1.patch" "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2") (mozilla-patch "icecat-bug-1360574-pt1.patch" "237eee780619" "1iw6z762zdc42kwjvv58a2cjc0s4kzwwy7838apl7y7cq85g0jg2")
(mozilla-patch "icecat-bug-1360574-pt2.patch" "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly") (mozilla-patch "icecat-bug-1360574-pt2.patch" "46a5a4aac189" "1i553f9qvav0fn5avbp8912995pqbhzbzamxxfz8gn2ik17y3xly")
(mozilla-patch "icecat-bug-1358776.patch" "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5") (mozilla-patch "icecat-bug-1358776.patch" "bd35fa23f79a" "12nicgwhcn63knmlcl0c2askn9sj35bfclaab3826pkd9yq5g4p5")
(mozilla-patch "icecat-bug-1362590.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k") (mozilla-patch "icecat-CVE-2017-5470-pt10.patch" "c1314a709b41" "0klgrcyc20fig6rbm9znjpcnfsz6xnlp1v03fbvaww0riy2qm42k")
(mozilla-patch "icecat-bug-1359859.patch" "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m") (mozilla-patch "icecat-bug-1359859.patch" "e38948fb79d6" "1sfyc5s9ndv6q72k8n9x0rvj4sz40k51iljrs42gwykzkjm2fx5m")
(mozilla-patch "icecat-bug-1342057.patch" "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif") (mozilla-patch "icecat-bug-1342057.patch" "278bef1d7a64" "0zk18s9pnbwz9ankmc9mj4197s55j1jvax04ansqymmmc3a5ciif")
(mozilla-patch "icecat-bug-1325513.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11") (mozilla-patch "icecat-CVE-2017-5470-pt11.patch" "218e0963406f" "0wqms5nany4sx2g4p01lbam7la2dyazz87dhv5hcsf8ifxrfww11")
(mozilla-patch "icecat-bug-1304566.patch" "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d") (mozilla-patch "icecat-bug-1304566.patch" "188e39630fcd" "1bfxfgj5ywx4bcf91kwyrjh5ppiv59gadx4445achyabdi639l8d")
(mozilla-patch "icecat-bug-1356601.patch" "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd") (mozilla-patch "icecat-bug-1356601.patch" "8191e403fedf" "1k4zmq0923f5dc3dwbz1q0bkcbm90ldwkczym366hgwadb2305nd")
(mozilla-patch "icecat-bug-1334097.patch" "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc") (mozilla-patch "icecat-bug-1334097.patch" "fe2a2c7e88cb" "1rppaivaddigwk65krn8m9f9mcdkiiv28ws9n9zj62n0rc1shyvc")
(mozilla-patch "icecat-bug-1359051.patch" "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp") (mozilla-patch "icecat-bug-1359051.patch" "8d7dbe5c6587" "14zh74bbld4s0jy0a48fi9acxkc236mh9wjid3vrf72yj6bi5xnp")
(mozilla-patch "icecat-bug-1359697.patch" "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf") (mozilla-patch "icecat-bug-1359697.patch" "ca2b5274549f" "1ns7v70i1hfkxqnjhf9fp0lk9095hdcllg94j3dl1nfaif4w6vbf")
(mozilla-patch "icecat-bug-1343256.patch" "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q") (mozilla-patch "icecat-bug-1343256.patch" "a30dd7dd6617" "1k078176fp8vz871wirjz9d3yx9l2lfl8p75c4905n3j3zv2297q")
(mozilla-patch "icecat-bug-1349310.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv") (mozilla-patch "icecat-CVE-2017-7778.patch" "81b3ce7d37b3" "0ad0wqczy4kpggj6m3b8bzxi6ax340mik1mfawhkq89a1h2sfpxv")
(mozilla-patch "icecat-bug-1356179.patch" "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p") (mozilla-patch "icecat-bug-1356179.patch" "66d8893f37f0" "0izl31lagvdv4qpb9gkjxvgpmxzw50x5bviap4l7bbnb56cv7d8p")
(mozilla-patch "icecat-bug-1365602.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww") (mozilla-patch "icecat-CVE-2017-5472.patch" "aad883966edd" "058axnrwrbvy2h9r9pb766lyky45hb92rap142sbp17yz0sxfmww")
(mozilla-patch "icecat-bug-1355520.patch" "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21") (mozilla-patch "icecat-bug-1355520.patch" "7ca2d8839f7a" "1xbmpvr2x720x9ghd5wgbg6lknbnhcyqmkkfamdf97mqcyizyr21")
(mozilla-patch "icecat-bug-1358469.patch" "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg") (mozilla-patch "icecat-bug-1358469.patch" "4d432638c0f9" "0qpjmwik3dryjwmgfwmkqk0rs9rb2lafb2k9fc3pkjnrq5y0l9xg")
(mozilla-patch "icecat-bug-1356025.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq") (mozilla-patch "icecat-CVE-2017-5470-pt12.patch" "f5967db0a0f3" "045wbvkm21kbm314dd6lbq2disiaf26kmsxi6brf442fd0028gwq")
(mozilla-patch "icecat-bug-1345910.patch" "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n") (mozilla-patch "icecat-bug-1345910.patch" "ec6b6720e54e" "0lm15jl46mdlsds6947jsiyvhf9agb8hcdrqj2svc3kn9kzvyr2n")
(mozilla-patch "icecat-bug-1359639.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx") (mozilla-patch "icecat-CVE-2017-5470-pt13.patch" "a4f8d8a12afa" "0d7sjc21af074rvgvijj42gmpjvcb1v1zlpgb3s7ky7w6wjr35vx")
(mozilla-patch "icecat-bug-1357090.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg") (mozilla-patch "icecat-CVE-2017-7754.patch" "d07f24a72ce4" "1qbwska76b2zslb95wnx9v04znb6k9fqylr4ajyfqpwk1sr363hg")
(mozilla-patch "icecat-bug-1364283.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h") (mozilla-patch "icecat-CVE-2017-7764.patch" "a6caa7628e36" "1yv5f4h8js9bry9krcx130w6ic8rdmmq4fap6va24kfx8qflg70h")
(mozilla-patch "icecat-bug-1237868.patch" "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj") (mozilla-patch "icecat-bug-1237868.patch" "41138235d4ea" "0mcj4x2kmagwf5hp8xhczf04sxm995pk1zarc9yffk84z7fcrxkj")
(mozilla-patch "icecat-bug-1331335.patch" "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn") (mozilla-patch "icecat-bug-1331335.patch" "b724283e3b31" "1xbb1vcdzfpcmrmxm8ihwzslh2vz15k0k601nvyhh6vgx270h1wn")
(mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv") (mozilla-patch "icecat-bug-1367267.patch" "4c2f4d8b693e" "1hrndhfnz0vnjnspwh5mbvgl2j8d1cs62awp04wx2w6z4l4wrmbv")
(mozilla-patch "icecat-bug-1366595.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5") (mozilla-patch "icecat-CVE-2017-7756.patch" "cce3fd607206" "1z97jw8jpfyx61jxf0j8nsplnna2c5bwihwnl9cvlc2cspp3kgp5")
(mozilla-patch "icecat-bug-1349266.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5") (mozilla-patch "icecat-CVE-2017-5470-pt14.patch" "dc4e3c64d781" "1zd666k4qpdamly3av09k602pmirjcs9l6la6ba0qq9w9vfan3g5")
(mozilla-patch "icecat-bug-1366140.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5"))) (mozilla-patch "icecat-CVE-2017-5470-pt15.patch" "379c348250e8" "0kvsyhi9j3bjx14ffr13dslqp8ghcgrz6ds2fikdkrrrk4syskd5")
(mozilla-patch "icecat-bug-1349531.patch" "70cd711c6ae8" "07hlby5xdvqy6jdqxydv5pwap8hhsycb19fgw5fan2xf9dhrfpb8")
(mozilla-patch "icecat-CVE-2017-5470-pt16.patch" "6e644bc1a57f" "1xp8b74wijfz198q4hdybldnwh3hh0vh33dc5s7489abmz4s5zjg")
(mozilla-patch "icecat-CVE-2017-7758.patch" "279bffa85beb" "0shf77l9id6s8cs8xbc0ii0ccd7n09jv20410kkqqz11m296dcjr")
(mozilla-patch "icecat-CVE-2017-7757.patch" "0abcbc6ef8f3" "045arb1b83a3yv358naznl15bnr4wgxxayv8d5gcxarcbrrvm5q4")
(mozilla-patch "icecat-CVE-2017-5470-pt17.patch" "e0261afd69b9" "0a19b24iq57430kpbsdvka9vyg6kwhnnqis1xsd6wh8gz0bw5l79")
(mozilla-patch "icecat-CVE-2017-5470-pt18.patch" "4ec931d4bf29" "0bq0hq41xhy9aqjra5m0flmpilinlkb088r6w1kly561ckjl1f9f")
(mozilla-patch "icecat-bug-1339826-pt1.patch" "9c29579fffe2" "0yfc764qrynh441wwim18cr6k0sazgrm77frcdnyks0hzf0y44d1")
(mozilla-patch "icecat-bug-1339826-pt2.patch" "be946ea1a75a" "0pw0y1sdckn5brm39sdg47hbda5432aw32c3xq26ism23im85191")
(mozilla-patch "icecat-bug-1339826-pt2.patch" "44b2fe592a90" "1v8mz3b40dp6l5qrgha4yibmrnx80pxsvdll6ky1k937yhbzjk4a")
(mozilla-patch "icecat-CVE-2017-5470-pt19.patch" "f68e0d98a22a" "063z4a7gyhzy85fc2j2yr7kmk2zf7v875hjw4485civazydysw4j")
(mozilla-patch "icecat-bug-1353625.patch" "c41f37d913e2" "1s997c1hj4ywnlfbhvi1y96vd6bxl74wcrb0nly611h51h8xnyxm")
(mozilla-patch "icecat-CVE-2017-5470-pt20.patch" "38273203b827" "12p9r4spdp09d6ic9sqspvdr50lmc1p86ydz2fxdifb1f95njhx0")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -4109,7 +4109,7 @@ available in later versions of base to a wider (older) range of compilers.")
(define-public ghc-auto-update (define-public ghc-auto-update
(package (package
(name "ghc-auto-update") (name "ghc-auto-update")
(version "0.1.2.2") (version "0.1.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -4119,7 +4119,7 @@ available in later versions of base to a wider (older) range of compilers.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1ns4c5mqhnm7hsiqxf1ivjs5fflyq92b16ldzrcl0p85631h0c3v")))) "09dlh2alsx2mw5kvj931yhbj0aw7jmly2cm9xbscm2sf098w35jy"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(home-page "https://github.com/yesodweb/wai") (home-page "https://github.com/yesodweb/wai")
(synopsis "Efficiently run periodic, on-demand actions") (synopsis "Efficiently run periodic, on-demand actions")
@ -5085,7 +5085,7 @@ essentially the opposite of pretty-printing.")
(define-public ghc-wai (define-public ghc-wai
(package (package
(name "ghc-wai") (name "ghc-wai")
(version "3.0.4.0") (version "3.2.1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5095,7 +5095,7 @@ essentially the opposite of pretty-printing.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1551n0g0n22vml33v0jz5xgjcy6j79algvsdqg11a1z5ljjrjlqf")))) "08afasnirja21vr0bmzcywz4w29x736dmdv7h8nnh1l8bn7sd02x"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(inputs (inputs
`(("ghc-bytestring-builder" ,ghc-bytestring-builder) `(("ghc-bytestring-builder" ,ghc-bytestring-builder)
@ -5153,7 +5153,7 @@ communication between web applications and web servers.")
(define-public ghc-wai-extra (define-public ghc-wai-extra
(package (package
(name "ghc-wai-extra") (name "ghc-wai-extra")
(version "3.0.11.1") (version "3.0.13.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5163,7 +5163,7 @@ communication between web applications and web servers.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kr2s5qyx1dvnwr372h7pca4sgxjv0pdx96xkgsfi180h3mb0vq8")))) "0mh761a1bayr4ydwqmh3h8ndpi19zqw34mmy49lp2abr70r0nm1p"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(inputs (inputs
`(("ghc-ansi-terminal" ,ghc-ansi-terminal) `(("ghc-ansi-terminal" ,ghc-ansi-terminal)
@ -5890,7 +5890,7 @@ described in @url{http://www.lua.org/}.")
(define-public ghc-http-client (define-public ghc-http-client
(package (package
(name "ghc-http-client") (name "ghc-http-client")
(version "0.4.24") (version "0.5.6.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/" (uri (string-append "https://hackage.haskell.org/package/"
@ -5898,7 +5898,7 @@ described in @url{http://www.lua.org/}.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0xz133kdfiyy2rm6z95bmvjj6y2540xzd86cfmdv9s6kz4p1ir4k")))) "1v9bdb8dkhb5g6jl9azk86ig7ia8xh9arr64n7s8r94fp0vl6c1c"))))
(build-system haskell-build-system) (build-system haskell-build-system)
;; Tests require access to the web. ;; Tests require access to the web.
(arguments `(#:tests? #f)) (arguments `(#:tests? #f))
@ -6371,7 +6371,7 @@ the choice of SSL/TLS, and SOCKS.")
(define-public ghc-http-client-tls (define-public ghc-http-client-tls
(package (package
(name "ghc-http-client-tls") (name "ghc-http-client-tls")
(version "0.2.2") (version "0.3.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/" (uri (string-append "https://hackage.haskell.org/package/"
@ -6379,7 +6379,7 @@ the choice of SSL/TLS, and SOCKS.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0a01r05h5fxswyn6k6cgqgak4scqjan72hyy5wbdqzzhl4rmh7j5")))) "1mbwdfn4hs8lcwml2l6xv4n068l9zlasyv6vwb2ylgm030pyv3xh"))))
(build-system haskell-build-system) (build-system haskell-build-system)
;; Tests require Internet access ;; Tests require Internet access
(arguments `(#:tests? #f)) (arguments `(#:tests? #f))
@ -8295,4 +8295,375 @@ advanced user's otherwise working script to fail under future circumstances.
@end enumerate") @end enumerate")
(license license:gpl3+))) (license license:gpl3+)))
(define-public ghc-wai-conduit
(package
(name "ghc-wai-conduit")
(version "3.0.0.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"wai-conduit-" version "/"
"wai-conduit-" version ".tar.gz"))
(sha256
(base32
"1zvsiwjq2mvkb9sjgp3ly9m968m7a2jjzr4id6jpi3mmqykj15z4"))))
(build-system haskell-build-system)
(inputs
`(("ghc-conduit" ,ghc-conduit)
("ghc-http-types" ,ghc-http-types)
("ghc-wai" ,ghc-wai)
("ghc-blaze-builder" ,ghc-blaze-builder)))
(home-page "https://github.com/yesodweb/wai")
(synopsis "Conduit wrappers for Haskell's WAI")
(description "This package provides data streaming abstraction for
Haskell's Web Application Interface (WAI).")
(license license:expat)))
(define-public ghc-http-date
(package
(name "ghc-http-date")
(version "0.0.6.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"http-date-" version "/"
"http-date-" version ".tar.gz"))
(sha256
(base32
"0dknh28kyarnzqrsc80ssalxjrq0qbv7ir49247p2grb7rh0dqgj"))))
(build-system haskell-build-system)
(inputs
`(("ghc-attoparsec" ,ghc-attoparsec)))
(native-inputs
`(("ghc-doctest" ,ghc-doctest)
("ghc-hspec" ,ghc-hspec)
("hspec-discover" ,hspec-discover)
("ghc-old-locale" ,ghc-old-locale)))
(home-page "https://github.com/kazu-yamamoto/http-date")
(synopsis "HTTP Date parser/formatter")
(description "Library for Parsing and formatting HTTP
Date in Haskell.")
(license license:bsd-3)))
(define-public ghc-simple-sendfile
(package
(name "ghc-simple-sendfile")
(version "0.2.25")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"simple-sendfile-" version "/"
"simple-sendfile-" version ".tar.gz"))
(sha256
(base32
"0k99j9xfcf83c55jmn202hdinhjaa4yn3dal4rvjk2w2rlhqirha"))))
(build-system haskell-build-system)
(inputs
`(("ghc-conduit" ,ghc-conduit)
("ghc-conduit-extra" ,ghc-conduit-extra)
("ghc-network" ,ghc-network)
("ghc-resourcet" ,ghc-resourcet)))
(native-inputs
`(("ghc-hspec" ,ghc-hspec)
("hspec-discover" ,hspec-discover)))
(home-page "https://github.com/kazu-yamamoto/simple-sendfile")
(synopsis "Cross platform library for the sendfile system call")
(description "This library tries to call minimum system calls which
are the bottleneck of web servers.")
(license license:bsd-3)))
(define-public ghc-hex
(package
(name "ghc-hex")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"hex-" version "/"
"hex-" version ".tar.gz"))
(sha256
(base32
"1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj"))))
(build-system haskell-build-system)
(home-page "http://hackage.haskell.org/package/hex")
(synopsis "Convert strings into hexadecimal and back")
(description "This package provides conversion functions between
bytestrings and their hexademical representation.")
(license license:bsd-3)))
(define-public ghc-psqueues
(package
(name "ghc-psqueues")
(version "0.2.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"psqueues-" version "/"
"psqueues-" version ".tar.gz"))
(sha256
(base32
"1dd6xv1wjxj1xinx155b14hijw8fafrg4096srzdzj7xyqq7qxbd"))))
(build-system haskell-build-system)
(inputs
`(("ghc-hashable" ,ghc-hashable)))
(native-inputs
`(("ghc-hunit" ,ghc-hunit)
("ghc-quickcheck" ,ghc-quickcheck)
("ghc-tagged" ,ghc-tagged)
("ghc-test-framework" ,ghc-test-framework)
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
(home-page "https://github.com/bttr/psqueues")
(synopsis "Pure priority search queues")
(description "The psqueues package provides
@uref{http://en.wikipedia.org/wiki/Priority_queue, Priority Search Queues} in
three different flavors:
@itemize
@item @code{OrdPSQ k p v}, which uses the @code{Ord k} instance to provide
fast insertion, deletion and lookup. This implementation is based on Ralf
Hinze's @uref{http://citeseer.ist.psu.edu/hinze01simple.html, A Simple
Implementation Technique for Priority Search Queues}.
Hence, it is similar to the @uref{http://hackage.haskell.org/package/PSQueue,
PSQueue} library, although it is considerably faster and provides a slightly
different API.
@item @code{IntPSQ p v} is a far more efficient implementation. It fixes the
key type to @code{Int} and uses a
@code{http://en.wikipedia.org/wiki/Radix_tree, radix tree}
(like @code{IntMap}) with an additional min-heap property.
@item @code{HashPSQ k p v} is a fairly straightforward extension
of @code{IntPSQ}: it simply uses the keys' hashes as indices in the
@code{IntPSQ}. If there are any hash collisions, it uses an
@code{OrdPSQ} to resolve those. The performance of this implementation
is comparable to that of @code{IntPSQ}, but it is more widely
applicable since the keys are not restricted to @code{Int},
but rather to any @code{Hashable} datatype.
@end itemize
Each of the three implementations provides the same API, so they can
be used interchangeably.
Typical applications of Priority Search Queues include:
@itemize
@item Caches, and more specifically LRU Caches;
@item Schedulers;
@item Pathfinding algorithms, such as Dijkstra's and A*.
@end itemize")
(license license:bsd-3)))
(define-public ghc-glob
(package
(name "ghc-glob")
(version "0.7.14")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"Glob-" version "/"
"Glob-" version ".tar.gz"))
(sha256
(base32
"0aw43izg8vlvjl40ms6k92w7gxg7n3l6smdvzla47fp82s4vhdr8"))))
(build-system haskell-build-system)
(inputs
`(("ghc-dlist" ,ghc-dlist)
("ghc-semigroups" ,ghc-semigroups)
("ghc-transformers-compat" ,ghc-transformers-compat)))
(native-inputs
`(("ghc-hunit" ,ghc-hunit)
("ghc-quickcheck" ,ghc-quickcheck)
("ghc-test-framework" ,ghc-test-framework)
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)))
(home-page "http://iki.fi/matti.niemenmaa/glob/")
(synopsis "Haskell library matching glob patterns against file paths")
(description "This package providesa Haskell library for globbing:
matching patterns against file paths.")
(license license:bsd-3)))
(define-public ghc-http2
(package
(name "ghc-http2")
(version "1.6.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"http2-" version "/"
"http2-" version ".tar.gz"))
(sha256
(base32
"0hww0rfsv6lqx62qzycbcqy5q6rh9k09qkyjkdm5m1sp1z50wqk1"))))
(build-system haskell-build-system)
(inputs
`(("ghc-bytestring-builder" ,ghc-bytestring-builder)
("ghc-case-insensitive" ,ghc-case-insensitive)
("ghc-aeson" ,ghc-aeson)
("ghc-aeson-pretty" ,ghc-aeson-pretty)
("ghc-hex" ,ghc-hex)
("ghc-unordered-containers" ,ghc-unordered-containers)
("ghc-vector" ,ghc-vector)
("ghc-word8" ,ghc-word8)
("ghc-psqueues" ,ghc-psqueues)
("ghc-stm" ,ghc-stm)))
(native-inputs
`(("ghc-glob" ,ghc-glob)
("ghc-hspec" ,ghc-hspec)
("ghc-doctest" ,ghc-doctest)
("hspec-discover" ,hspec-discover)))
(home-page "https://github.com/kazu-yamamoto/http2")
(synopsis "HTTP/2 library including frames, priority queues and HPACK")
(description "This package provides a HTTP/2.0 library including frames
and HPACK. Currently HTTP/2 16 framing and HPACK 10 is supported.")
(license license:bsd-3)))
(define-public ghc-warp
(package
(name "ghc-warp")
(version "3.2.11.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"warp-" version "/" "warp-" version
".tar.gz"))
(sha256
(base32
"1zp5cy0bbj508vdvms1n5z80z37m253kwsqc5a83cfc990n6fgw5"))))
(build-system haskell-build-system)
(arguments
`(#:tests? #f)) ; FIXME: Test-Suite `spec` fails.
(inputs
`(("ghc-async" ,ghc-async)
("ghc-auto-update" ,ghc-auto-update)
("ghc-blaze-builder" ,ghc-blaze-builder)
("ghc-bytestring-builder" ,ghc-bytestring-builder)
("ghc-case-insensitive" ,ghc-case-insensitive)
("ghc-hashable" ,ghc-hashable)
("ghc-http-types" ,ghc-http-types)
("ghc-iproute" ,ghc-iproute)
("ghc-network" ,ghc-network)
("ghc-stm" ,ghc-stm)
("ghc-streaming-commons" ,ghc-streaming-commons)
("ghc-text" ,ghc-text)
("ghc-unix-compat" ,ghc-unix-compat)
("ghc-vault" ,ghc-vault)
("ghc-wai" ,ghc-wai)
("ghc-word8" ,ghc-word8)
("ghc-lifted-base" ,ghc-lifted-base)
("ghc-http-date" ,ghc-http-date)
("ghc-simple-sendfile" ,ghc-simple-sendfile)
("ghc-http2" ,ghc-http2)))
(native-inputs
`(("ghc-silently" ,ghc-silently)
("ghc-hspec" ,ghc-hspec)
("ghc-auto-update" ,ghc-auto-update)
("ghc-doctest" ,ghc-doctest)
("ghc-quickcheck" ,ghc-quickcheck)
("ghc-hunit" ,ghc-hunit)
("ghc-http" ,ghc-http)
("hspec-discover" ,hspec-discover)))
(home-page "http://github.com/yesodweb/wai")
(synopsis "HTTP server library for Haskell's WAI")
(description "Warp is a server library for HTTP/1.x and HTTP/2
based WAI (Web Application Interface in Haskell).")
(license license:expat)))
(define-public ghc-warp-tls
(package
(name "ghc-warp-tls")
(version "3.2.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"warp-tls-" version "/"
"warp-tls-" version ".tar.gz"))
(sha256
(base32
"14m2bzk5ivz9gdpxlcj6qnh46f2lycm1ybdjnfkj2876zrqwii7m"))))
(build-system haskell-build-system)
(inputs
`(("ghc-cryptonite" ,ghc-cryptonite)
("ghc-data-default-class" ,ghc-data-default-class)
("ghc-network" ,ghc-network)
("ghc-streaming-commons" ,ghc-streaming-commons)
("ghc-tls" ,ghc-tls)
("ghc-wai" ,ghc-wai)
("ghc-warp" ,ghc-warp)))
(home-page "http://github.com/yesodweb/wai")
(synopsis "SSL/TLS support for Warp")
(description "This package provides SSL/TLS support for Warp,
a WAI handler, via the native Haskell TLS implementation.")
(license license:expat)))
(define-public ghc-http-conduit
(package
(name "ghc-http-conduit")
(version "2.2.3.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"http-conduit-" version "/" "http-conduit-"
version ".tar.gz"))
(sha256 (base32
"03na2nbm9la0shlijvjyb5mpp1prfskk4jmjy8iz707r0731dbjk"))))
(build-system haskell-build-system)
;; FIXME: `httpLbs TLS` in test-suite `test` fails with
;; ConnectionFailure getProtocolByName: does not exist (no such protocol
;; name: tcp)
(arguments `(#:tests? #f))
(inputs
`(("ghc-aeson" ,ghc-aeson)
("ghc-resourcet" ,ghc-resourcet)
("ghc-conduit" ,ghc-conduit)
("ghc-conduit-extra" ,ghc-conduit-extra)
("ghc-http-types" ,ghc-http-types)
("ghc-lifted-base" ,ghc-lifted-base)
("ghc-http-client" ,ghc-http-client)
("ghc-http-client-tls" ,ghc-http-client-tls)
("ghc-monad-control" ,ghc-monad-control)
("ghc-mtl" ,ghc-mtl)
("ghc-exceptions" ,ghc-exceptions)))
(native-inputs
`(("ghc-hunit" ,ghc-hunit)
("ghc-hspec" ,ghc-hspec)
("ghc-data-default-class" ,ghc-data-default-class)
("ghc-connection" ,ghc-connection)
("ghc-warp-tls" ,ghc-warp-tls)
("ghc-blaze-builder" ,ghc-blaze-builder)
("ghc-text" ,ghc-text)
("ghc-conduit" ,ghc-conduit)
("ghc-utf8-string" ,ghc-utf8-string)
("ghc-case-insensitive" ,ghc-case-insensitive)
("ghc-lifted-base" ,ghc-lifted-base)
("ghc-network" ,ghc-network)
("ghc-wai" ,ghc-wai)
("ghc-warp" ,ghc-warp)
("ghc-wai-conduit" ,ghc-wai-conduit)
("ghc-http-types" ,ghc-http-types)
("ghc-http-client" ,ghc-http-client)
("ghc-cookie" ,ghc-cookie)
("ghc-conduit-extra" ,ghc-conduit-extra)
("ghc-streaming-commons" ,ghc-streaming-commons)
("ghc-aeson" ,ghc-aeson)
("ghc-temporary" ,ghc-temporary)
("ghc-resourcet" ,ghc-resourcet)))
(home-page "https://hackage.haskell.org/package/http-conduit")
(synopsis "HTTP/HTTPS client with conduit interface")
(description "This library uses attoparsec for parsing the actual
contents of the HTTP connection. It also provides higher-level functions
which allow you to avoid direct usage of conduits.")
(license license:bsd-3)))
;;; haskell.scm ends here ;;; haskell.scm ends here

View File

@ -415,7 +415,7 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
(define-public leptonica (define-public leptonica
(package (package
(name "leptonica") (name "leptonica")
(version "1.74.0") (version "1.74.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -424,7 +424,7 @@ the W3C's XML-based Scaleable Vector Graphic (SVG) format.")
".tar.gz")) ".tar.gz"))
(file-name (string-append "leptonica-" version ".tar.gz")) (file-name (string-append "leptonica-" version ".tar.gz"))
(sha256 (sha256
(base32 "0i2a4vx9gizki0wgmv03xjz8j9d8agkvbag1a8m4kcw4asd4p87g")))) (base32 "10pw7pwccd0m0fc9rlrr2m41s7j1qvba2wcrav17pw1gclkf34i0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("gnuplot" ,gnuplot) ;needed for test suite `(("gnuplot" ,gnuplot) ;needed for test suite
@ -850,16 +850,18 @@ channels.")
(define-public exiv2 (define-public exiv2
(package (package
(name "exiv2") (name "exiv2")
(version "0.25") (version "0.26")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "http://www.exiv2.org/exiv2-" (uri (list (string-append "http://www.exiv2.org/builds/exiv2-"
version "-trunk.tar.gz")
(string-append "http://www.exiv2.org/exiv2-"
version ".tar.gz") version ".tar.gz")
(string-append "https://fossies.org/linux/misc/exiv2-" (string-append "https://fossies.org/linux/misc/exiv2-"
version ".tar.gz"))) version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"197g6vgcpyf9p2cwn5p5hb1r714xsk1v4p96f5pv1z8mi9vzq2y8")))) "1hsdzlzgkipprqh93yj81mrckl2l7c2mn2i84691pallnjz5qqhc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no `check' target (arguments '(#:tests? #f)) ; no `check' target
(propagated-inputs (propagated-inputs

View File

@ -51,10 +51,12 @@
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux) ;alsa #:use-module (gnu packages linux) ;alsa
#:use-module (gnu packages wget) #:use-module (gnu packages wget)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages popt)
#:use-module (gnu packages kerberos) #:use-module (gnu packages kerberos)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
@ -160,8 +162,22 @@ This package provides the classpath library.")
"1jyg4bsym6igz94wps5443c7wiwlzinqzkchcw972nz4kf1cql6g")))) "1jyg4bsym6igz94wps5443c7wiwlzinqzkchcw972nz4kf1cql6g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:configure-flags
(list "--with-internal-libffi=no"
"--with-internal-libpopt=no")
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'remove-timestamp-for-reproducibility
(lambda _
(substitute* "src/sablevm/Makefile.in"
(("\\$\\(SVMCOMPILETIME\\)") "(unknown)"))
#t))
(add-after 'unpack 'link-with-popt
(lambda _
(substitute* "src/sablevm/Makefile.in"
(("\\$\\(SVMADD\\)" match)
(string-append match " -lpopt")))
#t))
(add-after 'unpack 'patch-path-to-classpath (add-after 'unpack 'patch-path-to-classpath
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "Makefile.in" (substitute* "Makefile.in"
@ -179,7 +195,9 @@ This package provides the classpath library.")
(inputs (inputs
`(("classpath" ,sablevm-classpath) `(("classpath" ,sablevm-classpath)
("jikes" ,jikes) ("jikes" ,jikes)
("zlib" ,zlib))) ("zlib" ,zlib)
("popt" ,popt)
("libffi" ,libffi)))
(native-inputs (native-inputs
`(("libltdl" ,libltdl))) `(("libltdl" ,libltdl)))
(home-page "http://sablevm.org/") (home-page "http://sablevm.org/")

View File

@ -39,7 +39,7 @@
(define-public kdevelop (define-public kdevelop
(package (package
(name "kdevelop") (name "kdevelop")
(version "5.1.0") (version "5.1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -48,7 +48,7 @@
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1s4cbkx2a0p73b52yxmf5dhv08xk9pxgrkjsnbzy76ssfr545g60")))) "0m6pnmylp1gij5cr75waz8hjry5894qillj5977h467hnbzs808a"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules) `(("extra-cmake-modules" ,extra-cmake-modules)
@ -100,6 +100,7 @@
(kio (assoc-ref inputs "kio")) (kio (assoc-ref inputs "kio"))
(kcmutils (assoc-ref inputs "kcmutils")) (kcmutils (assoc-ref inputs "kcmutils"))
(qtquickcontrols (assoc-ref inputs "qtquickcontrols")) (qtquickcontrols (assoc-ref inputs "qtquickcontrols"))
(qtbase (assoc-ref inputs "qtbase"))
(qtdeclarative (assoc-ref inputs "qtdeclarative")) (qtdeclarative (assoc-ref inputs "qtdeclarative"))
(profile "$HOME/.guix-profile") (profile "$HOME/.guix-profile")
(qml "/qml")) (qml "/qml"))
@ -107,6 +108,8 @@
`("XDG_DATA_DIRS" ":" prefix `("XDG_DATA_DIRS" ":" prefix
,(map (lambda (s) (string-append s "/share")) ,(map (lambda (s) (string-append s "/share"))
(list profile out kdevplatform kcmutils))) (list profile out kdevplatform kcmutils)))
`("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
(,(string-append qtbase "/plugins/platforms")))
`("QT_PLUGIN_PATH" ":" prefix `("QT_PLUGIN_PATH" ":" prefix
,(map (lambda (s) (string-append s "/lib/plugins")) ,(map (lambda (s) (string-append s "/lib/plugins"))
(list profile out kdevplatform kio))) (list profile out kdevplatform kio)))
@ -148,7 +151,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
(define-public kdevplatform (define-public kdevplatform
(package (package
(name "kdevplatform") (name "kdevplatform")
(version "5.1.0") (version "5.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kde/stable/kdevelop" (uri (string-append "mirror://kde/stable/kdevelop"
@ -156,7 +159,7 @@ for some KDevelop language plugins (Ruby, PHP, CSS...).")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1nxf66vk6p7lmckdsha9fpq3zchwbg79qhy49f4hndlxgj03p7zh")))) "09p7lvniw55g6x8v8wl3azlps8c13yx03x1m9cd3qdxi282l8n9i"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules) `(("extra-cmake-modules" ,extra-cmake-modules)

View File

@ -77,9 +77,10 @@ and freshness without requiring additional information from the user.")
(license license:boost1.0))) (license license:boost1.0)))
(define-public ldc-bootstrap (define-public ldc-bootstrap
(let ((runtime-version "0.17.3"))
(package (package
(name "ldc") (name "ldc")
(version "0.17.3") (version "0.17.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -88,7 +89,7 @@ and freshness without requiring additional information from the user.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"135rgwwk82ccqp4n3fhqz4696jmvip90fg5ql2kccq5h1r71gb82")))) "1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(arguments (arguments
@ -141,7 +142,7 @@ and freshness without requiring additional information from the user.")
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v" "https://github.com/ldc-developers/phobos/archive/ldc-v"
version ".tar.gz")) runtime-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl")) "0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl"))
@ -151,7 +152,7 @@ and freshness without requiring additional information from the user.")
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v" "https://github.com/ldc-developers/druntime/archive/ldc-v"
version ".tar.gz")) runtime-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs")))) "0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs"))))
@ -160,7 +161,7 @@ and freshness without requiring additional information from the user.")
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v" "https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
version ".tar.gz")) runtime-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x")))))) "196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x"))))))
@ -174,8 +175,7 @@ latest DMD frontend and uses LLVM as backend.")
;; which is released under the "Boost Software License version 1.0". ;; which is released under the "Boost Software License version 1.0".
(license (list license:bsd-3 (license (list license:bsd-3
license:gpl2+ license:gpl2+
license:boost1.0)))) license:boost1.0)))))
(define-public ldc (define-public ldc
;; The phobos, druntime and dmd-testsuite dependencies do not have a newer ;; The phobos, druntime and dmd-testsuite dependencies do not have a newer

View File

@ -584,14 +584,15 @@ text documents, vector drawings, presentations and spreadsheets.")
(define-public libmwaw (define-public libmwaw
(package (package
(name "libmwaw") (name "libmwaw")
(version "0.3.5") (version "0.3.11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-"
version "/" name "-" version ".tar.xz")) version "/" name "-" version ".tar.xz"))
(patches (search-patches "libmwaw-CVE-2017-9433.patch"))
(sha256 (base32 (sha256 (base32
"1vx9h419fcfcs0yj071hsg9d2qvkacgca6052m8hv3h743cdmzil")))) "16i9s9p4sjpdpbm3gq6jkc9r3nyfy47ggkdlgh7vr0mydccklj2b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)

View File

@ -36,7 +36,7 @@
(define-public ola (define-public ola
(package (package
(name "ola") (name "ola")
(version "0.10.3") (version "0.10.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -45,7 +45,7 @@
(patches (search-patches "ola-readdir-r.patch")) (patches (search-patches "ola-readdir-r.patch"))
(sha256 (sha256
(base32 (base32
"1yf1yy9n64n73zjq2bwc0gik0dd3n05297hdrrma2qvb0imzm5h1")))) "01zpm0vpin784jyjhbdad097a4i0cjdfrqqfbsvx47d6nbssq2my"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("bison" ,bison) `(("bison" ,bison)

View File

@ -358,8 +358,8 @@ It has been modified to remove all non-free binary blobs.")
(define %intel-compatible-systems '("x86_64-linux" "i686-linux")) (define %intel-compatible-systems '("x86_64-linux" "i686-linux"))
(define %linux-libre-version "4.11.4") (define %linux-libre-version "4.11.6")
(define %linux-libre-hash "11nd9pv18vz3g82ja71dkz9mbs0ffb8yamsd44d381szmmm2kpj8") (define %linux-libre-hash "0xay0m2a4la8aqc8ai8zqfh1c1i6sjgh0dywm7nis0g1gqirwrds")
(define-public linux-libre (define-public linux-libre
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -368,32 +368,22 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.31" (make-linux-libre "4.9.33"
"0amc35c9f2rym6grb277yscnx8ybn8d4fbc2a59sgkg1lsdv7n4q" "1dam6vqymhlx1vsl0lzxphamiifgyf97snxg18b2czqq402nz094"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.4 (define-public linux-libre-4.4
(make-linux-libre "4.4.71" (make-linux-libre "4.4.73"
"0nrd165crx9m9s1px98if6q5dcdqwmas9kh8i4rw51gz2xinh0gx" "144ssqw1dr86z4cgl797pq5rggfibsxqk7wmfbl6j92l1cj6yjrz"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.1 (define-public linux-libre-4.1
(make-linux-libre "4.1.40" (make-linux-libre "4.1.41"
"0ygc5qaxwd4yxyzyq6qya9w111q24xqzxd33x73pmg3hr7asvy4x" "02mqfl899jxvrmxlh8lvcgvm3klwd8wbsdz4rr2gpchbggj4vgb2"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config #:configuration-file kernel-config))
#:patches
(list %boot-logo-patch
(origin
(method url-fetch)
(uri "\
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=5edabca9d4cff7f1f2b68f0bac55ef99d9798ba4")
(file-name "linux-libre-CVE-2017-6074.patch")
(sha256
(base32
"1x40slfz1qxgiaznyy13bwlh34450pkyyrkljpyjlx6c4mrzb1jj"))))))
(define-public linux-libre-arm-generic (define-public linux-libre-arm-generic
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -3387,14 +3377,14 @@ the default @code{nsswitch} and the experimental @code{umich_ldap}.")
(define-public mcelog (define-public mcelog
(package (package
(name "mcelog") (name "mcelog")
(version "152") (version "153")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/" (uri (string-append "https://git.kernel.org/cgit/utils/cpu/mce/"
"mcelog.git/snapshot/v" version ".tar.gz")) "mcelog.git/snapshot/v" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0df1kbiw1pl84l6b9g515lpk5a81hmy8r27yakr4hrmi2vwzdfh6")) "0q40d60p1klzg0aznvxhxgjlddwcxfj2q59s4q86sf9ild6rcdhl"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
@ -3960,10 +3950,11 @@ userspace queueing component and the logging subsystem.")
;; build currently.) ;; build currently.)
(system* "make" "-C" "src" "install" (system* "make" "-C" "src" "install"
(string-append "PREFIX=" out))) (string-append "PREFIX=" out)))
(begin (let ((man1 (string-append out
(install-file "doc/proot/man.1" "/share/man/man1")))
(string-append out "/share" (mkdir-p man1)
"/man/man1")) (copy-file "doc/proot/man.1"
(string-append man1 "/proot.1"))
#t)))))))) #t))))))))
(native-inputs `(("which" ,which) (native-inputs `(("which" ,which)

View File

@ -15,7 +15,7 @@
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com>
;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; Copyright © 2016, 2017 ng0 <ng0@no-reply.infotropique.org>
;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
@ -265,7 +265,7 @@ operating systems.")
(package (package
(inherit mutt) (inherit mutt)
(name "neomutt") (name "neomutt")
(version "20170602") (version "20170609")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -273,7 +273,7 @@ operating systems.")
"/archive/" name "-" version ".tar.gz")) "/archive/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kzhkz8bdqbdh5b6pzqb6ikp8d3nsic906b5pkmi6qlaga32yxjk")))) "1kdhnhdlv84v6brhqgh8g0h6cpcbwfc59b4g09zkkgqc4fnggapy"))))
(inputs (inputs
`(("cyrus-sasl" ,cyrus-sasl) `(("cyrus-sasl" ,cyrus-sasl)
("gdbm" ,gdbm) ("gdbm" ,gdbm)
@ -296,10 +296,7 @@ operating systems.")
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(arguments (arguments
`(#:configure-flags `(#:configure-flags
(list "--enable-smtp" (list "--enable-gpgme"
"--enable-imap"
"--enable-pop"
"--enable-gpgme"
;; database, implies header caching ;; database, implies header caching
"--without-tokyocabinet" "--without-tokyocabinet"
@ -325,8 +322,6 @@ operating systems.")
"--with-mailpath=/var/mail" "--with-mailpath=/var/mail"
"--with-external-dotlock" "--with-external-dotlock"
"--enable-nntp"
"--enable-compressed"
(string-append "--with-curses=" (string-append "--with-curses="
(assoc-ref %build-inputs "ncurses"))) (assoc-ref %build-inputs "ncurses")))

View File

@ -37,7 +37,7 @@
(define-public mate-icon-theme (define-public mate-icon-theme
(package (package
(name "mate-icon-theme") (name "mate-icon-theme")
(version "1.16.0") (version "1.18.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://pub.mate-desktop.org/releases/" (uri (string-append "http://pub.mate-desktop.org/releases/"
@ -45,7 +45,7 @@
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1zldw22p1i76iss8car39pmfagpfxxlfk1fdhvr4x5r6gf36gv7d")))) "0si3li3kza7s45zhasjvqn5f85zpkn0x8i4kq1dlnqvjjqzkg4ch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
@ -92,7 +92,7 @@ themes for both gtk+-2 and gtk+-3.")
(define-public mate-desktop (define-public mate-desktop
(package (package
(name "mate-desktop") (name "mate-desktop")
(version "1.16.1") (version "1.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://pub.mate-desktop.org/releases/" (uri (string-append "http://pub.mate-desktop.org/releases/"
@ -100,11 +100,8 @@ themes for both gtk+-2 and gtk+-3.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1pzncfgrzp2mp9407ivk1113hkadpf110blr058h31jkwsk8syjq")))) "12iv2y4dan962fs7vkkxbjkp77pbvjnwfa43ggr0zkdsc3ydjbbg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:configure-flags '("--with-gtk=3.0"
"--enable-mpaste")))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("intltool" ,intltool) ("intltool" ,intltool)
@ -115,7 +112,6 @@ themes for both gtk+-2 and gtk+-3.")
(inputs (inputs
`(("gtk+" ,gtk+) `(("gtk+" ,gtk+)
("libxrandr" ,libxrandr) ("libxrandr" ,libxrandr)
("python2" ,python-2)
("startup-notification" ,startup-notification))) ("startup-notification" ,startup-notification)))
(propagated-inputs (propagated-inputs
`(("dconf" ,dconf))) ; mate-desktop-2.0.pc `(("dconf" ,dconf))) ; mate-desktop-2.0.pc
@ -129,7 +125,7 @@ desktop and the mate-about program.")
(define-public libmateweather (define-public libmateweather
(package (package
(name "libmateweather") (name "libmateweather")
(version "1.16.1") (version "1.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://pub.mate-desktop.org/releases/" (uri (string-append "http://pub.mate-desktop.org/releases/"
@ -137,12 +133,11 @@ desktop and the mate-about program.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0w1b8b1ckmkbvwnqi9yh2lwbskzhz99s5yxdkar5xiqylnjrwmm3")))) "0z6vfh42fv9rqjrraqfpf6h9nd9h662bxy3l3r48j19xvxrwmx3a"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
`("--with-gtk=3.0" (list (string-append "--with-zoneinfo-dir="
,(string-append "--with-zoneinfo-dir="
(assoc-ref %build-inputs "tzdata") (assoc-ref %build-inputs "tzdata")
"/share/zoneinfo")) "/share/zoneinfo"))
#:phases #:phases
@ -178,7 +173,7 @@ the MATE desktop environment.")
(define-public mate-menus (define-public mate-menus
(package (package
(name "mate-menus") (name "mate-menus")
(version "1.16.0") (version "1.18.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://pub.mate-desktop.org/releases/" (uri (string-append "http://pub.mate-desktop.org/releases/"
@ -186,7 +181,7 @@ the MATE desktop environment.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0crw07iszwsqk54y8znfqdgfz76rjdz8992v4q9kpwwlrl11xmc5")))) "05kyr37xqv6hm1rlvnqd5ng0x1n883brqynkirkk5drl56axnz7h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -75,7 +75,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd (define-public mpd
(package (package
(name "mpd") (name "mpd")
(version "0.20.6") (version "0.20.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -84,7 +84,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz")) "/mpd-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0isbpa79m7zf09w3s1ry638cw96rxasy1ch66zl01k75i48mw1gl")))) "1dsfwd0i81x8m9idi7idm9612mpf1g5lzcy69h04nd9jks3a4xyd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -14,6 +14,7 @@
;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31,12 +32,12 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages networking) (define-module (gnu packages networking)
#:use-module (guix build-system perl)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
@ -64,7 +65,8 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)) #:use-module (gnu packages valgrind)
#:use-module (ice-9 match))
(define-public macchanger (define-public macchanger
(package (package
@ -433,7 +435,7 @@ and up to 1 Mbit/s downstream.")
(define-public whois (define-public whois
(package (package
(name "whois") (name "whois")
(version "5.2.15") (version "5.2.16")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -441,7 +443,7 @@ and up to 1 Mbit/s downstream.")
name "_" version ".tar.xz")) name "_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"123ingf699javzh8qm6ny10nl28zbjzasa4k5pcn0qzw1dlnnnks")))) "0fpwac26ja0rdqsbxyjcsk8gxgixfpxk0baj3rhnpaff3jv0ilp9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO: unbundle mkpasswd binary + its po files. ;; TODO: unbundle mkpasswd binary + its po files.
(arguments (arguments
@ -634,7 +636,12 @@ live network and disk I/O bandwidth monitor.")
"libnl=true" "libnl=true"
"pcre=true" "pcre=true"
"experimental=true" ;build wesside-ng, etc. "experimental=true" ;build wesside-ng, etc.
"AVX2FLAG=N" "AVX1FLAG=N" "SSEFLAG=Y" "AVX2FLAG=N" "AVX1FLAG=N"
,,@(match (%current-system)
((or "x86_64-linux" "i686-linux")
`("SSEFLAG=Y"))
(_
`("NEWSSE=false")))
,(string-append "prefix=" %output)) ,(string-append "prefix=" %output))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(delete 'configure) ;no configure phase (delete 'configure) ;no configure phase

View File

@ -0,0 +1,83 @@
Store the crawl version in the textdatabases in SAVEDIR and
upgrade the databases when the crawl version changes.
By default crawl checks for a mtime difference on files in DATADIR to see if an
upgrade is required, but guix nulls all file dates,
and crawl would never upgrade saves.
--- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200
+++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200
@@ -25,6 +25,7 @@
#include "syscalls.h"
#include "threads.h"
#include "unicode.h"
+#include "version.h"
// TextDB handles dependency checking the db vs text files, creating the
// db, loading, and destroying the DB.
@@ -55,6 +56,7 @@
vector<string> _input_files;
DBM* _db;
string timestamp;
+ string version;
TextDB *_parent;
const char* lang() { return _parent ? Options.lang_name : 0; }
public:
@@ -165,7 +167,7 @@
TextDB::TextDB(const char* db_name, const char* dir, ...)
: _db_name(db_name), _directory(dir),
- _db(nullptr), timestamp(""), _parent(0), translation(0)
+ _db(nullptr), timestamp(""), version(""), _parent(0), translation(0)
{
va_list args;
va_start(args, dir);
@@ -187,7 +189,7 @@
: _db_name(parent->_db_name),
_directory(parent->_directory + Options.lang_name + "/"),
_input_files(parent->_input_files), // FIXME: pointless copy
- _db(nullptr), timestamp(""), _parent(parent), translation(nullptr)
+ _db(nullptr), timestamp(""), version(""), _parent(parent), translation(nullptr)
{
}
@@ -202,6 +204,9 @@
return false;
timestamp = _query_database(*this, "TIMESTAMP", false, false, true);
+ version = _query_database(*this, "VERSION", false, false, true);
+ if (version.empty())
+ return false;
if (timestamp.empty())
return false;
@@ -245,6 +250,9 @@
string ts;
bool no_files = true;
+ if (string(Version::Long) != version)
+ return true;
+
for (const string &file : _input_files)
{
string full_input_path = _directory + file;
@@ -261,7 +269,7 @@
ts += buf;
}
- if (no_files && timestamp.empty())
+ if (no_files && timestamp.empty() && version.empty())
{
// No point in empty databases, although for simplicity keep ones
// for disappeared translations for now.
@@ -321,7 +329,10 @@
_store_text_db(full_input_path, _db);
}
}
+
+ string current_version = string(Version::Long);
_add_entry(_db, "TIMESTAMP", ts);
+ _add_entry(_db, "VERSION", current_version);
dbm_close(_db);
_db = 0;

View File

@ -0,0 +1,65 @@
This patch was taken from https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html.
It is used by propeller-gcc-4.
Since the 3.0.3 release of gperf (made in May 2007), the generated func
has had the gnu_inline attribute applied to it. The gcc source however
has not been updated to include that which has lead to a mismatch.
In practice, this hasn't been an issue for two reasons:
(1) Before gcc-5, the default standard was (gnu) C89, and gcc does not
warn or throw an error in this mode.
(2) Starting with gcc-4.8, the compiler driver used to build gcc was
changed to C++, and g++ does not warn or throw an error in this mode.
This error does show up though when using gcc-5 to build gcc-4.7 or
older as then the default is (gnu) C11 and the C compiler driver is
used. That failure looks like:
In file included from .../gcc-4.7.4/gcc/cp/except.c:990:0:
cfns.gperf: At top level:
cfns.gperf:101:1: error: 'gnu_inline' attribute present on 'libc_name_p'
cfns.gperf:26:14: error: but not here
Whether the compiler should always emit this error regardless of the
active standard or compiler driver is debatable (I think it should be
consistent -- either always do it or never do it).
2015-08-06 Mike Frysinger <vapier@gentoo.org>
* cfns.gperf [__GNUC__, __GNUC_STDC_INLINE__]: Apply the
__gnu_inline__ attribute.
* cfns.h: Regenerated.
---
gcc/cp/cfns.gperf | 3 +++
gcc/cp/cfns.h | 3 +++
2 files changed, 6 insertions(+)
diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf
index 68acd3d..953262f 100644
--- a/gcc/cp/cfns.gperf
+++ b/gcc/cp/cfns.gperf
@@ -22,6 +22,9 @@ __inline
static unsigned int hash (const char *, unsigned int);
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const char * libc_name_p (const char *, unsigned int);
%}
diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h
index 1c6665d..6d00c0e 100644
--- a/gcc/cp/cfns.h
+++ b/gcc/cp/cfns.h
@@ -53,6 +53,9 @@ __inline
static unsigned int hash (const char *, unsigned int);
#ifdef __GNUC__
__inline
+#ifdef __GNUC_STDC_INLINE__
+__attribute__ ((__gnu_inline__))
+#endif
#endif
const char * libc_name_p (const char *, unsigned int);
/* maximum key range = 391, duplicates = 0 */
--
2.4.4

View File

@ -1,16 +1,22 @@
Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider
this a valid spelling. Skip it. this a valid spelling. Skip it.
--- gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:40.832415940 +0200 TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed.
+++ gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:50.768351895 +0200 See https://bugzilla.gnome.org/show_bug.cgi?id=772406.
@@ -101,9 +101,6 @@ test_dashes (void) --- a/testsuite/test-checker.c 2017-03-24 09:50:50.000000000 -0400
+++ b/testsuite/test-checker.c 2017-06-15 21:47:07.116173895 -0400
checker = gspell_checker_new (lang); @@ -105,10 +105,11 @@
* be considered deprecated, it is better to use hunspell, so WONTFIX.
* For more details, see:
* https://bugzilla.gnome.org/show_bug.cgi?id=772406
+ *
+ * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
+ * g_assert_no_error (error);
+ * g_assert (correctly_spelled);
*/
- correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); - correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error);
- g_assert_no_error (error); - g_assert_no_error (error);
- g_assert (correctly_spelled); - g_assert (correctly_spelled);
correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error); correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error);
g_assert_no_error (error); g_assert_no_error (error);

View File

@ -0,0 +1,28 @@
Avoid asynchronous channel finalization, which could lead to segfaults due to
libssh not being thread-safe: <https://bugs.gnu.org/26976>.
--- guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:37:44.861671297 +0200
+++ guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:38:02.841580565 +0200
@@ -391,11 +391,18 @@ listens on an expected port, return #f o
"Evaluate QUOTED-EXP on the node and return the evaluated result."
(let ((repl-channel (node-open-rrepl node)))
(rrepl-skip-to-prompt repl-channel)
- (call-with-values (lambda () (rrepl-eval repl-channel quoted-exp))
- (lambda vals
- (and (node-stop-repl-server? node)
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (rrepl-eval repl-channel quoted-exp))
+ (lambda ()
+ (when (node-stop-repl-server? node)
(node-stop-server node))
- (apply values vals)))))
+
+ ;; Close REPL-CHANNEL right away to prevent finalization from
+ ;; happening in another thread at the wrong time (see
+ ;; <https://bugs.gnu.org/26976>.)
+ (close-port repl-channel)))))
(define (node-eval-1 node quoted-exp)
"Evaluate QUOTED-EXP on the node and return the evaluated result. The

View File

@ -1,360 +0,0 @@
Fix build with ffmpeg-3, based on upstream revisions r35548 and r35549 by LRN
and r36975 by Christian Grothoff, and backported to libextractor-1.3 by
Mark H Weaver <mhw@netris.org>
--- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500
+++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 23:38:46.429041081 -0400
@@ -59,6 +59,12 @@
#include <ffmpeg/swscale.h>
#endif
+#ifdef PIX_FMT_RGB24
+#define PIX_OUTPUT_FORMAT PIX_FMT_RGB24
+#else
+#define PIX_OUTPUT_FORMAT AV_PIX_FMT_RGB24
+#endif
+
/**
* Set to 1 to enable debug output.
*/
@@ -153,7 +159,7 @@
static size_t
create_thumbnail (int src_width, int src_height,
int src_stride[],
- enum PixelFormat src_pixfmt,
+ enum AVPixelFormat src_pixfmt,
const uint8_t * const src_data[],
int dst_width, int dst_height,
uint8_t **output_data,
@@ -189,7 +195,8 @@
if (NULL ==
(scaler_ctx =
sws_getContext (src_width, src_height, src_pixfmt,
- dst_width, dst_height, PIX_FMT_RGB24,
+ dst_width, dst_height,
+ PIX_OUTPUT_FORMAT,
SWS_BILINEAR, NULL, NULL, NULL)))
{
#if DEBUG
@@ -199,7 +206,12 @@
return 0;
}
- if (NULL == (dst_frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ dst_frame = av_frame_alloc ();
+#else
+ dst_frame = avcodec_alloc_frame();
+#endif
+ if (NULL == dst_frame)
{
#if DEBUG
fprintf (stderr,
@@ -209,18 +221,24 @@
return 0;
}
if (NULL == (dst_buffer =
- av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height))))
+ av_malloc (avpicture_get_size (PIX_OUTPUT_FORMAT,
+ dst_width, dst_height))))
{
#if DEBUG
fprintf (stderr,
"Failed to allocate the destination image buffer\n");
#endif
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
avpicture_fill ((AVPicture *) dst_frame, dst_buffer,
- PIX_FMT_RGB24, dst_width, dst_height);
+ PIX_OUTPUT_FORMAT,
+ dst_width, dst_height);
sws_scale (scaler_ctx,
src_data,
src_stride,
@@ -236,7 +254,11 @@
"Failed to allocate the encoder output buffer\n");
#endif
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
@@ -249,13 +271,17 @@
#endif
av_free (encoder_output_buffer);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
encoder_codec_ctx->width = dst_width;
encoder_codec_ctx->height = dst_height;
- encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24;
+ encoder_codec_ctx->pix_fmt = PIX_OUTPUT_FORMAT;
opts = NULL;
if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0)
{
@@ -263,10 +289,14 @@
fprintf (stderr,
"Failed to open the encoder\n");
#endif
- av_free (encoder_codec_ctx);
+ avcodec_free_context (&encoder_codec_ctx);
av_free (encoder_output_buffer);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
return 0;
}
@@ -295,9 +325,13 @@
cleanup:
av_dict_free (&opts);
avcodec_close (encoder_codec_ctx);
- av_free (encoder_codec_ctx);
+ avcodec_free_context (&encoder_codec_ctx);
av_free (dst_buffer);
- av_free (dst_frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&dst_frame);
+#else
+ avcodec_free_frame (&dst_frame);
+#endif
sws_freeContext (scaler_ctx);
*output_data = encoder_output_buffer;
@@ -406,18 +440,23 @@
fprintf (stderr,
"Failed to open image codec\n");
#endif
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
av_dict_free (&opts);
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,
"Failed to allocate frame\n");
#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
@@ -441,9 +480,13 @@
fprintf (stderr,
"Failed to decode a complete frame\n");
#endif
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
return;
}
calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height,
@@ -467,9 +510,13 @@
err);
av_free (encoded_thumbnail);
}
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
- av_free (codec_ctx);
+ avcodec_free_context (&codec_ctx);
}
@@ -563,7 +610,12 @@
return;
}
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,
@@ -616,7 +668,11 @@
fprintf (stderr,
"Failed to decode a complete frame\n");
#endif
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
avformat_close_input (&format_ctx);
av_free (io_ctx);
@@ -643,7 +699,11 @@
err);
av_free (encoded_thumbnail);
}
- av_free (frame);
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&frame);
+#else
+ avcodec_free_frame (&frame);
+#endif
avcodec_close (codec_ctx);
avformat_close_input (&format_ctx);
av_free (io_ctx);
--- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500
+++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 23:39:41.377720710 -0400
@@ -296,8 +296,13 @@
/** Initialize one audio frame for reading from the input file */
static int init_input_frame(AVFrame **frame)
{
- if (!(*frame = avcodec_alloc_frame())) {
- #if DEBUG
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ *frame = av_frame_alloc ();
+#else
+ *frame = avcodec_alloc_frame();
+#endif
+ if (NULL == *frame) {
+#if DEBUG
fprintf(stderr, "Could not allocate input frame\n");
#endif
return AVERROR(ENOMEM);
@@ -655,7 +660,11 @@
av_freep(&converted_input_samples[0]);
free(converted_input_samples);
}
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&input_frame);
+#else
avcodec_free_frame(&input_frame);
+#endif
return ret;
}
@@ -671,10 +680,15 @@
int error;
/** Create a new frame to store the audio samples. */
- if (!(*frame = avcodec_alloc_frame())) {
- #if DEBUG
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ *frame = av_frame_alloc ();
+#else
+ *frame = avcodec_alloc_frame();
+#endif
+ if (NULL == *frame) {
+#if DEBUG
fprintf(stderr, "Could not allocate output frame\n");
- #endif
+#endif
return AVERROR_EXIT;
}
@@ -699,10 +713,14 @@
* sure that the audio frame can hold as many samples as specified.
*/
if ((error = av_frame_get_buffer(*frame, 0)) < 0) {
- #if DEBUG
+#if DEBUG
fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error));
- #endif
+#endif
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (frame);
+#else
avcodec_free_frame(frame);
+#endif
return error;
}
@@ -780,20 +798,32 @@
* The samples are stored in the frame temporarily.
*/
if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) {
- #if DEBUG
+#if DEBUG
fprintf(stderr, "Could not read data from FIFO\n");
- #endif
+#endif
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return AVERROR_EXIT;
}
/** Encode one frame worth of audio samples. */
if (encode_audio_frame(output_frame, output_format_context,
output_codec_context, &data_written)) {
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return AVERROR_EXIT;
}
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ av_frame_free (&output_frame);
+#else
avcodec_free_frame(&output_frame);
+#endif
return 0;
}
/** Write the trailer of the output file container. */
@@ -907,7 +937,12 @@
return;
}
- if (NULL == (frame = avcodec_alloc_frame ()))
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1)
+ frame = av_frame_alloc ();
+#else
+ frame = avcodec_alloc_frame();
+#endif
+ if (NULL == frame)
{
#if DEBUG
fprintf (stderr,

View File

@ -0,0 +1,33 @@
Fix CVE-2017-9433:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9433
Patch copied from upstream source repository:
https://sourceforge.net/p/libmwaw/libmwaw/ci/68b3b74569881248bfb6cbb4266177cc253b292f
From 68b3b74569881248bfb6cbb4266177cc253b292f Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 8 Apr 2017 14:03:29 +0200
Subject: [PATCH] ofz#1037 resize vector correctly
---
src/lib/MsWrd1Parser.cxx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lib/MsWrd1Parser.cxx b/src/lib/MsWrd1Parser.cxx
index 63547e6..3626064 100644
--- a/src/lib/MsWrd1Parser.cxx
+++ b/src/lib/MsWrd1Parser.cxx
@@ -902,7 +902,7 @@ bool MsWrd1Parser::readFootnoteCorrespondance(MWAWVec2i limits)
int id = fIt++->second;
fPos[1] = fIt==footnoteMap.end() ? m_state->m_eot : fIt->first;
if (id >= int(m_state->m_footnotesList.size()))
- m_state->m_footnotesList.resize(size_t(id),MWAWVec2l(0,0));
+ m_state->m_footnotesList.resize(size_t(id)+1,MWAWVec2l(0,0));
m_state->m_footnotesList[size_t(id)]=fPos;
}
ascii().addDelimiter(input->tell(),'|');
--
2.13.1

View File

@ -1,34 +0,0 @@
Disable long b64 tests, which consistently fail on armhf.
This is based on an excerpt of the following upstream patch:
https://hg.mozilla.org/projects/nss/rev/00b2cc2b33c7
(we exclude the part of the upstream patch that reverts
an earlier failed attempt, and adapt the file names)
diff --git a/gtests/util_gtest/util_b64_unittest.cc b/gtests/util_gtest/util_b64_unittest.cc
--- a/nss/gtests/util_gtest/util_b64_unittest.cc
+++ b/nss/gtests/util_gtest/util_b64_unittest.cc
@@ -63,17 +63,19 @@ TEST_F(B64EncodeDecodeTest, EncDecTest)
TEST_F(B64EncodeDecodeTest, FakeDecTest) { EXPECT_TRUE(TestFakeDecode(100)); }
TEST_F(B64EncodeDecodeTest, FakeEncDecTest) {
EXPECT_TRUE(TestFakeEncode(100));
}
// These takes a while ...
-TEST_F(B64EncodeDecodeTest, LongFakeDecTest1) {
+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeDecTest1) {
EXPECT_TRUE(TestFakeDecode(0x66666666));
}
-TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest1) { TestFakeEncode(0x3fffffff); }
-TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest2) {
+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest1) {
+ TestFakeEncode(0x3fffffff);
+}
+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest2) {
EXPECT_FALSE(TestFakeEncode(0x40000000));
}
} // namespace nss_test

View File

@ -1,4 +1,4 @@
We've seen some tests take more than 20s to complete on a busy armhf We've seen some tests take up to 60s to complete on a busy armhf
machine. Even a busy x86_64 machine can use more than 5s on some tests. machine. Even a busy x86_64 machine can use more than 5s on some tests.
Increase timeouts to increase chances of a successful build. Increase timeouts to increase chances of a successful build.
@ -10,7 +10,7 @@ Increase timeouts to increase chances of a successful build.
ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) && ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) &&
(server_->state() != TlsAgent::STATE_CONNECTING), (server_->state() != TlsAgent::STATE_CONNECTING),
- 5000); - 5000);
+ 25000); + 300000);
} }
void TlsConnectTestBase::EnableExtendedMasterSecret() { void TlsConnectTestBase::EnableExtendedMasterSecret() {
@ -19,7 +19,7 @@ Increase timeouts to increase chances of a successful build.
failing_agent = client_; failing_agent = client_;
} }
- ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 5000); - ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 5000);
+ ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 25000); + ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 300000);
} }
void TlsConnectTestBase::ConfigureVersion(uint16_t version) { void TlsConnectTestBase::ConfigureVersion(uint16_t version) {

View File

@ -0,0 +1,40 @@
Fix CVE-2017-7853:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7853
https://savannah.gnu.org/support/index.php?109265
Patch copied from upstream source repository:
https://git.savannah.gnu.org/cgit/osip.git/commit/?id=1ae06daf3b2375c34af23083394a6f010be24a45
From 1ae06daf3b2375c34af23083394a6f010be24a45 Mon Sep 17 00:00:00 2001
From: Aymeric Moizard <amoizard@gmail.com>
Date: Tue, 21 Feb 2017 17:16:26 +0100
Subject: [PATCH] * fix bug report: sr #109265: SIP message body length
underflow in libosip2-4.1.0 https://savannah.gnu.org/support/?109265
also applicable to current latest version
---
src/osipparser2/osip_message_parse.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/osipparser2/osip_message_parse.c b/src/osipparser2/osip_message_parse.c
index 1628c60..aa35446 100644
--- a/src/osipparser2/osip_message_parse.c
+++ b/src/osipparser2/osip_message_parse.c
@@ -784,6 +784,12 @@ msg_osip_body_parse (osip_message_t * sip, const char *start_of_buf, const char
if ('\n' == start_of_body[0] || '\r' == start_of_body[0])
start_of_body++;
+ /* if message body is empty or contains a single CR/LF */
+ if (end_of_body <= start_of_body) {
+ osip_free (sep_boundary);
+ return OSIP_SYNTAXERROR;
+ }
+
body_len = end_of_body - start_of_body;
/* Skip CR before end boundary. */
--
2.13.1

View File

@ -0,0 +1,28 @@
Fix CVE-2017-5974:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5974
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/memdisk.c
===================================================================
--- zziplib-0.13.62.orig/zzip/memdisk.c
+++ zziplib-0.13.62/zzip/memdisk.c
@@ -216,12 +216,12 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
/* override sizes/offsets with zip64 values for largefile support */
zzip_extra_zip64 *block = (zzip_extra_zip64 *)
zzip_mem_entry_extra_block(item, ZZIP_EXTRA_zip64);
- if (block)
+ if (block && ZZIP_GET16(block->z_datasize) >= (8 + 8 + 8 + 4))
{
- item->zz_usize = __zzip_get64(block->z_usize);
- item->zz_csize = __zzip_get64(block->z_csize);
- item->zz_offset = __zzip_get64(block->z_offset);
- item->zz_diskstart = __zzip_get32(block->z_diskstart);
+ item->zz_usize = ZZIP_GET64(block->z_usize);
+ item->zz_csize = ZZIP_GET64(block->z_csize);
+ item->zz_offset = ZZIP_GET64(block->z_offset);
+ item->zz_diskstart = ZZIP_GET32(block->z_diskstart);
}
}
/* NOTE:

View File

@ -0,0 +1,32 @@
Fix CVE-2017-5975:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5975
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/memdisk.c
===================================================================
--- zziplib-0.13.62.orig/zzip/memdisk.c
+++ zziplib-0.13.62/zzip/memdisk.c
@@ -173,6 +173,8 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
return 0; /* errno=ENOMEM; */
___ struct zzip_file_header *header =
zzip_disk_entry_to_file_header(disk, entry);
+ if (!header)
+ { free(item); return 0; }
/* there is a number of duplicated information in the file header
* or the disk entry block. Theoretically some part may be missing
* that exists in the other, ... but we will prefer the disk entry.
Index: zziplib-0.13.62/zzip/mmapped.c
===================================================================
--- zziplib-0.13.62.orig/zzip/mmapped.c
+++ zziplib-0.13.62/zzip/mmapped.c
@@ -289,6 +289,8 @@ zzip_disk_entry_to_file_header(ZZIP_DISK
(disk->buffer + zzip_disk_entry_fileoffset(entry));
if (disk->buffer > file_header || file_header >= disk->endbuf)
return 0;
+ if (ZZIP_GET32(file_header) != ZZIP_FILE_HEADER_MAGIC)
+ return 0;
return (struct zzip_file_header *) file_header;
}

View File

@ -0,0 +1,61 @@
Fix CVE-2017-5976:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5976
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/memdisk.c
===================================================================
--- zziplib-0.13.62.orig/zzip/memdisk.c
+++ zziplib-0.13.62/zzip/memdisk.c
@@ -201,6 +201,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
{
void *mem = malloc(ext1 + 2);
item->zz_ext[1] = mem;
+ item->zz_extlen[1] = ext1 + 2;
memcpy(mem, ptr1, ext1);
((char *) (mem))[ext1 + 0] = 0;
((char *) (mem))[ext1 + 1] = 0;
@@ -209,6 +210,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
{
void *mem = malloc(ext2 + 2);
item->zz_ext[2] = mem;
+ item->zz_extlen[2] = ext2 + 2;
memcpy(mem, ptr2, ext2);
((char *) (mem))[ext2 + 0] = 0;
((char *) (mem))[ext2 + 1] = 0;
@@ -245,8 +247,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR
while (1)
{
ZZIP_EXTRA_BLOCK *ext = entry->zz_ext[i];
- if (ext)
+ if (ext && (entry->zz_extlen[i] >= zzip_extra_block_headerlength))
{
+ char *endblock = (char *)ext + entry->zz_extlen[i];
+
while (*(short *) (ext->z_datatype))
{
if (datatype == zzip_extra_block_get_datatype(ext))
@@ -257,6 +261,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR
e += zzip_extra_block_headerlength;
e += zzip_extra_block_get_datasize(ext);
ext = (void *) e;
+ if (e >= endblock)
+ {
+ break;
+ }
____;
}
}
Index: zziplib-0.13.62/zzip/memdisk.h
===================================================================
--- zziplib-0.13.62.orig/zzip/memdisk.h
+++ zziplib-0.13.62/zzip/memdisk.h
@@ -66,6 +66,7 @@ struct _zzip_mem_entry {
int zz_filetype; /* (from "z_filetype") */
char* zz_comment; /* zero-terminated (from "comment") */
ZZIP_EXTRA_BLOCK* zz_ext[3]; /* terminated by null in z_datatype */
+ int zz_extlen[3]; /* length of zz_ext[i] in bytes */
}; /* the extra blocks are NOT converted */
#define _zzip_mem_disk_findfirst(_d_) ((_d_)->list)

View File

@ -0,0 +1,37 @@
Fix CVE-2017-5978:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5978
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/memdisk.c
===================================================================
--- zziplib-0.13.62.orig/zzip/memdisk.c
+++ zziplib-0.13.62/zzip/memdisk.c
@@ -180,7 +180,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
* that exists in the other, ... but we will prefer the disk entry.
*/
item->zz_comment = zzip_disk_entry_strdup_comment(disk, entry);
- item->zz_name = zzip_disk_entry_strdup_name(disk, entry);
+ item->zz_name = zzip_disk_entry_strdup_name(disk, entry) ?: strdup("");
item->zz_data = zzip_file_header_to_data(header);
item->zz_flags = zzip_disk_entry_get_flags(entry);
item->zz_compr = zzip_disk_entry_get_compr(entry);
@@ -197,7 +197,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
int /* */ ext2 = zzip_file_header_get_extras(header);
char *_zzip_restrict ptr2 = zzip_file_header_to_extras(header);
- if (ext1)
+ if (ext1 && ((ptr1 + ext1) < disk->endbuf))
{
void *mem = malloc(ext1 + 2);
item->zz_ext[1] = mem;
@@ -206,7 +206,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI
((char *) (mem))[ext1 + 0] = 0;
((char *) (mem))[ext1 + 1] = 0;
}
- if (ext2)
+ if (ext2 && ((ptr2 + ext2) < disk->endbuf))
{
void *mem = malloc(ext2 + 2);
item->zz_ext[2] = mem;

View File

@ -0,0 +1,19 @@
Fix CVE-2017-5979:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5979
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/fseeko.c
===================================================================
--- zziplib-0.13.62.orig/zzip/fseeko.c
+++ zziplib-0.13.62/zzip/fseeko.c
@@ -255,7 +255,7 @@ zzip_entry_findfirst(FILE * disk)
return 0;
/* we read out chunks of 8 KiB in the hope to match disk granularity */
___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */
- ___ ZZIP_ENTRY *entry = malloc(sizeof(*entry));
+ ___ ZZIP_ENTRY *entry = calloc(1, sizeof(*entry));
if (! entry)
return 0;
___ unsigned char *buffer = malloc(pagesize);

View File

@ -0,0 +1,19 @@
Fix CVE-2017-5981:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5981
Patch copied from Debian.
Index: zziplib-0.13.62/zzip/fseeko.c
===================================================================
--- zziplib-0.13.62.orig/zzip/fseeko.c
+++ zziplib-0.13.62/zzip/fseeko.c
@@ -311,7 +311,8 @@ zzip_entry_findfirst(FILE * disk)
} else
continue;
- assert(0 <= root && root < mapsize);
+ if (root < 0 || root >= mapsize)
+ goto error;
if (fseeko(disk, root, SEEK_SET) == -1)
goto error;
if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk)

View File

@ -2,7 +2,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -54,7 +54,9 @@
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages xfig) #:use-module (gnu packages xfig)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public libraw (define-public libraw
(package (package
@ -285,7 +287,14 @@ scene to produce an image that looks much like a tone-mapped image.")
(base32 (base32
"0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf")))) "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments `(#:tests? #f)) ; There are no tests to run. (arguments
`(,@(if (any (cute string-prefix? <> (or (%current-system)
(%current-target-system)))
'("x86_64" "i686"))
;; SSE and SSE2 are supported only on Intel processors.
'()
'(#:configure-flags '("-DBUILD_FOR_SSE=OFF" "-DBUILD_FOR_SSE2=OFF")))
#:tests? #f)) ; There are no tests to run.
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(inputs (inputs
@ -310,7 +319,7 @@ photographic equipment.")
(define-public darktable (define-public darktable
(package (package
(name "darktable") (name "darktable")
(version "2.2.4") (version "2.2.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -319,7 +328,7 @@ photographic equipment.")
version "/darktable-" version ".tar.xz")) version "/darktable-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1n7rddkxwcifc3kcdlnar9w562xv4h78fqkkn27jihqzp3b4am5x")))) "10gjzd4irxhladh4jyss9kgp627k8vgx2divipsb33pp6cms80z3"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; There are no tests. `(#:tests? #f ; There are no tests.

View File

@ -98,6 +98,7 @@
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages shells) #:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
#:use-module (gnu packages statistics) #:use-module (gnu packages statistics)
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
@ -3134,16 +3135,14 @@ sources.")
(define-public python-sphinx-rtd-theme (define-public python-sphinx-rtd-theme
(package (package
(name "python-sphinx-rtd-theme") (name "python-sphinx-rtd-theme")
(version "0.1.6") (version "0.2.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/s/" (uri (pypi-uri "sphinx_rtd_theme" version))
"sphinx_rtd_theme/sphinx_rtd_theme-"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19nw3rn7awplcdrz63kg1njqwkbymfg9lwn7l2grhdyhyr2gaa8g")))) "05rlhjzdyapr2w74jjs7mrm8hi69qskcr5vya9f9drpsys7lpxrd"))))
(build-system python-build-system) (build-system python-build-system)
(arguments '(#:tests? #f)) ; No tests. (arguments '(#:tests? #f)) ; No tests.
(propagated-inputs (propagated-inputs
@ -13132,6 +13131,9 @@ asynchronous messaging environments.")
@command{nosetests} command of the Python Nose unit test framework.") @command{nosetests} command of the Python Nose unit test framework.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public python2-rednose
(package-with-python2 python-rednose))
(define-public python-flask-restplus (define-public python-flask-restplus
(package (package
(name "python-flask-restplus") (name "python-flask-restplus")
@ -15319,3 +15321,61 @@ validating Swagger API specifications.")
(define-public python2-swagger-spec-validator (define-public python2-swagger-spec-validator
(package-with-python2 python-swagger-spec-validator)) (package-with-python2 python-swagger-spec-validator))
(define-public python-apache-libcloud
(package
(name "python-apache-libcloud")
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "apache-libcloud" version))
(sha256
(base32
"1a71z02ckcxld72k4qgmdnkjan52c4wczncs3p2mp5yafh7dsan7"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-ssh
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libcloud/compute/ssh.py"
(("'ssh'") (string-append "'" (assoc-ref inputs "openssh")
"/bin/ssh" "'")))
#t))
(add-after 'unpack 'patch-tests
(lambda _
(substitute* "./libcloud/test/test_file_fixtures.py"
;; See <https://issues.apache.org/jira/browse/LIBCLOUD-923>.
(("def _ascii") "def _raw_data(self, method, url, body, headers):
return (httplib.OK,
\"1234abcd\",
{\"test\": \"value\"},
httplib.responses[httplib.OK])
def _ascii"))
(substitute* "libcloud/test/compute/test_ssh_client.py"
(("class ShellOutSSHClientTests")
"@unittest.skip(\"Guix container doesn't have ssh service\")
class ShellOutSSHClientTests")
;; See <https://issues.apache.org/jira/browse/LIBCLOUD-924>.
(("'.xf0.x90.x8d.x88'") "b'\\xF0\\x90\\x8D\\x88'")
(("'.xF0', '.x90', '.x8D', '.x88'")
"b'\\xF0', b'\\x90', b'\\x8D', b'\\x88'"))
#t)))))
(inputs
`(("openssh" ,openssh)))
(propagated-inputs
`(("python-paramiko" ,python-paramiko)
("python-requests" ,python-requests)))
(native-inputs
`(("python-lockfile" ,python-lockfile)
("python-mock" ,python-mock)
("python-requests-mock" ,python-requests-mock)))
(home-page "https://libcloud.apache.org/")
(synopsis "Unified Cloud API")
(description "@code{libcloud} is a Python library for interacting with
many of the popular cloud service providers using a unified API.")
(license license:asl2.0)))
(define-public python2-apache-libcloud
(package-with-python2 python-apache-libcloud))

View File

@ -466,13 +466,13 @@ specified in a \"Gemfile\", as well as their dependencies.")
(define-public ruby-builder (define-public ruby-builder
(package (package
(name "ruby-builder") (name "ruby-builder")
(version "3.2.2") (version "3.2.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (rubygems-uri "builder" version)) (uri (rubygems-uri "builder" version))
(sha256 (sha256
(base32 (base32
"14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2")))) "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"))))
(build-system ruby-build-system) (build-system ruby-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -157,11 +157,13 @@ module into a binary representation.")
(add-after 'install 'install-pywrap (add-after 'install 'install-pywrap
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "install-pywrap" make-flags)))))))) (zero? (apply system* "make" "install-pywrap" make-flags))))))))
(inputs ;; These libraries are in "Requires.private" in libselinux.pc.
(propagated-inputs
`(("libsepol" ,libsepol) `(("libsepol" ,libsepol)
("pcre" ,pcre) ("pcre" ,pcre)))
;; For pywrap phase ;; For pywrap phase
("python" ,python-wrapper))) (inputs
`(("python" ,python-wrapper)))
;; These inputs are only needed for the pywrap phase. ;; These inputs are only needed for the pywrap phase.
(native-inputs (native-inputs
`(("swig" ,swig) `(("swig" ,swig)

View File

@ -6,7 +6,7 @@
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 ng0 <ng0@no-reply.pragmatique.xyz> ;;; Copyright © 2017 ng0 <ng0@no-reply.infotropique.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -99,14 +99,14 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
(define-public fish (define-public fish
(package (package
(name "fish") (name "fish")
(version "2.5.0") (version "2.6.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://fishshell.com/files/" (uri (string-append "https://fishshell.com/files/"
version "/fish-" version ".tar.gz")) version "/fish-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19djav128nkhjxgfhwhc32i5y9d9c3karbh5yg67kqrdranyvh7q")) "1yzx73kg5ng5ivhi68756sl5hpb8869110l9fwim6gn7f7bbprby"))
(modules '((guix build utils))) (modules '((guix build utils)))
;; Don't try to install /etc/fish/config.fish. ;; Don't try to install /etc/fish/config.fish.
(snippet (snippet

View File

@ -229,7 +229,8 @@ Additionally, various channel-specific options can be negotiated.")
(base32 (base32
"0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j")) "0r261i8kc3avbmbwgyzak2vnqwssjlgz37g2y2fwm80w9bmn2m7j"))
(patches (search-patches "guile-ssh-rexec-bug.patch" (patches (search-patches "guile-ssh-rexec-bug.patch"
"guile-ssh-double-free.patch")) "guile-ssh-double-free.patch"
"guile-ssh-channel-finalization.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; 'configure.ac' mistakenly tries to link files from examples/ ;; 'configure.ac' mistakenly tries to link files from examples/

View File

@ -2294,13 +2294,13 @@ informative error messages when it's not available.")
(define-public r-devtools (define-public r-devtools
(package (package
(name "r-devtools") (name "r-devtools")
(version "1.12.0") (version "1.13.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "devtools" version)) (uri (cran-uri "devtools" version))
(sha256 (sha256
(base32 (base32
"16l18szmj482vf3dvl2fqwwa4zaqylmic1pk7dwh428cp0d86mzi")))) "08ajsr12wd31lsx3jv5l9mq4063dc5fpr9lcnzra6kl59vi5pa7v"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
`(("r-curl" ,r-curl) `(("r-curl" ,r-curl)

View File

@ -120,12 +120,14 @@ packet-manipulation library.")
(define-public osip (define-public osip
(package (package
(name "osip") (name "osip")
(version "4.1.0") (version "5.0.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz")) (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz"))
(sha256 (base32 (patches (search-patches "osip-CVE-2017-7853.patch"))
"014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr")))) (sha256
(base32
"00yznbrm9q04wgd4b831km8iwlvwvsnwv87igf79g5vj9yakr88q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis "Library implementing SIP (RFC-3261)") (synopsis "Library implementing SIP (RFC-3261)")

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -89,3 +90,48 @@ continue running in the background, then later reattached.")
(description "A collection of various themes for Tmux.") (description "A collection of various themes for Tmux.")
(license (license
(non-copyleft "http://www.wtfpl.net/txt/copying/"))))) (non-copyleft "http://www.wtfpl.net/txt/copying/")))))
(define-public tmuxifier
(package
(name "tmuxifier")
(version "0.13.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/jimeh/tmuxifier/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1j9fj6zg0j3sdn7svpybzsqh7876rv81zi437976kj7hxnyjkcz7"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref %outputs "out"))
(bindir (string-append out "/bin"))
(share (string-append out "/share/" ,name)))
(install-file "bin/tmuxifier" bindir)
(substitute* (string-append bindir "/tmuxifier")
(("set -e")
(string-append "TMUXIFIER=" share "\nset -e")))
(for-each (lambda (init-script)
(install-file init-script (string-append
share "/init")))
'("init.sh" "init.tcsh" "init.fish"))
(for-each (lambda (dir)
(copy-recursively dir (string-append
share "/" dir)))
'("completion" "lib" "libexec"
"templates"))))))))
(home-page "https://github.com/jimeh/tmuxifier")
(synopsis "Powerful session, window & pane management for Tmux")
(description "Tmuxifier allows you to easily create, edit, and load
@code{layout} files, which are simple shell scripts where you use the tmux
command and helper commands provided by tmuxifier to manage Tmux sessions and
windows.")
(license expat)))

View File

@ -701,14 +701,14 @@ control to Git repositories.")
(define-public mercurial (define-public mercurial
(package (package
(name "mercurial") (name "mercurial")
(version "3.9") (version "4.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.mercurial-scm.org/" (uri (string-append "https://www.mercurial-scm.org/"
"release/mercurial-" version ".tar.gz")) "release/mercurial-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1g6svg7fc1kyaxq653iwsvdh8hp2lrhs2ywazfc436a4zzf2akw3")))) "182qh6d0srps2n5sydzy8n3gi78la6m0wi3846zpyyd0b8pmgmfp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(;; Restrict to Python 2, as Python 3 would require `(;; Restrict to Python 2, as Python 3 would require

View File

@ -482,6 +482,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
("libcaca" ,libcaca) ("libcaca" ,libcaca)
("libcdio-paranoia" ,libcdio-paranoia) ("libcdio-paranoia" ,libcdio-paranoia)
("libtheora" ,libtheora) ("libtheora" ,libtheora)
("libva" ,libva)
("libvdpau" ,libvdpau) ("libvdpau" ,libvdpau)
("libvorbis" ,libvorbis) ("libvorbis" ,libvorbis)
("libvpx" ,libvpx) ("libvpx" ,libvpx)
@ -1001,7 +1002,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl (define-public youtube-dl
(package (package
(name "youtube-dl") (name "youtube-dl")
(version "2017.06.05") (version "2017.06.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/" (uri (string-append "https://yt-dl.org/downloads/"
@ -1009,7 +1010,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"132f4csbl4bv71b01pnqfkd7hbbc6wclrh1h12fr1182954ahk5m")))) "1p4d8g44v8vgr4xwvmbvzkjz6zakl2r89spaak6yw1zxmymd9b1w"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The problem here is that the directory for the man page and completion ;; The problem here is that the directory for the man page and completion

View File

@ -4621,3 +4621,52 @@ allocations, it does not buffer data, it can be interrupted at anytime.
Depending on your architecture, it only requires about 40 bytes of data per Depending on your architecture, it only requires about 40 bytes of data per
message stream (in a web server that is per connection).") message stream (in a web server that is per connection).")
(license l:expat))) (license l:expat)))
(define-public python2-httpretty
(package
(name "python2-httpretty")
(version "0.8.14")
(source
(origin
(method url-fetch)
(uri (pypi-uri "httpretty" version))
(sha256
(base32
"0vlp5qkyw3pxwwsg7xmdcfh1csvypvaz4m6abida8s4xmjxpdhc3"))))
(build-system python-build-system)
(native-inputs
`(("python-sphinx-rtd-theme" ,python2-sphinx-rtd-theme)
("python-sphinx" ,python2-sphinx)
("python-coverage" ,python2-coverage)
("python-tornado" ,python2-tornado)
("python-urllib3" ,python2-urllib3)
("python-sure" ,python2-sure)
("python-steadymark" ,python2-steadymark)
("python-requests" ,python2-requests)
("python-rednose" ,python2-rednose)
("python-nose-randomly" ,python2-nose-randomly)
("python-misaka" ,python2-misaka)
("python-pytest-httpbin" ,python2-pytest-httpbin)
("python-nose" ,python2-nose)))
(arguments
`(#:tests? #f
;; Requires mock>=1.3.0 which requires a more up-to-date
;; python-pbr. After updating these trying to build the
;; package leads to failures in python-flake8 and other
;; packages. The cascade of updates and failures this
;; leads to, seems to not be worth having the test run.
#:python ,python-2
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-test-requirements
(lambda* (#:key inputs #:allow-other-keys)
;; Update requirements from dependecy==version
;; to dependency>=version
(substitute* "development.txt"
(("==") ">="))
#t)))))
(home-page "http://github.com/gabrielfalcao/httpretty")
(synopsis "HTTP client mock for Python")
(description "@code{httpretty} is a helper for faking web requests,
inspired by Ruby's @code{fakeweb}.")
(license l:expat)))

View File

@ -39,6 +39,7 @@
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages web) #:use-module (gnu packages web)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages pdf) #:use-module (gnu packages pdf)

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com> ;;; Copyright © 2015 Raimon Grau <raimonster@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
@ -56,6 +56,7 @@
(package (package
(name "expat") (name "expat")
(version "2.2.0") (version "2.2.0")
(replacement expat-2.2.1)
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/expat/expat/" (uri (string-append "mirror://sourceforge/expat/expat/"
@ -74,6 +75,19 @@ stream-oriented parser in which an application registers handlers for
things the parser might find in the XML document (like start tags).") things the parser might find in the XML document (like start tags).")
(license license:expat))) (license license:expat)))
(define expat-2.2.1 ; Fixes CVE-2017-9233, CVE-2016-9063 and other issues.
(package
(inherit expat)
(version "2.2.1")
(replacement #f)
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/expat/expat/"
version "/expat-" version ".tar.bz2"))
(sha256
(base32
"11c8jy1wvllvlk7xdc5cm8hdhg0hvs8j0aqy6s702an8wkdcls0q"))))))
(define-public libxml2 (define-public libxml2
(package (package
(name "libxml2") (name "libxml2")

View File

@ -136,6 +136,12 @@ recreates the stored directory structure by default.")
(uri (string-append "mirror://sourceforge/zziplib/zziplib13/" (uri (string-append "mirror://sourceforge/zziplib/zziplib13/"
version "/zziplib-" version "/zziplib-"
version ".tar.bz2")) version ".tar.bz2"))
(patches (search-patches "zziplib-CVE-2017-5974.patch"
"zziplib-CVE-2017-5975.patch"
"zziplib-CVE-2017-5976.patch"
"zziplib-CVE-2017-5978.patch"
"zziplib-CVE-2017-5979.patch"
"zziplib-CVE-2017-5981.patch"))
(sha256 (sha256
(base32 (base32
"0nsjqxw017hiyp524p9316283jlf5piixc1091gkimhz38zh7f51")))) "0nsjqxw017hiyp524p9316283jlf5piixc1091gkimhz38zh7f51"))))

View File

@ -27,8 +27,17 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix records) #:use-module (guix records)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (ice-9 vlist)
#:export (%default-rotations #:export (%default-rotations
%rotated-files %rotated-files
log-rotation
log-rotation?
log-rotation-frequency
log-rotation-files
log-rotation-options
log-rotation-post-rotate
rottlog-configuration rottlog-configuration
rottlog-configuration? rottlog-configuration?
rottlog-service rottlog-service
@ -40,41 +49,78 @@
;;; /etc/rottlog/{rc,hourly|daily|weekly}. Example usage ;;; /etc/rottlog/{rc,hourly|daily|weekly}. Example usage
;;; ;;;
;;; (mcron-service) ;;; (mcron-service)
;;; (service rottlog-service-type (rottlog-configuration)) ;;; (service rottlog-service-type)
;;; ;;;
;;; Code: ;;; Code:
(define-record-type* <log-rotation> log-rotation make-log-rotation
log-rotation?
(files log-rotation-files) ;list of strings
(frequency log-rotation-frequency ;symbol
(default 'weekly))
(post-rotate log-rotation-post-rotate ;#f | gexp
(default #f))
(options log-rotation-options ;list of strings
(default '())))
(define %rotated-files (define %rotated-files
;; Syslog files subject to rotation. ;; Syslog files subject to rotation.
'("/var/log/messages" "/var/log/secure" "/var/log/maillog")) '("/var/log/messages" "/var/log/secure" "/var/log/maillog"))
(define (syslog-rotation-config files)
#~(string-append #$(string-join files ",")
" {
sharedscripts
postrotate
" #$coreutils "/bin/kill -HUP $(cat /var/run/syslog.pid) 2> /dev/null
endscript
}
"))
(define (simple-rotation-config files)
#~(string-append #$(string-join files ",") " {
sharedscripts
}
"))
(define %default-rotations (define %default-rotations
`(("weekly" (list (log-rotation ;syslog files
,(computed-file "rottlog.weekly" (files %rotated-files)
;; Restart syslogd after rotation.
(options '("sharedscripts"))
(post-rotate #~(let ((pid (call-with-input-file "/var/run/syslog.pid"
read)))
(kill pid SIGHUP))))
(log-rotation
(files '("/var/log/shepherd.log" "/var/log/guix-daemon.log")))))
(define (log-rotation->config rotation)
"Return a string-valued gexp representing the rottlog configuration snippet
for ROTATION."
(define post-rotate
(let ((post (log-rotation-post-rotate rotation)))
(and post
(program-file "rottlog-post-rotate.scm" post))))
#~(let ((post #$post-rotate))
(string-append (string-join '#$(log-rotation-files rotation) ",")
" {"
#$(string-join (log-rotation-options rotation)
"\n " 'prefix)
(if post
(string-append "\n postrotate\n " post
"\n endscript\n")
"")
"\n}\n")))
(define (log-rotations->/etc-entries rotations)
"Return the list of /etc entries for ROTATIONS, a list of <log-rotation>."
(define (frequency-file frequency rotations)
(computed-file (string-append "rottlog." (symbol->string frequency))
#~(call-with-output-file #$output #~(call-with-output-file #$output
(lambda (port) (lambda (port)
(display #$(syslog-rotation-config %rotated-files) (for-each (lambda (str)
port) (display str port))
(display #$(simple-rotation-config (list #$@(map log-rotation->config
'("/var/log/shepherd.log" rotations)))))))
"/var/log/guix-daemon.log"))
port))))))) (let* ((frequencies (delete-duplicates
(map log-rotation-frequency rotations)))
(table (fold (lambda (rotation table)
(vhash-consq (log-rotation-frequency rotation)
rotation table))
vlist-null
rotations)))
(map (lambda (frequency)
`(,(symbol->string frequency)
,(frequency-file frequency
(vhash-foldq* cons '() frequency table))))
frequencies)))
(define (default-jobs rottlog) (define (default-jobs rottlog)
(list #~(job '(next-hour '(0)) ;midnight (list #~(job '(next-hour '(0)) ;midnight
@ -91,15 +137,17 @@
(default rottlog)) (default rottlog))
(rc-file rottlog-rc-file ;file-like (rc-file rottlog-rc-file ;file-like
(default (file-append rottlog "/etc/rc"))) (default (file-append rottlog "/etc/rc")))
(periodic-rotations rottlog-periodic-rotations ;list of (name file) tuples (rotations rottlog-rotations ;list of <log-rotation>
(default %default-rotations)) (default %default-rotations))
(jobs rottlog-jobs ;list of <mcron-job> (jobs rottlog-jobs ;list of <mcron-job>
(default #f))) (default #f)))
(define (rottlog-etc config) (define (rottlog-etc config)
`(("rottlog" ,(file-union "rottlog" `(("rottlog"
,(file-union "rottlog"
(cons `("rc" ,(rottlog-rc-file config)) (cons `("rc" ,(rottlog-rc-file config))
(rottlog-periodic-rotations config)))))) (log-rotations->/etc-entries
(rottlog-rotations config)))))))
(define (rottlog-jobs-or-default config) (define (rottlog-jobs-or-default config)
(or (rottlog-jobs config) (or (rottlog-jobs config)
@ -116,6 +164,12 @@
;; the documentation. ;; the documentation.
(service-extension profile-service-type (service-extension profile-service-type
(compose list rottlog-rottlog)))) (compose list rottlog-rottlog))))
(compose concatenate)
(extend (lambda (config rotations)
(rottlog-configuration
(inherit config)
(rotations (append (rottlog-rotations config)
rotations)))))
(default-value (rottlog-configuration)))) (default-value (rottlog-configuration))))
;;; admin.scm ends here ;;; admin.scm ends here

View File

@ -26,6 +26,7 @@
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services base) #:use-module (gnu services base)
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu services admin)
#:use-module (gnu system shadow) #:use-module (gnu system shadow)
#:export (<cuirass-configuration> #:export (<cuirass-configuration>
cuirass-configuration cuirass-configuration
@ -138,6 +139,13 @@
(chown #$cache uid gid) (chown #$cache uid gid)
(chown #$db uid gid)))))) (chown #$db uid gid))))))
(define (cuirass-log-rotations config)
"Return the list of log rotations that corresponds to CONFIG."
(list (log-rotation
(files (list (cuirass-configuration-log-file config)))
(frequency 'weekly)
(options '("rotate 40"))))) ;worth keeping
(define cuirass-service-type (define cuirass-service-type
(service-type (service-type
(name 'cuirass) (name 'cuirass)
@ -145,6 +153,7 @@
(list (list
(service-extension profile-service-type ;for 'info cuirass' (service-extension profile-service-type ;for 'info cuirass'
(compose list cuirass-configuration-cuirass)) (compose list cuirass-configuration-cuirass))
(service-extension rottlog-service-type cuirass-log-rotations)
(service-extension activation-service-type cuirass-activation) (service-extension activation-service-type cuirass-activation)
(service-extension shepherd-root-service-type cuirass-shepherd-service) (service-extension shepherd-root-service-type cuirass-shepherd-service)
(service-extension account-service-type cuirass-account))))) (service-extension account-service-type cuirass-account)))))

View File

@ -489,20 +489,21 @@ with '-virtfs' options for the host file systems listed in SHARED-FS."
#$@(map virtfs-option shared-fs) #$@(map virtfs-option shared-fs)
"-vga std" "-vga std"
(format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly" (format #f "-drive file=~a,if=virtio,cache=writeback,werror=report,readonly"
#$image) #$image)))
"-m 256"))
(define* (system-qemu-image/shared-store-script os (define* (system-qemu-image/shared-store-script os
#:key #:key
(qemu qemu) (qemu qemu)
(graphic? #t) (graphic? #t)
(memory-size 256)
(mappings '()) (mappings '())
full-boot? full-boot?
(disk-image-size (disk-image-size
(* (if full-boot? 500 70) (* (if full-boot? 500 70)
(expt 2 20)))) (expt 2 20))))
"Return a derivation that builds a script to run a virtual machine image of "Return a derivation that builds a script to run a virtual machine image of
OS that shares its store with the host. OS that shares its store with the host. The virtual machine runs with
MEMORY-SIZE MiB of memory.
MAPPINGS is a list of <file-system-mapping> specifying mapping of host file MAPPINGS is a list of <file-system-mapping> specifying mapping of host file
systems into the guest. systems into the guest.
@ -531,7 +532,8 @@ it is mostly useful when FULL-BOOT? is true."
(string-join #$kernel-arguments " ")))) (string-join #$kernel-arguments " "))))
#$@(common-qemu-options image #$@(common-qemu-options image
(map file-system-mapping-source (map file-system-mapping-source
(cons %store-mapping mappings))))) (cons %store-mapping mappings)))
"-m " (number->string #$memory-size)))
(define builder (define builder
#~(call-with-output-file #$output #~(call-with-output-file #$output

View File

@ -446,20 +446,6 @@ functionality tests.")
(define marionette (define marionette
(make-marionette (list #$command))) (make-marionette (list #$command)))
(define (wait-for-file file)
;; Wait until FILE exists in the guest; 'read' its content and
;; return it.
(marionette-eval
`(let loop ((i 10))
(cond ((file-exists? ,file)
(call-with-input-file ,file read))
((> i 0)
(sleep 1)
(loop (- i 1)))
(else
(error "file didn't show up" ,file))))
marionette))
(mkdir #$output) (mkdir #$output)
(chdir #$output) (chdir #$output)
@ -478,12 +464,12 @@ functionality tests.")
;; runs with the right UID/GID. ;; runs with the right UID/GID.
(test-equal "root's job" (test-equal "root's job"
'(0 0) '(0 0)
(wait-for-file "/root/witness")) (wait-for-file "/root/witness" marionette))
;; Likewise for Alice's job. We cannot know what its GID is since ;; Likewise for Alice's job. We cannot know what its GID is since
;; it's chosen by 'groupadd', but it's strictly positive. ;; it's chosen by 'groupadd', but it's strictly positive.
(test-assert "alice's job" (test-assert "alice's job"
(match (wait-for-file "/home/alice/witness") (match (wait-for-file "/home/alice/witness" marionette)
((1000 gid) ((1000 gid)
(>= gid 100)))) (>= gid 100))))
@ -492,7 +478,7 @@ functionality tests.")
;; that don't have a read syntax, hence the string.) ;; that don't have a read syntax, hence the string.)
(test-equal "root's job with command" (test-equal "root's job with command"
"#<eof>" "#<eof>"
(wait-for-file "/root/witness-touch")) (wait-for-file "/root/witness-touch" marionette))
(test-end) (test-end)
(exit (= (test-runner-fail-count (test-runner-current)) 0))))) (exit (= (test-runner-fail-count (test-runner-current)) 0)))))

View File

@ -80,21 +80,6 @@
(number->string #$port) (number->string #$port)
"-:5222")))) "-:5222"))))
(define (guest-wait-for-file file)
;; Wait until FILE exists in the guest; 'read' its content and
;; return it.
(marionette-eval
`(let loop ((i 10))
(cond ((file-exists? ,file)
(call-with-input-file ,file read))
((> i 0)
(begin
(sleep 1))
(loop (- i 1)))
(else
(error "file didn't show up" ,file))))
marionette))
(define (host-wait-for-file file) (define (host-wait-for-file file)
;; Wait until FILE exists in the host. ;; Wait until FILE exists in the host.
(let loop ((i 60)) (let loop ((i 60))
@ -124,7 +109,8 @@
;; Check XMPP service's PID. ;; Check XMPP service's PID.
(test-assert "service process id" (test-assert "service process id"
(let ((pid (number->string (guest-wait-for-file #$pid-file)))) (let ((pid (number->string (wait-for-file #$pid-file
marionette))))
(marionette-eval `(file-exists? (string-append "/proc/" ,pid)) (marionette-eval `(file-exists? (string-append "/proc/" ,pid))
marionette))) marionette)))

View File

@ -69,20 +69,6 @@ When SFTP? is true, run an SFTP server test."
(make-marionette (list #$command "-net" (make-marionette (list #$command "-net"
"user,hostfwd=tcp::2222-:22"))) "user,hostfwd=tcp::2222-:22")))
(define (wait-for-file file)
;; Wait until FILE exists in the guest; 'read' its content and
;; return it.
(marionette-eval
`(let loop ((i 10))
(cond ((file-exists? ,file)
(call-with-input-file ,file read))
((> i 0)
(sleep 1)
(loop (- i 1)))
(else
(error "file didn't show up" ,file))))
marionette))
(define (make-session-for-test) (define (make-session-for-test)
"Make a session with predefined parameters for a test." "Make a session with predefined parameters for a test."
(make-session #:user "root" (make-session #:user "root"
@ -141,7 +127,7 @@ root with an empty password."
;; Check sshd's PID file. ;; Check sshd's PID file.
(test-equal "sshd PID" (test-equal "sshd PID"
(wait-for-file #$pid-file) (wait-for-file #$pid-file marionette)
(marionette-eval (marionette-eval
'(begin '(begin
(use-modules (gnu services herd) (use-modules (gnu services herd)
@ -166,7 +152,7 @@ root with an empty password."
(channel-open-session channel) (channel-open-session channel)
(channel-request-exec channel "echo hello > /root/witness") (channel-request-exec channel "echo hello > /root/witness")
(and (zero? (channel-get-exit-status channel)) (and (zero? (channel-get-exit-status channel))
(wait-for-file "/root/witness")))))) (wait-for-file "/root/witness" marionette))))))
;; Connect to the guest over SFTP. Make sure we can write and ;; Connect to the guest over SFTP. Make sure we can write and
;; read a file there. ;; read a file there.

View File

@ -0,0 +1,164 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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 texlive)
#: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 (guix svn-download)
#:use-module (ice-9 match)
#:export (%texlive-build-system-modules
texlive-build
texlive-build-system
texlive-ref
%texlive-tag
%texlive-revision))
;; Commentary:
;;
;; Standard build procedure for Texlive packages.
;;
;; Code:
;; These variables specify the SVN tag and the matching SVN revision.
(define %texlive-tag "texlive-2017.0")
(define %texlive-revision 44445)
(define (texlive-ref component id)
"Return a <svn-reference> object for the package ID, which is part of the
given Texlive COMPONENT."
(svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"source/" component "/" id))
(revision %texlive-revision)))
(define %texlive-build-system-modules
;; Build-side modules imported by default.
`((guix build texlive-build-system)
,@%gnu-build-system-modules))
(define (default-texlive-bin)
"Return the default texlive-bin package."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((tex-mod (resolve-interface '(gnu packages tex))))
(module-ref tex-mod 'texlive-bin)))
(define (default-texlive-latex-base)
"Return the default texlive-latex-base package."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((tex-mod (resolve-interface '(gnu packages tex))))
(module-ref tex-mod 'texlive-latex-base)))
(define* (lower name
#:key
source inputs native-inputs outputs
system target
(texlive-latex-base (default-texlive-latex-base))
(texlive-bin (default-texlive-bin))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(define private-keywords
'(#:source #:target #:inputs #:native-inputs
#:texlive-latex-base #:texlive-bin))
(bag
(name name)
(system system)
(host-inputs `(,@(if source
`(("source" ,source))
'())
,@inputs
;; Keep the standard inputs of 'gnu-build-system'.
,@(standard-packages)))
(build-inputs `(("texlive-bin" ,texlive-bin)
("texlive-latex-base" ,texlive-latex-base)
,@native-inputs))
(outputs outputs)
(build texlive-build)
(arguments (strip-keyword-arguments private-keywords arguments))))
(define* (texlive-build store name inputs
#:key
(tests? #f)
tex-directory
(build-targets #f)
(tex-format "luatex")
(phases '(@ (guix build texlive-build-system)
%standard-phases))
(outputs '("out"))
(search-paths '())
(system (%current-system))
(guile #f)
(substitutable? #t)
(imported-modules %texlive-build-system-modules)
(modules '((guix build texlive-build-system)
(guix build utils))))
"Build SOURCE with INPUTS."
(define builder
`(begin
(use-modules ,@modules)
(texlive-build #:name ,name
#:source ,(match (assoc-ref inputs "source")
(((? derivation? source))
(derivation->output-path source))
((source)
source)
(source
source))
#:tex-directory ,tex-directory
#:build-targets ,build-targets
#:tex-format ,tex-format
#:system ,system
#:tests? ,tests?
#:phases ,phases
#: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
#:substitutable? substitutable?))
(define texlive-build-system
(build-system
(name 'texlive)
(description "The build system for TeX Live packages")
(lower lower)))
;;; texlive.scm ends here

View File

@ -28,6 +28,7 @@
#:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-9 gnu)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-19) #:use-module (srfi srfi-19)
#:use-module (srfi srfi-26)
#:use-module (ice-9 rdelim) #:use-module (ice-9 rdelim)
#:use-module (ice-9 regex) #:use-module (ice-9 regex)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -68,6 +69,7 @@
mkdtemp! mkdtemp!
fdatasync fdatasync
pivot-root pivot-root
scandir*
fcntl-flock fcntl-flock
set-thread-name set-thread-name
@ -817,6 +819,127 @@ system to PUT-OLD."
(list new-root put-old (strerror err)) (list new-root put-old (strerror err))
(list err))))))) (list err)))))))
;;;
;;; Opendir & co.
;;;
(define-c-struct %struct-dirent-header
sizeof-dirent-header
(lambda (inode offset length type name)
;; Convert TYPE to symbols like 'stat:type' does.
(let ((type (cond ((= type DT_REG) 'regular)
((= type DT_LNK) 'symlink)
((= type DT_DIR) 'directory)
((= type DT_FIFO) 'fifo)
((= type DT_CHR) 'char-special)
((= type DT_BLK) 'block-special)
((= type DT_SOCK) 'socket)
(else 'unknown))))
`((type . ,type)
(inode . ,inode))))
read-dirent-header
write-dirent-header!
(inode int64)
(offset int64)
(length unsigned-short)
(type uint8)
(name uint8)) ;first byte of 'd_name'
;; Constants for the 'type' field, from <dirent.h>.
(define DT_UNKNOWN 0)
(define DT_FIFO 1)
(define DT_CHR 2)
(define DT_DIR 4)
(define DT_BLK 6)
(define DT_REG 8)
(define DT_LNK 10)
(define DT_SOCK 12)
(define DT_WHT 14)
(define string->pointer/utf-8
(cut string->pointer <> "UTF-8"))
(define pointer->string/utf-8
(cut pointer->string <> <> "UTF-8"))
(define opendir*
(let ((proc (syscall->procedure '* "opendir" '(*))))
(lambda* (name #:optional (string->pointer string->pointer/utf-8))
(let-values (((ptr err)
(proc (string->pointer name))))
(if (null-pointer? ptr)
(throw 'system-error "opendir*"
"~A: ~A" (list name (strerror err))
(list err))
ptr)))))
(define closedir*
(let ((proc (syscall->procedure int "closedir" '(*))))
(lambda (directory)
(let-values (((ret err)
(proc directory)))
(unless (zero? ret)
(throw 'system-error "closedir"
"closedir: ~A" (list (strerror err))
(list err)))))))
(define readdir*
(let ((proc (syscall->procedure '* "readdir64" '(*))))
(lambda* (directory #:optional (pointer->string pointer->string/utf-8))
(let ((ptr (proc directory)))
(and (not (null-pointer? ptr))
(cons (pointer->string
(make-pointer (+ (pointer-address ptr)
(c-struct-field-offset
%struct-dirent-header name)))
-1)
(read-dirent-header
(pointer->bytevector ptr sizeof-dirent-header))))))))
(define* (scandir* name #:optional
(select? (const #t))
(entry<? (lambda (entry1 entry2)
(match entry1
((name1 . _)
(match entry2
((name2 . _)
(string<? name1 name2)))))))
#:key
(string->pointer string->pointer/utf-8)
(pointer->string pointer->string/utf-8))
"This procedure improves on Guile's 'scandir' procedure in several ways:
1. Systematically encode decode file names using STRING->POINTER and
POINTER->STRING (UTF-8 by default; this works around a defect in Guile 2.0/2.2
where 'scandir' decodes file names according to the current locale, which is
not always desirable.
2. Each entry that is returned has the form (NAME . PROPERTIES).
PROPERTIES is an alist showing additional properties about the entry, as
found in 'struct dirent'. An entry may look like this:
(\"foo.scm\" (type . regular) (inode . 123456))
Callers must be prepared to deal with the case where 'type' is 'unknown'
since some file systems do not provide that information.
3. Raise to 'system-error' when NAME cannot be opened."
(let ((directory (opendir* name string->pointer)))
(dynamic-wind
(const #t)
(lambda ()
(let loop ((result '()))
(match (readdir* directory pointer->string)
(#f
(sort result entry<?))
(entry
(loop (if (select? entry)
(cons entry result)
result))))))
(lambda ()
(closedir* directory)))))
;;; ;;;
;;; Advisory file locking. ;;; Advisory file locking.

View File

@ -0,0 +1,89 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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 texlive-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (%standard-phases
texlive-build))
;; Commentary:
;;
;; Builder-side code of the standard build procedure for TeX Live packages.
;;
;; Code:
(define (compile-with-latex format file)
(zero? (system* format
"-interaction=batchmode"
"-output-directory=build"
(string-append "&" format)
file)))
(define* (build #:key inputs build-targets tex-format #:allow-other-keys)
;; Find additional tex and sty files
(setenv "TEXINPUTS"
(string-append
(getcwd) ":" (getcwd) "/build:"
(string-join
(append-map (match-lambda
((_ . dir)
(find-files dir
(lambda (_ stat)
(eq? 'directory (stat:type stat)))
#:directories? #t
#:stat stat)))
inputs)
":")))
(setenv "TEXFORMATS"
(string-append (assoc-ref inputs "texlive-latex-base")
"/share/texmf-dist/web2c/"))
(setenv "LUAINPUTS"
(string-append (assoc-ref inputs "texlive-latex-base")
"/share/texmf-dist/tex/latex/base/"))
(mkdir "build")
(every (cut compile-with-latex tex-format <>)
(if build-targets build-targets
(find-files "." "\\.ins$"))))
(define* (install #:key outputs tex-directory #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(target (string-append
out "/share/texmf-dist/tex/" tex-directory)))
(mkdir-p target)
(for-each delete-file (find-files "." "\\.(log|aux)$"))
(for-each (cut install-file <> target)
(find-files "build" ".*"))
#t))
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'configure)
(replace 'build build)
(delete 'check)
(replace 'install install)))
(define* (texlive-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
"Build the given TeX Live package, applying all of PHASES in order."
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
;;; texlive-build-system.scm ends here

View File

@ -82,6 +82,7 @@
derivation-hash derivation-hash
read-derivation read-derivation
read-derivation-from-file
write-derivation write-derivation
derivation->output-path derivation->output-path
derivation->output-paths derivation->output-paths
@ -241,8 +242,7 @@ result is the set of prerequisites of DRV not already in valid."
(append inputs result) (append inputs result)
(fold set-insert input-set inputs) (fold set-insert input-set inputs)
(map (lambda (i) (map (lambda (i)
(call-with-input-file (derivation-input-path i) (read-derivation-from-file (derivation-input-path i)))
read-derivation))
inputs))))) inputs)))))
(define (offloadable-derivation? drv) (define (offloadable-derivation? drv)
@ -295,9 +295,8 @@ substituter many times."
;; info is not already in cache. ;; info is not already in cache.
;; Also, skip derivations marked as non-substitutable. ;; Also, skip derivations marked as non-substitutable.
(append-map (lambda (input) (append-map (lambda (input)
(let ((drv (call-with-input-file (let ((drv (read-derivation-from-file
(derivation-input-path input) (derivation-input-path input))))
read-derivation)))
(if (substitutable-derivation? drv) (if (substitutable-derivation? drv)
(derivation-input-output-paths input) (derivation-input-output-paths input)
'()))) '())))
@ -400,13 +399,15 @@ one-argument procedure similar to that returned by 'substitution-oracle'."
(derivation-inputs drv)) (derivation-inputs drv))
substitute) substitute)
(map (lambda (i) (map (lambda (i)
(call-with-input-file (derivation-input-path i) (read-derivation-from-file
read-derivation)) (derivation-input-path i)))
inputs) inputs)
(map derivation-input-sub-derivations inputs))))))) (map derivation-input-sub-derivations inputs)))))))
(define (%read-derivation drv-port) (define (read-derivation drv-port)
;; Actually read derivation from DRV-PORT. "Read the derivation from DRV-PORT and return the corresponding <derivation>
object. Most of the time you'll want to use 'read-derivation-from-file',
which caches things as appropriate and is thus more efficient."
(define comma (string->symbol ",")) (define comma (string->symbol ","))
@ -482,17 +483,16 @@ one-argument procedure similar to that returned by 'substitution-oracle'."
;; XXX: This is redundant with 'atts-cache' in the store. ;; XXX: This is redundant with 'atts-cache' in the store.
(make-weak-value-hash-table 200)) (make-weak-value-hash-table 200))
(define (read-derivation drv-port) (define (read-derivation-from-file file)
"Read the derivation from DRV-PORT and return the corresponding "Read the derivation in FILE, a '.drv' file, and return the corresponding
<derivation> object." <derivation> object."
;; Memoize that operation because `%read-derivation' is quite expensive, ;; Memoize that operation because 'read-derivation' is quite expensive,
;; and because the same argument is read more than 15 times on average ;; and because the same argument is read more than 15 times on average
;; during something like (package-derivation s gdb). ;; during something like (package-derivation s gdb).
(let ((file (port-filename drv-port)))
(or (and file (hash-ref %derivation-cache file)) (or (and file (hash-ref %derivation-cache file))
(let ((drv (%read-derivation drv-port))) (let ((drv (call-with-input-file file read-derivation)))
(hash-set! %derivation-cache file drv) (hash-set! %derivation-cache file drv)
drv)))) drv)))
(define-inlinable (write-sequence lst write-item port) (define-inlinable (write-sequence lst write-item port)
;; Write each element of LST with WRITE-ITEM to PORT, separating them with a ;; Write each element of LST with WRITE-ITEM to PORT, separating them with a
@ -608,8 +608,7 @@ DRV."
(define derivation-path->output-path (define derivation-path->output-path
;; This procedure is called frequently, so memoize it. ;; This procedure is called frequently, so memoize it.
(let ((memoized (mlambda (path output) (let ((memoized (mlambda (path output)
(derivation->output-path (call-with-input-file path (derivation->output-path (read-derivation-from-file path)
read-derivation)
output)))) output))))
(lambda* (path #:optional (output "out")) (lambda* (path #:optional (output "out"))
"Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the store "Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the store
@ -619,7 +618,7 @@ path of its output OUTPUT."
(define (derivation-path->output-paths path) (define (derivation-path->output-paths path)
"Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the "Read the derivation from PATH (`/gnu/store/xxx.drv'), and return the
list of name/path pairs of its outputs." list of name/path pairs of its outputs."
(derivation->output-paths (call-with-input-file path read-derivation))) (derivation->output-paths (read-derivation-from-file path)))
;;; ;;;
@ -630,10 +629,8 @@ list of name/path pairs of its outputs."
(mlambda (file) (mlambda (file)
"Return a string containing the base16 representation of the hash of the "Return a string containing the base16 representation of the hash of the
derivation at FILE." derivation at FILE."
(call-with-input-file file (bytevector->base16-string
(compose bytevector->base16-string (derivation-hash (read-derivation-from-file file)))))
derivation-hash
read-derivation))))
(define derivation-hash ; `hashDerivationModulo' in derivations.cc (define derivation-hash ; `hashDerivationModulo' in derivations.cc
(mlambda (drv) (mlambda (drv)
@ -896,7 +893,7 @@ recursively."
((_ . replacement) ((_ . replacement)
(list replacement)) (list replacement))
(#f (#f
(let* ((drv (loop (call-with-input-file path read-derivation)))) (let* ((drv (loop (read-derivation-from-file path))))
(cons drv sub-drvs)))))))) (cons drv sub-drvs))))))))
(let loop ((drv drv)) (let loop ((drv drv))

View File

@ -19,6 +19,7 @@
(define-module (guix discovery) (define-module (guix discovery)
#:use-module (guix ui) #:use-module (guix ui)
#:use-module (guix combinators) #:use-module (guix combinators)
#:use-module (guix build syscalls)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
@ -37,29 +38,45 @@
(define* (scheme-files directory) (define* (scheme-files directory)
"Return the list of Scheme files found under DIRECTORY, recursively. The "Return the list of Scheme files found under DIRECTORY, recursively. The
returned list is sorted in alphabetical order." returned list is sorted in alphabetical order. Return the empty list if
DIRECTORY is not accessible."
(define (entry-type name properties)
(match (assoc-ref properties 'type)
('unknown
(stat:type (lstat name)))
((? symbol? type)
type)))
;; Sort entries so that 'fold-packages' works in a deterministic fashion ;; Use 'scandir*' so we can avoid an extra 'lstat' for each entry, as
;; regardless of details of the underlying file system. ;; opposed to Guile's 'scandir' or 'file-system-fold'.
(sort (file-system-fold (const #t) ;enter? (fold-right (lambda (entry result)
(lambda (path stat result) ;leaf (match entry
(if (string-suffix? ".scm" path) (("." . _)
(cons path result) result)
((".." . _)
result)
((name . properties)
(let ((absolute (string-append directory "/" name)))
(case (entry-type absolute properties)
((directory)
(append (scheme-files absolute) result))
((regular symlink)
;; XXX: We don't recurse if we find a symlink.
(if (string-suffix? ".scm" name)
(cons absolute result)
result)) result))
(lambda (path stat result) ;down (else
result) result))))))
(lambda (path stat result) ;up
result)
(const #f) ;skip
(lambda (path stat errno result)
(unless (= ENOENT errno)
(warning (G_ "cannot access `~a': ~a~%")
path (strerror errno)))
result)
'() '()
directory (catch 'system-error
stat) (lambda ()
string<?)) (scandir* directory))
(lambda args
(let ((errno (system-error-errno args)))
(unless (= errno ENOENT)
(warning (G_ "cannot access `~a': ~a~%")
directory (strerror errno)))
'())))))
(define file-name->module-name (define file-name->module-name
(let ((not-slash (char-set-complement (char-set #\/)))) (let ((not-slash (char-set-complement (char-set #\/))))

View File

@ -156,7 +156,7 @@ name of the output of that derivation ITEM corresponds to (for example
(() ;ITEM is a plain file (() ;ITEM is a plain file
(values #f #f)) (values #f #f))
((drv-file _ ...) ((drv-file _ ...)
(let ((drv (call-with-input-file drv-file read-derivation))) (let ((drv (read-derivation-from-file drv-file)))
(values drv (values drv
(any (match-lambda (any (match-lambda
((name . path) ((name . path)

View File

@ -258,11 +258,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE."
;; Sometimes 'pypi-uri' doesn't quite work due to mixed ;; Sometimes 'pypi-uri' doesn't quite work due to mixed
;; cases in NAME, for instance, as is the case with ;; cases in NAME, for instance, as is the case with
;; "uwsgi". In that case, fall back to a full URL. ;; "uwsgi". In that case, fall back to a full URL.
(uri ,(if (equal? (pypi-uri name version) source-url) (uri (pypi-uri ,(string-downcase name) version))
`(pypi-uri ,name version)
`(string-append
,@(factorize-uri source-url version))))
(sha256 (sha256
(base32 (base32
,(guix-hash-url temp))))) ,(guix-hash-url temp)))))

View File

@ -0,0 +1,182 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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 import texlive)
#:use-module (ice-9 match)
#:use-module (sxml simple)
#:use-module (sxml xpath)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (web uri)
#:use-module (guix http-client)
#:use-module (guix hash)
#:use-module (guix memoization)
#:use-module (guix store)
#:use-module (guix base32)
#:use-module (guix serialization)
#:use-module (guix svn-download)
#:use-module (guix import utils)
#:use-module (guix utils)
#:use-module (guix upstream)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (guix build-system texlive)
#:export (texlive->guix-package))
;;; Commentary:
;;;
;;; Generate a package declaration template for the latest version of a
;;; package on CTAN, using the XML output produced by the XML API to the CTAN
;;; database at http://www.ctan.org/xml/1.2/
;;;
;;; Instead of taking the packages from CTAN, however, we fetch the sources
;;; from the SVN repository of the Texlive project. We do this because CTAN
;;; only keeps a single version of each package whereas we can access any
;;; version via SVN. Unfortunately, this means that the importer is really
;;; just a Texlive importer, not a generic CTAN importer.
;;;
;;; Code:
(define string->license
(match-lambda
("artistic2" 'gpl3+)
("gpl" 'gpl3+)
("gpl1" 'gpl1)
("gpl1+" 'gpl1+)
("gpl2" 'gpl2)
("gpl2+" 'gpl2+)
("gpl3" 'gpl3)
("gpl3+" 'gpl3+)
("lgpl2.1" 'lgpl2.1)
("lgpl3" 'lgpl3)
("knuth" 'knuth)
("pd" 'public-domain)
("bsd2" 'bsd-2)
("bsd3" 'bsd-3)
("bsd4" 'bsd-4)
("opl" 'opl1.0+)
("ofl" 'silofl1.1)
("lppl" 'lppl)
("lppl1" 'lppl1.0+) ; usually means "or later"
("lppl1.2" 'lppl1.2+) ; usually means "or later"
("lppl1.3" 'lppl1.3+) ; usually means "or later"
("lppl1.3a" 'lppl1.3a)
("lppl1.3b" 'lppl1.3b)
("lppl1.3c" 'lppl1.3c)
("cc-by-2" 'cc-by-2.0)
("cc-by-3" 'cc-by-3.0)
("cc-by-sa-2" 'cc-by-sa2.0)
("cc-by-sa-3" 'cc-by-sa3.0)
("mit" 'expat)
("fdl" 'fdl1.3+)
("gfl" 'gfl1.0)
;; These are known non-free licenses
("noinfo" 'unknown)
("nosell" 'non-free)
("shareware" 'non-free)
("nosource" 'non-free)
("nocommercial" 'non-free)
("cc-by-nc-nd-1" 'non-free)
("cc-by-nc-nd-2" 'non-free)
("cc-by-nc-nd-2.5" 'non-free)
("cc-by-nc-nd-3" 'non-free)
("cc-by-nc-nd-4" 'non-free)
((x) (string->license x))
((lst ...) `(list ,@(map string->license lst)))
(_ #f)))
(define (fetch-sxml name)
"Return an sxml representation of the package information contained in the
XML description of the CTAN package or #f in case of failure."
;; This API always returns the latest release of the module.
(let ((url (string-append "http://www.ctan.org/xml/1.2/pkg/" name)))
(guard (c ((http-get-error? c)
(format (current-error-port)
"error: failed to retrieve package information \
from ~s: ~a (~s)~%"
(uri->string (http-get-error-uri c))
(http-get-error-code c)
(http-get-error-reason c))
#f))
(xml->sxml (http-fetch url)
#:trim-whitespace? #t))))
(define (guix-name component name)
"Return a Guix package name for a given Texlive package NAME."
(string-append "texlive-" component "-"
(string-map (match-lambda
(#\_ #\-)
(#\. #\-)
(chr (char-downcase chr)))
name)))
(define* (sxml->package sxml #:optional (component "latex"))
"Return the `package' s-expression for a Texlive package from the SXML
expression describing it."
(define (sxml-value path)
(match ((sxpath path) sxml)
(() #f)
((val) val)))
(with-store store
(let* ((id (sxml-value '(entry @ id *text*)))
(synopsis (sxml-value '(entry caption *text*)))
(version (or (sxml-value '(entry version @ number *text*))
(sxml-value '(entry version @ date *text*))))
(license (string->license (sxml-value '(entry license @ type *text*))))
(home-page (string-append "http://www.ctan.org/pkg/" id))
(ref (texlive-ref component id))
(checkout (download-svn-to-store store ref)))
`(package
(name ,(guix-name component id))
(version ,version)
(source (origin
(method svn-fetch)
(uri (texlive-ref ,component ,id))
(sha256
(base32
,(bytevector->nix-base32-string
(let-values (((port get-hash) (open-sha256-port)))
(write-file checkout port)
(force-output port)
(get-hash)))))))
(build-system texlive-build-system)
(arguments ,`(,'quote (#:tex-directory ,(string-join (list component id) "/"))))
(home-page ,home-page)
(synopsis ,synopsis)
(description ,(string-trim-both
(string-join
(map string-trim-both
(string-split
(beautify-description
(sxml->string (or (sxml-value '(entry description))
'())))
#\newline)))))
(license ,license)))))
(define texlive->guix-package
(memoize
(lambda* (package-name #:optional (component "latex"))
"Fetch the metadata for PACKAGE-NAME from REPO and return the `package'
s-expression corresponding to that package, or #f on failure."
(and=> (fetch-sxml package-name)
(cut sxml->package <> component)))))
;;; ctan.scm ends here

View File

@ -60,7 +60,13 @@
ibmpl1.0 ibmpl1.0
imlib2 imlib2
ipa ipa
knuth
lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
lppl lppl1.0+ lppl1.2 lppl1.2+
lppl1.3 lppl1.3+
lppl1.3a lppl1.3a+
lppl1.3b lppl1.3b+
lppl1.3c lppl1.3c+
mpl1.0 mpl1.1 mpl2.0 mpl1.0 mpl1.1 mpl2.0
ms-pl ms-pl
ncsa ncsa
@ -351,6 +357,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"http://directory.fsf.org/wiki/License:IPA_Font_License" "http://directory.fsf.org/wiki/License:IPA_Font_License"
"https://www.gnu.org/licenses/license-list#IPAFONT")) "https://www.gnu.org/licenses/license-list#IPAFONT"))
(define knuth
(license "Donald Knuth's license for TeX"
"http://www.ctan.org/license/knuth"
"Modification are only permitted under a different name."))
(define lgpl2.0 (define lgpl2.0
(license "LGPL 2.0" (license "LGPL 2.0"
"https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html" "https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html"
@ -381,6 +392,66 @@ at URI, which may be a file:// URI pointing the package's tree."
"https://www.gnu.org/licenses/lgpl.html" "https://www.gnu.org/licenses/lgpl.html"
"https://www.gnu.org/licenses/license-list#LGPLv3")) "https://www.gnu.org/licenses/license-list#LGPLv3"))
(define lppl
(license "LPPL (any version)"
"https://www.latex-project.org/lppl/lppl-1-0/"
"LaTeX Project Public License 1.0"))
(define lppl1.0+
(license "LPPL 1.0+"
"https://www.latex-project.org/lppl/lppl-1-0/"
"LaTeX Project Public License 1.0"))
(define lppl1.2
(license "LPPL 1.2"
"http://directory.fsf.org/wiki/License:LPPLv1.2"
"https://www.gnu.org/licenses/license-list#LPPL-1.2"))
(define lppl1.2+
(license "LPPL 1.2+"
"http://directory.fsf.org/wiki/License:LPPLv1.2"
"https://www.gnu.org/licenses/license-list#LPPL-1.2"))
(define lppl1.3
(license "LPPL 1.3"
"https://www.latex-project.org/lppl/lppl-1-3/"
"LaTeX Project Public License 1.3"))
(define lppl1.3+
(license "LPPL 1.3+"
"https://www.latex-project.org/lppl/lppl-1-3/"
"LaTeX Project Public License 1.3+"))
(define lppl1.3a
(license "LPPL 1.3a"
"http://directory.fsf.org/wiki/License:LPPLv1.3a"
"https://www.gnu.org/licenses/license-list#LPPL-1.3a"))
(define lppl1.3a+
(license "LPPL 1.3a+"
"http://directory.fsf.org/wiki/License:LPPLv1.3a"
"https://www.gnu.org/licenses/license-list#LPPL-1.3a"))
(define lppl1.3b
(license "LPPL 1.3b"
"https://www.latex-project.org/lppl/lppl-1-3b/"
"LaTeX Project Public License 1.3b"))
(define lppl1.3b+
(license "LPPL 1.3b+"
"https://www.latex-project.org/lppl/lppl-1-3b/"
"LaTeX Project Public License 1.3b or later"))
(define lppl1.3c
(license "LPPL 1.3c"
"https://www.latex-project.org/lppl/lppl-1-3c/"
"LaTeX Project Public License 1.3c"))
(define lppl1.3c+
(license "LPPL 1.3c+"
"https://www.latex-project.org/lppl/lppl-1-3c/"
"LaTeX Project Public License 1.3c or later"))
(define mpl1.0 (define mpl1.0
(license "MPL 1.0" (license "MPL 1.0"
"http://www.mozilla.org/MPL/1.0/" "http://www.mozilla.org/MPL/1.0/"

View File

@ -477,10 +477,10 @@ specifies modules in scope when evaluating SNIPPET."
(define instantiate-patch (define instantiate-patch
(match-lambda (match-lambda
((? string? patch) ((? string? patch) ;deprecated
(interned-file patch #:recursive? #t)) (interned-file patch #:recursive? #t))
((? origin? patch) ((? struct? patch) ;origin, local-file, etc.
(origin->derivation patch system)))) (lower-object patch system))))
(mlet %store-monad ((tar -> (lookup-input "tar")) (mlet %store-monad ((tar -> (lookup-input "tar"))
(xz -> (lookup-input "xz")) (xz -> (lookup-input "xz"))

View File

@ -87,7 +87,7 @@ found. Return #f if no build log was found."
;; Usually we'll have more luck with the output file name since ;; Usually we'll have more luck with the output file name since
;; the deriver that was used by the server could be different, so ;; the deriver that was used by the server could be different, so
;; try one of the output file names. ;; try one of the output file names.
(let ((drv (call-with-input-file file read-derivation))) (let ((drv (read-derivation-from-file file)))
(or (find-url (derivation->output-path drv)) (or (find-url (derivation->output-path drv))
(find-url file)))) (find-url file))))
(lambda args (lambda args
@ -599,7 +599,7 @@ build---packages, gexps, derivations, and so on."
(append-map (match-lambda (append-map (match-lambda
(('argument . (? string? spec)) (('argument . (? string? spec))
(cond ((derivation-path? spec) (cond ((derivation-path? spec)
(list (call-with-input-file spec read-derivation))) (list (read-derivation-from-file spec)))
((store-path? spec) ((store-path? spec)
;; Nothing to do; maybe for --log-file. ;; Nothing to do; maybe for --log-file.
'()) '())

View File

@ -221,15 +221,11 @@ GNU-BUILD-SYSTEM have zero dependencies."
;;; Derivation DAG. ;;; Derivation DAG.
;;; ;;;
(define (file->derivation file)
"Read the derivation from FILE and return it."
(call-with-input-file file read-derivation))
(define (derivation-dependencies obj) (define (derivation-dependencies obj)
"Return the <derivation> objects and store items corresponding to the "Return the <derivation> objects and store items corresponding to the
dependencies of OBJ, a <derivation> or store item." dependencies of OBJ, a <derivation> or store item."
(if (derivation? obj) (if (derivation? obj)
(append (map (compose file->derivation derivation-input-path) (append (map (compose read-derivation-from-file derivation-input-path)
(derivation-inputs obj)) (derivation-inputs obj))
(derivation-sources obj)) (derivation-sources obj))
'())) '()))
@ -263,7 +259,7 @@ a plain store file."
((? derivation-path? item) ((? derivation-path? item)
(mbegin %store-monad (mbegin %store-monad
((store-lift add-temp-root) item) ((store-lift add-temp-root) item)
(return (list (file->derivation item))))) (return (list (read-derivation-from-file item)))))
(x (x
(raise (raise
(condition (&message (message "unsupported argument for \ (condition (&message (message "unsupported argument for \

View File

@ -74,7 +74,7 @@ rather than \\n."
;;; ;;;
(define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem" (define importers '("gnu" "nix" "pypi" "cpan" "hackage" "stackage" "elpa" "gem"
"cran" "crate")) "cran" "crate" "texlive"))
(define (resolve-importer name) (define (resolve-importer name)
(let ((module (resolve-interface (let ((module (resolve-interface

View File

@ -0,0 +1,101 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts import texlive)
#:use-module (guix ui)
#:use-module (guix utils)
#:use-module (guix scripts)
#:use-module (guix import texlive)
#:use-module (guix scripts import)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:export (guix-import-texlive))
;;;
;;; Command-line options.
;;;
(define %default-options
'())
(define (show-help)
(display (G_ "Usage: guix import texlive PACKAGE-NAME
Import and convert the Texlive package for PACKAGE-NAME.\n"))
(display (G_ "
-a, --archive=ARCHIVE specify the archive repository"))
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
-V, --version display version information and exit"))
(newline)
(show-bug-report-information))
(define %options
;; Specification of the command-line options.
(cons* (option '(#\h "help") #f #f
(lambda args
(show-help)
(exit 0)))
(option '(#\V "version") #f #f
(lambda args
(show-version-and-exit "guix import texlive")))
(option '(#\a "archive") #t #f
(lambda (opt name arg result)
(alist-cons 'component arg
(alist-delete 'component result))))
%standard-import-options))
;;;
;;; Entry point.
;;;
(define (guix-import-texlive . args)
(define (parse-options)
;; Return the alist of option values.
(args-fold* args %options
(lambda (opt name arg result)
(leave (G_ "~A: unrecognized option~%") name))
(lambda (arg result)
(alist-cons 'argument arg result))
%default-options))
(let* ((opts (parse-options))
(args (filter-map (match-lambda
(('argument . value)
value)
(_ #f))
(reverse opts))))
(match args
((package-name)
(let ((sexp (texlive->guix-package package-name
(or (assoc-ref opts 'component)
"latex"))))
(unless sexp
(leave (G_ "failed to download description for package '~a'~%")
package-name))
sexp))
(()
(leave (G_ "too few arguments~%")))
((many ...)
(leave (G_ "too many arguments~%"))))))

View File

@ -652,9 +652,8 @@ machine."
(with-error-handling (with-error-handling
(process-request (equal? (match:substring match 1) "1") (process-request (equal? (match:substring match 1) "1")
(match:substring match 2) ; system (match:substring match 2) ; system
(call-with-input-file (read-derivation-from-file
(match:substring match 3) (match:substring match 3))
read-derivation)
(string-tokenize (string-tokenize
(match:substring match 4) not-coma) (match:substring match 4) not-coma)
#:print-build-trace? print-build-trace? #:print-build-trace? print-build-trace?

View File

@ -39,6 +39,7 @@
#:select (directory-exists? mkdir-p)) #:select (directory-exists? mkdir-p))
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
@ -238,32 +239,45 @@ specified in MANIFEST, a manifest object."
;;; ;;;
(define (find-packages-by-description regexps) (define (find-packages-by-description regexps)
"Return the list of packages whose name matches one of REGEXPS, or whose "Return two values: the list of packages whose name, synopsis, or
synopsis or description matches all of REGEXPS." description matches at least one of REGEXPS sorted by relevance, and the list
(define version<? (negate version>=?)) of relevance scores."
(define (score str)
(let ((counts (filter-map (lambda (regexp)
(match (regexp-exec regexp str)
(#f #f)
(m (match:count m))))
regexps)))
;; Compute a score that's proportional to the number of regexps matched
;; and to the number of matches for each regexp.
(* (length counts) (reduce + 0 counts))))
(define (matches-all? str) (define (package-score package)
(every (cut regexp-exec <> str) regexps)) (+ (* 3 (score (package-name package)))
(* 2 (match (package-synopsis package)
((? string? str) (score (P_ str)))
(#f 0)))
(match (package-description package)
((? string? str) (score (P_ str)))
(#f 0))))
(define (matches-one? str) (let ((matches (fold-packages (lambda (package result)
(find (cut regexp-exec <> str) regexps)) (match (package-score package)
((? zero?)
(sort result)
(fold-packages (lambda (package result) (score
(if (or (matches-one? (package-name package)) (cons (list package score) result))))
(and=> (package-synopsis package) '())))
(compose matches-all? P_)) (unzip2 (sort matches
(and=> (package-description package) (lambda (m1 m2)
(compose matches-all? P_))) (match m1
(cons package result) ((package1 score1)
result)) (match m2
'()) ((package2 score2)
(lambda (p1 p2) (if (= score1 score2)
(case (string-compare (package-name p1) (package-name p2) (string>? (package-full-name package1)
(const '<) (const '=) (const '>)) (package-full-name package2))
((=) (version<? (package-version p1) (package-version p2))) (> score1 score2)))))))))))
((<) #t)
(else #f)))))
(define (transaction-upgrade-entry entry transaction) (define (transaction-upgrade-entry entry transaction)
"Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a "Return a variant of TRANSACTION that accounts for the upgrade of ENTRY, a
@ -752,8 +766,14 @@ processed, #f otherwise."
opts)) opts))
(regexps (map (cut make-regexp* <> regexp/icase) patterns))) (regexps (map (cut make-regexp* <> regexp/icase) patterns)))
(leave-on-EPIPE (leave-on-EPIPE
(for-each (cute package->recutils <> (current-output-port)) (let-values (((packages scores)
(find-packages-by-description regexps))) (find-packages-by-description regexps)))
(for-each (lambda (package score)
(package->recutils package (current-output-port)
#:extra-fields
`((relevance . ,score))))
packages
scores)))
#t)) #t))
(('show requested-name) (('show requested-name)

View File

@ -106,11 +106,11 @@ of GnuTLS over HTTPS, before we have built GnuTLS. See
(match args (match args
(((? derivation-path? drv) (? store-path? output)) (((? derivation-path? drv) (? store-path? output))
(assert-low-privileges) (assert-low-privileges)
(perform-download (call-with-input-file drv read-derivation) (perform-download (read-derivation-from-file drv)
output)) output))
(((? derivation-path? drv)) ;backward compatibility (((? derivation-path? drv)) ;backward compatibility
(assert-low-privileges) (assert-low-privileges)
(perform-download (call-with-input-file drv read-derivation))) (perform-download (read-derivation-from-file drv)))
(("--version") (("--version")
(show-version-and-exit)) (show-version-and-exit))
(x (x

View File

@ -225,10 +225,6 @@ compression disabled~%"))
("WantMassQuery" . 0) ("WantMassQuery" . 0)
("Priority" . 100))) ("Priority" . 100)))
(define (load-derivation file)
"Read the derivation from FILE."
(call-with-input-file file read-derivation))
(define (signed-string s) (define (signed-string s)
"Sign the hash of the string S with the daemon's key." "Sign the hash of the string S with the daemon's key."
(let* ((public-key (%public-key)) (let* ((public-key (%public-key))
@ -286,7 +282,7 @@ References: ~a~%~a"
base-info base-info
(catch 'system-error (catch 'system-error
(lambda () (lambda ()
(let ((drv (load-derivation deriver))) (let ((drv (read-derivation-from-file deriver)))
(format #f "~aSystem: ~a~%Deriver: ~a~%" (format #f "~aSystem: ~a~%Deriver: ~a~%"
base-info (derivation-system drv) base-info (derivation-system drv)
(basename deriver)))) (basename deriver))))

View File

@ -718,6 +718,37 @@ encoding conversion errors."
(let loop ((done? (process-stderr server))) (let loop ((done? (process-stderr server)))
(or done? (process-stderr server))))) (or done? (process-stderr server)))))
(define %rpc-calls
;; Mapping from RPC names (symbols) to invocation counts.
(make-hash-table))
(define* (show-rpc-profile #:optional (port (current-error-port)))
"Write to PORT a summary of the RPCs that have been made."
(let ((profile (sort (hash-fold alist-cons '() %rpc-calls)
(lambda (rpc1 rpc2)
(< (cdr rpc1) (cdr rpc2))))))
(format port "Remote procedure call summary: ~a RPCs~%"
(match profile
(((names . counts) ...)
(reduce + 0 counts))))
(for-each (match-lambda
((rpc . count)
(format port " ~30a ... ~5@a~%" rpc count)))
profile)))
(define record-operation
;; Optionally, increment the number of calls of the given RPC.
(let ((profiled (or (and=> (getenv "GUIX_PROFILING") string-tokenize)
'())))
(if (member "rpc" profiled)
(begin
(add-hook! exit-hook show-rpc-profile)
(lambda (name)
(let ((count (or (hashq-ref %rpc-calls name) 0)))
(hashq-set! %rpc-calls name (+ count 1)))))
(lambda (_)
#t))))
(define-syntax operation (define-syntax operation
(syntax-rules () (syntax-rules ()
"Define a client-side RPC stub for the given operation." "Define a client-side RPC stub for the given operation."
@ -725,6 +756,7 @@ encoding conversion errors."
(lambda (server arg ...) (lambda (server arg ...)
docstring docstring
(let ((s (nix-server-socket server))) (let ((s (nix-server-socket server)))
(record-operation 'name)
(write-int (operation-id name) s) (write-int (operation-id name) s)
(write-arg type arg s) (write-arg type arg s)
... ...
@ -830,10 +862,11 @@ bits are kept. HASH-ALGO must be a string such as \"sha256\".
When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry, When RECURSIVE? is true, call (SELECT? FILE STAT) for each directory entry,
where FILE is the entry's absolute file name and STAT is the result of 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." 'lstat'; exclude entries for which SELECT? does not return true."
(let* ((st (false-if-exception (lstat file-name))) ;; Note: We don't stat FILE-NAME at each call, and thus we assume that
(args `(,st ,basename ,recursive? ,hash-algo ,select?)) ;; the file remains unchanged for the lifetime of SERVER.
(let* ((args `(,file-name ,basename ,recursive? ,hash-algo ,select?))
(cache (nix-server-add-to-store-cache server))) (cache (nix-server-add-to-store-cache server)))
(or (and st (hash-ref cache args)) (or (hash-ref cache args)
(let ((path (add-to-store server basename recursive? (let ((path (add-to-store server basename recursive?
hash-algo file-name hash-algo file-name
#:select? select?))) #:select? select?)))

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