Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2016-12-04 17:41:36 +01:00
commit a351fc8369
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
67 changed files with 1911 additions and 3145 deletions

View File

@ -7142,7 +7142,7 @@ entry (@pxref{Invoking guix system}).
The normal way to change the system configuration is by updating this The normal way to change the system configuration is by updating this
file and re-running @command{guix system reconfigure}. One should never file and re-running @command{guix system reconfigure}. One should never
have to touch files in @command{/etc} or to run commands that modify the have to touch files in @file{/etc} or to run commands that modify the
system state such as @command{useradd} or @command{grub-install}. In system state such as @command{useradd} or @command{grub-install}. In
fact, you must avoid that since that would not only void your warranty fact, you must avoid that since that would not only void your warranty
but also prevent you from rolling back to previous versions of your but also prevent you from rolling back to previous versions of your
@ -10654,7 +10654,7 @@ Defaults to @samp{""}.
@deftypevr {@code{dovecot-configuration} parameter} string auth-krb5-keytab @deftypevr {@code{dovecot-configuration} parameter} string auth-krb5-keytab
Kerberos keytab to use for the GSSAPI mechanism. Will use the Kerberos keytab to use for the GSSAPI mechanism. Will use the
system default (usually /etc/krb5.keytab) if not specified. You may system default (usually @file{/etc/krb5.keytab}) if not specified. You may
need to change the auth service to run as root to be able to read this need to change the auth service to run as root to be able to read this
file. file.
Defaults to @samp{""}. Defaults to @samp{""}.
@ -11542,6 +11542,99 @@ remote servers. Run @command{man smtpd.conf} for more information.
The @code{(gnu services kerberos)} module provides services relating to The @code{(gnu services kerberos)} module provides services relating to
the authentication protocol @dfn{Kerberos}. the authentication protocol @dfn{Kerberos}.
@subsubheading Krb5 Service
Programs using a Kerberos client library normally
expect a configuration file in @file{/etc/krb5.conf}.
This service generates such a file from a definition provided in the
operating system declaration.
It does not cause any daemon to be started.
No ``keytab'' files are provided by this service---you must explicitly create them.
This service is known to work with the MIT client library, @code{mit-krb5}.
Other implementations have not been tested.
@defvr {Scheme Variable} krb5-service-type
A service type for Kerberos 5 clients.
@end defvr
@noindent
Here is an example of its use:
@lisp
(service krb5-service-type
(krb5-configuration
(default-realm "EXAMPLE.COM")
(allow-weak-crypto? #t)
(realms (list
(krb5-realm
(name "EXAMPLE.COM")
(admin-server "groucho.example.com")
(kdc "karl.example.com"))
(krb5-realm
(name "ARGRX.EDU")
(admin-server "kerb-admin.argrx.edu")
(kdc "keys.argrx.edu"))))))
@end lisp
@noindent
This example provides a Kerberos@tie{}5 client configuration which:
@itemize
@item Recognizes two realms, @i{viz:} ``EXAMPLE.COM'' and ``ARGRX.EDU'', both
of which have distinct administration servers and key distribution centers;
@item Will default to the realm ``EXAMPLE.COM'' if the realm is not explicitly
specified by clients;
@item Accepts services which only support encryption types known to be weak.
@end itemize
The @code{krb5-realm} and @code{krb5-configuration} types have many fields.
Only the most commonly used ones are described here.
For a full list, and more detailed explanation of each, see the MIT
@uref{http://web.mit.edu/kerberos/krb5-devel/doc/admin/conf_files/krb5_conf.html,,krb5.conf}
documentation.
@deftp {Data Type} krb5-realm
@cindex realm, kerberos
@table @asis
@item @code{name}
This field is a string identifying the name of the realm.
A common convention is to use the fully qualified DNS name of your organization,
converted to upper case.
@item @code{admin-server}
This field is a string identifying the host where the administration server is
running.
@item @code{kdc}
This field is a string identifying the key distribution center
for the realm.
@end table
@end deftp
@deftp {Data Type} krb5-configuration
@table @asis
@item @code{allow-weak-crypto?} (default: @code{#f})
If this flag is @code{#t} then services which only offer encryption algorithms
known to be weak will be accepted.
@item @code{default-realm} (default: @code{#f})
This field should be a string identifying the default Kerberos
realm for the client.
You should set this field to the name of your Kerberos realm.
If this value is @code{#f}
then a realm must be specified with every Kerberos principal when invoking programs
such as @command{kinit}.
@item @code{realms}
This should be a non-empty list of @code{krb5-realm} objects, which clients may
access.
Normally, one of them will have a @code{name} field matching the @code{default-realm}
field.
@end table
@end deftp
@subsubheading PAM krb5 Service @subsubheading PAM krb5 Service
@cindex pam-krb5 @cindex pam-krb5
@ -12787,8 +12880,7 @@ host.
@item -net user @item -net user
Enable the unprivileged user-mode network stack. The guest OS can Enable the unprivileged user-mode network stack. The guest OS can
access the host but not vice versa. This is the simplest way to get the access the host but not vice versa. This is the simplest way to get the
guest OS online. If you do not choose a network stack, the boot will guest OS online.
fail.
@item -net nic,model=virtio @item -net nic,model=virtio
You must create a network interface of a given model. If you do not You must create a network interface of a given model. If you do not

View File

@ -123,7 +123,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/entr.scm \ %D%/packages/entr.scm \
%D%/packages/erlang.scm \ %D%/packages/erlang.scm \
%D%/packages/fcitx.scm \ %D%/packages/fcitx.scm \
%D%/packages/feh.scm \
%D%/packages/figlet.scm \ %D%/packages/figlet.scm \
%D%/packages/file.scm \ %D%/packages/file.scm \
%D%/packages/finance.scm \ %D%/packages/finance.scm \
@ -147,7 +146,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gd.scm \ %D%/packages/gd.scm \
%D%/packages/gdb.scm \ %D%/packages/gdb.scm \
%D%/packages/geo.scm \ %D%/packages/geo.scm \
%D%/packages/geeqie.scm \
%D%/packages/gettext.scm \ %D%/packages/gettext.scm \
%D%/packages/gforth.scm \ %D%/packages/gforth.scm \
%D%/packages/ghostscript.scm \ %D%/packages/ghostscript.scm \
@ -254,6 +252,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/microcom.scm \ %D%/packages/microcom.scm \
%D%/packages/mit-krb5.scm \ %D%/packages/mit-krb5.scm \
%D%/packages/moe.scm \ %D%/packages/moe.scm \
%D%/packages/monitoring.scm \
%D%/packages/mono.scm \ %D%/packages/mono.scm \
%D%/packages/moreutils.scm \ %D%/packages/moreutils.scm \
%D%/packages/mpd.scm \ %D%/packages/mpd.scm \
@ -285,7 +284,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/openstack.scm \ %D%/packages/openstack.scm \
%D%/packages/orpheus.scm \ %D%/packages/orpheus.scm \
%D%/packages/ots.scm \ %D%/packages/ots.scm \
%D%/packages/owncloud.scm \
%D%/packages/package-management.scm \ %D%/packages/package-management.scm \
%D%/packages/parallel.scm \ %D%/packages/parallel.scm \
%D%/packages/password-utils.scm \ %D%/packages/password-utils.scm \
@ -349,7 +347,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/statistics.scm \ %D%/packages/statistics.scm \
%D%/packages/suckless.scm \ %D%/packages/suckless.scm \
%D%/packages/swig.scm \ %D%/packages/swig.scm \
%D%/packages/sxiv.scm \ %D%/packages/sync.scm \
%D%/packages/synergy.scm \ %D%/packages/synergy.scm \
%D%/packages/syndication.scm \ %D%/packages/syndication.scm \
%D%/packages/task-management.scm \ %D%/packages/task-management.scm \
@ -539,6 +537,8 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spUtils.patch \ %D%/packages/patches/fasthenry-spUtils.patch \
%D%/packages/patches/fasthenry-spSolve.patch \ %D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \ %D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fcgi-2.4.0-gcc44-fixes.patch \
%D%/packages/patches/fcgi-2.4.0-poll.patch \
%D%/packages/patches/findutils-localstatedir.patch \ %D%/packages/patches/findutils-localstatedir.patch \
%D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/findutils-test-xargs.patch \
%D%/packages/patches/flex-CVE-2016-6354.patch \ %D%/packages/patches/flex-CVE-2016-6354.patch \
@ -592,10 +592,6 @@ dist_patch_DATA = \
%D%/packages/patches/grub-gets-undeclared.patch \ %D%/packages/patches/grub-gets-undeclared.patch \
%D%/packages/patches/grub-freetype.patch \ %D%/packages/patches/grub-freetype.patch \
%D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gsl-test-i686.patch \
%D%/packages/patches/gst-plugins-good-fix-crashes.patch \
%D%/packages/patches/gst-plugins-good-fix-invalid-read.patch \
%D%/packages/patches/gst-plugins-good-fix-signedness.patch \
%D%/packages/patches/gst-plugins-good-flic-bounds-check.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-arm-fixes.patch \ %D%/packages/patches/guile-arm-fixes.patch \
%D%/packages/patches/guile-default-utf8.patch \ %D%/packages/patches/guile-default-utf8.patch \
@ -629,7 +625,6 @@ dist_patch_DATA = \
%D%/packages/patches/hypre-ldflags.patch \ %D%/packages/patches/hypre-ldflags.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icecat-binutils.patch \ %D%/packages/patches/icecat-binutils.patch \
%D%/packages/patches/icecat-CVE-2016-9064.patch \
%D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \
%D%/packages/patches/icu4c-CVE-2015-1270.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \
%D%/packages/patches/icu4c-CVE-2015-4760.patch \ %D%/packages/patches/icu4c-CVE-2015-4760.patch \
@ -737,9 +732,9 @@ dist_patch_DATA = \
%D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \
%D%/packages/patches/musl-CVE-2016-8859.patch \ %D%/packages/patches/musl-CVE-2016-8859.patch \
%D%/packages/patches/mutt-store-references.patch \ %D%/packages/patches/mutt-store-references.patch \
%D%/packages/patches/nasm-no-ps-pdf.patch \
%D%/packages/patches/net-tools-bitrot.patch \ %D%/packages/patches/net-tools-bitrot.patch \
%D%/packages/patches/netcdf-config-date.patch \ %D%/packages/patches/netcdf-date-time.patch \
%D%/packages/patches/netcdf-tst_h_par.patch \
%D%/packages/patches/netsurf-about.patch \ %D%/packages/patches/netsurf-about.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \ %D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/ngircd-no-dns-in-tests.patch \ %D%/packages/patches/ngircd-no-dns-in-tests.patch \
@ -904,7 +899,6 @@ dist_patch_DATA = \
%D%/packages/patches/vpnc-script.patch \ %D%/packages/patches/vpnc-script.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \ %D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/vtk-mesa-10.patch \
%D%/packages/patches/weechat-python.patch \ %D%/packages/patches/weechat-python.patch \
%D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \
%D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \

View File

@ -34,24 +34,32 @@
(define-public nasm (define-public nasm
(package (package
(name "nasm") (name "nasm")
(version "2.12.01") (version "2.12.02")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/" (uri (string-append "http://www.nasm.us/pub/nasm/releasebuilds/"
version "/" name "-" version ".tar.xz")) version "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"12bl6vc5sjp9nnhf0iwy6l27vq783y0rxrjpp8sy84h5cb7a3fwx")) "08a3ah791cl7xdyrlz33mwv4xzs08rxh0p902p3ypi5iq1h6p1jc"))))
(patches (search-patches "nasm-no-ps-pdf.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("perl" ,perl) ;for doc and test target (native-inputs `(("perl" ,perl) ;for doc and test target
("texinfo" ,texinfo))) ("texinfo" ,texinfo)))
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:phases (modify-phases %standard-phases #:phases
(add-after 'install 'install-info (modify-phases %standard-phases
(lambda _ (add-after 'unpack 'dont-build-ps-pdf-outputs
(zero? (system* "make" "install_doc"))))))) (lambda _
(substitute* "doc/Makefile.in"
(("info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf")
"info html nasmdoc.txt")
(("nasmdoc.ps nasmdoc.pdf nasmdoc.txt \\$\\(INSTALLROOT\\)\\$\\(docdir\\)")
"nasmdoc.txt $(INSTALLROOT)$(docdir)"))
#t))
(add-after 'install 'install-info
(lambda _
(zero? (system* "make" "install_doc")))))))
(home-page "http://www.nasm.us/") (home-page "http://www.nasm.us/")
(synopsis "80x86 and x86-64 assembler") (synopsis "80x86 and x86-64 assembler")
(description (description
@ -62,7 +70,6 @@ Windows32 and Windows64. It will also output plain binary files. Its syntax
is designed to be simple and easy to understand, similar to Intel's but less is designed to be simple and easy to understand, similar to Intel's but less
complex. It supports all currently known x86 architectural extensions, and complex. It supports all currently known x86 architectural extensions, and
has strong support for macros.") has strong support for macros.")
(supported-systems '("x86_64-linux" "i686-linux"))
(license license:bsd-3))) (license license:bsd-3)))
(define-public yasm (define-public yasm

View File

@ -186,7 +186,7 @@ streams from live audio.")
(define-public ardour (define-public ardour
(package (package
(name "ardour") (name "ardour")
(version "5.4") (version "5.5")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -196,14 +196,14 @@ streams from live audio.")
;; Ardour expects this file to exist at build time. The revision ;; Ardour expects this file to exist at build time. The revision
;; is the output of ;; is the output of
;; git describe HEAD | sed 's/^[A-Za-z]*+//' ;; git describe HEAD | sed 's/^[A-Za-z]*+//'
'(call-with-output-file `(call-with-output-file
"libs/ardour/revision.cc" "libs/ardour/revision.cc"
(lambda (port) (lambda (port)
(format port "#include \"ardour/revision.h\" (format port ,(string-append "#include \"ardour/revision.h\"
namespace ARDOUR { const char* revision = \"5.4\" ; }")))) namespace ARDOUR { const char* revision = \"" version "\" ; }")))))
(sha256 (sha256
(base32 (base32
"1yrg0d86k9fqw7lmzjglilbadb4cjqxqkf6ii4bjs6rihj6b0qrf")) "1a3whv2dhl073pkd803hcp53rdmm31adjwn40qi06lkjb7rgwrlh"))
(file-name (string-append name "-" version)))) (file-name (string-append name "-" version))))
(build-system waf-build-system) (build-system waf-build-system)
(arguments (arguments
@ -1653,9 +1653,16 @@ software.")
(setenv "LDFLAGS" (setenv "LDFLAGS"
(string-append (string-append
"-L" (assoc-ref inputs "boost") "/lib " "-L" (assoc-ref inputs "boost") "/lib "
"-lboost_system"))))))) "-lboost_system"))
;; Needed for gtkmm
(substitute* '("src/wscript_build"
"examples/wscript_build")
(("cxxflags.*= \\[" line)
(string-append line "\"-std=c++11\", ")))
#t)))))
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
("gtkmm" ,gtkmm-2)
("lv2" ,lv2))) ("lv2" ,lv2)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -1798,6 +1805,23 @@ and ALSA.")
aimed at audio/musical applications.") aimed at audio/musical applications.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public raul-devel
(let ((commit "f8bf77d3c3b77830aedafb9ebb5cdadfea7ed07a")
(revision "1"))
(package (inherit raul)
(name "raul")
(version (string-append "0.8.4-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "http://git.drobilla.net/raul.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1lby508fb0n8ks6iz959sh18fc37br39d6pbapwvbcw5nckdrxwj")))))))
(define-public rubberband (define-public rubberband
(package (package
(name "rubberband") (name "rubberband")

View File

@ -97,7 +97,7 @@
(define-public aragorn (define-public aragorn
(package (package
(name "aragorn") (name "aragorn")
(version "1.2.37") (version "1.2.38")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -105,7 +105,7 @@
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 (base32
"1c7zxk0h8wsjbix82fmmfyywcq6zn3q9h5y67kcl5y3qal2bv2xr")))) "09i1rg716smlbnixfm7q1ml2mfpaa2fpn3hwjg625ysmfwwy712b"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -29,11 +30,15 @@
#:use-module (gnu packages adns) #:use-module (gnu packages adns)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages libevent) #:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
@ -251,3 +256,39 @@ interface, for the Transmission BitTorrent daemon.")
download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.") Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(license l:gpl2+))) (license l:gpl2+)))
(define-public uget
(package
(name "uget")
(version "2.0.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/urlget/"
"uget%20%28stable%29/" version "/uget-"
version ".tar.gz"))
(sha256
(base32
"0919cf7lfk1djdl003cahqjvafdliv7v2l8r5wg95n4isqggdk75"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)))
(inputs
`(("curl" ,curl)
("gtk+" ,gtk+)
("glib" ,glib)
("gnutls" ,gnutls)
("gstreamer" ,gstreamer)
("libgcrypt" ,libgcrypt)
("libnotify" ,libnotify)
("openssl" ,openssl)))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://ugetdm.com/")
(synopsis "Universal download manager with GTK+ interface")
(description
"uGet is portable download manager with GTK+ interface supporting
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
downloads, download scheduling, download rate limiting.")
(license l:lgpl2.1+)))

View File

@ -24,6 +24,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages enlightenment)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -90,3 +91,38 @@ cases. Connman implements DNS resolving and caching, DHCP clients for both
IPv4 and IPv6, link-local IPv4 address handling and tethering (IP connection IPv4 and IPv6, link-local IPv4 address handling and tethering (IP connection
sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.") sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
(license gpl2))) (license gpl2)))
(define-public econnman
(package
(name "econnman")
(version "1.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.enlightenment.org/rel/apps/"
"econnman/econnman-" version ".tar.gz"))
(sha256
(base32
"057pwwavlvrrq26bncqnfrf449zzaim0zq717xv86av4n940gwv0"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--localstatedir=/var")
#:phases
(modify-phases %standard-phases
(add-after 'install 'wrap-binary
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin/econnman-bin")))
(wrap-program bin
`("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH"))))
#t))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("efl" ,efl)
("python-2" ,python-2)
("python2-efl" ,python2-efl)))
(home-page "https://www.enlightenment.org")
(synopsis "Connman User Interface written using the EFL")
(description
"An EFL user interface for the @code{connman} connection manager.")
(license lgpl3)))

View File

@ -636,7 +636,7 @@ extremely small.")
(define-public perl-dbix-class (define-public perl-dbix-class
(package (package
(name "perl-dbix-class") (name "perl-dbix-class")
(version "0.082810") (version "0.082840")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -644,7 +644,7 @@ extremely small.")
"DBIx-Class-" version ".tar.gz")) "DBIx-Class-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1zlsswk8j2k024gwhdhia8ksrmb8065n98dahkk8c0r69wv85n04")))) "1vw1f756g8m5hq11nqf5dk2cw2y4mqq91ca5p75fn5g3fp8syja0"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-dbd-sqlite" ,perl-dbd-sqlite) `(("perl-dbd-sqlite" ,perl-dbd-sqlite)
@ -690,7 +690,7 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
(define-public perl-dbix-class-cursor-cached (define-public perl-dbix-class-cursor-cached
(package (package
(name "perl-dbix-class-cursor-cached") (name "perl-dbix-class-cursor-cached")
(version "1.001002") (version "1.001004")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -698,7 +698,7 @@ single query, \"JOIN\", \"LEFT JOIN\", \"COUNT\", \"DISTINCT\", \"GROUP BY\",
"DBIx-Class-Cursor-Cached-" version ".tar.gz")) "DBIx-Class-Cursor-Cached-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19r7jr6pknxiirrybq0cd0lnr76xiw05arnfqgk9nrhp6c7vvil0")))) "09b2jahn2x12qm4f7qm1jzsxbz7qn1czp6a3fnl5l2i3l4r5421p"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-cache-cache" ,perl-cache-cache) `(("perl-cache-cache" ,perl-cache-cache)
@ -715,7 +715,7 @@ built-in caching support.")
(define-public perl-dbix-class-introspectablem2m (define-public perl-dbix-class-introspectablem2m
(package (package
(name "perl-dbix-class-introspectablem2m") (name "perl-dbix-class-introspectablem2m")
(version "0.001001") (version "0.001002")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -723,7 +723,7 @@ built-in caching support.")
"DBIx-Class-IntrospectableM2M-" version ".tar.gz")) "DBIx-Class-IntrospectableM2M-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0p9zx1yc1f6jg583l206wilsni2v8mlngc2vf2q8yn10pmy4y6wm")))) "1w47rh2241iy5x3a9bqsyd5kdp9sk43dksr99frzv4qn4jsazfn6"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-dbix-class" ,perl-dbix-class))) `(("perl-dbix-class" ,perl-dbix-class)))
@ -740,7 +740,7 @@ introspected and examined.")
(define-public perl-dbix-class-schema-loader (define-public perl-dbix-class-schema-loader
(package (package
(name "perl-dbix-class-schema-loader") (name "perl-dbix-class-schema-loader")
(version "0.07042") (version "0.07046")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -748,7 +748,7 @@ introspected and examined.")
"DBIx-Class-Schema-Loader-" version ".tar.gz")) "DBIx-Class-Schema-Loader-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0sb48as7azmj6s4acxh98wcvcik7lxm7dcjz1c3wdrkrbmbbz0jf")))) "08cgn0dx42y9xsxas9np7s55a7qmy4kf6sfmx0jmk4hryvbapml3"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-config-any" ,perl-config-any) `(("perl-config-any" ,perl-config-any)
@ -843,7 +843,7 @@ columns, primary keys, unique constraints and relationships.")
(define-public perl-dbd-sqlite (define-public perl-dbd-sqlite
(package (package
(name "perl-dbd-sqlite") (name "perl-dbd-sqlite")
(version "1.42") (version "1.52")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -851,7 +851,7 @@ columns, primary keys, unique constraints and relationships.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"14x9cjsc8dz8ad1nad0bqiq9cbk1rjfb8h5y0rpk3pdl38y6afxb")))) "0kimb2qr1rh07yylbbfybwcizpmy61ck667amypn4clmkfg0knm6"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs `(("sqlite" ,sqlite))) (inputs `(("sqlite" ,sqlite)))
(propagated-inputs `(("perl-dbi" ,perl-dbi))) (propagated-inputs `(("perl-dbi" ,perl-dbi)))

View File

@ -6,6 +6,7 @@
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is>
;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,7 +27,9 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages crypto)
#:use-module (gnu packages groff) #:use-module (gnu packages groff)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
@ -134,6 +137,97 @@ high-volume and high-reliability applications. The name BIND stands for
(home-page "https://www.isc.org/downloads/bind") (home-page "https://www.isc.org/downloads/bind")
(license (list license:isc)))) (license (list license:isc))))
(define-public dnscrypt-proxy
(package
(name "dnscrypt-proxy")
(version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://download.dnscrypt.org/dnscrypt-proxy/"
"dnscrypt-proxy-" version ".tar.bz2"))
(sha256
(base32
"1qw2nib0d5ia8581lbdnjxgn9c7pf2qw8vhpnnh1wjcjj3gpgbqx"))
(modules '((guix build utils)))
(snippet
;; Delete bundled libltdl. XXX: This package also bundles
;; a modified libevent that cannot currently be removed.
'(delete-file-recursively "libltdl"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'autoreconf
(lambda _
;; Re-generate build files due to unbundling ltdl.
;; TODO: Prevent generating new libltdl and building it.
;; The system version is still favored and referenced.
(zero? (system* "autoreconf" "-vif")))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("automake" ,automake)
("autoconf" ,autoconf)
("libtool" ,libtool)))
(inputs
`(("libltdl" ,libltdl)
("libsodium" ,libsodium)))
(home-page "https://www.dnscrypt.org/")
(synopsis "Securely send DNS requests to a remote server")
(description
"@command{dnscrypt-proxy} is a tool for securing communications
between a client and a DNS resolver. It verifies that responses you get
from a DNS provider was actually sent by that provider, and haven't been
tampered with. For optimal performance it is recommended to use this as
a forwarder for a caching DNS resolver such as @command{dnsmasq}, but it
can also be used as a normal DNS \"server\". A list of public dnscrypt
servers is included, and an up-to-date version is available at
@url{https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-resolvers.csv}.")
(license (list license:isc
;; Libevent and src/ext/queue.h is 3-clause BSD.
license:bsd-3))))
(define-public dnscrypt-wrapper
(package
(name "dnscrypt-wrapper")
(version "0.2.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/cofyc/dnscrypt-wrapper/releases"
"/download/v" version "/" name "-v" version ".tar.bz2"))
(sha256
(base32
"1vhg4g0r687f51wcdn7z9w1hxapazx6vyh5rsr8wa48sljzd583g"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CC=gcc")
;; TODO: Tests require ruby-cucumber and ruby-aruba.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'configure 'create-configure
(lambda _
(zero? (system* "make" "configure")))))))
(native-inputs
`(("autoconf" ,autoconf)))
(inputs
`(("libevent" ,libevent)
("libsodium" ,libsodium)))
(home-page "https://github.com/Cofyc/dnscrypt-wrapper")
(synopsis "Server-side dnscrypt proxy")
(description
"@command{dnscrypt-wrapper} is a tool to expose a name server over
the @code{dnscrypt} protocol. It can be used as an endpoint for the
@command{dnscrypt-proxy} client to securely tunnel DNS requests between
the two.")
(license (list license:isc
;; Bundled argparse is MIT. TODO: package and unbundle.
license:expat
;; dns-protocol.h and rfc1035.{c,h} is gpl2 or gpl3 (either).
license:gpl2
license:gpl3))))
(define-public libasr (define-public libasr
(package (package
(name "libasr") (name "libasr")

View File

@ -173,7 +173,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
(define-public dblatex (define-public dblatex
(package (package
(name "dblatex") (name "dblatex")
(version "0.3.5") (version "0.3.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/dblatex/dblatex/" (uri (string-append "mirror://sourceforge/dblatex/dblatex/"
@ -181,7 +181,7 @@ by no means limited to these applications.) This package provides XML DTDs.")
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0h3472n33pabrn8qwggsahkrjx8lybpwlc3zprby3w3w3x5i830f")))) "0pdizc5rjywwzxa1qqhdmba5zr35pbmdwbysalsid7xw87w3kq06"))))
(build-system python-build-system) (build-system python-build-system)
;; TODO: Add xfig/transfig for fig2dev utility ;; TODO: Add xfig/transfig for fig2dev utility
(inputs (inputs
@ -192,6 +192,15 @@ by no means limited to these applications.) This package provides XML DTDs.")
("libxslt" ,libxslt))) ;for xsltproc ("libxslt" ,libxslt))) ;for xsltproc
(arguments (arguments
`(#:python ,python-2 ;'print' syntax `(#:python ,python-2 ;'print' syntax
;; Using setuptools causes an invalid "package_base" path in
;; out/bin/.dblatex-real due to a missing leading '/'. This is caused
;; by dblatex's setup.py stripping the root path when creating the
;; script. (dblatex's setup.py still uses distutils and thus has to
;; create the script by itself. The feature for creating scripts is one
;; of setuptools' features.)
;; See this thread for details:
;; https://lists.gnu.org/archive/html/guix-devel/2016-12/msg00030.html
#:use-setuptools? #f
#:tests? #f ;no 'test' command #:tests? #f ;no 'test' command
#:phases #:phases
(alist-cons-after (alist-cons-after

View File

@ -126,6 +126,9 @@
`(#:python ,python-2 `(#:python ,python-2
#:test-target "check" #:test-target "check"
#:tests? #f ; FIXME: enable once flake8 is packaged #:tests? #f ; FIXME: enable once flake8 is packaged
;; Calibre is using setuptools by itself, but the setup.py is not
;; compatible with the shim wrapper (taken from pip) we are using.
#:use-setuptools? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'configure (add-before 'build 'configure

View File

@ -426,7 +426,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
(define-public emacs-with-editor (define-public emacs-with-editor
(package (package
(name "emacs-with-editor") (name "emacs-with-editor")
(version "2.5.6") (version "2.5.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -435,7 +435,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"14vypqj3wqym5yd0nggfm1xdgq5hv1kwxkg6i8ymlpxcdfxj45w7")))) "1dghd0m5zwayv553g4cr990s4ig5lyh0b52qfdv5rbqnndpj3cjn"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
`(("emacs-dash" ,emacs-dash))) `(("emacs-dash" ,emacs-dash)))
@ -897,14 +897,14 @@ provides an optional IDE-like error list.")
(define-public emms (define-public emms
(package (package
(name "emacs-emms") (name "emacs-emms")
(version "4.1") (version "4.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/emms/emms-" (uri (string-append "mirror://gnu/emms/emms-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ay6631p3dr6xnhkm7skwn0gp317r1mxbip28m126w4zqf05cbh3")) "1xa9y64g5z8gfnxk1c2rf3plfjhqn4r6j8dpiygnfs6w4giysn22"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile" '(substitute* "Makefile"
@ -974,22 +974,19 @@ provides an optional IDE-like error list.")
(string-append "\"" mp3info "/bin/mp3info\""))))))) (string-append "\"" mp3info "/bin/mp3info\"")))))))
(add-before 'install 'pre-install (add-before 'install 'pre-install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; The 'install' rule expects the target directory to exist. ;; The 'install' rule expects the target directories to exist.
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man1 (string-append out "/share/man/man1"))) (man1 (string-append out "/share/man/man1")))
(mkdir-p bin)
(mkdir-p man1) (mkdir-p man1)
#t))) #t)))
(add-after 'install 'post-install (add-after 'install 'post-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")))
(target (string-append
out "/bin/emms-print-metadata")))
(symlink "emms-auto.el" (symlink "emms-auto.el"
(string-append out "/share/emacs/site-lisp/" (string-append out "/share/emacs/site-lisp/"
"emms-autoloads.el")) "emms-autoloads.el"))))))
(mkdir-p (dirname target))
(copy-file "src/emms-print-metadata" target)
(chmod target #o555)))))
#:tests? #f)) #:tests? #f))
(native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils) (native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
("texinfo" ,texinfo))) ("texinfo" ,texinfo)))
@ -2286,7 +2283,7 @@ well as completely new features.")
(define-public emacs-hl-todo (define-public emacs-hl-todo
(package (package
(name "emacs-hl-todo") (name "emacs-hl-todo")
(version "1.7.1") (version "1.7.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2295,7 +2292,7 @@ well as completely new features.")
(file-name (string-append "hl-todo-" version ".el")) (file-name (string-append "hl-todo-" version ".el"))
(sha256 (sha256
(base32 (base32
"0flhz9vy8w1vvwwji92pi5k4659hl368bakj2qf2zfd26z8x583h")))) "016ivl4s0ysrm1xbfi86j5xcs759fcb0mkspxw81x8mpi3yb46ya"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/tarsius/hl-todo") (home-page "https://github.com/tarsius/hl-todo")
(synopsis "Emacs mode to highlight TODO and similar keywords") (synopsis "Emacs mode to highlight TODO and similar keywords")

View File

@ -31,6 +31,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#: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 game-development) #:use-module (gnu packages game-development)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
@ -298,3 +299,33 @@ that tries to lower the barrier to getting involved in Enlightenment development
and in creating applications based on the Enlightenment Foundation Library suite.") and in creating applications based on the Enlightenment Foundation Library suite.")
(license (list license:public-domain ; data/extra/skeleton (license (list license:public-domain ; data/extra/skeleton
license:gpl2)))) ; edi license:gpl2)))) ; edi
(define-public lekha
(package
(name "lekha")
(version "0.2.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "Lekha" version))
(sha256
(base32
"0zr6i74ik58pbzrd7r9l7sawqbdv0r2c1a9927qkqzwga27x8j15"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; no test target
#:python ,python-2
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-data-location
(lambda _ (substitute* "setup.py"
(("'/usr/")"'"))
#t)))))
(propagated-inputs
`(("python2-efl" ,python2-efl)
("python2-pypdf2" ,python2-pypdf2)
("python2-pyxdg" ,python2-pyxdg)))
(synopsis "Simple PDF viewer")
(description
"Simple PDF viewer based on the Enlightenment Foundation Libraries.")
(home-page "https://github.com/kaihu/lekha")
(license license:gpl3+)))

View File

@ -1,67 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages feh)
#:use-module (gnu packages)
#:use-module (gnu packages image)
#:use-module (gnu packages curl)
#:use-module (gnu packages xorg)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:))
(define-public feh
(package
(name "feh")
(version "2.14.1")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
(uri (string-append home-page
name "-" version ".tar.bz2"))
(sha256
(base32
"1hlzgr0masgbm1vdn085vz81s9kpnah8kjkb1w1xfsxr1b99x8f0"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-delete 'configure %standard-phases)
#:tests? #f
#:make-flags
(list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(inputs `(("imlib2" ,imlib2)
("curl" ,curl)
("libpng" ,libpng)
("libxt" ,libxt)
("libx11" ,libx11)
("libxinerama" ,libxinerama)))
(synopsis "Fast and light imlib2-based image viewer")
(description
"feh is an X11 image viewer aimed mostly at console users.
Unlike most other viewers, it does not have a fancy GUI, but simply
displays images. It can also be used to set the desktop wallpaper.
It is controlled via commandline arguments and configurable key/mouse
actions.")
;; The license is really the Expat license, with additional wording in the
;; 2nd paragraph: "acknowledgment shall be given in the documentation and
;; software packages that this Software was used."
(license (license:x11-style
"file://COPYING"
"See 'COPYING' in the distribution."))))

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,6 +23,7 @@
(define-module (gnu packages flashing-tools) (define-module (gnu packages flashing-tools)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -211,3 +213,37 @@ You need to add the udev rules to make the Teensy update available for
non-root users.") non-root users.")
(home-page "https://www.pjrc.com/teensy/loader_cli.html") (home-page "https://www.pjrc.com/teensy/loader_cli.html")
(license gpl3)))) (license gpl3))))
(define-public rkflashtool
(let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1")
(revision "1"))
(package
(name "rkflashtool")
(version (string-append "0.0.0-" revision "." (string-take commit 7)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/linux-rockchip/rkflashtool.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1zkd8zxir3rfg3sy9r20bcnxclnplryn583gqpcr3iad0k3xbah7"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure
#:make-flags (list (string-append "PREFIX=" %output))
#:tests? #f)) ; no tests
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("libusb" ,libusb)))
(home-page "https://github.com/linux-rockchip/rkflashtool")
(synopsis "Tools for flashing Rockchip devices")
(description "Allows flashing of Rockchip based embedded linux devices.
The list of currently supported devices is: RK2818, RK2918, RK2928, RK3026,
RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.")
(license bsd-2))))

View File

@ -1,108 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages geeqie)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix build-system gnu)
#:use-module (gnu packages autotools)
#:use-module (gnu packages compression)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xml))
(define-public exiv2 ; XXX: move elsewhere?
(package
(name "exiv2")
(version "0.25")
(source (origin
(method url-fetch)
(uri (list (string-append "http://www.exiv2.org/exiv2-"
version ".tar.gz")
(string-append "https://fossies.org/linux/misc/exiv2-"
version ".tar.gz")))
(sha256
(base32
"197g6vgcpyf9p2cwn5p5hb1r714xsk1v4p96f5pv1z8mi9vzq2y8"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no `check' target
(propagated-inputs
`(("expat" ,expat)
("zlib" ,zlib)))
(native-inputs
`(("intltool" ,intltool)))
(home-page "http://www.exiv2.org/")
(synopsis "Library and command-line utility to manage image metadata")
(description
"Exiv2 is a C++ library and a command line utility to manage image
metadata. It provides fast and easy read and write access to the Exif, IPTC
and XMP metadata of images in various formats.")
;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the
;; 3-clause BSD license: <http://www.adobe.com/devnet/xmp/sdk/eula.html>.
;; The core is GPLv2+:
;; <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>.
(license l:gpl2+)))
(define-public geeqie
(package
(name "geeqie")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BestImageViewer/geeqie/"
"releases/download/v" version "/geeqie-"
version ".tar.xz"))
(sha256
(base32
"0gzc82sy66pbsmq7lnmq4y37zqad1zfwfls3ik3dmfm8s5nmcvsb"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(setenv "NOCONFIGURE" "true")
(zero? (system* "sh" "autogen.sh")))))))
(inputs
`(;; ("libchamplain" ,libchamplain)
("lcms" ,lcms)
("exiv2" ,exiv2)
("libpng" ,libpng)
("gtk+" ,gtk+-2)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("glib" ,glib "bin") ; glib-gettextize
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://www.geeqie.org/")
(synopsis "Lightweight GTK+ based image viewer")
(description
"Geeqie is a lightweight GTK+ based image viewer for Unix like operating
systems. It features: EXIF, IPTC and XMP metadata browsing and editing
interoperability; easy integration with other software; geeqie works on files
and directories, there is no need to import images; fast preview for many raw
image formats; tools for image comparison, sorting and managing photo
collection. Geeqie was initially based on GQview.")
(license l:gpl2+)))

View File

@ -455,7 +455,7 @@ by GDBus included in Glib.")
(define libsigc++ (define libsigc++
(package (package
(name "libsigc++") (name "libsigc++")
(version "2.8.0") (version "2.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/libsigc++/" (uri (string-append "mirror://gnome/sources/libsigc++/"
@ -463,7 +463,7 @@ by GDBus included in Glib.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp")))) "10cd54l4zihss9qxfhd2iip2k7mr292k37i54r2cpgv0c8sdchzq"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("m4" ,m4))) ("m4" ,m4)))

View File

@ -97,7 +97,6 @@
#:use-module (gnu packages scanner) #:use-module (gnu packages scanner)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages geeqie)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages tex) #:use-module (gnu packages tex)

View File

@ -29,7 +29,6 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages geeqie)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)

View File

@ -303,71 +303,41 @@ standards.")
(define-public icecat (define-public icecat
(package (package
(name "icecat") (name "icecat")
(version "45.3.0-gnu1-beta") (version "45.5.1-gnu1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "mirror://gnu/gnuzilla/" version "/" (uri (string-append "mirror://gnu/gnuzilla/"
name "-" version ".tar.bz2") (first (string-split version #\-))
;; XXX Temporary URI for 45.3 beta release. "/" name "-" version ".tar.bz2"))
;; Remove when no longer needed.
(string-append "http://jenkins.trisquel.info/icecat/binaries/"
"icecat-45.3.0-gnu1.tar.bz2")))
(sha256 (sha256
(base32 (base32
"1hk5lwaqm8nkfm43sq521mzyrx0x3iiwvlcy62m7cq7grz9wixp6")) "1sbfgsibmb8wfmb2g40gmqwq3nikmrgzksf51ydrz7gnafyfaqw1"))
(patches (patches
`(,(search-patch "icecat-avoid-bundled-libraries.patch") (list
,(search-patch "icecat-binutils.patch") (search-patch "icecat-avoid-bundled-libraries.patch")
,(mozilla-patch "icecat-CVE-2016-5250.patch" "6711ccb0184e" "1p0s91rw1j7ib6hy9gh5p0l33rja32rfgygh29jw4wq1hxfql8rk") (search-patch "icecat-binutils.patch")
,(mozilla-patch "icecat-CVE-2016-5257-pt1.patch" "b08f28db372e" "0fmifimavawbff700rzjibsnr16am6902gp965scvi1iy78754ia") (mozilla-patch "icecat-bug-1301381.patch" "2e5438a92617" "0pyjbzyy04759ldpcar8q8cccv67j1jkxsg46rkq7a3rbhmwmw4p")
,(mozilla-patch "icecat-CVE-2016-5257-pt2.patch" "a49fd7eb57ba" "1dyh0pjdmf64sjbj1x0mdjwfispacx9yny1kx9nzpf85myryr640") (mozilla-patch "icecat-bug-1317409.patch" "7391f60fb790" "1hydggpmmm2cs9lb15micnkxn4wl4cda9g74hkn3zmks805vjz3h")
,(mozilla-patch "icecat-CVE-2016-5257-pt3.patch" "9707c3423a1e" "12nn8av0akza4ml1is9mfy8f7368mrkxsl32ly97r4irzh0iryh1") (mozilla-patch "icecat-bug-1309834.patch" "744e01001e6e" "0z2fq765kap3ll9as5rvjpnbj3pw26074alw7df0zi215qz47nxr")
,(mozilla-patch "icecat-CVE-2016-5257-pt4.patch" "9d632865560a" "1msp1wqv0c317wqkm82hd9ajbg4a5mcr8pld5j8cx37ccv7f21g3") (mozilla-patch "icecat-bug-1317936-pt1.patch" "8ae673f34a5b" "1rlbihckl9afa0y91lqs7gpnv6a7zxzrmxjv95y3yrl03kibqp76")
,(mozilla-patch "icecat-CVE-2016-5257-pt5.patch" "90697781ec9f" "1h6gcrw5ykf7r59phxqkhpfs7jsgzqn509qm43sj7mbpcvqvk5mg") (mozilla-patch "icecat-bug-1317936-pt2.patch" "409c23c144fe" "05kgs16y8s5pxmg2dxp93247zagnj6zgj3209qpm5hz3an7gr13h")
,(mozilla-patch "icecat-CVE-2016-5257-pt6.patch" "dd9eb81853b9" "1lyqnn40sayziych8gqd5aj7il3zajf318y8ddj8dzz3c8id5dzc") (mozilla-patch "icecat-bug-1319122.patch" "994d9bd0e28d" "007wifyx3b2ln4fwv1i8n24yz5ngjf4mkzd7sqr5bpd3q88ff293")
,(mozilla-patch "icecat-CVE-2016-5257-pt7.patch" "d91fc76079e0" "022lhixa8dxa6ny9a4bh2di282i0lhyq0glqr9n4q3r8msfmf0ba") (mozilla-patch "icecat-bug-1312609.patch" "0fc43af8982e" "0pc8q9knzq2knj723mwkay1lnzbzysb07ygxnc16mcb6f7vl2mw8")
,(mozilla-patch "icecat-CVE-2016-5257-pt8.patch" "3e37ba5e0867" "1w8lncxaayq4xndhyp1hwlv00zggbayljq6rlypb8kdwgzfpi77w") (mozilla-patch "icecat-bug-1319524.patch" "19f9a4643d77" "0w5yxj1l0hvs66q9agjp4m5sfby7fj05lx33gaqf899bw4hn4vcf")
,(mozilla-patch "icecat-CVE-2016-5257-pt9.patch" "3c4958a98908" "16bc6ai5qddnpm3yw24lry5s7i05xs0ycixzxiir4wmcgwcaayiy") (mozilla-patch "icecat-bug-1312548.patch" "c58442c414f5" "1z1w1v8xagkhrwgp51ij1k2gx0ripslia09vm78812n7gcwddaas")
,(mozilla-patch "icecat-CVE-2016-5261.patch" "bc2f5467b33d" "0i4b8ydmqg4blx541f56g9qrlm7gp6ih4cs7ixbds724cwk83b9f") (mozilla-patch "icecat-bug-1314442.patch" "5054047b7328" "0xlw8irymfp3bcaa5jpf7clf7bq6qxp3i8zapp8jya8lzr1nf868")
,(mozilla-patch "icecat-CVE-2016-5270.patch" "7cd50d56bb61" "15nbp5axr59mczxgf37nli37jbw0jdknmxz7z71772pzjd2z07r9") (mozilla-patch "icecat-bug-881832-pt1.patch" "1123263318a3" "1qkxwva3zrcs1zhga8ncmndq03988dx75i896g53gbvpskj06915")
,(mozilla-patch "icecat-CVE-2016-5272.patch" "6e43a01fee3c" "025xp1wdnz1gc5l2rsgbrwsh1pbysjiyfgz0g6rvr390r7ag1n74") (mozilla-patch "icecat-bug-881832-pt2.patch" "dc87c0a39adf" "01rapf14f3r2wk0cjd16dn1rll4ipgs33cnjmjck48nvk67ikz6h")
,(mozilla-patch "icecat-CVE-2016-5274.patch" "10c9453407de" "1wqh6hj0dpa7r3hhlyrflcv3r3cg0xq4rb0zvhysi6l7lwb8q51r") (mozilla-patch "icecat-bug-881832-pt3.patch" "f20e5f488368" "15ql9ywifb3gm2g1057k63f821dbs3wqsh3zhndprzf3dn6aha4i")
,(mozilla-patch "icecat-CVE-2016-5276.patch" "fc818ab03f15" "1q64ipl172dcmyy9p8p3l3ljpdh1q1jg48lai0qn2xgknl7sdpks") (mozilla-patch "icecat-bug-881832-pt4.patch" "7950c4d5bd7c" "0jhkg5hq5yfy7rh21k1mpbsbr81ql85aazym30zy3n2cf28xxhd7")
,(mozilla-patch "icecat-CVE-2016-5277.patch" "7b668c5cec92" "1qmchn6qifgjakzac6i4hgnivy062pzgz9p1l11c1m3an1rh0isg") (mozilla-patch "icecat-bug-881832-pt5.patch" "972734ec21b6" "073i4v1f1ydy49i57pvzscz95sjr5bbk9s5sajxvmmcsmwhpjdfy")
,(mozilla-patch "icecat-CVE-2016-5278.patch" "fd5052e343df" "1nzmzlnsz61w9aw4mjvgmlkz88aqv1w858rr0mbv07hwyrljfi84") (mozilla-patch "icecat-bug-1293985-pt1.patch" "aebd3687e05e" "1qz6hdgflcrqyg7fv66cbg23v4b7q5bc2yxzrgjxs4j1d7jy1s0s")
,(mozilla-patch "icecat-CVE-2016-5280.patch" "30673bc9730b" "1qz1684v1rp86ngadcaqd68iqf472flnrnk971ryg4fbsyy8g1za") (mozilla-patch "icecat-bug-1293985-pt2.patch" "63d8e5cd27cb" "11fsgyngy7v59ma30xdbmycwf4izwikzvaljngm3ks4534inpl4a")
,(mozilla-patch "icecat-CVE-2016-5281-pt1.patch" "61405f1fd1df" "1fgmq67arwsl1nrl133fcb5cz6jbbcfjvbv8cd8cadhapin971a7") (mozilla-patch "icecat-bug-1279202.patch" "e560997291af" "1hn35slasfcj3ryka4fsarx4l9r99z0iwj67fmbv6zxz4z133kks")
,(mozilla-patch "icecat-CVE-2016-5281-pt2.patch" "7776b6ec7b92" "1f7k8f4lk7nyghwajsxf6nb7yvzsaw3jwpa3316znsva12m548mn") (mozilla-patch "icecat-bug-1320039.patch" "21c615b65048" "0ibgsxa36x9ajn2jqbhxxvrfvj6x6iyspsmzzn4brdz11n93skhr")
,(mozilla-patch "icecat-CVE-2016-5284-pt1.patch" "55e768767416" "1gg7m12njbkn1jqf2gp2y7zd9ik3xhqkjb7znczna4l438h7ki83") (mozilla-patch "icecat-bug-1320057.patch" "c15e5afc0430" "17gj32agqs94548z8lvz0l6zz3kbwajn8as0y4iw5nb6jsll4c66")
,(mozilla-patch "icecat-CVE-2016-5284-pt2.patch" "3c42249975a5" "0gnanndkmhsp49rldv4kh0smkdcs7616v46hn567kfw8yfwqvnli") (mozilla-patch "icecat-bug-1163212.patch" "46163fb1cb34" "1yikayczfgfla3aka0159apq3149d52sgvlca0sivx4myd0lvjm7")))
,(mozilla-patch "icecat-CVE-2016-5284-pt3.patch" "126e5d574811" "13gr08bzqy23adz0ciihb7cy9wdnkcn71i77a3y5b5apm6k54mwi")
,(mozilla-patch "icecat-CVE-2016-5284-pt4.patch" "7b8bd7aae1a8" "0mq5gpq6ni8czfcs1rif4is0igh0054aw41ga0jqkq58g7lavkrf")
,(mozilla-patch "icecat-CVE-2016-5284-pt5.patch" "0799490f4e6f" "1ypv6i48nabbhcqbach8fbgz9bmnhm7q5z9dnfid44z8g54l3f33")
,(mozilla-patch "icecat-CVE-2016-5284-pt6.patch" "fc990e4ae8bc" "1s2cj505ajwwiy4xvn5zlmyzqpgahxmqqvis0a6xm6mjbjh02gm4")
,(mozilla-patch "icecat-bug-1251088.patch" "5ffa912ed83e" "0v5lpv3c89c2d4y5acn0kyijv096axdnrvaj5ya5yypzfcaqxv24")
,(mozilla-patch "icecat-CVE-2016-5290-pt1.patch" "d4b5b8f3e373" "0w8cxn6ryhgxryy8k8i06yw4mknv509ns9ff1avd0hmgxa83mcdp")
,(mozilla-patch "icecat-CVE-2016-5290-pt2.patch" "adce603ae36d" "0mgs85cwx61bk17r7npl311l4m8yn4667wyhgjmm2ajiys6nn0yl")
,(mozilla-patch "icecat-CVE-2016-5290-pt3.patch" "97268426bb6f" "1z7hg796cgag025gm9pp2szz7w870s7naagdri1dlsilj797v8hr")
,(mozilla-patch "icecat-CVE-2016-5290-pt4.patch" "fc055950b6b8" "05iml5k3rzc653jk4imd111sh18625jxfxkcj12kjdihl0gdr4x4")
,(mozilla-patch "icecat-CVE-2016-5290-pt5.patch" "6f845c23565b" "01dlbnmpsnwr448fajs276y62gl03r74k1hxnwsg6ihwhnfdvn5a")
,(mozilla-patch "icecat-CVE-2016-5290-pt6.patch" "e5d51ca7a3c0" "0hshcz24hc6pkz5pcqxhajm17ibwrlfn1s00frfnpjjy56vacfz0")
,(mozilla-patch "icecat-CVE-2016-5290-pt7.patch" "61d1463acd04" "1iig4a79dxmfcr6w82mdhyl88wy7d36g5n4p24632kbabgl9j9sz")
,(mozilla-patch "icecat-CVE-2016-5290-pt8.patch" "8e0bab4216de" "1knq8h5ni8crfndi3p78b2pyj5lzchqw67vk0yx061r76mq4wp4r")
,(mozilla-patch "icecat-CVE-2016-5290-pt9.patch" "bb10104dc89e" "1flvagckrzfk7hs2xzb5j3s5i0ck57ygyskh5494xmpa2a1nnsqj")
,(mozilla-patch "icecat-CVE-2016-5290-pt10.patch" "7006b275b829" "0sqagm247wx94mf51fyhdkn0vf1a1qy9i829shjnhssd79srxmnn")
,(mozilla-patch "icecat-CVE-2016-5290-pt11.patch" "32ce7be98543" "1y2r9i4p1qpqi75mlwmibr51whz5h1vj28c6mh6ik57dxkqxbclb")
,(mozilla-patch "icecat-CVE-2016-5291.patch" "3ff0c89f3b26" "1prn74aglshaj27jfrpd2s2i4slpljw4rbzjxc1qgwjvkq4m6j6f")
,(mozilla-patch "icecat-CVE-2016-5297.patch" "46b07bdbf8b2" "1n8y1c5l0ms81dra7jsx8mp633ak5qvx105drvlg9hn3m0fwv1lj")
,(search-patch "icecat-CVE-2016-9064.patch") ; adapted for icecat based on:
; "00c2b7baaa0b" "0y02yb7r62656nq9dji9dnwils2lxqasjz5byv62j1xa87r7f9hp"
,(mozilla-patch "icecat-CVE-2016-9066.patch" "576f1725a57e" "1lic9d3r8r1vcniw1g3ca71390lw3dmwjsw55dp6z96hyjbcq3fd")
,(mozilla-patch "icecat-bug-1212939.patch" "4a0e851f83e4" "182vx1qxrr7r2175jjf0bcixwwm1khdj4sq0c8wnsyry7p9waq5q")
,(mozilla-patch "icecat-bug-1168743.patch" "a1e06af61ab3" "07llk1ba6axjasiv30vicz96k55ff4mybxy21vjxk6j0asgyjz23")
,(mozilla-patch "icecat-bug-1287176.patch" "0569d5dce9db" "1d41sqbq6jc3af73dz9w19win7v7c12kw1mp7j7b1gkadq46c4y7")
,(mozilla-patch "icecat-bug-1263665.patch" "a79cafee93f4" "0bn7hpm8mh8qmkpz5wiridr792irrs5sjxyvryazy2i0p4pjh62p")
,(mozilla-patch "icecat-bug-1304962.patch" "f61049d5f373" "04d1na31qqq7yq4jjvhq6vzqq3f23rwac8c6fw4h5fx1pdb3l997")
,(mozilla-patch "icecat-bug-1314574.patch" "46b2558ca469" "00q8676xg4wb7p371wgi04nl05j7idkb2kna9a0l08k6lks9wdhh")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -411,7 +381,7 @@ standards.")
"db/sqlite3")) "db/sqlite3"))
;; Delete .pyc files, typically present in icecat source tarballs ;; Delete .pyc files, typically present in icecat source tarballs
(for-each delete-file (find-files "." "\\.pyc$")) (for-each delete-file (find-files "." "\\.pyc$"))
;; Delete obj-* directories, found in icecat-45.3.0-gnu1-beta ;; Delete obj-* directories, sometimes present in icecat tarballs
(for-each delete-file-recursively (for-each delete-file-recursively
(scandir "." (lambda (name) (scandir "." (lambda (name)
(string-prefix? "obj-" name)))) (string-prefix? "obj-" name))))
@ -491,9 +461,8 @@ standards.")
"--disable-debug" "--disable-debug"
"--disable-debug-symbols" "--disable-debug-symbols"
;; Temporary hack to work around missing ;; Hack to work around missing
;; "unofficial" branding in ;; "unofficial" branding in icecat.
;; icecat-45.3.0-gnu1-beta.
"--enable-official-branding" "--enable-official-branding"
;; Avoid bundled libraries. ;; Avoid bundled libraries.

View File

@ -6,7 +6,7 @@
;;; Copyright © 2016 Petter <petter@mykolab.ch> ;;; Copyright © 2016 Petter <petter@mykolab.ch>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is an addendum GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; 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 ;;; under the terms of the GNU General Public License as published by
@ -200,7 +200,7 @@ sequential processes (CSP) concurrent programming features added.")
(package (package
(inherit go-1.4) (inherit go-1.4)
(name "go") (name "go")
(version "1.7.3") (version "1.7.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -208,7 +208,7 @@ sequential processes (CSP) concurrent programming features added.")
name version ".src.tar.gz")) name version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"0i7gy5d8j6186a6x07cnj3r7mpfg3964q8byslx0p6x04w00lhvr")))) "1k0lnsk5i9swi209wh535lpnpczsh6l8m1pfncmilrdsx48r262c"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments go-1.4) (substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases) ((#:phases phases)

View File

@ -27,7 +27,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages geeqie) ;exiv2 #:use-module (gnu packages image)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages qt)) #:use-module (gnu packages qt))

View File

@ -98,7 +98,7 @@ arrays of data.")
(define-public gstreamer (define-public gstreamer
(package (package
(name "gstreamer") (name "gstreamer")
(version "1.10.1") (version "1.10.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -107,7 +107,7 @@ arrays of data.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1npnpyrw8603ivi5g3ziglvh3hq2shypid2vjcmki6g6w2bgk3gn")))) "0rcd4ya4k99x6ngm9v78as7ql0rqibkwshc13lb4rjdszs0qw3hm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(arguments (arguments
@ -146,7 +146,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base (define-public gst-plugins-base
(package (package
(name "gst-plugins-base") (name "gst-plugins-base")
(version "1.10.1") (version "1.10.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -154,7 +154,7 @@ This package provides the core library and elements.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1jbnr6vbklzli493xdd8y5sflm32r90lifpacxw9vbvs9hlyxkv6")))) "086yjwmp4fykcqkj6zqhwrk2z49981kl8x545vz2wvblrc7x9h7v"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(propagated-inputs (propagated-inputs
@ -201,20 +201,16 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good (define-public gst-plugins-good
(package (package
(name "gst-plugins-good") (name "gst-plugins-good")
(version "1.10.1") (version "1.10.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://gstreamer.freedesktop.org/src/" name "/" "https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(patches (search-patches "gst-plugins-good-flic-bounds-check.patch"
"gst-plugins-good-fix-signedness.patch"
"gst-plugins-good-fix-invalid-read.patch"
"gst-plugins-good-fix-crashes.patch"))
(sha256 (sha256
(base32 (base32
"1hkcap9l2603266gyi6jgvx7frbvfmb7xhfhjizbczy1wykjwr57")))) "04rksbhjj2yz32g523cfabwqn2s3byd94dpbxghxr0p9ridk53qr"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("aalib" ,aalib) `(("aalib" ,aalib)
@ -270,14 +266,14 @@ developers consider to have good quality code and correct functionality.")
(define-public gst-plugins-bad (define-public gst-plugins-bad
(package (package
(name "gst-plugins-bad") (name "gst-plugins-bad")
(version "1.10.1") (version "1.10.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/" (uri (string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"07cjra4fclrk6lpdm5hrsgp79aqpklx3v3l9scain091zvchwghk")))) "0fisnnfpp3s8pbm6hjrfi4wjpq2da8c6w3ns9pjcg7590f9wm587"))))
(outputs '("out" "doc")) (outputs '("out" "doc"))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -347,7 +343,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly (define-public gst-plugins-ugly
(package (package
(name "gst-plugins-ugly") (name "gst-plugins-ugly")
(version "1.10.1") (version "1.10.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -355,7 +351,7 @@ par compared to the rest.")
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1hl385fys7hfx5ffipavvhciq6hwm731rs4d6r9fn7h9qagxbv55")))) "17gc2zd3v6spmm2d6912sqfcyyv5f2ghdhq31f5kx5mw5r6ds0zk"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gst-plugins-base" ,gst-plugins-base) `(("gst-plugins-base" ,gst-plugins-base)
@ -386,7 +382,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
(define-public gst-libav (define-public gst-libav
(package (package
(name "gst-libav") (name "gst-libav")
(version "1.10.1") (version "1.10.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -394,7 +390,7 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ivjbh5g0l5ykfpc16kq5x2jz8d4ignyha14jpiz3pz6w26qpci7")))) "0g778j7w4vpbhwjzyrzpajvr26nxm6vqby84v8g1w1hz44v71pd3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--with-system-libav") '(#:configure-flags '("--with-system-libav")
@ -424,7 +420,7 @@ compression formats through the use of the libav library.")
(define-public python-gst (define-public python-gst
(package (package
(name "python-gst") (name "python-gst")
(version "1.10.1") (version "1.10.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -432,7 +428,7 @@ compression formats through the use of the libav library.")
"gst-python-" version ".tar.xz")) "gst-python-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"04xhh0z0c0s6aq7kvmfs4r6yl1pjnqz0krp05pbjy62ayx5b61ak")))) "1sljnqkxf2ix6yzghrapw5irl0rbp8aa8w2hggk7i6d9js10ls71"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
;; XXX: Factorize python-sitedir with python-build-system. ;; XXX: Factorize python-sitedir with python-build-system.

View File

@ -8,6 +8,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Coypright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
@ -34,6 +35,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system waf) #:use-module (guix build-system waf)
@ -299,6 +301,23 @@ graph-like environments, e.g. modular synths or finite state machine
diagrams.") diagrams.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public ganv-devel
(let ((commit "31685d283e9b811b61014f820c42807f4effa071")
(revision "1"))
(package
(inherit ganv)
(name "ganv")
(version (string-append "1.4.2-" revision "."
(string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "http://git.drobilla.net/ganv.git")
(commit commit)))
(sha256
(base32
"0xmbykdl42jn9cgzrqrys5lng67d26nk5xq10wkkvjqldiwdck56")))))))
(define-public gtksourceview-2 (define-public gtksourceview-2
(package (package
(name "gtksourceview") (name "gtksourceview")

View File

@ -1,5 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; 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 ;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at ;;; the Free Software Foundation; either version 3 of the License, or (at
@ -20,11 +26,133 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages geeqie) #:use-module (gnu packages curl)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages pkg-config)) #:use-module (gnu packages image)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages xorg))
(define-public feh
(package
(name "feh")
(version "2.14.1")
(home-page "https://feh.finalrewind.org/")
(source (origin
(method url-fetch)
(uri (string-append home-page
name "-" version ".tar.bz2"))
(sha256
(base32
"1hlzgr0masgbm1vdn085vz81s9kpnah8kjkb1w1xfsxr1b99x8f0"))))
(build-system gnu-build-system)
(arguments
'(#:phases (alist-delete 'configure %standard-phases)
#:tests? #f
#:make-flags
(list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(inputs `(("imlib2" ,imlib2)
("curl" ,curl)
("libpng" ,libpng)
("libxt" ,libxt)
("libx11" ,libx11)
("libxinerama" ,libxinerama)))
(synopsis "Fast and light imlib2-based image viewer")
(description
"feh is an X11 image viewer aimed mostly at console users.
Unlike most other viewers, it does not have a fancy GUI, but simply
displays images. It can also be used to set the desktop wallpaper.
It is controlled via commandline arguments and configurable key/mouse
actions.")
;; The license is really the Expat license, with additional wording in the
;; 2nd paragraph: "acknowledgment shall be given in the documentation and
;; software packages that this Software was used."
(license (license:x11-style
"file://COPYING"
"See 'COPYING' in the distribution."))))
(define-public geeqie
(package
(name "geeqie")
(version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BestImageViewer/geeqie/"
"releases/download/v" version "/geeqie-"
version ".tar.xz"))
(sha256
(base32
"0gzc82sy66pbsmq7lnmq4y37zqad1zfwfls3ik3dmfm8s5nmcvsb"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(setenv "NOCONFIGURE" "true")
(zero? (system* "sh" "autogen.sh")))))))
(inputs
`(;; ("libchamplain" ,libchamplain)
("lcms" ,lcms)
("exiv2" ,exiv2)
("libpng" ,libpng)
("gtk+" ,gtk+-2)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("glib" ,glib "bin") ; glib-gettextize
("intltool" ,intltool)
("pkg-config" ,pkg-config)))
(home-page "http://www.geeqie.org/")
(synopsis "Lightweight GTK+ based image viewer")
(description
"Geeqie is a lightweight GTK+ based image viewer for Unix like operating
systems. It features: EXIF, IPTC and XMP metadata browsing and editing
interoperability; easy integration with other software; geeqie works on files
and directories, there is no need to import images; fast preview for many raw
image formats; tools for image comparison, sorting and managing photo
collection. Geeqie was initially based on GQview.")
(license license:gpl2+)))
(define-public sxiv
(package
(name "sxiv")
(version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/muennich/sxiv/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lxnd33gaw4drhdwbkk94wzrjyhh64d57jq2ps7ffmqgizg6hlwz"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
#:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc")
#:phases (alist-delete
'configure ; no configure phase
%standard-phases)))
(inputs
`(("libx11" ,libx11)
("imlib2" ,imlib2)
("giflib" ,giflib)
("libexif" ,libexif)))
(home-page "https://github.com/muennich/sxiv")
(synopsis "Simple X Image Viewer")
(description
"sxiv is an alternative to feh and qiv. Its primary goal is to
provide the most basic features required for fast image viewing. It has
vi key bindings and works nicely with tiling window managers. Its code
base should be kept small and clean to make it easy for you to dig into
it and customize it for your needs.")
(license license:gpl2+)))
(define-public viewnior (define-public viewnior
(package (package

View File

@ -1,4 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014, 2015 Alex Kost <alezost@gmail.com>
@ -42,6 +43,7 @@
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages graphics) #:use-module (gnu packages graphics)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mcrypt) #:use-module (gnu packages mcrypt)
@ -769,6 +771,39 @@ channels.")
"Libmng is the MNG (Multiple-image Network Graphics) reference library.") "Libmng is the MNG (Multiple-image Network Graphics) reference library.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public exiv2
(package
(name "exiv2")
(version "0.25")
(source (origin
(method url-fetch)
(uri (list (string-append "http://www.exiv2.org/exiv2-"
version ".tar.gz")
(string-append "https://fossies.org/linux/misc/exiv2-"
version ".tar.gz")))
(sha256
(base32
"197g6vgcpyf9p2cwn5p5hb1r714xsk1v4p96f5pv1z8mi9vzq2y8"))))
(build-system gnu-build-system)
(arguments '(#:tests? #f)) ; no `check' target
(propagated-inputs
`(("expat" ,expat)
("zlib" ,zlib)))
(native-inputs
`(("intltool" ,intltool)))
(home-page "http://www.exiv2.org/")
(synopsis "Library and command-line utility to manage image metadata")
(description
"Exiv2 is a C++ library and a command line utility to manage image
metadata. It provides fast and easy read and write access to the Exif, IPTC
and XMP metadata of images in various formats.")
;; Files under `xmpsdk' are a copy of Adobe's XMP SDK, licensed under the
;; 3-clause BSD license: <http://www.adobe.com/devnet/xmp/sdk/eula.html>.
;; The core is GPLv2+:
;; <https://launchpad.net/ubuntu/precise/+source/exiv2/+copyright>.
(license license:gpl2+)))
(define-public devil (define-public devil
(package (package
(name "devil") (name "devil")

View File

@ -23,6 +23,8 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages compression)
#:use-module (gnu packages documentation)
#:use-module (gnu packages kde-frameworks) #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -85,6 +87,60 @@ used in KDE development tools Kompare and KDevelop.")
;; source archive ;; source archive
(license (list license:gpl2+ license:lgpl2.0+ license:bsd-3)))) (license (list license:gpl2+ license:lgpl2.0+ license:bsd-3))))
(define-public libksysguard
(package
(name "libksysguard")
(version "5.8.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kde//stable/plasma/" version
"/libksysguard-" version ".tar.xz"))
(sha256
(base32
"158n30wbpsgbw3axhhsc58hnwhwdd02j3zc9hhcybmnbkfl5c96l"))))
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("pkg-config" ,pkg-config)))
(inputs
`(("kconfigwidgets" ,kconfigwidgets)
("kiconthemes" ,kiconthemes)
("kdbusaddons" ,kdbusaddons)
("kdoctools" ,kdoctools)
("kinit" ,kinit)
("knewstuff" ,knewstuff)
("knotifications" ,knotifications)
("kwindowsystem" ,kwindowsystem)
("kio" ,kio)
("ki18n" ,ki18n)
("kservice" ,kservice)
("qtbase" ,qtbase)
("qtscript" ,qtscript)
("qtwebkit" ,qtwebkit)
("qtx11extras" ,qtx11extras)
("plasma" ,plasma-framework)
("zlib" ,zlib)))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
`(,(string-append "-DKDE_INSTALL_DATADIR="
(assoc-ref %outputs "out") "/share"))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-cmakelists
(lambda _
(substitute* "processcore/CMakeLists.txt"
(("KAUTH_HELPER_INSTALL_DIR") "KDE_INSTALL_LIBEXECDIR"))))
(replace 'check
(lambda _ ;other tests require a display and therefore fail
(zero? (system* "ctest" "-R" "chronotest")))))))
(home-page "https://www.kde.org/info/plasma-5.8.2.php")
(synopsis "Network enabled task and system monitoring")
(description "KSysGuard can obtain information on system load and
manage running processes. It obtains this information by interacting
with a ksysguardd daemon, which may also run on a remote system.")
(license license:gpl3+)))
(define-public qca (define-public qca
(package (package
(name "qca") (name "qca")

View File

@ -327,26 +327,26 @@ 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-public linux-libre (define-public linux-libre
(make-linux-libre "4.8.10" (make-linux-libre "4.8.12"
"04kwarmpz5adz64wwy0xpwzxsri7jrjkhbmjlwxsac69x9a26bkl" "1vhqpi5r219a9y1drc3pdzwjif8r974hbc0x9dk4w25c8bsr3cm1"
%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.34" (make-linux-libre "4.4.36"
"04ng40l2av34bcfwjs5vliv15f0m8bl0sfw08imspiplxvajd6ca" "0cvax02jj9zyk818gi6fjgacxa5z89y03kxwclb8l7cr8mcbwcdf"
%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.35" (make-linux-libre "4.1.36"
"05zvrld1digqwf9kqf5pxx0mxqmwpr5kamhnks6y4yfy7x7jynyk" "0wy7xpqjwn1aprbzrbqgjskcg8qj2mczkv3rcisxf8gcdifz61qh"
%intel-compatible-systems %intel-compatible-systems
#:configuration-file kernel-config)) #:configuration-file kernel-config))
;; Avoid rebuilding kernel variants when there is a minor version bump. ;; Avoid rebuilding kernel variants when there is a minor version bump.
(define %linux-libre-version "4.8.10") (define %linux-libre-version "4.8.12")
(define %linux-libre-hash "04kwarmpz5adz64wwy0xpwzxsri7jrjkhbmjlwxsac69x9a26bkl") (define %linux-libre-hash "1vhqpi5r219a9y1drc3pdzwjif8r974hbc0x9dk4w25c8bsr3cm1")
(define-public linux-libre-arm-generic (define-public linux-libre-arm-generic
(make-linux-libre %linux-libre-version (make-linux-libre %linux-libre-version
@ -2664,7 +2664,7 @@ and copy/paste text in the console and in xterm.")
(define-public btrfs-progs (define-public btrfs-progs
(package (package
(name "btrfs-progs") (name "btrfs-progs")
(version "4.8.4") (version "4.8.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/kernel/" (uri (string-append "mirror://kernel.org/linux/kernel/"
@ -2672,7 +2672,7 @@ and copy/paste text in the console and in xterm.")
"btrfs-progs-v" version ".tar.xz")) "btrfs-progs-v" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ib1ybpjhcymcycjiraz1vk01qlyvpwcg7mwfhmacdy3cvbfl9mz")))) "1vq83a8sz8dnshbyaghacqvcwv2n1kh53yjv87rxx9dc4b0b2iyj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"static")) ; static versions of binaries in "out" (~16MiB!) "static")) ; static versions of binaries in "out" (~16MiB!)

View File

@ -329,7 +329,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap (define-public offlineimap
(package (package
(name "offlineimap") (name "offlineimap")
(version "7.0.10") (version "7.0.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/OfflineIMAP/offlineimap/" (uri (string-append "https://github.com/OfflineIMAP/offlineimap/"
@ -337,7 +337,7 @@ and corrections. It is based on a Bayesian filter.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0h8mgmwkvwh8x3yam32ipqkzcz4g1dmkbni3v1755lkm0z132m3j")))) "1m1lp7wxnra8k7lsqc8xlm5giy3i89wvmp35jjb1gf4yslpddnkz"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("asciidoc" ,asciidoc) `(("asciidoc" ,asciidoc)
@ -1031,7 +1031,7 @@ write simple, representation-independent mail handling code.")
(define-public perl-email-address (define-public perl-email-address
(package (package
(name "perl-email-address") (name "perl-email-address")
(version "1.907") (version "1.908")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1039,7 +1039,7 @@ write simple, representation-independent mail handling code.")
"Email-Address-" version ".tar.gz")) "Email-Address-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1ai4r149pzjv9dc2vddir8zylj0z1pii93rm4g591lx7avim71hx")))) "0i6ljdvpy279hpbqf6lgv4figr376rb2sh4yphj86xkdzsyn1y75"))))
(build-system perl-build-system) (build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Email-Address") (home-page "http://search.cpan.org/dist/Email-Address")
(synopsis "Email address parsing and creation") (synopsis "Email address parsing and creation")
@ -1070,7 +1070,7 @@ objects found. Alternatively you may construct objects manually.")
(define-public perl-email-messageid (define-public perl-email-messageid
(package (package
(name "perl-email-messageid") (name "perl-email-messageid")
(version "1.405") (version "1.406")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1078,7 +1078,7 @@ objects found. Alternatively you may construct objects manually.")
"Email-MessageID-" version ".tar.gz")) "Email-MessageID-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"09216naz21x99ff33wdm3j3zq1zhdbxhrsmx8bvavjrw3gjsvrq3")))) "1f22sdnfq169qw1l0lg7y74pmiam7j9v95bggjnf3q4mygdmshpc"))))
(build-system perl-build-system) (build-system perl-build-system)
(home-page "http://search.cpan.org/dist/Email-MessageID") (home-page "http://search.cpan.org/dist/Email-MessageID")
(synopsis "Generate world unique message-ids") (synopsis "Generate world unique message-ids")
@ -1089,7 +1089,7 @@ identify a message uniquely.")
(define-public perl-email-mime (define-public perl-email-mime
(package (package
(name "perl-email-mime") (name "perl-email-mime")
(version "1.929") (version "1.937")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1097,7 +1097,7 @@ identify a message uniquely.")
"Email-MIME-" version ".tar.gz")) "Email-MIME-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1sf7dldg4dvicyw6dl1vx6s1gjq3fcppi0103ikl0vi6v5xjdjdh")))) "0s50i3nxi9dr81p4rn017nrarc40yrwz0qcw34q8k3pvdf46fr9n"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-email-address" ,perl-email-address) `(("perl-email-address" ,perl-email-address)
@ -1117,7 +1117,7 @@ message. Headers are decoded from MIME encoding.")
(define-public perl-email-mime-contenttype (define-public perl-email-mime-contenttype
(package (package
(name "perl-email-mime-contenttype") (name "perl-email-mime-contenttype")
(version "1.017") (version "1.018")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1125,7 +1125,7 @@ message. Headers are decoded from MIME encoding.")
"Email-MIME-ContentType-" version ".tar.gz")) "Email-MIME-ContentType-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1cl1l97lg690dh7i704hqi7yhxalq1chy7ylld5yc5v38jqa6gcn")))) "1y8hpwm7p5a9y2azy0cgvlv2i2d0nj66ajfa0fj51wdq4w9cs23m"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny))) `(("perl-capture-tiny" ,perl-capture-tiny)))
@ -1158,7 +1158,7 @@ header.")
(define-public perl-email-sender (define-public perl-email-sender
(package (package
(name "perl-email-sender") (name "perl-email-sender")
(version "1.300016") (version "1.300028")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1166,7 +1166,7 @@ header.")
"Email-Sender-" version ".tar.gz")) "Email-Sender-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18x26fjh399q3s2g8dajb9r10633c46jrnbvycpnpclgnzhjs100")))) "0c5dv1x9856nryj5mcbgb67a4irmadz80g0qnf4van3bd8wbj72a"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny))) `(("perl-capture-tiny" ,perl-capture-tiny)))
@ -1190,7 +1190,7 @@ Email::Send library.")
(define-public perl-email-simple (define-public perl-email-simple
(package (package
(name "perl-email-simple") (name "perl-email-simple")
(version "2.206") (version "2.211")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1198,7 +1198,7 @@ Email::Send library.")
"Email-Simple-" version ".tar.gz")) "Email-Simple-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"19dpy3j5na2k9qw1jcpc8ia25038068r9j1bn34f9yyrisz7s522")))) "1if4a2wh4iwlcycqrd2fhkx04ngmd75q444gh43w0r9p15ym5f8w"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-email-date-format" ,perl-email-date-format))) `(("perl-email-date-format" ,perl-email-date-format)))

View File

@ -714,7 +714,7 @@ HDF5 file is encoded according to the HDF File Format Specification.")
(define-public netcdf (define-public netcdf
(package (package
(name "netcdf") (name "netcdf")
(version "4.4.0") (version "4.4.1.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -722,8 +722,9 @@ HDF5 file is encoded according to the HDF File Format Specification.")
"netcdf-" version ".tar.gz")) "netcdf-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0y6gdcplarwqqnrav2xg1xd6ih732rzzbmdw78v3rl5b8mwcnh0d")) "1blc7ik5yin7i0ls2kag0a9xjk12m0dzx6v1x88az3ras3scci2d"))
(patches (list (search-patch "netcdf-config-date.patch"))))) (patches (search-patches "netcdf-date-time.patch"
"netcdf-tst_h_par.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("m4" ,m4) `(("m4" ,m4)

122
gnu/packages/monitoring.scm Normal file
View File

@ -0,0 +1,122 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages monitoring)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system perl)
#:use-module (guix build-system gnu)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages perl)
#:use-module (gnu packages mail)
#:use-module (gnu packages gd)
#:use-module (gnu packages image))
(define-public nagios
(package
(name "nagios")
(version "4.0.8")
;; XXX: Newer versions such as 4.2.3 bundle a copy of AngularJS.
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/nagios/nagios-4.x/nagios-"
version "/nagios-" version ".tar.gz"))
(sha256
(base32
"0jyad39wa318613awlnpczrrakvjcipz8qp1mdsig1cp1hjqs9lb"))
(modules '((guix build utils)))
(snippet
;; Ensure reproducibility.
'(substitute* (find-files "cgi" "\\.c$")
(("__DATE__") "\"1970-01-01\"")
(("__TIME__") "\"00:00:00\"")))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)
("libpng-apng" ,libpng)
("gd" ,gd)
("perl" ,perl)
("mailutils" ,mailutils)))
(arguments
'(#:configure-flags (list "--sysconfdir=/etc"
;; 'include/locations.h.in' defines file
;; locations, and many things go directly under
;; LOCALSTATEDIR, hence the extra '/nagios'.
"--localstatedir=/var/nagios"
(string-append
"--with-mail="
(assoc-ref %build-inputs "mailutils")
"/bin/mail"))
#:make-flags '("all")
#:phases (modify-phases %standard-phases
(add-before 'build 'do-not-chown-to-nagios
(lambda _
;; Makefiles do 'install -o nagios -g nagios', which
;; doesn't work for us.
(substitute* (find-files "." "^Makefile$")
(("-o nagios -g nagios")
""))
#t))
(add-before 'build 'do-not-create-sysconfdir
(lambda _
;; Don't try to create /var upon 'make install'.
(substitute* "Makefile"
(("\\$\\(INSTALL\\).*\\$\\(LOGDIR\\).*$" all)
(string-append "# " all))
(("\\$\\(INSTALL\\).*\\$\\(CHECKRESULTDIR\\).*$" all)
(string-append "# " all))
(("chmod g\\+s.*" all)
(string-append "# " all)))
#t))
(add-before 'build 'set-html/php-directory
(lambda _
;; Install HTML and PHP files under 'share/nagios/html'
;; instead of just 'share/'.
(substitute* '("html/Makefile" "Makefile")
(("HTMLDIR=.*$")
"HTMLDIR = $(datarootdir)/nagios/html\n"))
#t)))
#:tests? #f)) ;no 'check' target or similar
(home-page "https://www.nagios.org/")
(synopsis "Host, service, and network monitoring program")
(description
"Nagios is a host, service, and network monitoring program written in C.
CGI programs are included to allow you to view the current status, history,
etc. via a Web interface. Features include:
@itemize
@item Monitoring of network services (via SMTP, POP3, HTTP, PING, etc).
@item Monitoring of host resources (processor load, disk usage, etc.).
@item A plugin interface to allow for user-developed service monitoring
methods.
@item Ability to define network host hierarchy using \"parent\" hosts,
allowing detection of and distinction between hosts that are down
and those that are unreachable.
@item Notifications when problems occur and get resolved (via email,
pager, or user-defined method).
@item Ability to define event handlers for proactive problem resolution.
@item Automatic log file rotation/archiving.
@item Optional web interface for viewing current network status,
notification and problem history, log file, etc.
@end itemize\n")
(license license:gpl2)))

View File

@ -145,14 +145,14 @@ a highly stable and efficient implementation.")
(define-public taglib (define-public taglib
(package (package
(name "taglib") (name "taglib")
(version "1.9.1") (version "1.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://taglib.github.io/releases/taglib-" (uri (string-append "http://taglib.github.io/releases/taglib-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"06n7gnbcqa3r6c9gv00y0y1r48dyyazm6yj403i7ma0r2k6p3lvj")))) "1alv6vp72p0x9i9yscmz2a71anjwqy53y9pbcbqxvc1c0i82vhr4"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments '(#:tests? #f)) ;no 'test' target (arguments '(#:tests? #f)) ;no 'test' target
(inputs `(("zlib" ,zlib))) (inputs `(("zlib" ,zlib)))

View File

@ -1697,6 +1697,38 @@ JACK for audio and ALSA sequencer for MIDI as multimedia infrastructures and
follows a traditional multi-track tape recorder control paradigm.") follows a traditional multi-track tape recorder control paradigm.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public ams-lv2
(package
(name "ams-lv2")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/blablack/ams-lv2/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1392spswkhfd38fggf584wb3m8aqpg7csfrs9zxnzyvhgmp0fgqk"))))
(build-system waf-build-system)
(arguments `(#:tests? #f)) ; no tests
(inputs
`(("lv2" ,lv2)
("lvtk" ,lvtk)
("gtkmm" ,gtkmm-2)
("gtk" ,gtk+-2)
("cairo" ,cairo)
("fftw" ,fftw)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "https://objectivewave.wordpress.com/ams-lv2/")
(synopsis "Port of Alsa Modular Synth internal modules into LV2")
(description "This set of LV2 plugins is a port of the internal modules
found in Alsa Modular Synth. These plugins are used to create modular
synthesizers and contain: VCO, VCF, VCA, LFO, slew limiter, envelopes, sample
and hold, etc.")
(license license:gpl2)))
(define-public gxtuner (define-public gxtuner
(package (package
(name "gxtuner") (name "gxtuner")
@ -2449,6 +2481,91 @@ filters, crossovers, simple gain plugins without zipper noise, switch box
plugins, a switch trigger, a toggle switch, and a peakmeter.") plugins, a switch trigger, a toggle switch, and a peakmeter.")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public ingen
(let ((commit "fd147d0b888090bfb897505852c1f25dbdf77e18")
(revision "1"))
(package
(name "ingen")
(version (string-append "0.0.0-" revision "."
(string-take commit 9)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "http://git.drobilla.net/ingen.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1qmg79962my82c43vyrv5sxbqci9c7gc2s9bwaaqd0fcf08xcz1z"))))
(build-system waf-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:configure-flags (list "--no-webkit")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-wscript
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "wscript"
;; FIXME: Our version of lv2specgen.py does not behave as
;; expected. Maybe this requires a development version of
;; LV2.
(("lv2specgen.py") "touch ingen.lv2/ingen.html; echo")
;; Add libraries to RUNPATH.
(("^(.+)target.*= 'src/ingen/ingen'," line prefix)
(string-append prefix
"linkflags=[\"-Wl,-rpath="
out "/lib" "\"]," line)))
(substitute* '("src/wscript"
"src/server/wscript")
;; Add libraries to RUNPATH.
(("bld.env.PTHREAD_LINKFLAGS" line)
(string-append line
" + [\"-Wl,-rpath=" out "/lib" "\"]")))
(substitute* "src/client/wscript"
;; Add libraries to RUNPATH.
(("^(.+)target.*= 'ingen_client'," line prefix)
(string-append prefix
"linkflags=[\"-Wl,-rpath="
out "/lib" "\"]," line)))
(substitute* "src/gui/wscript"
;; Add libraries to RUNPATH.
(("^(.+)target.* = 'ingen_gui.*" line prefix)
(string-append prefix
"linkflags=[\"-Wl,-rpath="
out "/lib" "\"]," line))))
#t)))))
(inputs
`(("boost" ,boost)
("python-rdflib" ,python-rdflib)
("python" ,python)
("jack" ,jack-1)
("lv2" ,lv2)
("lilv" ,lilv)
("raul" ,raul-devel)
("ganv" ,ganv-devel)
("suil" ,suil)
("serd" ,serd)
("sord" ,sord)
("sratom" ,sratom)
("gtkmm" ,gtkmm-2)))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-pygments" ,python-pygments)))
(home-page "http://drobilla.net/software/ingen")
(synopsis "Modular audio processing system")
(description "Ingen is a modular audio processing system for JACK and
LV2 based systems. Ingen is built around LV2 technology and a strict
separation of engine from user interface. The engine is controlled
exclusively through a protocol, and can execute as a headless process, with an
in-process GUI, or as an LV2 plugin. The GUI can run as a program which
communicates over a Unix or TCP/IP socket, or as an embeddable LV2 GUI which
communicates via LV2 ports. Any saved Ingen graph can be loaded as an LV2
plugin on any system where Ingen is installed. This allows users to visually
develop custom plugins for use in other applications without programming.")
(license license:agpl3+))))
(define-public python-discogs-client (define-public python-discogs-client
(package (package
(name "python-discogs-client") (name "python-discogs-client")

View File

@ -226,9 +226,9 @@ the Nix package manager.")
;; ;;
;; Note: use a very short commit id; with a longer one, the limit on ;; Note: use a very short commit id; with a longer one, the limit on
;; hash-bang lines would be exceeded while running the tests. ;; hash-bang lines would be exceeded while running the tests.
(let ((commit "1f410017ff91458feda8c5788223d17696b71e36")) (let ((commit "463fb7d0c86fb9957c527272e6cec5ee23585366"))
(package (inherit guix-0.11.0) (package (inherit guix-0.11.0)
(version (string-append "0.11.0-4." (string-take commit 4))) (version (string-append "0.11.0-5." (string-take commit 4)))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -238,7 +238,7 @@ the Nix package manager.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1mgzcbf1mry39wvvjflj76zggsshsip2pngxpaf2479yr3ri6v50")) "0k74j6m5hy055knirnry75qrgph4zywypxjyaqv6saixb6yx7av3"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix-0.11.0) (substitute-keyword-arguments (package-arguments guix-0.11.0)

View File

@ -0,0 +1,14 @@
Taken from http://pkgs.fedoraproject.org/cgit/rpms/fcgi.git/plain/fcgi-2.4.0-gcc44_fixes.patch.
Fixes compilation with GCC 4.4 and later.
diff -up fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes fcgi-2.4.0/libfcgi/fcgio.cpp
--- fcgi-2.4.0/libfcgi/fcgio.cpp.gcc44_fixes 2002-02-24 21:12:22.000000000 +0100
+++ fcgi-2.4.0/libfcgi/fcgio.cpp 2009-02-15 11:35:18.000000000 +0100
@@ -23,6 +23,7 @@
#endif
#include <limits.h>
+#include <cstdio>
#include "fcgio.h"
using std::streambuf;

View File

@ -0,0 +1,89 @@
Taken from http://pkgs.fedoraproject.org/cgit/rpms/fcgi.git/plain/fcgi-2.4.0-poll.patch
Fixes CVE-2012-6687.
Author: Anton Kortunov <toshic.toshic@gmail.com>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libfcgi/+bug/933417
Description: use poll in os_unix.c instead of select to avoid problem with > 1024 connections
Forwarded: yes, fastcgi-developers@mailman.fastcgi.com
diff --git a/libfcgi/os_unix.c b/libfcgi/os_unix.c
index 73e6a7f..af35aee 100755
--- a/libfcgi/os_unix.c
+++ b/libfcgi/os_unix.c
@@ -42,6 +42,7 @@ static const char rcsid[] = "$Id: os_unix.c,v 1.37 2002/03/05 19:14:49 robs Exp
#include <sys/time.h>
#include <sys/un.h>
#include <signal.h>
+#include <poll.h>
#ifdef HAVE_NETDB_H
#include <netdb.h>
@@ -103,6 +104,9 @@ static int volatile maxFd = -1;
static int shutdownPending = FALSE;
static int shutdownNow = FALSE;
+static int libfcgiOsClosePollTimeout = 2000;
+static int libfcgiIsAfUnixKeeperPollTimeout = 2000;
+
void OS_ShutdownPending()
{
shutdownPending = TRUE;
@@ -168,6 +172,16 @@ int OS_LibInit(int stdioFds[3])
if(libInitialized)
return 0;
+ char *libfcgiOsClosePollTimeoutStr = getenv( "LIBFCGI_OS_CLOSE_POLL_TIMEOUT" );
+ if(libfcgiOsClosePollTimeoutStr) {
+ libfcgiOsClosePollTimeout = atoi(libfcgiOsClosePollTimeoutStr);
+ }
+
+ char *libfcgiIsAfUnixKeeperPollTimeoutStr = getenv( "LIBFCGI_IS_AF_UNIX_KEEPER_POLL_TIMEOUT" );
+ if(libfcgiIsAfUnixKeeperPollTimeoutStr) {
+ libfcgiIsAfUnixKeeperPollTimeout = atoi(libfcgiIsAfUnixKeeperPollTimeoutStr);
+ }
+
asyncIoTable = (AioInfo *)malloc(asyncIoTableSize * sizeof(AioInfo));
if(asyncIoTable == NULL) {
errno = ENOMEM;
@@ -755,19 +769,16 @@ int OS_Close(int fd)
if (shutdown(fd, 1) == 0)
{
- struct timeval tv;
- fd_set rfds;
+ struct pollfd pfd;
int rv;
char trash[1024];
- FD_ZERO(&rfds);
+ pfd.fd = fd;
+ pfd.events = POLLIN;
do
{
- FD_SET(fd, &rfds);
- tv.tv_sec = 2;
- tv.tv_usec = 0;
- rv = select(fd + 1, &rfds, NULL, NULL, &tv);
+ rv = poll(&pfd, 1, libfcgiOsClosePollTimeout);
}
while (rv > 0 && read(fd, trash, sizeof(trash)) > 0);
}
@@ -1116,13 +1127,11 @@ static int is_reasonable_accept_errno (const int error)
*/
static int is_af_unix_keeper(const int fd)
{
- struct timeval tval = { READABLE_UNIX_FD_DROP_DEAD_TIMEVAL };
- fd_set read_fds;
-
- FD_ZERO(&read_fds);
- FD_SET(fd, &read_fds);
+ struct pollfd pfd;
+ pfd.fd = fd;
+ pfd.events = POLLIN;
- return select(fd + 1, &read_fds, NULL, NULL, &tval) >= 0 && FD_ISSET(fd, &read_fds);
+ return poll(&pfd, 1, libfcgiIsAfUnixKeeperPollTimeout) >= 0 && (pfd.revents & POLLIN);
}
/*

File diff suppressed because it is too large Load Diff

View File

@ -1,37 +0,0 @@
Fixes upstream bug #774897 (flxdec: Unreferences itself one time too many on
invalid files):
https://bugzilla.gnome.org/show_bug.cgi?id=774897
Patch copied from upstream source repository:
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=b31c504645a814c59d91d49e4fe218acaf93f4ca
From b31c504645a814c59d91d49e4fe218acaf93f4ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Wed, 23 Nov 2016 11:20:49 +0200
Subject: [PATCH] flxdec: Don't unref() parent in the chain function
We don't own the reference here, it is owned by the caller and given to
us for the scope of this function. Leftover mistake from 0.10 porting.
https://bugzilla.gnome.org/show_bug.cgi?id=774897
---
gst/flx/gstflxdec.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
index e675c99..a237976 100644
--- a/gst/flx/gstflxdec.c
+++ b/gst/flx/gstflxdec.c
@@ -677,7 +677,6 @@ wrong_type:
{
GST_ELEMENT_ERROR (flxdec, STREAM, WRONG_TYPE, (NULL),
("not a flx file (type %x)", flxh->type));
- gst_object_unref (flxdec);
return GST_FLOW_ERROR;
}
}
--
2.10.2

View File

@ -1,58 +0,0 @@
This is a followup fix for upstream bug #774834 (flic decoder: Buffer overflow
in flx_decode_delta_fli):
https://bugzilla.gnome.org/show_bug.cgi?id=774834#c2
Patch copied from upstream source repository:
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=1ab2b26193861b124426e2f8eb62b75b59ec5488
From 1ab2b26193861b124426e2f8eb62b75b59ec5488 Mon Sep 17 00:00:00 2001
From: Matthew Waters <matthew@centricular.com>
Date: Tue, 22 Nov 2016 23:46:00 +1100
Subject: [PATCH] flxdec: fix some warnings comparing unsigned < 0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
bf43f44fcfada5ec4a3ce60cb374340486fe9fac was comparing an unsigned
expression to be < 0 which was always false.
gstflxdec.c: In function flx_decode_brun:
gstflxdec.c:322:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
if ((glong) row - count < 0) {
^
gstflxdec.c:332:33: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
if ((glong) row - count < 0) {
^
https://bugzilla.gnome.org/show_bug.cgi?id=774834
---
gst/flx/gstflxdec.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
index d51a8e6..e675c99 100644
--- a/gst/flx/gstflxdec.c
+++ b/gst/flx/gstflxdec.c
@@ -319,7 +319,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
if (count > 0x7f) {
/* literal run */
count = 0x100 - count;
- if ((glong) row - count < 0) {
+ if ((glong) row - (glong) count < 0) {
GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
return FALSE;
}
@@ -329,7 +329,7 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
*dest++ = *data++;
} else {
- if ((glong) row - count < 0) {
+ if ((glong) row - (glong) count < 0) {
GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
return FALSE;
}
--
2.10.2

View File

@ -1,319 +0,0 @@
Fix CVE-2016-{9634,9635,9636}.
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9634
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9635
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-9636
This fixes upstream bug #774834 (flic decoder: Buffer overflow in
flx_decode_delta_fli):
https://bugzilla.gnome.org/show_bug.cgi?id=774834
Patch copied from upstream source repository:
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=2e203a79b7d9af4029307c1a845b3c148d5f5e62
From 2e203a79b7d9af4029307c1a845b3c148d5f5e62 Mon Sep 17 00:00:00 2001
From: Matthew Waters <matthew@centricular.com>
Date: Tue, 22 Nov 2016 19:05:00 +1100
Subject: [PATCH] flxdec: add some write bounds checking
Without checking the bounds of the frame we are writing into, we can
write off the end of the destination buffer.
https://scarybeastsecurity.blogspot.dk/2016/11/0day-exploit-advancing-exploitation.html
https://bugzilla.gnome.org/show_bug.cgi?id=774834
---
gst/flx/gstflxdec.c | 116 +++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 91 insertions(+), 25 deletions(-)
diff --git a/gst/flx/gstflxdec.c b/gst/flx/gstflxdec.c
index 604be2f..d51a8e6 100644
--- a/gst/flx/gstflxdec.c
+++ b/gst/flx/gstflxdec.c
@@ -74,9 +74,9 @@ static gboolean gst_flxdec_src_query_handler (GstPad * pad, GstObject * parent,
GstQuery * query);
static void flx_decode_color (GstFlxDec *, guchar *, guchar *, gint);
-static void flx_decode_brun (GstFlxDec *, guchar *, guchar *);
-static void flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
-static void flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
+static gboolean flx_decode_brun (GstFlxDec *, guchar *, guchar *);
+static gboolean flx_decode_delta_fli (GstFlxDec *, guchar *, guchar *);
+static gboolean flx_decode_delta_flc (GstFlxDec *, guchar *, guchar *);
#define rndalign(off) ((off) + ((off) & 1))
@@ -203,13 +203,14 @@ gst_flxdec_sink_event_handler (GstPad * pad, GstObject * parent,
return ret;
}
-static void
+static gboolean
flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
guchar * dest)
{
FlxFrameChunk *hdr;
+ gboolean ret = TRUE;
- g_return_if_fail (data != NULL);
+ g_return_val_if_fail (data != NULL, FALSE);
while (count--) {
hdr = (FlxFrameChunk *) data;
@@ -228,17 +229,17 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
break;
case FLX_BRUN:
- flx_decode_brun (flxdec, data, dest);
+ ret = flx_decode_brun (flxdec, data, dest);
data += rndalign (hdr->size) - FlxFrameChunkSize;
break;
case FLX_LC:
- flx_decode_delta_fli (flxdec, data, dest);
+ ret = flx_decode_delta_fli (flxdec, data, dest);
data += rndalign (hdr->size) - FlxFrameChunkSize;
break;
case FLX_SS2:
- flx_decode_delta_flc (flxdec, data, dest);
+ ret = flx_decode_delta_flc (flxdec, data, dest);
data += rndalign (hdr->size) - FlxFrameChunkSize;
break;
@@ -256,7 +257,12 @@ flx_decode_chunks (GstFlxDec * flxdec, gulong count, guchar * data,
data += rndalign (hdr->size) - FlxFrameChunkSize;
break;
}
+
+ if (!ret)
+ break;
}
+
+ return ret;
}
@@ -289,13 +295,13 @@ flx_decode_color (GstFlxDec * flxdec, guchar * data, guchar * dest, gint scale)
}
}
-static void
+static gboolean
flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
{
gulong count, lines, row;
guchar x;
- g_return_if_fail (flxdec != NULL);
+ g_return_val_if_fail (flxdec != NULL, FALSE);
lines = flxdec->hdr.height;
while (lines--) {
@@ -313,12 +319,21 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
if (count > 0x7f) {
/* literal run */
count = 0x100 - count;
+ if ((glong) row - count < 0) {
+ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
+ return FALSE;
+ }
row -= count;
while (count--)
*dest++ = *data++;
} else {
+ if ((glong) row - count < 0) {
+ GST_ERROR_OBJECT (flxdec, "Invalid BRUN packet detected.");
+ return FALSE;
+ }
+
/* replicate run */
row -= count;
x = *data++;
@@ -328,22 +343,28 @@ flx_decode_brun (GstFlxDec * flxdec, guchar * data, guchar * dest)
}
}
}
+
+ return TRUE;
}
-static void
+static gboolean
flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
{
gulong count, packets, lines, start_line;
guchar *start_p, x;
- g_return_if_fail (flxdec != NULL);
- g_return_if_fail (flxdec->delta_data != NULL);
+ g_return_val_if_fail (flxdec != NULL, FALSE);
+ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
/* use last frame for delta */
memcpy (dest, flxdec->delta_data, flxdec->size);
start_line = (data[0] + (data[1] << 8));
lines = (data[2] + (data[3] << 8));
+ if (start_line + lines > flxdec->hdr.height) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. too many lines.");
+ return FALSE;
+ }
data += 4;
/* start position of delta */
@@ -356,7 +377,8 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
while (packets--) {
/* skip count */
- dest += *data++;
+ guchar skip = *data++;
+ dest += skip;
/* RLE count */
count = *data++;
@@ -364,12 +386,24 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
if (count > 0x7f) {
/* literal run */
count = 0x100 - count;
- x = *data++;
+ if (skip + count > flxdec->hdr.width) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
+ "line too long.");
+ return FALSE;
+ }
+
+ x = *data++;
while (count--)
*dest++ = x;
} else {
+ if (skip + count > flxdec->hdr.width) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLI packet detected. "
+ "line too long.");
+ return FALSE;
+ }
+
/* replicate run */
while (count--)
*dest++ = *data++;
@@ -378,21 +412,27 @@ flx_decode_delta_fli (GstFlxDec * flxdec, guchar * data, guchar * dest)
start_p += flxdec->hdr.width;
dest = start_p;
}
+
+ return TRUE;
}
-static void
+static gboolean
flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
{
gulong count, lines, start_l, opcode;
guchar *start_p;
- g_return_if_fail (flxdec != NULL);
- g_return_if_fail (flxdec->delta_data != NULL);
+ g_return_val_if_fail (flxdec != NULL, FALSE);
+ g_return_val_if_fail (flxdec->delta_data != NULL, FALSE);
/* use last frame for delta */
memcpy (dest, flxdec->delta_data, flxdec->size);
lines = (data[0] + (data[1] << 8));
+ if (lines > flxdec->hdr.height) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. too many lines.");
+ return FALSE;
+ }
data += 2;
start_p = dest;
@@ -405,9 +445,15 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
while ((opcode = (data[0] + (data[1] << 8))) & 0xc000) {
data += 2;
if ((opcode & 0xc000) == 0xc000) {
- /* skip count */
- start_l += (0x10000 - opcode);
- dest += flxdec->hdr.width * (0x10000 - opcode);
+ /* line skip count */
+ gulong skip = (0x10000 - opcode);
+ if (skip > flxdec->hdr.height) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
+ "skip line count too big.");
+ return FALSE;
+ }
+ start_l += skip;
+ dest += flxdec->hdr.width * skip;
} else {
/* last pixel */
dest += flxdec->hdr.width;
@@ -419,7 +465,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
/* last opcode is the packet count */
while (opcode--) {
/* skip count */
- dest += *data++;
+ guchar skip = *data++;
+ dest += skip;
/* RLE count */
count = *data++;
@@ -427,12 +474,25 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
if (count > 0x7f) {
/* replicate word run */
count = 0x100 - count;
+
+ if (skip + count > flxdec->hdr.width) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
+ "line too long.");
+ return FALSE;
+ }
+
while (count--) {
*dest++ = data[0];
*dest++ = data[1];
}
data += 2;
} else {
+ if (skip + count > flxdec->hdr.width) {
+ GST_ERROR_OBJECT (flxdec, "Invalid FLC packet detected. "
+ "line too long.");
+ return FALSE;
+ }
+
/* literal word run */
while (count--) {
*dest++ = *data++;
@@ -442,6 +502,8 @@ flx_decode_delta_flc (GstFlxDec * flxdec, guchar * data, guchar * dest)
}
lines--;
}
+
+ return TRUE;
}
static GstFlowReturn
@@ -571,9 +633,13 @@ gst_flxdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
out = gst_buffer_new_and_alloc (flxdec->size * 4);
/* decode chunks */
- flx_decode_chunks (flxdec,
- ((FlxFrameType *) chunk)->chunks,
- chunk + FlxFrameTypeSize, flxdec->frame_data);
+ if (!flx_decode_chunks (flxdec,
+ ((FlxFrameType *) chunk)->chunks,
+ chunk + FlxFrameTypeSize, flxdec->frame_data)) {
+ GST_ELEMENT_ERROR (flxdec, STREAM, DECODE,
+ ("%s", "Could not decode chunk"), NULL);
+ return GST_FLOW_ERROR;
+ }
/* save copy of the current frame for possible delta. */
memcpy (flxdec->delta_data, flxdec->frame_data, flxdec->size);
--
2.10.2

View File

@ -1,996 +0,0 @@
Copied from
<https://hg.mozilla.org/releases/mozilla-esr45/raw-rev/00c2b7baaa0b>
but with one hunk omitted: the git binary patch for
toolkit/mozapps/extensions/test/addons/test_update_multi2/addon.xpi
which is not present in the IceCat sources.
# HG changeset patch
# User Andrew Swan <aswan@mozilla.com>
# Date 1474063218 25200
# Node ID 00c2b7baaa0b4bfb7d5f1aac31c094ea6b255e1f
# Parent 46b07bdbf8b20cf3fdc28104add57ff58a55832b
Bug 1303418 - Don't allow upgrades that change the addon ID. r=mossop, a=lizzard
MozReview-Commit-ID: JHINo8ShmeI
diff --git a/toolkit/mozapps/extensions/AddonManager.jsm b/toolkit/mozapps/extensions/AddonManager.jsm
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -2956,16 +2956,18 @@ this.AddonManager = {
// The downloaded file seems to be corrupted in some way.
ERROR_CORRUPT_FILE: -3,
// An error occured trying to write to the filesystem.
ERROR_FILE_ACCESS: -4,
// The add-on must be signed and isn't.
ERROR_SIGNEDSTATE_REQUIRED: -5,
// The downloaded add-on had a different type than expected.
ERROR_UNEXPECTED_ADDON_TYPE: -6,
+ // The addon did not have the expected ID
+ ERROR_INCORRECT_ID: -7,
// These must be kept in sync with AddonUpdateChecker.
// No error was encountered.
UPDATE_STATUS_NO_ERROR: 0,
// The update check timed out
UPDATE_STATUS_TIMEOUT: -1,
// There was an error while downloading the update information.
UPDATE_STATUS_DOWNLOAD_ERROR: -2,
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
--- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
@@ -5473,16 +5473,37 @@ AddonInstall.prototype = {
// loadManifestFromZipReader performs the certificate verification for us
this.addon = yield loadManifestFromZipReader(zipreader, this.installLocation);
}
catch (e) {
zipreader.close();
return Promise.reject([AddonManager.ERROR_CORRUPT_FILE, e]);
}
+ if (this.existingAddon) {
+ // Check various conditions related to upgrades
+ if (this.addon.id != this.existingAddon.id) {
+ zipreader.close();
+ return Promise.reject([AddonManager.ERROR_INCORRECT_ID,
+ `Refusing to upgrade addon ${this.existingAddon.id} to different ID ${this.addon.id}`]);
+ }
+
+ if (this.addon.type == "multipackage") {
+ zipreader.close();
+ return Promise.reject([AddonManager.ERROR_UNEXPECTED_ADDON_TYPE,
+ `Refusing to upgrade addon ${this.existingAddon.id} to a multi-package xpi`]);
+ }
+
+ if (this.existingAddon.type == "webextension" && this.addon.type != "webextension") {
+ zipreader.close();
+ return Promise.reject([AddonManager.ERROR_UNEXPECTED_ADDON_TYPE,
+ "Webextensions may not be updated to other extension types"]);
+ }
+ }
+
if (mustSign(this.addon.type)) {
if (this.addon.signedState <= AddonManager.SIGNEDSTATE_MISSING) {
// This add-on isn't properly signed by a signature that chains to the
// trusted root.
let state = this.addon.signedState;
this.addon = null;
zipreader.close();
@@ -5510,23 +5531,16 @@ AddonInstall.prototype = {
} else {
zipreader.close();
return Promise.reject([AddonManager.ERROR_CORRUPT_FILE,
"XPI is incorrectly signed"]);
}
}
}
- if (this.existingAddon && this.existingAddon.type == "webextension" &&
- this.addon.type != "webextension") {
- zipreader.close();
- return Promise.reject([AddonManager.ERROR_UNEXPECTED_ADDON_TYPE,
- "WebExtensions may not be upated to other extension types"]);
- }
-
if (this.addon.type == "multipackage")
return this._loadMultipackageManifests(zipreader);
zipreader.close();
this.updateAddonURIs();
this.addon._install = this;
@@ -5791,16 +5805,17 @@ AddonInstall.prototype = {
else {
// TODO Should we send some event here (bug 557716)?
this.state = AddonManager.STATE_CHECKING;
new UpdateChecker(this.addon, {
onUpdateFinished: aAddon => this.downloadCompleted(),
}, AddonManager.UPDATE_WHEN_ADDON_INSTALLED);
}
}, ([error, message]) => {
+ this.removeTemporaryFile();
this.downloadFailed(error, message);
});
}
else {
if (aRequest instanceof Ci.nsIHttpChannel)
this.downloadFailed(AddonManager.ERROR_NETWORK_FAILURE,
aRequest.responseStatus + " " +
aRequest.responseStatusText);
diff --git a/toolkit/mozapps/extensions/test/addons/test_update_multi1/bootstrap.js b/toolkit/mozapps/extensions/test/addons/test_update_multi1/bootstrap.js
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_update_multi1/bootstrap.js
@@ -0,0 +1,5 @@
+
+function install(data, reason) {}
+function startup(data, reason) {}
+function shutdown(data, reason) {}
+function uninstall(data, reason) {}
diff --git a/toolkit/mozapps/extensions/test/addons/test_update_multi1/install.rdf b/toolkit/mozapps/extensions/test/addons/test_update_multi1/install.rdf
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_update_multi1/install.rdf
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+<Description about="urn:mozilla:install-manifest">
+ <em:id>updatemulti@tests.mozilla.org</em:id>
+ <em:version>1.0</em:version>
+ <em:updateURL>http://localhost:4444/data/test_update_multi.rdf</em:updateURL>
+ <em:bootstrap>true</em:bootstrap>
+ <em:name>Test Addon 1</em:name>
+<em:targetApplication><Description>
+ <em:id>xpcshell@tests.mozilla.org</em:id>
+ <em:minVersion>1</em:minVersion>
+ <em:maxVersion>1</em:maxVersion>
+</Description></em:targetApplication>
+</Description>
+</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_update_multi2/install.rdf b/toolkit/mozapps/extensions/test/addons/test_update_multi2/install.rdf
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_update_multi2/install.rdf
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+<Description about="urn:mozilla:install-manifest">
+ <em:id>updatemulti@tests.mozilla.org</em:id>
+ <em:type>32</em:type>
+ <em:version>2.0</em:version>
+</Description>
+</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid1/bootstrap.js b/toolkit/mozapps/extensions/test/addons/test_updateid1/bootstrap.js
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_updateid1/bootstrap.js
@@ -0,0 +1,5 @@
+
+function install(data, reason) {}
+function startup(data, reason) {}
+function shutdown(data, reason) {}
+function uninstall(data, reason) {}
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid1/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid1/install.rdf
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_updateid1/install.rdf
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+<Description about="urn:mozilla:install-manifest">
+ <em:id>addon1@tests.mozilla.org</em:id>
+ <em:version>1.0</em:version>
+ <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
+ <em:bootstrap>true</em:bootstrap>
+ <em:name>Test Addon 1</em:name>
+<em:targetApplication><Description>
+ <em:id>xpcshell@tests.mozilla.org</em:id>
+ <em:minVersion>1</em:minVersion>
+ <em:maxVersion>1</em:maxVersion>
+</Description></em:targetApplication>
+</Description>
+</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid2/bootstrap.js b/toolkit/mozapps/extensions/test/addons/test_updateid2/bootstrap.js
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_updateid2/bootstrap.js
@@ -0,0 +1,5 @@
+
+function install(data, reason) {}
+function startup(data, reason) {}
+function shutdown(data, reason) {}
+function uninstall(data, reason) {}
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid2/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid2/install.rdf
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/addons/test_updateid2/install.rdf
@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+<Description about="urn:mozilla:install-manifest">
+ <em:id>addon1.changed@tests.mozilla.org</em:id>
+ <em:version>2.0</em:version>
+ <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
+ <em:bootstrap>true</em:bootstrap>
+ <em:name>Test Addon 1</em:name>
+<em:targetApplication><Description>
+ <em:id>xpcshell@tests.mozilla.org</em:id>
+ <em:minVersion>1</em:minVersion>
+ <em:maxVersion>1</em:maxVersion>
+</Description></em:targetApplication>
+</Description>
+</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid2_2/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid2_2/install.rdf
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid2_2/install.rdf
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>addon2@tests.mozilla.org</em:id>
- <em:version>2.0</em:version>
- <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
-
- <!-- Front End MetaData -->
- <em:name>Test 2</em:name>
- <em:description>Test Description</em:description>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- </Description>
-</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid2_5/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid2_5/install.rdf
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid2_5/install.rdf
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>addon2@tests.mozilla.org</em:id>
- <em:version>5.0</em:version>
- <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
-
- <!-- Front End MetaData -->
- <em:name>Test 2</em:name>
- <em:description>Test Description</em:description>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- </Description>
-</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid3_3/bootstrap.js b/toolkit/mozapps/extensions/test/addons/test_updateid3_3/bootstrap.js
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid3_3/bootstrap.js
+++ /dev/null
@@ -1,21 +0,0 @@
-Components.utils.import("resource://gre/modules/Services.jsm");
-
-function install(data, reason) {
- Services.prefs.setIntPref("bootstraptest.installed_version", 3);
- Services.prefs.setIntPref("bootstraptest.install_reason", reason);
-}
-
-function startup(data, reason) {
- Services.prefs.setIntPref("bootstraptest.active_version", 3);
- Services.prefs.setIntPref("bootstraptest.startup_reason", reason);
-}
-
-function shutdown(data, reason) {
- Services.prefs.setIntPref("bootstraptest.active_version", 0);
- Services.prefs.setIntPref("bootstraptest.shutdown_reason", reason);
-}
-
-function uninstall(data, reason) {
- Services.prefs.setIntPref("bootstraptest.installed_version", 0);
- Services.prefs.setIntPref("bootstraptest.uninstall_reason", reason);
-}
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid3_3/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid3_3/install.rdf
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid3_3/install.rdf
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>addon3@tests.mozilla.org</em:id>
- <em:version>3.0</em:version>
- <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
- <em:bootstrap>true</em:bootstrap>
-
- <!-- Front End MetaData -->
- <em:name>Test 3</em:name>
- <em:description>Test Description</em:description>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- </Description>
-</RDF>
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid4_4/bootstrap.js b/toolkit/mozapps/extensions/test/addons/test_updateid4_4/bootstrap.js
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid4_4/bootstrap.js
+++ /dev/null
@@ -1,21 +0,0 @@
-Components.utils.import("resource://gre/modules/Services.jsm");
-
-function install(data, reason) {
- Services.prefs.setIntPref("bootstraptest.installed_version", 4);
- Services.prefs.setIntPref("bootstraptest.install_reason", reason);
-}
-
-function startup(data, reason) {
- Services.prefs.setIntPref("bootstraptest.active_version", 4);
- Services.prefs.setIntPref("bootstraptest.startup_reason", reason);
-}
-
-function shutdown(data, reason) {
- Services.prefs.setIntPref("bootstraptest.active_version", 0);
- Services.prefs.setIntPref("bootstraptest.shutdown_reason", reason);
-}
-
-function uninstall(data, reason) {
- Services.prefs.setIntPref("bootstraptest.installed_version", 0);
- Services.prefs.setIntPref("bootstraptest.uninstall_reason", reason);
-}
diff --git a/toolkit/mozapps/extensions/test/addons/test_updateid4_4/install.rdf b/toolkit/mozapps/extensions/test/addons/test_updateid4_4/install.rdf
deleted file mode 100644
--- a/toolkit/mozapps/extensions/test/addons/test_updateid4_4/install.rdf
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:install-manifest">
- <em:id>addon4@tests.mozilla.org</em:id>
- <em:version>4.0</em:version>
- <em:updateURL>http://localhost:4444/data/test_updateid.rdf</em:updateURL>
- <em:bootstrap>true</em:bootstrap>
-
- <!-- Front End MetaData -->
- <em:name>Test 4</em:name>
- <em:description>Test Description</em:description>
-
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- </Description>
-</RDF>
diff --git a/toolkit/mozapps/extensions/test/xpcshell/data/test_update_multi.rdf b/toolkit/mozapps/extensions/test/xpcshell/data/test_update_multi.rdf
new file mode 100644
--- /dev/null
+++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_update_multi.rdf
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+
+ <Description about="urn:mozilla:extension:updatemulti@tests.mozilla.org">
+ <em:updates>
+ <Seq>
+ <li>
+ <Description>
+ <em:version>2.0</em:version>
+ <em:targetApplication>
+ <Description>
+ <em:id>xpcshell@tests.mozilla.org</em:id>
+ <em:minVersion>1</em:minVersion>
+ <em:maxVersion>1</em:maxVersion>
+ <em:updateLink>http://localhost:4444/addons/test_update_multi2.xpi</em:updateLink>
+ </Description>
+ </em:targetApplication>
+ </Description>
+ </li>
+ </Seq>
+ </em:updates>
+ </Description>
+
+</RDF>
diff --git a/toolkit/mozapps/extensions/test/xpcshell/data/test_updateid.rdf b/toolkit/mozapps/extensions/test/xpcshell/data/test_updateid.rdf
--- a/toolkit/mozapps/extensions/test/xpcshell/data/test_updateid.rdf
+++ b/toolkit/mozapps/extensions/test/xpcshell/data/test_updateid.rdf
@@ -9,77 +9,17 @@
<li>
<Description>
<em:version>2.0</em:version>
<em:targetApplication>
<Description>
<em:id>xpcshell@tests.mozilla.org</em:id>
<em:minVersion>1</em:minVersion>
<em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://localhost:4444/addons/test_updateid2_2.xpi</em:updateLink>
- </Description>
- </em:targetApplication>
- </Description>
- </li>
- </Seq>
- </em:updates>
- </Description>
-
- <Description about="urn:mozilla:extension:addon2@tests.mozilla.org">
- <em:updates>
- <Seq>
- <li>
- <Description>
- <em:version>3.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://localhost:4444/addons/test_updateid3_3.xpi</em:updateLink>
- </Description>
- </em:targetApplication>
- </Description>
- </li>
- </Seq>
- </em:updates>
- </Description>
-
- <Description about="urn:mozilla:extension:addon3@tests.mozilla.org">
- <em:updates>
- <Seq>
- <li>
- <Description>
- <em:version>4.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://localhost:4444/addons/test_updateid4_4.xpi</em:updateLink>
- </Description>
- </em:targetApplication>
- </Description>
- </li>
- </Seq>
- </em:updates>
- </Description>
-
- <Description about="urn:mozilla:extension:addon4@tests.mozilla.org">
- <em:updates>
- <Seq>
- <li>
- <Description>
- <em:version>5.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>xpcshell@tests.mozilla.org</em:id>
- <em:minVersion>1</em:minVersion>
- <em:maxVersion>1</em:maxVersion>
- <em:updateLink>http://localhost:4444/addons/test_updateid2_5.xpi</em:updateLink>
+ <em:updateLink>http://localhost:4444/addons/test_updateid2.xpi</em:updateLink>
</Description>
</em:targetApplication>
</Description>
</li>
</Seq>
</em:updates>
</Description>
diff --git a/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js b/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js
--- a/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js
+++ b/toolkit/mozapps/extensions/test/xpcshell/test_updateid.js
@@ -2,421 +2,85 @@
* http://creativecommons.org/publicdomain/zero/1.0/
*/
// This verifies that updating an add-on to a new ID works
// The test extension uses an insecure update url.
Services.prefs.setBoolPref("extensions.checkUpdateSecurity", false);
-Components.utils.import("resource://testing-common/httpd.js");
-var testserver;
const profileDir = gProfD.clone();
profileDir.append("extensions");
-function resetPrefs() {
- Services.prefs.setIntPref("bootstraptest.active_version", -1);
- Services.prefs.setIntPref("bootstraptest.installed_version", -1);
- Services.prefs.setIntPref("bootstraptest.startup_reason", -1);
- Services.prefs.setIntPref("bootstraptest.shutdown_reason", -1);
- Services.prefs.setIntPref("bootstraptest.install_reason", -1);
- Services.prefs.setIntPref("bootstraptest.uninstall_reason", -1);
-}
-
-function getActiveVersion() {
- return Services.prefs.getIntPref("bootstraptest.active_version");
-}
-
-function getInstalledVersion() {
- return Services.prefs.getIntPref("bootstraptest.installed_version");
-}
-
-function run_test() {
- createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
-
- // Create and configure the HTTP server.
- testserver = new HttpServer();
- testserver.registerDirectory("/data/", do_get_file("data"));
- testserver.registerDirectory("/addons/", do_get_file("addons"));
- testserver.start(4444);
-
- do_test_pending();
- run_test_1();
-}
-
-function end_test() {
- testserver.stop(do_test_finished);
-}
-
-function installUpdate(aInstall, aCallback) {
- aInstall.addListener({
- onInstallEnded: function(aInstall) {
- // give the startup time to run
- do_execute_soon(function() {
- aCallback(aInstall);
- });
- }
- });
-
- aInstall.install();
-}
-
-// Verify that an update to an add-on with a new ID uninstalls the old add-on
-function run_test_1() {
- writeInstallRDFForExtension({
- id: "addon1@tests.mozilla.org",
- version: "1.0",
- updateURL: "http://localhost:4444/data/test_updateid.rdf",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Addon 1",
- }, profileDir);
-
- startupManager();
-
- AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
- do_check_neq(a1, null);
- do_check_eq(a1.version, "1.0");
+function promiseInstallUpdate(install) {
+ return new Promise((resolve, reject) => {
+ install.addListener({
+ onDownloadFailed: () => {
+ let err = new Error("download error");
+ err.code = install.error;
+ reject(err);
+ },
+ onInstallFailed: () => {
+ let err = new Error("install error");
+ err.code = install.error;
+ reject(err);
+ },
+ onInstallEnded: resolve,
+ });
- a1.findUpdates({
- onUpdateAvailable: function(addon, install) {
- do_check_eq(install.name, addon.name);
- do_check_eq(install.version, "2.0");
- do_check_eq(install.state, AddonManager.STATE_AVAILABLE);
- do_check_eq(install.existingAddon, a1);
-
- installUpdate(install, check_test_1);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
-}
-
-function check_test_1(install) {
- AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(function(a1) {
- // Existing add-on should have a pending upgrade
- do_check_neq(a1.pendingUpgrade, null);
- do_check_eq(a1.pendingUpgrade.id, "addon2@tests.mozilla.org");
- do_check_eq(a1.pendingUpgrade.install.existingAddon, a1);
- do_check_neq(a1.syncGUID);
-
- let a1SyncGUID = a1.syncGUID;
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- // Should have uninstalled the old and installed the new
- do_check_eq(a1, null);
- do_check_neq(a2, null);
- do_check_neq(a2.syncGUID, null);
-
- // The Sync GUID should change when the ID changes
- do_check_neq(a1SyncGUID, a2.syncGUID);
-
- a2.uninstall();
-
- do_execute_soon(run_test_2);
- });
- }));
-}
-
-// Test that when the new add-on already exists we just upgrade that
-function run_test_2() {
- restartManager();
- shutdownManager();
-
- writeInstallRDFForExtension({
- id: "addon1@tests.mozilla.org",
- version: "1.0",
- updateURL: "http://localhost:4444/data/test_updateid.rdf",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Addon 1",
- }, profileDir);
- writeInstallRDFForExtension({
- id: "addon2@tests.mozilla.org",
- version: "1.0",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Addon 2",
- }, profileDir);
-
- startupManager();
-
- AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
- do_check_neq(a1, null);
- do_check_eq(a1.version, "1.0");
-
- a1.findUpdates({
- onUpdateAvailable: function(addon, install) {
- installUpdate(install, check_test_2);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
+ install.install();
});
}
-function check_test_2(install) {
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"],
- callback_soon(function([a1, a2]) {
- do_check_eq(a1.pendingUpgrade, null);
- // Existing add-on should have a pending upgrade
- do_check_neq(a2.pendingUpgrade, null);
- do_check_eq(a2.pendingUpgrade.id, "addon2@tests.mozilla.org");
- do_check_eq(a2.pendingUpgrade.install.existingAddon, a2);
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- // Should have uninstalled the old and installed the new
- do_check_neq(a1, null);
- do_check_neq(a2, null);
-
- a1.uninstall();
- a2.uninstall();
-
- do_execute_soon(run_test_3);
- });
- }));
-}
-
-// Test that we rollback correctly when removing the old add-on fails
-function run_test_3() {
- restartManager();
- shutdownManager();
-
- // This test only works on Windows
- if (!("nsIWindowsRegKey" in AM_Ci)) {
- run_test_4();
- return;
- }
-
- writeInstallRDFForExtension({
- id: "addon1@tests.mozilla.org",
- version: "1.0",
- updateURL: "http://localhost:4444/data/test_updateid.rdf",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Addon 1",
- }, profileDir);
-
- startupManager();
+// Create and configure the HTTP server.
+let testserver = createHttpServer(4444);
+testserver.registerDirectory("/data/", do_get_file("data"));
+testserver.registerDirectory("/addons/", do_get_file("addons"));
- AddonManager.getAddonByID("addon1@tests.mozilla.org", function(a1) {
- do_check_neq(a1, null);
- do_check_eq(a1.version, "1.0");
-
- a1.findUpdates({
- onUpdateAvailable: function(addon, install) {
- installUpdate(install, check_test_3);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
-}
-
-function check_test_3(install) {
- AddonManager.getAddonByID("addon1@tests.mozilla.org", callback_soon(function(a1) {
- // Existing add-on should have a pending upgrade
- do_check_neq(a1.pendingUpgrade, null);
- do_check_eq(a1.pendingUpgrade.id, "addon2@tests.mozilla.org");
- do_check_eq(a1.pendingUpgrade.install.existingAddon, a1);
-
- // Lock the old add-on open so it can't be uninstalled
- var file = profileDir.clone();
- file.append("addon1@tests.mozilla.org");
- if (!file.exists())
- file.leafName += ".xpi";
- else
- file.append("install.rdf");
-
- var fstream = AM_Cc["@mozilla.org/network/file-output-stream;1"].
- createInstance(AM_Ci.nsIFileOutputStream);
- fstream.init(file, FileUtils.MODE_APPEND | FileUtils.MODE_WRONLY, FileUtils.PERMS_FILE, 0);
-
- restartManager();
-
- fstream.close();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"],
- callback_soon(function([a1, a2]) {
- // Should not have installed the new add-on but it should still be
- // pending install
- do_check_neq(a1, null);
- do_check_eq(a2, null);
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["addon1@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a1, a2]) {
- // Should have installed the new add-on
- do_check_eq(a1, null);
- do_check_neq(a2, null);
-
- a2.uninstall();
-
- do_execute_soon(run_test_4);
- });
- }));
- }));
+function run_test() {
+ createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1.9.2");
+ startupManager();
+ run_next_test();
}
-// Tests that upgrading to a bootstrapped add-on works but requires a restart
-function run_test_4() {
- restartManager();
- shutdownManager();
-
- writeInstallRDFForExtension({
- id: "addon2@tests.mozilla.org",
- version: "2.0",
- updateURL: "http://localhost:4444/data/test_updateid.rdf",
- targetApplications: [{
- id: "xpcshell@tests.mozilla.org",
- minVersion: "1",
- maxVersion: "1"
- }],
- name: "Test Addon 2",
- }, profileDir);
-
- startupManager();
-
- resetPrefs();
-
- AddonManager.getAddonByID("addon2@tests.mozilla.org", function(a2) {
- do_check_neq(a2, null);
- do_check_neq(a2.syncGUID, null);
- do_check_eq(a2.version, "2.0");
-
- a2.findUpdates({
- onUpdateAvailable: function(addon, install) {
- installUpdate(install, check_test_4);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
-}
-
-function check_test_4() {
- AddonManager.getAddonsByIDs(["addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org"],
- callback_soon(function([a2, a3]) {
- // Should still be pending install even though the new add-on is restartless
- do_check_neq(a2, null);
- do_check_eq(a3, null);
-
- do_check_neq(a2.pendingUpgrade, null);
- do_check_eq(a2.pendingUpgrade.id, "addon3@tests.mozilla.org");
-
- do_check_eq(getInstalledVersion(), -1);
- do_check_eq(getActiveVersion(), -1);
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["addon2@tests.mozilla.org",
- "addon3@tests.mozilla.org"], function([a2, a3]) {
- // Should have updated
- do_check_eq(a2, null);
- do_check_neq(a3, null);
-
- do_check_eq(getInstalledVersion(), 3);
- do_check_eq(getActiveVersion(), 3);
-
- do_execute_soon(run_test_5);
- });
- }));
-}
-
-// Tests that upgrading to another bootstrapped add-on works without a restart
-function run_test_5() {
- AddonManager.getAddonByID("addon3@tests.mozilla.org", function(a3) {
- do_check_neq(a3, null);
- do_check_eq(a3.version, "3.0");
+// Verify that an update to an add-on with a new ID fails
+add_task(function* test_update_new_id() {
+ yield promiseInstallAllFiles([do_get_addon("test_updateid1")]);
- a3.findUpdates({
- onUpdateAvailable: function(addon, install) {
- installUpdate(install, check_test_5);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
-}
-
-function check_test_5() {
- AddonManager.getAddonsByIDs(["addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org"],
- callback_soon(function([a3, a4]) {
- // Should have updated
- do_check_eq(a3, null);
- do_check_neq(a4, null);
-
- do_check_eq(getInstalledVersion(), 4);
- do_check_eq(getActiveVersion(), 4);
-
- restartManager();
-
- AddonManager.getAddonsByIDs(["addon3@tests.mozilla.org",
- "addon4@tests.mozilla.org"], function([a3, a4]) {
- // Should still be gone
- do_check_eq(a3, null);
- do_check_neq(a4, null);
-
- do_check_eq(getInstalledVersion(), 4);
- do_check_eq(getActiveVersion(), 4);
-
- run_test_6();
- });
- }));
-}
+ let addon = yield promiseAddonByID("addon1@tests.mozilla.org");
+ do_check_neq(addon, null);
+ do_check_eq(addon.version, "1.0");
-// Tests that upgrading to a non-bootstrapped add-on works but requires a restart
-function run_test_6() {
- AddonManager.getAddonByID("addon4@tests.mozilla.org", function(a4) {
- do_check_neq(a4, null);
- do_check_eq(a4.version, "4.0");
-
- a4.findUpdates({
- onUpdateAvailable: function(addon, install) {
- installUpdate(install, check_test_6);
- }
- }, AddonManager.UPDATE_WHEN_USER_REQUESTED);
- });
-}
+ let update = yield promiseFindAddonUpdates(addon, AddonManager.UPDATE_WHEN_USER_REQUESTED);
+ let install = update.updateAvailable;
+ do_check_eq(install.name, addon.name);
+ do_check_eq(install.version, "2.0");
+ do_check_eq(install.state, AddonManager.STATE_AVAILABLE);
+ do_check_eq(install.existingAddon, addon);
-function check_test_6() {
- AddonManager.getAddonsByIDs(["addon4@tests.mozilla.org",
- "addon2@tests.mozilla.org"],
- callback_soon(function([a4, a2]) {
- // Should still be pending install even though the old add-on is restartless
- do_check_neq(a4, null);
- do_check_eq(a2, null);
-
- do_check_neq(a4.pendingUpgrade, null);
- do_check_eq(a4.pendingUpgrade.id, "addon2@tests.mozilla.org");
-
- do_check_eq(getInstalledVersion(), 4);
- do_check_eq(getActiveVersion(), 4);
+ yield Assert.rejects(promiseInstallUpdate(install),
+ function(err) { return err.code == AddonManager.ERROR_INCORRECT_ID },
+ "Upgrade to a different ID fails");
- restartManager();
+ addon.uninstall();
+});
- AddonManager.getAddonsByIDs(["addon4@tests.mozilla.org",
- "addon2@tests.mozilla.org"], function([a4, a2]) {
- // Should have updated
- do_check_eq(a4, null);
- do_check_neq(a2, null);
+// Verify that an update to a multi-package xpi fails
+add_task(function* test_update_new_id() {
+ yield promiseInstallAllFiles([do_get_addon("test_update_multi1")]);
- do_check_eq(getInstalledVersion(), 0);
- do_check_eq(getActiveVersion(), 0);
+ let addon = yield promiseAddonByID("updatemulti@tests.mozilla.org");
+ do_check_neq(addon, null);
+ do_check_eq(addon.version, "1.0");
- end_test();
- });
- }));
-}
+ let update = yield promiseFindAddonUpdates(addon, AddonManager.UPDATE_WHEN_USER_REQUESTED);
+ let install = update.updateAvailable;
+ do_check_eq(install.name, addon.name);
+ do_check_eq(install.version, "2.0");
+ do_check_eq(install.state, AddonManager.STATE_AVAILABLE);
+ do_check_eq(install.existingAddon, addon);
+
+ yield Assert.rejects(promiseInstallUpdate(install),
+ function(err) { return err.code == AddonManager.ERROR_UNEXPECTED_ADDON_TYPE },
+ "Upgrade to a multipackage xpi fails");
+
+ addon.uninstall();
+});

View File

@ -1,20 +0,0 @@
Avoid building PS and PDF docs, which do not build bit-reproducible. NASM
already installs doc in info and html.
--- nasm-2.12.01/doc/Makefile.in.orig 2016-06-21 18:02:59.483484829 +0200
+++ nasm-2.12.01/doc/Makefile.in 2016-06-21 18:03:46.700151410 +0200
@@ -27,7 +27,7 @@
PS2PDF = @PS2PDF@ # Part of GhostScript
SRCS = nasmdoc.src inslist.src changes.src
-OUT = info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf
+OUT = info html nasmdoc.txt
# exports
export srcdir
@@ -100,4 +100,4 @@
$(INSTALL_DATA) info/* $(INSTALLROOT)$(infodir)
mkdir -p $(INSTALLROOT)$(docdir)/html
$(INSTALL_DATA) html/* $(INSTALLROOT)$(docdir)/html
- $(INSTALL_DATA) nasmdoc.ps nasmdoc.pdf nasmdoc.txt $(INSTALLROOT)$(docdir)
+ $(INSTALL_DATA) nasmdoc.txt $(INSTALLROOT)$(docdir)

View File

@ -1,47 +0,0 @@
Honor SOURCE_DATE_EPOCH when exporting configuration date.
Autoconf-level patch submitted upstream on Fri Apr 15 23:07:42 UTC 2016
--- a/configure
+++ b/configure
@@ -2866,7 +2866,17 @@
# Configuration Date
- CONFIG_DATE="`date`"
+ CONFIG_DATE="`date -u`"
+if test -n "$SOURCE_DATE_EPOCH"; then
+ CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
+ || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
+ if test -z "$CONFIG_DATE"; then
+ as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
+ fi
+fi
+cat >>confdefs.h <<_ACEOF
+#define CONFIG_DATE "$CONFIG_DATE"
+_ACEOF
# Find out about the host we're building on.
ac_aux_dir=
--- a/libdispatch/derror.c
+++ b/libdispatch/derror.c
@@ -13,7 +13,7 @@
#endif
/* Tell the user the version of netCDF. */
-static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
+static const char nc_libvers[] = PACKAGE_VERSION " of "CONFIG_DATE" $";
/**
\defgroup lib_version Library Version
--- a/config.h.in
+++ b/config.h.in
@@ -393,6 +393,9 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
+/* Define to the configuration date */
+#undef CONFIG_DATE
+
/* The size of `double', as computed by sizeof. */
#undef SIZEOF_DOUBLE

View File

@ -0,0 +1,11 @@
--- a/libdispatch/derror.c
+++ b/libdispatch/derror.c
@@ -13,7 +13,7 @@
#endif
/* Tell the user the version of netCDF. */
-static const char nc_libvers[] = PACKAGE_VERSION " of "__DATE__" "__TIME__" $";
+static const char nc_libvers[] = PACKAGE_VERSION" $";
/**
\defgroup lib_version Library Version

View File

@ -0,0 +1,21 @@
From a83702834938b23cc2e843589aa223e2024a7e6f Mon Sep 17 00:00:00 2001
From: Orion Poplawski <orion@cora.nwra.com>
Date: Tue, 29 Nov 2016 11:48:01 -0700
Subject: [PATCH] Add missing #include "err_macros.h" to tst_h_par.c
---
h5_test/tst_h_par.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/h5_test/tst_h_par.c b/h5_test/tst_h_par.c
index c3da7f4..a419d55 100644
--- a/h5_test/tst_h_par.c
+++ b/h5_test/tst_h_par.c
@@ -11,6 +11,7 @@
$Id: tst_h_par.c,v 1.15 2010/05/25 13:53:04 ed Exp $
*/
#include <nc_tests.h>
+#include "err_macros.h"
#include <hdf5.h>
/* Defining USE_MPE causes the MPE trace library to be used (and you

View File

@ -1,36 +0,0 @@
Fix build against new mesa. See:
https://bugs.freedesktop.org/show_bug.cgi?id=83631
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765938
Description: fixes FTBFS against new libjpeg-turbo
Author: Ondřej Surý <ondrej@debian.org>
Bug-Debian: https://bugs.debian.org/765938
Reviewed-By: Anton Gladky <gladk@debian.org>
Last-Update: 2014-10-22
Index: vtk6-6.1.0+dfsg2/Rendering/OpenGL/vtkOpenGL.h
===================================================================
--- vtk6-6.1.0+dfsg2.orig/Rendering/OpenGL/vtkOpenGL.h
+++ vtk6-6.1.0+dfsg2/Rendering/OpenGL/vtkOpenGL.h
@@ -20,6 +20,7 @@
// To prevent gl.h to include glext.h provided by the system
#define GL_GLEXT_LEGACY
+#define GLX_GLEXT_LEGACY
#if defined(__APPLE__) && (defined(VTK_USE_CARBON) || defined(VTK_USE_COCOA))
# include <OpenGL/gl.h> // Include OpenGL API.
#else
Index: vtk6-6.1.0+dfsg2/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx
===================================================================
--- vtk6-6.1.0+dfsg2.orig/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx
+++ vtk6-6.1.0+dfsg2/Rendering/OpenGL/vtkXOpenGLRenderWindow.cxx
@@ -27,7 +27,7 @@
// define GLX_GLXEXT_LEGACY to prevent glx.h to include glxext.h provided by
// the system
-//#define GLX_GLXEXT_LEGACY
+#define GLX_GLXEXT_LEGACY
#include "GL/glx.h"
#include "vtkgl.h"

View File

@ -946,7 +946,7 @@ write accessor methods for your objects that perform standard tasks.")
(define-public perl-class-method-modifiers (define-public perl-class-method-modifiers
(package (package
(name "perl-class-method-modifiers") (name "perl-class-method-modifiers")
(version "2.11") (version "2.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -954,7 +954,7 @@ write accessor methods for your objects that perform standard tasks.")
"Class-Method-Modifiers-" version ".tar.gz")) "Class-Method-Modifiers-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"14nk2gin9cjwpysakli7f0gs4q1w220sn73xzv35rhlspngrggyy")))) "1j3swa212wh14dq5r6zjarm2lzpx6mrdfplpjy65px8b09ri0k74"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-fatal" ,perl-test-fatal) `(("perl-test-fatal" ,perl-test-fatal)
@ -4756,7 +4756,7 @@ Perl (back to 5.6.0).")
(define-public perl-namespace-autoclean (define-public perl-namespace-autoclean
(package (package
(name "perl-namespace-autoclean") (name "perl-namespace-autoclean")
(version "0.24") (version "0.28")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -4764,7 +4764,7 @@ Perl (back to 5.6.0).")
"namespace-autoclean-" version ".tar.gz")) "namespace-autoclean-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0msggbg2zbixxjq1fda19h0yygavxndfzc4j4pq11nfghmawjsb0")))) "0fbcq99yaix1aa99jl3v811dbw24il9jxnh5i2i23mddh4b0lhfd"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-module-build" ,perl-module-build) `(("perl-module-build" ,perl-module-build)

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -31,7 +32,9 @@
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages gperf) #:use-module (gnu packages gperf)
#:use-module (gnu packages perl)) #:use-module (gnu packages lua)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config))
(define-public a2ps (define-public a2ps
(package (package
@ -197,6 +200,47 @@ seen in a terminal.")
(license gpl3+) (license gpl3+)
(properties '((ftp-directory . "/gnu/src-highlite"))))) (properties '((ftp-directory . "/gnu/src-highlite")))))
(define-public highlight
(package
(name "highlight")
(version "3.33")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.andre-simon.de/zip/highlight-"
version ".tar.bz2"))
(sha256
(base32
"0g2whi6pxl640795vymikm82a1my841jmh7fiqzbrjpc9wsk1db4"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags
(let ((confdir (string-append %output "/share/highlight/config/")))
(list (string-append "PREFIX=" %output)
(string-append "HL_CONFIG_DIR=" confdir)
(string-append "conf_dir=" confdir)))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'fix-search-for-lua
(lambda _
(substitute* "src/makefile"
(("(pkg-config.*)lua" _ prefix)
(string-append prefix "lua-5.3")))
#t)))))
(inputs
`(("lua" ,lua)
("boost" ,boost)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.andre-simon.de/doku/highlight/en/highlight.php")
(synopsis "Convert code to documents with syntax highlighting")
(description "Highlight converts source code to HTML, XHTML, RTF, LaTeX,
TeX, SVG, BBCode and terminal escape sequences with colored syntax
highlighting. Language definitions and color themes are customizable.")
(license gpl3+)))
(define-public astyle (define-public astyle
(package (package
(name "astyle") (name "astyle")

View File

@ -3261,11 +3261,12 @@ association studies (GWAS) on extremely large data sets.")
(name "python-numpy") (name "python-numpy")
(outputs '("out" "doc")) (outputs '("out" "doc"))
(inputs (inputs
`(("which" ,which))) `(("which" ,which)
,@(package-inputs python-numpy-bootstrap)))
(propagated-inputs (propagated-inputs
`(("python-matplotlib" ,python-matplotlib) `(("python-matplotlib" ,python-matplotlib)
("python-pyparsing" ,python-pyparsing) ("python-pyparsing" ,python-pyparsing)
,@(package-inputs python-numpy-bootstrap))) ,@(package-propagated-inputs python-numpy-bootstrap)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
@ -3390,7 +3391,7 @@ that client code uses to construct the grammar directly in Python code.")
(substitute* "numpydoc/tests/test_plot_directive.py" (substitute* "numpydoc/tests/test_plot_directive.py"
(("3") "2")))))) (("3") "2"))))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (propagated-inputs
`(("python-sphinx" ,python-sphinx))) `(("python-sphinx" ,python-sphinx)))
(native-inputs (native-inputs
`(("python-nose" ,python-nose))) `(("python-nose" ,python-nose)))
@ -4814,7 +4815,7 @@ computing.")
;; FIXME: add pyreadline once available. ;; FIXME: add pyreadline once available.
(native-inputs (native-inputs
`(("python2-mock" ,python2-mock) `(("python2-mock" ,python2-mock)
,@(package-inputs ipython)))))) ,@(package-native-inputs ipython))))))
(define-public python-isodate (define-public python-isodate
(package (package
@ -6371,14 +6372,14 @@ responses, rather than doing any computation.")
(define-public python-cryptography-vectors (define-public python-cryptography-vectors
(package (package
(name "python-cryptography-vectors") (name "python-cryptography-vectors")
(version "1.5.3") (version "1.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cryptography_vectors" version)) (uri (pypi-uri "cryptography_vectors" version))
(sha256 (sha256
(base32 (base32
"1bnd1bricyhxa27rhr0ljk0kacxzvysd3ar2j2hlv13a2k6zw4z5")))) "0xgn3yvlmv5rs92wgjj39qscr6s7mwbbsx7j683sfa6ijmyb1k01"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/pyca/cryptography") (home-page "https://github.com/pyca/cryptography")
(synopsis "Test vectors for the cryptography package") (synopsis "Test vectors for the cryptography package")
@ -6393,14 +6394,14 @@ responses, rather than doing any computation.")
(define-public python-cryptography (define-public python-cryptography
(package (package
(name "python-cryptography") (name "python-cryptography")
(version "1.5.3") (version "1.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "cryptography" version)) (uri (pypi-uri "cryptography" version))
(sha256 (sha256
(base32 (base32
"1raanvkdfw5ai56ymlij6ghc4k126fs7jx948ig7yn4vj6ndv0ng")))) "0gwvmz6w5ml0bjbgmdiscsv5i948lrjd381z7h9qkz6kr398c3ad"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases

View File

@ -424,6 +424,7 @@ virtualization library.")
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2 `(#:python ,python-2
#:use-setuptools? #f ; Uses custom distutils 'install' command.
;; Some of the tests seem to require network access to install virtual ;; Some of the tests seem to require network access to install virtual
;; machines. ;; machines.
#:tests? #f #:tests? #f

View File

@ -35,6 +35,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cups) #:use-module (gnu packages cups)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
@ -59,6 +60,38 @@
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
(define-public grantlee
(package
(name "grantlee")
(version "5.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/steveire/grantlee/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1lf9rkv0i0kd7fvpgg5l8jb87zw8dzcwd1liv6hji7g4wlpmfdiq"))))
(native-inputs
`(("doxygen" ,doxygen)))
(inputs
`(("qtbase" ,qtbase)
("qtscript" ,qtscript)))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "ctest" ;; exclude 2 tests which require a display
"-E" "htmlbuildertest|plainmarkupbuildertest")))))))
(home-page "https://github.com/steveire/grantlee")
(synopsis "Libraries for text templating with Qt")
(description "Grantlee Templates can be used for theming and generation of
other text such as code. The syntax uses the syntax of the Django template
system, and the core design of Django is reused in Grantlee.")
(license license:lgpl2.0+)))
(define-public qt (define-public qt
(package (package
(name "qt") (name "qt")

View File

@ -166,6 +166,8 @@ serialization.")
"15wg14480lrbrhc2myk9rwpwb2gzix9bk80p4y7gxg3zrzml0xh8")))) "15wg14480lrbrhc2myk9rwpwb2gzix9bk80p4y7gxg3zrzml0xh8"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(home-page "https://github.com/open-source-parsers/jsoncpp") (home-page "https://github.com/open-source-parsers/jsoncpp")
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS:BOOL=YES")))
(synopsis "C++ library for interacting with JSON") (synopsis "C++ library for interacting with JSON")
(description "JsonCpp is a C++ library that allows manipulating JSON values, (description "JsonCpp is a C++ library that allows manipulating JSON values,
including serialization and deserialization to and from strings. It can also including serialization and deserialization to and from strings. It can also

View File

@ -1,62 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sxiv)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages xorg)
#:use-module (gnu packages image)
#:use-module (gnu packages photo))
(define-public sxiv
(package
(name "sxiv")
(version "1.3.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/muennich/sxiv/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0lxnd33gaw4drhdwbkk94wzrjyhh64d57jq2ps7ffmqgizg6hlwz"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no check target
#:make-flags (list (string-append "PREFIX=" %output)
"CC=gcc")
#:phases (alist-delete
'configure ; no configure phase
%standard-phases)))
(inputs
`(("libx11" ,libx11)
("imlib2" ,imlib2)
("giflib" ,giflib)
("libexif" ,libexif)))
(home-page "https://github.com/muennich/sxiv")
(synopsis "Simple X Image Viewer")
(description
"sxiv is an alternative to feh and qiv. Its primary goal is to
provide the most basic features required for fast image viewing. It has
vi key bindings and works nicely with tiling window managers. Its code
base should be kept small and clean to make it easy for you to dig into
it and customize it for your needs.")
(license license:gpl2+)))

View File

@ -16,7 +16,7 @@
;;; You should have received a copy of the GNU General Public License ;;; You should have received a copy of the GNU General Public License
;;; 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 owncloud) (define-module (gnu packages sync)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix download) #:use-module (guix download)
@ -103,3 +103,58 @@ to and a server to synchronize to. You can configure more computers to
synchronize to the same server and any change to the files on one computer will synchronize to the same server and any change to the files on one computer will
silently and reliably flow across to every other.") silently and reliably flow across to every other.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public qsyncthingtray
(package
(name "qsyncthingtray")
(version "0.5.6")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/sieren/QSyncthingTray/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0py3593pv3iz0vds82wzbjy1ykc96qaaji1ldd9dlr50kb1840c3"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DQST_BUILD_WEBKIT=1")
#:phases
(modify-phases %standard-phases
;; The program is meant to be run from the git repo or source tarball.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "QSyncthingTray" bin)
(install-file (string-append
"../QSyncthingTray-"
,(package-version qsyncthingtray)
"/resources/images/Icon1024.png")
(string-append
out "/share/pixmaps/QSyncthingTray.png"))
#t))))
#:tests? #f)) ; no test target
(inputs
`(("qtbase" ,qtbase)
("qtwebkit" ,qtwebkit)))
(home-page "https://github.com/sieren/QSyncthingTray")
(synopsis "Traybar Application for Syncthing")
(description
"A traybar application for syncthing.
@enumerate
@item Shows number of connections at a glance.
@item Traffic statistics about incoming, outgoing and total throughput.
@item Launches Syncthing and Syncthing-iNotifier if specified.
@item Quickly pause Syncthing with one click.
@item Last Synced Files - Quickly see the recently synchronised files and open
their folder.
@item Quick Access to all shared folders.
@item Presents Syncthing UI in a separate view instead of using the browser.
@item Supports authenticated HTTPS connections.
@item Uses System Notifications about current connection status.
@item Toggle for monochrome icon.
@end enumerate\n")
(license license:lgpl3+)))

View File

@ -671,7 +671,7 @@ number generator")
(define-public acme-client (define-public acme-client
(package (package
(name "acme-client") (name "acme-client")
(version "0.1.14") (version "0.1.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://kristaps.bsd.lv/" name "/" (uri (string-append "https://kristaps.bsd.lv/" name "/"
@ -679,7 +679,7 @@ number generator")
version ".tgz")) version ".tgz"))
(sha256 (sha256
(base32 (base32
"1qq4xk41pn65m3v7nnvkmxg96pr06vz6hzdrm0vcmlp3clzpbahl")))) "07p723391whrswl4rir0l1k03l457sjscnj0cfaxr8mfnkx4y3wi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no test suite '(#:tests? #f ; no test suite
@ -689,6 +689,8 @@ number generator")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure)))) ; no './configure' script (delete 'configure)))) ; no './configure' script
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("libbsd" ,libbsd) `(("libbsd" ,libbsd)
("libressl" ,libressl))) ("libressl" ,libressl)))

View File

@ -39,14 +39,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.2.8.9") (version "0.2.8.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"05jkvhbgyq81fcmk1xpl3yw97ljj5sg9pngl27zlmgl7p0xjfp1z")))) "0kcw9hq4xz8p91xwyhjfry5p1dmn7vvnhpfz66vl9gsfndbqr2y8"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("python" ,python-2))) ; for tests `(("python" ,python-2))) ; for tests

View File

@ -141,6 +141,9 @@ as well as the classic centralized workflow.")
("python" ,python-2) ; CAVEAT: incompatible with python-3 according to INSTALL ("python" ,python-2) ; CAVEAT: incompatible with python-3 according to INSTALL
("zlib" ,zlib) ("zlib" ,zlib)
;; For 'gitweb.cgi'
("perl-cgi" ,perl-cgi)
;; For 'git-svn'. ;; For 'git-svn'.
("subversion" ,subversion) ("subversion" ,subversion)
("perl-term-readkey" ,perl-term-readkey) ("perl-term-readkey" ,perl-term-readkey)
@ -257,6 +260,17 @@ as well as the classic centralized workflow.")
"perl-net-smtp-ssl" "perl-net-smtp-ssl"
"perl-io-socket-ssl"))))))) "perl-io-socket-ssl")))))))
;; Tell 'gitweb.cgi' where perl modules are.
(wrap-program (string-append out "/share/gitweb/gitweb.cgi")
`("PERL5LIB" ":" prefix
,(map (lambda (o) (string-append o "/lib/perl5/site_perl"))
(list
,@(transitive-input-references
'inputs
(map (lambda (l)
(assoc l (inputs)))
'("perl-cgi")))))))
;; Tell 'git-submodule' where Perl is. ;; Tell 'git-submodule' where Perl is.
(wrap-program git-sm (wrap-program git-sm
`("PATH" ":" prefix `("PATH" ":" prefix

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -20,37 +21,64 @@
(define-module (gnu packages vtk) (define-module (gnu packages vtk)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix licenses) #:use-module ((guix licenses) #:select (bsd-3))
#:use-module (guix utils)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages xorg) #:use-module (gnu packages compression)
#:use-module (gnu packages gl)) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gl)
#:use-module (gnu packages image)
#:use-module (gnu packages maths)
#:use-module (gnu packages serialization)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
(define-public vtk (define-public vtk
(package (package
(name "vtk") (name "vtk")
(version "6.1.0") (version "7.1.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.vtk.org/files/release/" (uri (string-append "http://www.vtk.org/files/release/"
(substring version 0 (version-major+minor version)
(string-rindex version #\.))
"/VTK-" version ".tar.gz")) "/VTK-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0d7shccdkyj4mbh2riilslgx3gd28in4c7xpm0lxa1ln8w5g2zdx")) "0yj96z58haan77gzilnqp7xpf8hg5jk11a3jx55p2ksd400s0gjz"))))
(patches (search-patches "vtk-mesa-10.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
;; Build without '-g' to save space. '(#:build-type "Release" ;Build without '-g' to save space.
'(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") ;; -DVTK_USE_SYSTEM_NETCDF:BOOL=TRUE requires netcdf_cxx
#:configure-flags '("-DVTK_USE_SYSTEM_EXPAT:BOOL=TRUE"
"-DVTK_USE_SYSTEM_FREETYPE:BOOL=TRUE"
"-DVTK_USE_SYSTEM_HDF5:BOOL=TRUE"
"-DVTK_USE_SYSTEM_JPEG:BOOL=TRUE"
"-DVTK_USE_SYSTEM_JSONCPP:BOOL=TRUE"
"-DVTK_USE_SYSTEM_LIBXML2:BOOL=TRUE"
"-DVTK_USE_SYSTEM_OGGTHEORA:BOOL=TRUE"
"-DVTK_USE_SYSTEM_PNG:BOOL=TRUE"
"-DVTK_USE_SYSTEM_TIFF:BOOL=TRUE"
"-DVTK_USE_SYSTEM_ZLIB:BOOL=TRUE")
#:tests? #f)) ;XXX: no "test" target #:tests? #f)) ;XXX: no "test" target
(inputs (inputs
`(("libXt" ,libxt) `(("libXt" ,libxt)
("xproto" ,xproto) ("xproto" ,xproto)
("libX11" ,libx11) ("libX11" ,libx11)
("libxml2" ,libxml2)
("mesa" ,mesa) ("mesa" ,mesa)
("glu" ,glu))) ("glu" ,glu)
("expat" ,expat)
("freetype" ,freetype)
("hdf5" ,hdf5)
("jpeg" ,libjpeg)
("jsoncpp" ,jsoncpp)
("libogg" ,libogg)
("libtheora" ,libtheora)
("png" ,libpng)
("tiff" ,libtiff)
("zlib" ,zlib)))
(home-page "http://www.vtk.org/") (home-page "http://www.vtk.org/")
(synopsis "Libraries for 3D computer graphics") (synopsis "Libraries for 3D computer graphics")
(description (description

View File

@ -201,6 +201,66 @@ and as a proxy to reduce the load on back-end HTTP or mail servers.")
;; except for two source files which are bsd-4 licensed. ;; except for two source files which are bsd-4 licensed.
(license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4)))) (license (list l:bsd-2 l:expat l:bsd-3 l:bsd-4))))
(define-public fcgi
(package
(name "fcgi")
(version "2.4.0")
(source
(origin
(method url-fetch)
;; Upstream has disappeared
(uri (string-append "https://sources.archlinux.org/other/packages/fcgi/"
"fcgi-" version ".tar.gz"))
(sha256
(base32
"1f857wnl1d6jfrgfgfpz3zdaj8fch3vr13mnpcpvy8bang34bz36"))
(patches (search-patches "fcgi-2.4.0-poll.patch"
"fcgi-2.4.0-gcc44-fixes.patch"))))
(build-system gnu-build-system)
(home-page "http://www.fastcgi.com")
(synopsis "Language-independent, high-performant extension to CGI")
(description "FastCGI is a language independent, scalable extension to CGI
that provides high performance without the limitations of server specific
APIs.")
;; This package is released under the Open Market License, a variant of
;; the Expat license, incompatible with the GPL.
(license (l:non-copyleft "file://LICENSE.TERMS"))))
(define-public fcgiwrap
(package
(name "fcgiwrap")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/gnosek/fcgiwrap/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"07y6s4mm86cv7p1ljz94sxnqa89y9amn3vzwsnbq5hrl4vdy0zac"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests included
#:make-flags (list "CC=gcc")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
(zero? (system* "autoreconf" "-vif")))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(inputs
`(("fcgi" ,fcgi)))
(home-page "https://nginx.localdomain.pl/wiki/FcgiWrap")
(synopsis "Simple server for running CGI applications over FastCGI")
(description "Fcgiwrap is a simple server for running CGI applications
over FastCGI. It hopes to provide clean CGI support to Nginx (and other web
servers that may need it).")
(license l:expat)))
(define-public starman (define-public starman
(package (package
(name "starman") (name "starman")
@ -827,7 +887,7 @@ language known as SASS.")
(define-public perl-apache-logformat-compiler (define-public perl-apache-logformat-compiler
(package (package
(name "perl-apache-logformat-compiler") (name "perl-apache-logformat-compiler")
(version "0.32") (version "0.33")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -835,7 +895,7 @@ language known as SASS.")
"Apache-LogFormat-Compiler-" version ".tar.gz")) "Apache-LogFormat-Compiler-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0zyx4r2bxc6d48m70fhcq80nw0q9wnfz6qgn1g0r6bigqgdjq4dw")))) "17blk3zhp05azgypn25ydxf3d7fyfgr9bxyiv7xkchhqma96vwqv"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-http-message" ,perl-http-message) `(("perl-http-message" ,perl-http-message)
@ -902,26 +962,29 @@ action, which will forward to the first available view.")
(define-public perl-catalyst-action-rest (define-public perl-catalyst-action-rest
(package (package
(name "perl-catalyst-action-rest") (name "perl-catalyst-action-rest")
(version "1.17") (version "1.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/F/FR/FREW/" (uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/"
"Catalyst-Action-REST-" version ".tar.gz")) "Catalyst-Action-REST-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1rnxmsd9dsqz4xc0g9ynafxi934jwp0nixbg92q3bc2h46xcccy8")))) "1mpa64p61f3dp24xnhdraswch4sqj5vyv1iivcvvh5h0xi0haiy0"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-requires" ,perl-test-requires))) `(("perl-test-requires" ,perl-test-requires)))
(propagated-inputs (propagated-inputs
`(("perl-catalyst-runtime" ,perl-catalyst-runtime) `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
("perl-class-inspector" ,perl-class-inspector) ("perl-class-inspector" ,perl-class-inspector)
("perl-config-general" ,perl-config-general)
("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
("perl-libwww" ,perl-libwww) ("perl-libwww" ,perl-libwww)
("perl-moose" ,perl-moose) ("perl-moose" ,perl-moose)
("perl-mro-compat" ,perl-mro-compat) ("perl-mro-compat" ,perl-mro-compat)
("perl-namespace-autoclean" ,perl-namespace-autoclean) ("perl-namespace-autoclean" ,perl-namespace-autoclean)
("perl-params-validate" ,perl-params-validate) ("perl-params-validate" ,perl-params-validate)
("perl-uri-find" ,perl-uri-find))) ("perl-uri-find" ,perl-uri-find)
("perl-xml-simple" ,perl-xml-simple)))
(home-page "http://search.cpan.org/dist/Catalyst-Action-REST") (home-page "http://search.cpan.org/dist/Catalyst-Action-REST")
(synopsis "Automated REST Method Dispatching") (synopsis "Automated REST Method Dispatching")
(description "This Action handles doing automatic method dispatching for (description "This Action handles doing automatic method dispatching for
@ -1110,7 +1173,7 @@ Models.")
(define-public perl-catalyst-plugin-accesslog (define-public perl-catalyst-plugin-accesslog
(package (package
(name "perl-catalyst-plugin-accesslog") (name "perl-catalyst-plugin-accesslog")
(version "1.05") (version "1.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1118,14 +1181,13 @@ Models.")
"Catalyst-Plugin-AccessLog-" version ".tar.gz")) "Catalyst-Plugin-AccessLog-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0hqvckaw91q5yc25a33bp0d4qqxlgkp7rxlvi8n8svxd1406r55s")))) "0811rj45q4v2y8wka3wb9d5m4vbyhcmkvddf2wz4x69awzjbhgc7"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-catalyst-runtime" ,perl-catalyst-runtime) `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
("perl-datetime" ,perl-datetime) ("perl-datetime" ,perl-datetime)
("perl-moose" ,perl-moose) ("perl-moose" ,perl-moose)
("perl-namespace-autoclean" ,perl-namespace-autoclean))) ("perl-namespace-autoclean" ,perl-namespace-autoclean)))
(arguments `(#:tests? #f)) ;Unexpected http responses
(home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog") (home-page "http://search.cpan.org/dist/Catalyst-Plugin-AccessLog")
(synopsis "Request logging from within Catalyst") (synopsis "Request logging from within Catalyst")
(description "This Catalyst plugin enables you to create \"access logs\" (description "This Catalyst plugin enables you to create \"access logs\"
@ -1251,7 +1313,7 @@ formats.")
(define-public perl-catalyst-plugin-session (define-public perl-catalyst-plugin-session
(package (package
(name "perl-catalyst-plugin-session") (name "perl-catalyst-plugin-session")
(version "0.39") (version "0.40")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1259,7 +1321,7 @@ formats.")
"Catalyst-Plugin-Session-" version ".tar.gz")) "Catalyst-Plugin-Session-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0m4a003qgz7848iyckwbigg2vw3kmfxggh1razrnzxrbz3n6x5gi")))) "171vi9xcl775scjaw4fcfdmqvz0rb1nr0xxg2gb3ng6bjzpslhgv"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-deep" ,perl-test-deep) `(("perl-test-deep" ,perl-test-deep)
@ -1269,6 +1331,7 @@ formats.")
("perl-moose" ,perl-moose) ("perl-moose" ,perl-moose)
("perl-moosex-emulate-class-accessor-fast" ("perl-moosex-emulate-class-accessor-fast"
,perl-moosex-emulate-class-accessor-fast) ,perl-moosex-emulate-class-accessor-fast)
("perl-mro-compat" ,perl-mro-compat)
("perl-namespace-clean" ,perl-namespace-clean) ("perl-namespace-clean" ,perl-namespace-clean)
("perl-object-signature" ,perl-object-signature) ("perl-object-signature" ,perl-object-signature)
("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi))) ("perl-test-www-mechanize-psgi" ,perl-test-www-mechanize-psgi)))
@ -1517,7 +1580,7 @@ table based report in a variety of formats (CSV, HTML, etc.).")
(define-public perl-catalyst-view-json (define-public perl-catalyst-view-json
(package (package
(name "perl-catalyst-view-json") (name "perl-catalyst-view-json")
(version "0.35") (version "0.36")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1525,7 +1588,7 @@ table based report in a variety of formats (CSV, HTML, etc.).")
"Catalyst-View-JSON-" version ".tar.gz")) "Catalyst-View-JSON-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"184pyghlrkl7p387bnyvswi2d9myvdg4v3lax6xrd59shskvpmkm")))) "0x943j1n2r0zqanyzdrs1xsnn8ayn2wqskn7h144xcqa6v6gcisl"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-yaml" ,perl-yaml))) `(("perl-yaml" ,perl-yaml)))
@ -1542,19 +1605,20 @@ stash data in JSON format.")
(define-public perl-catalyst-view-tt (define-public perl-catalyst-view-tt
(package (package
(name "perl-catalyst-view-tt") (name "perl-catalyst-view-tt")
(version "0.42") (version "0.44")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/J/JJ/JJNAPIORK/" (uri (string-append "mirror://cpan/authors/id/E/ET/ETHER/"
"Catalyst-View-TT-" version ".tar.gz")) "Catalyst-View-TT-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"18ciik9fqaqjfasa9wicbjrsl3gjhjc15xzaj3rif57an25cl178")))) "06d1zg4nbb6kcyjbnyxrkf8z4zlscxr8650d94f7187jygfl8rvh"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-catalyst-runtime" ,perl-catalyst-runtime) `(("perl-catalyst-runtime" ,perl-catalyst-runtime)
("perl-class-accessor" ,perl-class-accessor) ("perl-class-accessor" ,perl-class-accessor)
("perl-data-dump" ,perl-data-dump)
("perl-mro-compat" ,perl-mro-compat) ("perl-mro-compat" ,perl-mro-compat)
("perl-path-class" ,perl-path-class) ("perl-path-class" ,perl-path-class)
("perl-template-timer" ,perl-template-timer) ("perl-template-timer" ,perl-template-timer)
@ -1651,7 +1715,7 @@ development server with Starman.")
(define-public perl-cgi (define-public perl-cgi
(package (package
(name "perl-cgi") (name "perl-cgi")
(version "4.25") (version "4.35")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1659,7 +1723,7 @@ development server with Starman.")
"CGI-" version ".tar.gz")) "CGI-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"06hk9zzvlix1yi95wlkb1ykdxgl6lscm7452gkwr2snsb8iybczg")))) "07gwnlc7vq58fjwmfsrv0hfyirqqdrpjhf89caq34rjrkz2wsd0b"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-deep" ,perl-test-deep) `(("perl-test-deep" ,perl-test-deep)
@ -1768,7 +1832,7 @@ for files and urls.")
(define-public perl-encode-locale (define-public perl-encode-locale
(package (package
(name "perl-encode-locale") (name "perl-encode-locale")
(version "1.03") (version "1.05")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1776,7 +1840,7 @@ for files and urls.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0m9d1vdphlyzybgmdanipwd9ndfvyjgk3hzw250r299jjgh3fqzp")))) "1h8fvcdg3n20c2yp7107yhdkkx78534s9hnvn7ps8hpmf4ks0vqp"))))
(build-system perl-build-system) (build-system perl-build-system)
(license (package-license perl)) (license (package-license perl))
(synopsis "Perl locale encoding determination") (synopsis "Perl locale encoding determination")
@ -1843,7 +1907,7 @@ which can be used to parse directory listings.")
(define-public perl-finance-quote (define-public perl-finance-quote
(package (package
(name "perl-finance-quote") (name "perl-finance-quote")
(version "1.37") (version "1.38")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1851,7 +1915,7 @@ which can be used to parse directory listings.")
"Finance-Quote-" version ".tar.gz")) "Finance-Quote-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1b6pbh7f76fb5sa4f0lhx085xy55pprz5v7z7li7pqiyw7i4f4bf")) "0zhqb27y4vdxn476s2kwm9zl2f970yjcyyybnjm9b406krr2fm59"))
(patches (search-patches (patches (search-patches
"perl-finance-quote-unuse-mozilla-ca.patch")))) "perl-finance-quote-unuse-mozilla-ca.patch"))))
(build-system perl-build-system) (build-system perl-build-system)
@ -2019,7 +2083,7 @@ representing, creating, and extracting information from HTML syntax trees.")
(define-public perl-html-parser (define-public perl-html-parser
(package (package
(name "perl-html-parser") (name "perl-html-parser")
(version "3.71") (version "3.72")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2027,10 +2091,11 @@ representing, creating, and extracting information from HTML syntax trees.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00nqzdgl7c3jilx7mil19k5jwcw3as14pvkjgxi97zyk94vqp4dy")))) "12v05ywlnsi9lc17z32k9jxx3sj1viy7y1wpl7n4az76v7hwfa7c"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs (inputs
`(("perl-html-tagset" ,perl-html-tagset))) `(("perl-html-tagset" ,perl-html-tagset)
("perl-http-message" ,perl-http-message)))
(license (package-license perl)) (license (package-license perl))
(synopsis "Perl HTML parser class") (synopsis "Perl HTML parser class")
(description (description
@ -2089,7 +2154,7 @@ you to separate design from the data.")
(define-public perl-http-body (define-public perl-http-body
(package (package
(name "perl-http-body") (name "perl-http-body")
(version "1.19") (version "1.22")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2097,7 +2162,7 @@ you to separate design from the data.")
"HTTP-Body-" version ".tar.gz")) "HTTP-Body-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ahhksj0zg6wq6glpjkxdr3byd5riwvq2f5aw21n1jcsl71nll01")))) "15vj488i62mdp4ps9k77h39prj70i7anb6b0j8nm7l9vbdc2q3gw"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-deep" ,perl-test-deep))) `(("perl-test-deep" ,perl-test-deep)))
@ -2114,7 +2179,7 @@ and multipart/form-data.")
(define-public perl-http-cookiejar (define-public perl-http-cookiejar
(package (package
(name "perl-http-cookiejar") (name "perl-http-cookiejar")
(version "0.006") (version "0.008")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2122,12 +2187,13 @@ and multipart/form-data.")
"HTTP-CookieJar-" version ".tar.gz")) "HTTP-CookieJar-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c7l29ak6ba2j006ca00vnkxpyc1fvpikydjvsb24s50zf1mv7b2")))) "0rfw6avcralggs7bf7n86flvhaahxjnqzvpwszp0sk4z4wwy01wm"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-test-deep" ,perl-test-deep) `(("perl-test-deep" ,perl-test-deep)
("perl-test-requires" ,perl-test-requires) ("perl-test-requires" ,perl-test-requires)
("perl-time-mock" ,perl-time-mock))) ("perl-time-mock" ,perl-time-mock)
("perl-uri" ,perl-uri)))
(inputs (inputs
`(("perl-time-local" ,perl-time-local) `(("perl-time-local" ,perl-time-local)
("perl-http-date" ,perl-http-date))) ("perl-http-date" ,perl-http-date)))
@ -2207,18 +2273,19 @@ used by the HTTP protocol (and then some more).")
(define-public perl-http-message (define-public perl-http-message
(package (package
(name "perl-http-message") (name "perl-http-message")
(version "6.06") (version "6.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"mirror://cpan/authors/id/G/GA/GAAS/HTTP-Message-" "mirror://cpan/authors/id/E/ET/ETHER/HTTP-Message-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0qxdrcak97azjvqyx1anpb2ky6vp6vc37x0wcfjdqfajkh09fzh8")))) "06yq6cjx4vzl4if4ykap77xsrrd8aa7ish90k7cqi8g6g83nicz7"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-http-date" ,perl-http-date) `(("perl-encode-locale" ,perl-encode-locale)
("perl-http-date" ,perl-http-date)
("perl-io-html" ,perl-io-html) ("perl-io-html" ,perl-io-html)
("perl-lwp-mediatypes" ,perl-lwp-mediatypes) ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
("perl-uri" ,perl-uri))) ("perl-uri" ,perl-uri)))
@ -2226,7 +2293,7 @@ used by the HTTP protocol (and then some more).")
(synopsis "Perl HTTP style message") (synopsis "Perl HTTP style message")
(description (description
"An HTTP::Message object contains some headers and a content body.") "An HTTP::Message object contains some headers and a content body.")
(home-page "http://search.cpan.org/~gaas/HTTP-Message/"))) (home-page "http://search.cpan.org/~ether/HTTP-Message/")))
(define-public perl-http-negotiate (define-public perl-http-negotiate
(package (package
@ -2322,15 +2389,15 @@ environment from an HTTP::Request.")
(define-public perl-http-server-simple (define-public perl-http-server-simple
(package (package
(name "perl-http-server-simple") (name "perl-http-server-simple")
(version "0.44") (version "0.51")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/J/JE/JESSE/" (uri (string-append "mirror://cpan/authors/id/B/BP/BPS/"
"HTTP-Server-Simple-" version ".tar.gz")) "HTTP-Server-Simple-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"05klpfkss2a6i5ihmvcm27fyar0f2v4ispg2f49agab3va1gix6g")))) "1yvd2g57z2kq00q5i3zzfi15k98qgbif3vghjsda6v612agmrp5r"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-cgi" ,perl-cgi))) `(("perl-cgi" ,perl-cgi)))
@ -2348,7 +2415,7 @@ http-based UI to your existing tools.")
(define-public perl-http-tiny (define-public perl-http-tiny
(package (package
(name "perl-http-tiny") (name "perl-http-tiny")
(version "0.053") (version "0.070")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -2356,12 +2423,13 @@ http-based UI to your existing tools.")
"HTTP-Tiny-" version ".tar.gz")) "HTTP-Tiny-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1bwy31xrcz5zfx1n3vc50vj1aqvzn5ccr7lgacl8wmi03a6w2af2")))) "0cvp5yqrni6qydpsa8fpkbm82zfwmy9js8jsvyj8gs3dx78qbwvl"))))
(build-system perl-build-system) (build-system perl-build-system)
(inputs (inputs
`(("perl-http-cookiejar" ,perl-http-cookiejar) `(("perl-http-cookiejar" ,perl-http-cookiejar)
("perl-io-socket-ip" ,perl-io-socket-ip) ("perl-io-socket-ip" ,perl-io-socket-ip)
("perl-io-socket-ssl" ,perl-io-socket-ssl) ("perl-io-socket-ssl" ,perl-io-socket-ssl)
("perl-mozilla-ca" ,perl-mozilla-ca)
("perl-net-ssleay" ,perl-net-ssleay))) ("perl-net-ssleay" ,perl-net-ssleay)))
(home-page "http://search.cpan.org/dist/HTTP-Tiny") (home-page "http://search.cpan.org/dist/HTTP-Tiny")
(synopsis "HTTP/1.1 client") (synopsis "HTTP/1.1 client")
@ -2442,7 +2510,7 @@ select or poll.")
(define-public perl-libwww (define-public perl-libwww
(package (package
(name "perl-libwww") (name "perl-libwww")
(version "6.13") (version "6.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -2450,7 +2518,7 @@ select or poll.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1cpqjl59viw50bnbdyn8xzrwzg7g54b2rszw0fifacqrppp17gaz")))) "08l3mpgcvm4ipn1zggymqgk402apf35xyds43i8c07hvq92rsd3g"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-encode-locale" ,perl-encode-locale) `(("perl-encode-locale" ,perl-encode-locale)
@ -2458,8 +2526,11 @@ select or poll.")
("perl-html-parser" ,perl-html-parser) ("perl-html-parser" ,perl-html-parser)
("perl-http-cookies" ,perl-http-cookies) ("perl-http-cookies" ,perl-http-cookies)
("perl-http-daemon" ,perl-http-daemon) ("perl-http-daemon" ,perl-http-daemon)
("perl-http-date" ,perl-http-date)
("perl-http-message" ,perl-http-message)
("perl-http-negotiate" ,perl-http-negotiate) ("perl-http-negotiate" ,perl-http-negotiate)
("perl-net-http" ,perl-net-http) ("perl-net-http" ,perl-net-http)
("perl-uri" ,perl-uri)
("perl-www-robotrules" ,perl-www-robotrules))) ("perl-www-robotrules" ,perl-www-robotrules)))
(license (package-license perl)) (license (package-license perl))
(synopsis "Perl modules for the WWW") (synopsis "Perl modules for the WWW")

View File

@ -167,7 +167,7 @@ based on libxml for XML parsing, tree manipulation and XPath support.")
(define-public perl-graph-readwrite (define-public perl-graph-readwrite
(package (package
(name "perl-graph-readwrite") (name "perl-graph-readwrite")
(version "2.08") (version "2.09")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -177,7 +177,7 @@ based on libxml for XML parsing, tree manipulation and XPath support.")
".tar.gz")) ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1wjni212nfz9irp19nx9if1lj3w9cybpdbzhii4g8macpryjj7ci")))) "0jlsg64pmy6ka5q5gy851nnyfgjzvhyxc576bhns3vi2x5ng07mh"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-graph" ,perl-graph) `(("perl-graph" ,perl-graph)
@ -310,14 +310,14 @@ XML parser and the high performance DOM implementation.")
(define-public perl-xml-libxml-simple (define-public perl-xml-libxml-simple
(package (package
(name "perl-xml-libxml-simple") (name "perl-xml-libxml-simple")
(version "0.95") (version "0.97")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-LibXML-Simple-" version ".tar.gz")) "XML-LibXML-Simple-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0qqfqj5bgqmh1j4iv8dwl3g00nsmcvf2b7w1d09k9d77rrb249xi")))) "1g8nlk3zdz2cclxf7azvsb3jfxmvy6ml8wmj774k4qjqcsqmzk0w"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny) `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
@ -514,7 +514,7 @@ EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
(define-public perl-xml-dom (define-public perl-xml-dom
(package (package
(name "perl-xml-dom") (name "perl-xml-dom")
(version "1.44") (version "1.46")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -522,11 +522,12 @@ EntityRef, CharRef, Reference, Name, NmToken, and AttValue.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1r0ampc88ni3sjpzr583k86076qg399arfm9xirv3cw49k3k5bzn")))) "0phpkc4li43m2g44hdcvyxzy9pymqwlqhh5hwp2xc0cv8l5lp8lb"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-libwww" ,perl-libwww) `(("perl-libwww" ,perl-libwww)
("perl-libxml" ,perl-libxml) ("perl-libxml" ,perl-libxml)
("perl-xml-parser" ,perl-xml-parser)
("perl-xml-regexp" ,perl-xml-regexp))) ("perl-xml-regexp" ,perl-xml-regexp)))
(license (package-license perl)) (license (package-license perl))
(synopsis (synopsis
@ -565,14 +566,14 @@ This module provide functions which simplify writing tests for
(define-public perl-xml-compile (define-public perl-xml-compile
(package (package
(name "perl-xml-compile") (name "perl-xml-compile")
(version "1.51") (version "1.54")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-" version ".tar.gz")) "XML-Compile-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"06fj4zf0yh4kf3kx4bhwrmrjr6al40nasasbgfhn8f1zxwkmm8f2")))) "1hp41960bpqxvv1samv9hc0ghhmvs3i16r4rfl9yp54lp6jhsr2c"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-log-report" ,perl-log-report) `(("perl-log-report" ,perl-log-report)
@ -590,14 +591,14 @@ a schema.")
(define-public perl-xml-compile-cache (define-public perl-xml-compile-cache
(package (package
(name "perl-xml-compile-cache") (name "perl-xml-compile-cache")
(version "1.04") (version "1.05")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-Cache-" version ".tar.gz")) "XML-Compile-Cache-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1689dm54n7wb0n0cl9n77vk0kvg0mcckn2hz9ahigjhvazah8740")))) "0xbwlszhi9hg8sxm5ylglm2qvnb689i595p913awrj2g4mp9yfsw"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-log-report" ,perl-log-report) `(("perl-log-report" ,perl-log-report)
@ -613,14 +614,14 @@ a schema.")
(define-public perl-xml-compile-soap (define-public perl-xml-compile-soap
(package (package
(name "perl-xml-compile-soap") (name "perl-xml-compile-soap")
(version "3.13") (version "3.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-SOAP-" version ".tar.gz")) "XML-Compile-SOAP-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"08qw63l78040nh37xzapbqp43g6s5l67bvskf3dyyizlarjx5mi4")))) "0qplb77qr97pc9yis51jmphl9gbq9xyf8abldpxkwvdn6iqlbgx5"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-file-slurp-tiny" ,perl-file-slurp-tiny) `(("perl-file-slurp-tiny" ,perl-file-slurp-tiny)
@ -641,14 +642,14 @@ used.")
(define-public perl-xml-compile-wsdl11 (define-public perl-xml-compile-wsdl11
(package (package
(name "perl-xml-compile-wsdl11") (name "perl-xml-compile-wsdl11")
(version "3.04") (version "3.05")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/"
"XML-Compile-WSDL11-" version ".tar.gz")) "XML-Compile-WSDL11-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0pyikwnfwpangvnkf5dbdagy4z93ag9824f1ax5qaibc3ghca8kv")))) "1a50in1qrbzx3924wvrhgfm5fcxz5cd95f3z9z2xgln27q1zssc4"))))
(build-system perl-build-system) (build-system perl-build-system)
(propagated-inputs (propagated-inputs
`(("perl-log-report" ,perl-log-report) `(("perl-log-report" ,perl-log-report)
@ -706,14 +707,14 @@ RSS 0.91, RSS 1.0, RSS 2.0, Atom")
(define-public perl-xml-xpath (define-public perl-xml-xpath
(package (package
(name "perl-xml-xpath") (name "perl-xml-xpath")
(version "1.37") (version "1.40")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/" (uri (string-append "mirror://cpan/authors/id/M/MA/MANWAR/"
"XML-XPath-" version ".tar.gz")) "XML-XPath-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0997l8vjgq8p7d1irvp6amqyrv24x7f8hybjm4l4ayag32b13bmq")))) "07pa0bl42jka8mj7jshjynx8vpfh8b4cdyiv4zlkqvkqz98nzxib"))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs (native-inputs
`(("perl-path-tiny" ,perl-path-tiny))) `(("perl-path-tiny" ,perl-path-tiny)))

View File

@ -252,6 +252,8 @@ FILE-SYSTEM."
(device (file-system-device file-system)) (device (file-system-device file-system))
(type (file-system-type file-system)) (type (file-system-type file-system))
(title (file-system-title file-system)) (title (file-system-title file-system))
(flags (file-system-flags file-system))
(options (file-system-options file-system))
(check? (file-system-check? file-system)) (check? (file-system-check? file-system))
(create? (file-system-create-mount-point? file-system)) (create? (file-system-create-mount-point? file-system))
(dependencies (file-system-dependencies file-system))) (dependencies (file-system-dependencies file-system)))
@ -264,34 +266,12 @@ FILE-SYSTEM."
,@(map dependency->shepherd-service-name dependencies))) ,@(map dependency->shepherd-service-name dependencies)))
(documentation "Check, mount, and unmount the given file system.") (documentation "Check, mount, and unmount the given file system.")
(start #~(lambda args (start #~(lambda args
;; FIXME: Use or factorize with 'mount-file-system'. #$(if create?
(let ((device (canonicalize-device-spec #$device '#$title)) #~(mkdir-p #$target)
(flags #$(mount-flags->bit-mask #t)
(file-system-flags file-system)))) (mount-file-system
#$(if create? `(#$device #$title #$target #$type #$flags #$options
#~(mkdir-p #$target) #$check?) #:root "/")
#~#t)
#$(if check?
#~(begin
;; Make sure fsck.ext2 & co. can be found.
(setenv "PATH"
(string-append
#$e2fsprogs "/sbin:"
"/run/current-system/profile/sbin:"
(getenv "PATH")))
(check-file-system device #$type))
#~#t)
(mount device #$target #$type flags
#$(file-system-options file-system))
;; For read-only bind mounts, an extra remount is
;; needed, as per <http://lwn.net/Articles/281157/>,
;; which still applies to Linux 4.0.
(when (and (= MS_BIND (logand flags MS_BIND))
(= MS_RDONLY (logand flags MS_RDONLY)))
(mount device #$target #$type
(logior MS_BIND MS_REMOUNT MS_RDONLY))))
#t)) #t))
(stop #~(lambda args (stop #~(lambda args
;; Normally there are no processes left at this point, so ;; Normally there are no processes left at this point, so
@ -305,7 +285,7 @@ FILE-SYSTEM."
;; We need an additional module. ;; We need an additional module.
(modules `(((gnu build file-systems) (modules `(((gnu build file-systems)
#:select (check-file-system canonicalize-device-spec)) #:select (mount-file-system))
,@%default-modules))))))) ,@%default-modules)))))))
(define file-system-service-type (define file-system-service-type

View File

@ -30,6 +30,8 @@
configuration-field-name configuration-field-name
configuration-missing-field configuration-missing-field
configuration-field-error configuration-field-error
configuration-field-serializer
configuration-field-getter
serialize-configuration serialize-configuration
define-configuration define-configuration
validate-configuration validate-configuration

View File

@ -894,7 +894,7 @@ IPP specifications.")
(if (file-exists? dst) (if (file-exists? dst)
(format (current-error-port) "warning: ~a exists\n" dst) (format (current-error-port) "warning: ~a exists\n" dst)
(symlink src dst)))) (symlink src dst))))
(find-files (string-append package path)))) (find-files (string-append package path) #:stat stat)))
(list #$@paths))) (list #$@paths)))
(list #$@packages)) (list #$@packages))
#t)))) #t))))

View File

@ -17,14 +17,388 @@
;;; 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 services kerberos) (define-module (gnu services kerberos)
#:use-module (gnu packages admin)
#:use-module (gnu services) #:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu system pam) #:use-module (gnu system pam)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix records) #:use-module (guix records)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
#:export (pam-krb5-configuration #:export (pam-krb5-configuration
pam-krb5-configuration? pam-krb5-configuration?
pam-krb5-service-type)) pam-krb5-service-type
krb5-realm
krb5-realm?
krb5-configuration
krb5-configuration?
krb5-service-type))
(define unset-field (list 'unset-field))
(define (predicate/unset pred)
(lambda (x) (or (eq? x unset-field) (pred x))))
(define string/unset? (predicate/unset string?))
(define boolean/unset? (predicate/unset boolean?))
(define integer/unset? (predicate/unset integer?))
(define (uglify-field-name field-name)
"Return FIELD-NAME with all instances of '-' replaced by '_' and any
trailing '?' removed."
(let ((str (symbol->string field-name)))
(string-join (string-split (if (string-suffix? "?" str)
(substring str 0 (1- (string-length str)))
str)
#\-)
"_")))
(define (serialize-field* field-name val)
(format #t "~a = ~a\n" (uglify-field-name field-name) val))
(define (serialize-string/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name val)))
(define (serialize-integer/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name val)))
(define (serialize-boolean/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name
(if val "true" "false"))))
;; An end-point is an address such as "192.168.0.1"
;; or an address port pair ("foobar.example.com" . 109)
(define (end-point? val)
(match val
((? string?) #t)
(((? string?) . (? integer?)) #t)
(_ #f)))
(define (serialize-end-point field-name val)
(serialize-field* field-name
(match val
((host . port)
;; The [] are needed in the case of IPv6 addresses
(format #f "[~a]:~a" host port))
(host
(format #f "~a" host)))))
(define (serialize-space-separated-string-list/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name (string-join val " "))))
(define space-separated-string-list/unset?
(predicate/unset space-separated-string-list?))
(define comma-separated-integer-list/unset?
(predicate/unset (lambda (val)
(and (list? val)
(and-map (lambda (x) (integer? x))
val)))))
(define (serialize-comma-separated-integer-list/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name
(string-drop ; Drop the leading comma
(fold
(lambda (i prev)
(string-append prev "," (number->string i)))
"" val) 1))))
(define file-name? (predicate/unset
(lambda (val)
(string-prefix? "/" val))))
(define (serialize-file-name field-name val)
(unless (eq? val unset-field)
(serialize-string field-name val)))
(define (non-negative-integer? val)
(and (exact-integer? val) (not (negative? val))))
(define (serialize-non-negative-integer/unset field-name val)
(unless (eq? val unset-field)
(serialize-field* field-name val)))
(define (free-form-fields? val)
(match val
(() #t)
((((? symbol?) . (? string)) . val) (free-form-fields? val))
(_ #f)))
(define (serialize-free-form-fields field-name val)
(for-each (match-lambda ((k . v) (serialize-field* k v))) val))
(define non-negative-integer/unset? (predicate/unset non-negative-integer?))
(define (realm-list? val)
(and (list? val)
(and-map (lambda (x) (krb5-realm? x)) val)))
(define (serialize-realm-list field-name val)
(format #t "\n[~a]\n" field-name)
(for-each (lambda (realm)
(format #t "\n~a = {\n" (krb5-realm-name realm))
(for-each (lambda (field)
(unless (eq? 'name (configuration-field-name field))
((configuration-field-serializer field)
(configuration-field-name field)
((configuration-field-getter field)
realm)))) krb5-realm-fields)
(format #t "}\n")) val))
;; For a more detailed explanation of these fields see man 5 krb5.conf
(define-configuration krb5-realm
(name
(string/unset unset-field)
"The name of the realm.")
(kdc
(end-point unset-field)
"The host and port on which the realm's Key Distribution Server listens.")
(admin-server
(string/unset unset-field)
"The Host running the administration server for the realm.")
(master-kdc
(string/unset unset-field)
"If an attempt to get credentials fails because of an invalid password,
the client software will attempt to contact the master KDC.")
(kpasswd-server
(string/unset unset-field)
"The server where password changes are performed.")
(auth-to-local
(free-form-fields '())
"Rules to map between principals and local users.")
(auth-to-local-names
(free-form-fields '())
"Explicit mappings between principal names and local user names.")
(http-anchors
(free-form-fields '())
"Useful only when http proxy is used to access KDC or KPASSWD.")
;; The following are useful only for working with V4 services
(default-domain
(string/unset unset-field)
"The domain used to expand host names when translating Kerberos 4 service
principals to Kerberos 5 principals")
(v4-instance-convert
(free-form-fields '())
"Exceptions to the default-domain mapping rule.")
(v4-realm
(string/unset unset-field)
"Used when the V4 realm name and the V5 realm name are not the same, but
still share the same principal names and passwords"))
;; For a more detailed explanation of these fields see man 5 krb5.conf
(define-configuration krb5-configuration
(allow-weak-crypto?
(boolean/unset unset-field)
"If true, permits access to services which only offer weak encryption.")
(ap-req-checksum-type
(non-negative-integer/unset unset-field)
"The type of the AP-REQ checksum.")
(canonicalize?
(boolean/unset unset-field)
"Should principals in initial ticket requests be canonicalized?")
(ccache-type
(non-negative-integer/unset unset-field)
"The format of the credential cache type.")
(clockskew
(non-negative-integer/unset unset-field)
"Maximum allowable clock skew in seconds (default 300).")
(default-ccache-name
(file-name unset-field)
"The name of the default credential cache.")
(default-client-keytab-name
(file-name unset-field)
"The name of the default keytab for client credentials.")
(default-keytab-name
(file-name unset-field)
"The name of the default keytab file.")
(default-realm
(string/unset unset-field)
"The realm to be accessed if not explicitly specified by clients.")
(default-tgs-enctypes
(free-form-fields '())
"Session key encryption types when making TGS-REQ requests.")
(default-tkt-enctypes
(free-form-fields '())
"Session key encryption types when making AS-REQ requests.")
(dns-canonicalize-hostname?
(boolean/unset unset-field)
"Whether name lookups will be used to canonicalize host names for use in
service principal names.")
(dns-lookup-kdc?
(boolean/unset unset-field)
"Should DNS SRV records should be used to locate the KDCs and other servers
not appearing in the realm specification")
(err-fmt
(string/unset unset-field)
"Custom error message formatting. If not #f error messages will be formatted
by substituting a normal error message for %M and an error code for %C in the
value.")
(forwardable?
(boolean/unset unset-field)
"Should initial tickets be forwardable by default?")
(ignore-acceptor-hostname?
(boolean/unset unset-field)
"When accepting GSSAPI or krb5 security contexts for host-based service
principals, ignore any hostname passed by the calling application, and allow
clients to authenticate to any service principal in the keytab matching the
service name and realm name.")
(k5login-authoritative?
(boolean/unset unset-field)
"If this flag is true, principals must be listed in a local user's k5login
file to be granted login access, if a ~/.k5login file exists.")
(k5login-directory
(string/unset unset-field)
"If not #f, the library will look for a local user's @file{k5login} file
within the named directory (instead of the user's home directory), with a
file name corresponding to the local user name.")
(kcm-mach-service
(string/unset unset-field)
"The name of the bootstrap service used to contact the KCM daemon for the
KCM credential cache type.")
(kcm-socket
(file-name unset-field)
"Path to the Unix domain socket used to access the KCM daemon for the KCM
credential cache type.")
(kdc-default-options
(non-negative-integer/unset unset-field)
"Default KDC options (logored for multiple values) when requesting initial
tickets.")
(kdc-timesync
(non-negative-integer/unset unset-field)
"Attempt to compensate for clock skew between the KDC and client.")
(kdc-req-checksum-type
(non-negative-integer/unset unset-field)
"The type of checksum to use for the KDC requests. Relevant only for DES
keys")
(noaddresses?
(boolean/unset unset-field)
"If true, initial ticket requests will not be made with address restrictions.
This enables their use across NATs.")
(permitted-enctypes
(space-separated-string-list/unset unset-field)
"All encryption types that are permitted for use in session key encryption.")
(plugin-base-dir
(file-name unset-field)
"The directory where krb5 plugins are located.")
(preferred-preauth-types
(comma-separated-integer-list/unset unset-field)
"The preferred pre-authentication types which the client will attempt before
others.")
(proxiable?
(boolean/unset unset-field)
"Should initial tickets be proxiable by default?")
(rdns?
(boolean/unset unset-field)
"Should reverse DNS lookup be used in addition to forward name lookup to
canonicalize host names for use in service principal names.")
(realm-try-domains
(integer/unset unset-field)
"Should a host's domain components should be used to determine the Kerberos
realm of the host.")
(renew-lifetime
(non-negative-integer/unset unset-field)
"The default renewable lifetime for initial ticket requests.")
(safe-checksum-type
(non-negative-integer/unset unset-field)
"The type of checksum to use for the KRB-SAFE requests.")
(ticket-lifetime
(non-negative-integer/unset unset-field)
"The default lifetime for initial ticket requests.")
(udp-preference-limit
(non-negative-integer/unset unset-field)
"When sending messages to the KDC, the library will try using TCP
before UDP if the size of the message greater than this limit.")
(verify-ap-rereq-nofail?
(boolean/unset unset-field)
"If true, then attempts to verify initial credentials will fail if the client
machine does not have a keytab.")
(realms
(realm-list '())
"The list of realms which clients may access."))
(define (krb5-configuration-file config)
"Create a Kerberos 5 configuration file based on CONFIG"
(mixed-text-file "krb5.conf"
"[libdefaults]\n\n"
(with-output-to-string
(lambda ()
(serialize-configuration config
krb5-configuration-fields)))))
(define (krb5-etc-service config)
(list `("krb5.conf" ,(krb5-configuration-file config))))
(define krb5-service-type
(service-type (name 'krb5)
(extensions
(list (service-extension etc-service-type
krb5-etc-service)))))
(define-record-type* <pam-krb5-configuration> (define-record-type* <pam-krb5-configuration>
pam-krb5-configuration make-pam-krb5-configuration pam-krb5-configuration make-pam-krb5-configuration

View File

@ -24,6 +24,7 @@
#:use-module (ssh popen) #:use-module (ssh popen)
#:use-module (ssh dist) #:use-module (ssh dist)
#:use-module (ssh dist node) #:use-module (ssh dist node)
#:use-module (ssh version)
#:use-module (guix config) #:use-module (guix config)
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix store) #:use-module (guix store)
@ -176,31 +177,35 @@ private key from '~a': ~a")
;; exchanging full archives. ;; exchanging full archives.
#:compression "zlib" #:compression "zlib"
#:compression-level 3))) #:compression-level 3)))
(connect! session) (match (connect! session)
('ok
;; Authenticate the server. XXX: Guile-SSH 0.10.1 doesn't know about ;; Authenticate the server. XXX: Guile-SSH 0.10.1 doesn't know about
;; ed25519 keys and 'get-key-type' returns #f in that case. ;; ed25519 keys and 'get-key-type' returns #f in that case.
(let-values (((server) (get-server-public-key session)) (let-values (((server) (get-server-public-key session))
((type key) (host-key->type+key ((type key) (host-key->type+key
(build-machine-host-key machine)))) (build-machine-host-key machine))))
(unless (and (or (not (get-key-type server)) (unless (and (or (not (get-key-type server))
(eq? (get-key-type server) type)) (eq? (get-key-type server) type))
(string=? (public-key->string server) key)) (string=? (public-key->string server) key))
;; Key mismatch: something's wrong. XXX: It could be that the server ;; Key mismatch: something's wrong. XXX: It could be that the server
;; provided its Ed25519 key when we where expecting its RSA key. ;; provided its Ed25519 key when we where expecting its RSA key.
(leave (_ "server at '~a' returned host key '~a' of type '~a' \ (leave (_ "server at '~a' returned host key '~a' of type '~a' \
instead of '~a' of type '~a'~%") instead of '~a' of type '~a'~%")
(build-machine-name machine) (build-machine-name machine)
(public-key->string server) (get-key-type server) (public-key->string server) (get-key-type server)
key type))) key type)))
(let ((auth (userauth-public-key! session private))) (let ((auth (userauth-public-key! session private)))
(unless (eq? 'success auth) (unless (eq? 'success auth)
(disconnect! session) (disconnect! session)
(leave (_ "SSH public key authentication failed for '~a': ~a~%") (leave (_ "SSH public key authentication failed for '~a': ~a~%")
(build-machine-name machine) (get-error session)))) (build-machine-name machine) (get-error session))))
session)) session)
(x
;; Connection failed or timeout expired.
(leave (_ "failed to connect to '~a': ~a~%")
(build-machine-name machine) (get-error session))))))
(define* (connect-to-remote-daemon session (define* (connect-to-remote-daemon session
#:optional #:optional
@ -429,10 +434,8 @@ be read."
(define (send-files files remote) (define (send-files files remote)
"Send the subset of FILES that's missing to REMOTE, a remote store." "Send the subset of FILES that's missing to REMOTE, a remote store."
(with-store store (with-store store
;; Compute the subset of FILES missing on SESSION, and send them in ;; Compute the subset of FILES missing on SESSION and send them.
;; topologically sorted order so that they can actually be imported. (let* ((session (channel-get-session (nix-server-socket remote)))
(let* ((sorted (topologically-sorted store files))
(session (channel-get-session (nix-server-socket remote)))
(node (make-node session)) (node (make-node session))
(missing (node-eval node (missing (node-eval node
`(begin `(begin
@ -441,11 +444,12 @@ be read."
(with-store store (with-store store
(remove (cut valid-path? store <>) (remove (cut valid-path? store <>)
',sorted))))) ',files)))))
(port (store-import-channel session))) (port (store-import-channel session)))
(format #t (_ "sending ~a store files to '~a'...~%") (format #t (_ "sending ~a store files to '~a'...~%")
(length missing) (session-get session 'host)) (length missing) (session-get session 'host))
;; Send MISSING in topological order.
(export-paths store missing port) (export-paths store missing port)
;; Tell the remote process that we're done. (In theory the ;; Tell the remote process that we're done. (In theory the
@ -489,27 +493,30 @@ be read."
(define (machine-load machine) (define (machine-load machine)
"Return the load of MACHINE, divided by the number of parallel builds "Return the load of MACHINE, divided by the number of parallel builds
allowed on MACHINE." allowed on MACHINE. Return + if MACHINE is unreachable."
;; Note: This procedure is costly since it creates a new SSH session. ;; Note: This procedure is costly since it creates a new SSH session.
(let* ((session (open-ssh-session machine)) (match (false-if-exception (open-ssh-session machine))
(pipe (open-remote-pipe* session OPEN_READ ((? session? session)
(let* ((pipe (open-remote-pipe* session OPEN_READ
"cat" "/proc/loadavg")) "cat" "/proc/loadavg"))
(line (read-line pipe))) (line (read-line pipe)))
(close-port pipe) (close-port pipe)
(if (eof-object? line) (if (eof-object? line)
+inf.0 ;MACHINE does not respond, so assume it is infinitely loaded +inf.0 ;MACHINE does not respond, so assume it is infinitely loaded
(match (string-tokenize line) (match (string-tokenize line)
((one five fifteen . _) ((one five fifteen . _)
(let* ((raw (string->number five)) (let* ((raw (string->number five))
(jobs (build-machine-parallel-builds machine)) (jobs (build-machine-parallel-builds machine))
(normalized (/ raw jobs))) (normalized (/ raw jobs)))
(format (current-error-port) "load on machine '~a' is ~s\ (format (current-error-port) "load on machine '~a' is ~s\
(normalized: ~s)~%" (normalized: ~s)~%"
(build-machine-name machine) raw normalized) (build-machine-name machine) raw normalized)
normalized)) normalized))
(_ (_
+inf.0))))) ;something's fishy about MACHINE, so avoid it +inf.0))))) ;something's fishy about MACHINE, so avoid it
(_
+inf.0))) ;failed to connect to MACHINE, so avoid it
(define (machine-lock-file machine hint) (define (machine-lock-file machine hint)
"Return the name of MACHINE's lock file for HINT." "Return the name of MACHINE's lock file for HINT."
@ -635,6 +642,12 @@ allowed on MACHINE."
(and=> (passwd:dir (getpw (getuid))) (and=> (passwd:dir (getpw (getuid)))
(cut setenv "HOME" <>)) (cut setenv "HOME" <>))
;; We rely on protocol-level compression from libssh to optimize large data
;; transfers. Warn if it's missing.
(unless (zlib-support?)
(warning (_ "Guile-SSH lacks zlib support"))
(warning (_ "data transfers will *not* be compressed!")))
(match args (match args
((system max-silent-time print-build-trace? build-timeout) ((system max-silent-time print-build-trace? build-timeout)
(let ((max-silent-time (string->number max-silent-time)) (let ((max-silent-time (string->number max-silent-time))

View File

@ -470,7 +470,8 @@ encoding conversion errors."
;; Write a byte stream to USER-PORT. ;; Write a byte stream to USER-PORT.
(let* ((len (read-int p)) (let* ((len (read-int p))
(m (modulo len 8))) (m (modulo len 8)))
(dump-port p user-port len) (dump-port p user-port len
#:buffer-size (if (<= len 16384) 16384 65536))
(unless (zero? m) (unless (zero? m)
;; Consume padding, as for strings. ;; Consume padding, as for strings.
(get-bytevector-n p (- 8 m)))) (get-bytevector-n p (- 8 m))))

View File

@ -203,11 +203,11 @@ static void stopWork(bool success = true, const string & msg = "", unsigned int
} }
struct TunnelSink : Sink struct TunnelSink : BufferedSink
{ {
Sink & to; Sink & to;
TunnelSink(Sink & to) : to(to) { } TunnelSink(Sink & to) : BufferedSink(64 * 1024), to(to) { }
virtual void operator () (const unsigned char * data, size_t len) virtual void write(const unsigned char * data, size_t len)
{ {
writeInt(STDERR_WRITE, to); writeInt(STDERR_WRITE, to);
writeString(data, len, to); writeString(data, len, to);
@ -433,6 +433,7 @@ static void performOp(bool trusted, unsigned int clientVersion,
startWork(); startWork();
TunnelSink sink(to); TunnelSink sink(to);
store->exportPath(path, sign, sink); store->exportPath(path, sign, sink);
sink.flush();
stopWork(); stopWork();
writeInt(1, to); writeInt(1, to);
break; break;