Merge branch 'master' into core-updates

master
Leo Famulari 2016-03-21 12:22:31 -04:00
commit 09ec508a4c
184 changed files with 27612 additions and 1722 deletions

View File

@ -56,6 +56,7 @@ MODULES = \
guix/graph.scm \ guix/graph.scm \
guix/cve.scm \ guix/cve.scm \
guix/build-system.scm \ guix/build-system.scm \
guix/build-system/ant.scm \
guix/build-system/cmake.scm \ guix/build-system/cmake.scm \
guix/build-system/emacs.scm \ guix/build-system/emacs.scm \
guix/build-system/glib-or-gtk.scm \ guix/build-system/glib-or-gtk.scm \
@ -75,6 +76,7 @@ MODULES = \
guix/cvs-download.scm \ guix/cvs-download.scm \
guix/svn-download.scm \ guix/svn-download.scm \
guix/ui.scm \ guix/ui.scm \
guix/build/ant-build-system.scm \
guix/build/download.scm \ guix/build/download.scm \
guix/build/cmake-build-system.scm \ guix/build/cmake-build-system.scm \
guix/build/emacs-build-system.scm \ guix/build/emacs-build-system.scm \
@ -109,7 +111,6 @@ MODULES = \
guix/import/cran.scm \ guix/import/cran.scm \
guix/import/hackage.scm \ guix/import/hackage.scm \
guix/import/elpa.scm \ guix/import/elpa.scm \
guix/import/github.scm \
guix/scripts.scm \ guix/scripts.scm \
guix/scripts/download.scm \ guix/scripts/download.scm \
guix/scripts/build.scm \ guix/scripts/build.scm \
@ -143,6 +144,7 @@ MODULES = \
if HAVE_GUILE_JSON if HAVE_GUILE_JSON
MODULES += \ MODULES += \
guix/import/github.scm \
guix/import/json.scm \ guix/import/json.scm \
guix/import/pypi.scm \ guix/import/pypi.scm \
guix/scripts/import/pypi.scm \ guix/scripts/import/pypi.scm \
@ -171,8 +173,10 @@ dist_noinst_DATA = guix/tests.scm
# Linux-Libre configurations. # Linux-Libre configurations.
KCONFIGS = \ KCONFIGS = \
gnu/packages/linux-libre-i686.conf \ gnu/packages/linux-libre-4.5-i686.conf \
gnu/packages/linux-libre-x86_64.conf \ gnu/packages/linux-libre-4.5-x86_64.conf \
gnu/packages/linux-libre-4.4-i686.conf \
gnu/packages/linux-libre-4.4-x86_64.conf \
gnu/packages/linux-libre-4.1-i686.conf \ gnu/packages/linux-libre-4.1-i686.conf \
gnu/packages/linux-libre-4.1-x86_64.conf gnu/packages/linux-libre-4.1-x86_64.conf
@ -225,6 +229,7 @@ SCM_TESTS = \
tests/grafts.scm \ tests/grafts.scm \
tests/ui.scm \ tests/ui.scm \
tests/records.scm \ tests/records.scm \
tests/upstream.scm \
tests/utils.scm \ tests/utils.scm \
tests/build-utils.scm \ tests/build-utils.scm \
tests/packages.scm \ tests/packages.scm \
@ -416,7 +421,11 @@ include daemon.am
endif BUILD_DAEMON endif BUILD_DAEMON
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
# Pass an explicit '--localstatedir' so that configure does not error out if
# it finds an existing installation with a different localstatedir.
AM_DISTCHECK_CONFIGURE_FLAGS = \ AM_DISTCHECK_CONFIGURE_FLAGS = \
--localstatedir="$$dc_install_base/var" \
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \ --with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
--with-libgcrypt-libdir="$(LIBGCRYPT_LIBDIR)" \ --with-libgcrypt-libdir="$(LIBGCRYPT_LIBDIR)" \
--with-nix-prefix="$(NIX_PREFIX)" \ --with-nix-prefix="$(NIX_PREFIX)" \

17
NEWS
View File

@ -14,18 +14,30 @@ Please send Guix bug reports to bug-guix@gnu.org.
** Package management ** Package management
*** New syntax for separating package names and version numbers
Use @ instead of - as a separator, as in gnupg@2.0. This new separator
is a reserved character which is not allowed both in package names and version
numbers.
The old syntax to specify a packages version—e.g., as “gnupg-2.0”—is obsolete
and support for it will be removed in the future.
*** Emacs interface for licenses *** Emacs interface for licenses
*** Emacs interface for system generations *** Emacs interface for system generations
*** Emacs interface for hydra.gnu.org *** Emacs interface for hydra.gnu.org
*** Changes in Emacs interface variables and faces *** Changes in Emacs interface variables and faces
In the following names, BUFFER-TYPE means "info" or "list"; In the following names, BUFFER-TYPE means "info" or "list";
ENTRY-TYPE means "package", "output" or "generation". ENTRY-TYPE means "package", "output" or "generation".
**** Removed **** Removed
- guix-info-fill-column - guix-info-fill-column
- guix-info-insert-ENTRY-TYPE-function - guix-info-insert-ENTRY-TYPE-function
**** Renamed **** Renamed
- guix-info-ignore-empty-vals -> guix-info-ignore-empty-values - guix-info-ignore-empty-vals -> guix-info-ignore-empty-values
- guix-output-name-width -> guix-generation-output-name-width - guix-output-name-width -> guix-generation-output-name-width
- guix-buffer-name-function -> guix-ui-buffer-name-function - guix-buffer-name-function -> guix-ui-buffer-name-function
@ -34,6 +46,7 @@ ENTRY-TYPE means "package", "output" or "generation".
- guix-BUFFER-TYPE-file-path (face) -> guix-BUFFER-TYPE-file-name - guix-BUFFER-TYPE-file-path (face) -> guix-BUFFER-TYPE-file-name
**** Replaced **** Replaced
- guix-list-column-format, guix-list-column-value-methods -> - guix-list-column-format, guix-list-column-value-methods ->
guix-ENTRY-TYPE-list-format guix-ENTRY-TYPE-list-format
- guix-info-displayed-params, guix-info-insert-methods, - guix-info-displayed-params, guix-info-insert-methods,
@ -44,6 +57,10 @@ ENTRY-TYPE means "package", "output" or "generation".
guix-ENTRY-TYPE-list-describe-warning-count guix-ENTRY-TYPE-list-describe-warning-count
- guix-package-info-fill-heading -> guix-info-fill - guix-package-info-fill-heading -> guix-info-fill
** Noteworthy bug fixes
*** Numbers in package names are correctly handled (http://bugs.gnu.org/19219)
* Changes in 0.9.0 (since 0.8.3) * Changes in 0.9.0 (since 0.8.3)
** Package management ** Package management

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,6 +21,7 @@
;;; ;;;
(use-modules (guix store) (use-modules (guix store)
(guix grafts)
(guix packages) (guix packages)
(guix derivations) (guix derivations)
(gnu packages emacs) (gnu packages emacs)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,6 +21,7 @@
;;; ;;;
(use-modules (guix store) (use-modules (guix store)
(guix grafts)
(guix packages) (guix packages)
(guix derivations) (guix derivations)
(guix ui) (guix ui)

View File

@ -38,6 +38,7 @@
(use-modules (guix config) (use-modules (guix config)
(guix store) (guix store)
(guix grafts)
(guix packages) (guix packages)
(guix derivations) (guix derivations)
(guix monads) (guix monads)
@ -248,27 +249,35 @@ valid."
%packages-to-cross-build)) %packages-to-cross-build))
(remove (either from-32-to-64? same?) %cross-targets))) (remove (either from-32-to-64? same?) %cross-targets)))
;; Return one job for each package, except bootstrap packages. ;; Turn off grafts. Grafting is meant to happen on the user's machines.
(append-map (lambda (system) (parameterize ((%graft? #f))
(case subset ;; Return one job for each package, except bootstrap packages.
((all) (append-map (lambda (system)
;; Build everything. (case subset
(fold-packages (lambda (package result) ((all)
(let ((job (package->job store package ;; Build everything, including replacements.
system))) (let ((all (fold-packages
(if job (lambda (package result)
(cons job result) (if (package-replacement package)
result))) (cons* package
(append (qemu-jobs store system) (package-replacement package)
(tarball-jobs store system) result)
(cross-jobs system)))) (cons package result)))
((core) '()))
;; Build core packages only. (job (lambda (package)
(append (map (lambda (package) (package->job store package
(package-job store (job-name package) system))))
package system)) (append (filter-map job all)
%core-packages) (qemu-jobs store system)
(cross-jobs system))) (tarball-jobs store system)
(else (cross-jobs system))))
(error "unknown subset" subset)))) ((core)
%hydra-supported-systems)) ;; Build core packages only.
(append (map (lambda (package)
(package-job store (job-name package)
package system))
%core-packages)
(cross-jobs system)))
(else
(error "unknown subset" subset))))
%hydra-supported-systems)))

View File

@ -110,6 +110,20 @@ if test "x$guix_build_daemon" = "xyes"; then
dnl Check for <linux/fs.h> (for immutable file support). dnl Check for <linux/fs.h> (for immutable file support).
AC_CHECK_HEADERS([linux/fs.h]) AC_CHECK_HEADERS([linux/fs.h])
dnl Determine the appropriate default list of substitute URLs.
GUILE_MODULE_AVAILABLE([have_gnutls], [(gnutls)])
if test "x$have_gnutls" = "xyes"; then
guix_substitute_urls="https://mirror.hydra.gnu.org https://hydra.gnu.org"
else
AC_MSG_WARN([GnuTLS is missing, substitutes will be downloaded in the clear])
guix_substitute_urls="http://mirror.hydra.gnu.org http://hydra.gnu.org"
fi
AC_MSG_CHECKING([for default substitute URLs])
AC_MSG_RESULT([$guix_substitute_urls])
AC_DEFINE_UNQUOTED([GUIX_SUBSTITUTE_URLS], ["$guix_substitute_urls"],
[Default list of substitute URLs used by 'guix-daemon'.])
dnl Check whether the 'offload' build hook can be built (uses dnl Check whether the 'offload' build hook can be built (uses
dnl 'restore-file-set', which requires unbuffered custom binary input dnl 'restore-file-set', which requires unbuffered custom binary input
dnl ports from Guile >= 2.0.10.) dnl ports from Guile >= 2.0.10.)
@ -126,6 +140,8 @@ if test "x$guix_build_daemon" = "xyes"; then
GUIX_TEST_ROOT="$ac_cv_guix_test_root" GUIX_TEST_ROOT="$ac_cv_guix_test_root"
AC_SUBST([GUIX_TEST_ROOT]) AC_SUBST([GUIX_TEST_ROOT])
GUIX_CHECK_LOCALSTATEDIR
AC_CONFIG_FILES([nix/scripts/list-runtime-roots], AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
[chmod +x nix/scripts/list-runtime-roots]) [chmod +x nix/scripts/list-runtime-roots])
AC_CONFIG_FILES([nix/scripts/substitute], AC_CONFIG_FILES([nix/scripts/substitute],

61
doc.am
View File

@ -98,45 +98,48 @@ dvi-local: ps-local
## Man pages. ## ## Man pages. ##
## ----------- ## ## ----------- ##
# The man pages are generated using GNU Help2man. In makefiles rules they
# depend not on the binary, but on the source files. This usage allows a
# manual page to be generated by the maintainer and included in the
# distribution without requiring the end-user to have 'help2man' installed.
# They are built in $(srcdir) like info manuals.
sub_commands_mans = \ sub_commands_mans = \
doc/guix-archive.1 \ $(srcdir)/doc/guix-archive.1 \
doc/guix-build.1 \ $(srcdir)/doc/guix-build.1 \
doc/guix-challenge.1 \ $(srcdir)/doc/guix-challenge.1 \
doc/guix-download.1 \ $(srcdir)/doc/guix-download.1 \
doc/guix-edit.1 \ $(srcdir)/doc/guix-edit.1 \
doc/guix-environment.1 \ $(srcdir)/doc/guix-environment.1 \
doc/guix-gc.1 \ $(srcdir)/doc/guix-gc.1 \
doc/guix-hash.1 \ $(srcdir)/doc/guix-hash.1 \
doc/guix-import.1 \ $(srcdir)/doc/guix-import.1 \
doc/guix-lint.1 \ $(srcdir)/doc/guix-lint.1 \
doc/guix-package.1 \ $(srcdir)/doc/guix-package.1 \
doc/guix-publish.1 \ $(srcdir)/doc/guix-publish.1 \
doc/guix-pull.1 \ $(srcdir)/doc/guix-pull.1 \
doc/guix-refresh.1 \ $(srcdir)/doc/guix-refresh.1 \
doc/guix-size.1 \ $(srcdir)/doc/guix-size.1 \
doc/guix-system.1 $(srcdir)/doc/guix-system.1
dist_man1_MANS = \ dist_man1_MANS = \
doc/guix.1 \ $(srcdir)/doc/guix.1 \
$(sub_commands_mans) $(sub_commands_mans)
# Man pages are generated using GNU help2man.
gen_man = \ gen_man = \
LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \ LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \
$(HELP2MANFLAGS) $(HELP2MANFLAGS)
HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME) HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
# Note: Do not depend on 'scripts/guix' since that would trigger a rebuild $(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans)
# even for people building from a tarball.
doc/guix.1: $(sub_commands_mans)
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
# Note: The dependency on $(GOBJECTS) is meant to force these docs to be made # The 'case' ensures the man pages are only generated if the corresponding
# only after all Guile modules have been compiled. The 'case' ensures the man # source script (the first prerequisite) has been changed. The $(GOBJECTS)
# pages are only generated if the corresponding script source has been # prerequisite is solely meant to force these docs to be made only after all
# changed. # Guile modules have been compiled.
doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS) $(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
-@case '$?' in \ -@case '$?' in \
*$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \ *$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
$(gen_man) --output="$@" "guix $*";; \ $(gen_man) --output="$@" "guix $*";; \
@ -145,11 +148,9 @@ doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
if BUILD_DAEMON if BUILD_DAEMON
dist_man1_MANS += doc/guix-daemon.1 dist_man1_MANS += $(srcdir)/doc/guix-daemon.1
# Note: Do not depend on 'guix-daemon' since that would trigger a rebuild even $(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
# for people building from a tarball.
doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1` -$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
endif endif

View File

@ -140,7 +140,13 @@ necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}.
Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the
local source tree; it simply updates the @file{~/.config/guix/latest} local source tree; it simply updates the @file{~/.config/guix/latest}
symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if
you want to upgrade your local source tree. you want to upgrade your local source tree.@footnote{If you would like
to set up @command{guix} to use your Git checkout, you can point the
@file{~/.config/guix/latest} symlink to your Git checkout directory.
If you are the sole user of your system, you may also consider pointing
the @file{/root/.config/guix/latest} symlink to point to
@file{~/.config/guix/latest}; this way it will always use the same
@command{guix} as your user does.}
@node The Perfect Setup @node The Perfect Setup

File diff suppressed because it is too large Load Diff

View File

@ -64,7 +64,7 @@ $(AUTOLOADS): $(ELFILES)
$(AM_V_EMACS)$(EMACS) --batch --eval \ $(AM_V_EMACS)$(EMACS) --batch --eval \
"(let ((backup-inhibited t) \ "(let ((backup-inhibited t) \
(generated-autoload-file \ (generated-autoload-file \
(expand-file-name \"$(AUTOLOADS)\" \"$(srcdir)\"))) \ (expand-file-name \"$(AUTOLOADS)\" \"$(builddir)\"))) \
(update-directory-autoloads \ (update-directory-autoloads \
(expand-file-name \"emacs\" \"$(srcdir)\")))" (expand-file-name \"emacs\" \"$(srcdir)\")))"

View File

@ -44,7 +44,7 @@
(defun guix-package-name-specification (name version &optional output) (defun guix-package-name-specification (name version &optional output)
"Return Guix package specification by its NAME, VERSION and OUTPUT." "Return Guix package specification by its NAME, VERSION and OUTPUT."
(concat name "-" version (concat name "@" version
(when output (concat ":" output)))) (when output (concat ":" output))))

View File

@ -36,6 +36,10 @@
(concat ".*\\." (regexp-opt guix-help-system-types) "\\'") (concat ".*\\." (regexp-opt guix-help-system-types) "\\'")
"Regexp matching a full name of Hydra job (including system).") "Regexp matching a full name of Hydra job (including system).")
(defun guix-hydra-job-name-specification (name version)
"Return Hydra's job name specification by NAME and VERSION."
(concat name "-" version))
(defun guix-hydra-message (entries search-type &rest _) (defun guix-hydra-message (entries search-type &rest _)
"Display a message after showing Hydra ENTRIES." "Display a message after showing Hydra ENTRIES."
;; XXX Add more messages maybe. ;; XXX Add more messages maybe.

View File

@ -86,13 +86,13 @@
(define (full-name->name+version spec) (define (full-name->name+version spec)
"Given package specification SPEC with or without output, "Given package specification SPEC with or without output,
return two values: name and version. For example, for SPEC return two values: name and version. For example, for SPEC
\"foo-0.9.1b:lib\", return \"foo\" and \"0.9.1b\"." \"foo@0.9.1b:lib\", return \"foo\" and \"0.9.1b\"."
(let-values (((name version output) (let-values (((name version output)
(package-specification->name+version+output spec))) (package-specification->name+version+output spec)))
(values name version))) (values name version)))
(define (name+version->full-name name version) (define (name+version->full-name name version)
(string-append name "-" version)) (string-append name "@" version))
(define* (make-package-specification name #:optional version output) (define* (make-package-specification name #:optional version output)
(let ((full-name (if version (let ((full-name (if version
@ -263,7 +263,8 @@ Example:
"Return a list of full names of the packages from package INPUTS." "Return a list of full names of the packages from package INPUTS."
(filter-map (match-lambda (filter-map (match-lambda
((_ (? package? package)) ((_ (? package? package))
(package-full-name package)) (make-package-specification (package-name package)
(package-version package)))
((_ (? package? package) output) ((_ (? package? package) output)
(make-package-specification (package-name package) (make-package-specification (package-name package)
(package-version package) (package-version package)
@ -953,10 +954,11 @@ GENERATIONS is a list of generation numbers."
(define (package-location-string id-or-name) (define (package-location-string id-or-name)
"Return a location string of a package with ID-OR-NAME." "Return a location string of a package with ID-OR-NAME."
(and-let* ((package (or (package-by-id id-or-name) (and=> (or (package-by-id id-or-name)
(first (packages-by-name id-or-name)))) (match (packages-by-name id-or-name)
(location (package-location package))) (() #f)
(location->string location))) ((package _ ...) package)))
(compose location->string package-location)))
(define (package-source-derivation->store-path derivation) (define (package-source-derivation->store-path derivation)
"Return a store path of the package source DERIVATION." "Return a store path of the package source DERIVATION."

View File

@ -34,6 +34,7 @@
(require 'guix-guile) (require 'guix-guile)
(require 'guix-entry) (require 'guix-entry)
(require 'guix-utils) (require 'guix-utils)
(require 'guix-hydra)
(require 'guix-hydra-build) (require 'guix-hydra-build)
(require 'guix-read) (require 'guix-read)
(require 'guix-license) (require 'guix-license)
@ -388,7 +389,7 @@ formatted with this string, an action button is inserted.")
:system (button-label btn)))) :system (button-label btn))))
(apply #'guix-hydra-build-get-display (apply #'guix-hydra-build-get-display
'latest args))) 'latest args)))
'job-name (guix-package-name-specification 'job-name (guix-hydra-job-name-specification
(guix-entry-value entry 'name) (guix-entry-value entry 'name)
(guix-entry-value entry 'version)))) (guix-entry-value entry 'version))))
@ -776,7 +777,7 @@ for all ARGS."
(interactive (interactive
(let ((entry (guix-list-current-entry))) (let ((entry (guix-list-current-entry)))
(guix-hydra-build-latest-prompt-args (guix-hydra-build-latest-prompt-args
:job (guix-package-name-specification :job (guix-hydra-job-name-specification
(guix-entry-value entry 'name) (guix-entry-value entry 'name)
(guix-entry-value entry 'version))))) (guix-entry-value entry 'version)))))
(apply #'guix-hydra-latest-builds number args)) (apply #'guix-hydra-latest-builds number args))
@ -945,7 +946,7 @@ See `guix-find-location' for the meaning of DIRECTORY."
(defun guix-packages-by-name (name &optional profile) (defun guix-packages-by-name (name &optional profile)
"Display Guix packages with NAME. "Display Guix packages with NAME.
NAME is a string with name specification. It may optionally contain NAME is a string with name specification. It may optionally contain
a version number. Examples: \"guile\", \"guile-2.0.11\". a version number. Examples: \"guile\", \"guile@2.0.11\".
If PROFILE is nil, use `guix-current-profile'. If PROFILE is nil, use `guix-current-profile'.
Interactively with prefix, prompt for PROFILE." Interactively with prefix, prompt for PROFILE."

View File

@ -166,12 +166,13 @@ GNU_SYSTEM_MODULES = \
gnu/packages/indent.scm \ gnu/packages/indent.scm \
gnu/packages/inklingreader.scm \ gnu/packages/inklingreader.scm \
gnu/packages/inkscape.scm \ gnu/packages/inkscape.scm \
gnu/packages/irssi.scm \ gnu/packages/irc.scm \
gnu/packages/iso-codes.scm \ gnu/packages/iso-codes.scm \
gnu/packages/java.scm \ gnu/packages/java.scm \
gnu/packages/jemalloc.scm \ gnu/packages/jemalloc.scm \
gnu/packages/jrnl.scm \ gnu/packages/jrnl.scm \
gnu/packages/julia.scm \ gnu/packages/julia.scm \
gnu/packages/kde.scm \
gnu/packages/kde-frameworks.scm \ gnu/packages/kde-frameworks.scm \
gnu/packages/key-mon.scm \ gnu/packages/key-mon.scm \
gnu/packages/kodi.scm \ gnu/packages/kodi.scm \
@ -336,7 +337,6 @@ GNU_SYSTEM_MODULES = \
gnu/packages/wdiff.scm \ gnu/packages/wdiff.scm \
gnu/packages/web.scm \ gnu/packages/web.scm \
gnu/packages/webkit.scm \ gnu/packages/webkit.scm \
gnu/packages/weechat.scm \
gnu/packages/wget.scm \ gnu/packages/wget.scm \
gnu/packages/wicd.scm \ gnu/packages/wicd.scm \
gnu/packages/wine.scm \ gnu/packages/wine.scm \
@ -426,7 +426,6 @@ dist_patch_DATA = \
gnu/packages/patches/bigloo-gc-shebangs.patch \ gnu/packages/patches/bigloo-gc-shebangs.patch \
gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-ld-new-dtags.patch \
gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \
gnu/packages/patches/bitlbee-configure-doc-fix.patch \
gnu/packages/patches/byobu-writable-status.patch \ gnu/packages/patches/byobu-writable-status.patch \
gnu/packages/patches/calibre-drop-unrar.patch \ gnu/packages/patches/calibre-drop-unrar.patch \
gnu/packages/patches/calibre-no-updates-dialog.patch \ gnu/packages/patches/calibre-no-updates-dialog.patch \
@ -455,6 +454,7 @@ dist_patch_DATA = \
gnu/packages/patches/duplicity-piped-password.patch \ gnu/packages/patches/duplicity-piped-password.patch \
gnu/packages/patches/duplicity-test_selection-tmp.patch \ gnu/packages/patches/duplicity-test_selection-tmp.patch \
gnu/packages/patches/elfutils-tests-ptrace.patch \ gnu/packages/patches/elfutils-tests-ptrace.patch \
gnu/packages/patches/einstein-build.patch \
gnu/packages/patches/emacs-constants-lisp-like.patch \ gnu/packages/patches/emacs-constants-lisp-like.patch \
gnu/packages/patches/emacs-exec-path.patch \ gnu/packages/patches/emacs-exec-path.patch \
gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ gnu/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
@ -484,7 +484,6 @@ dist_patch_DATA = \
gnu/packages/patches/geoclue-config.patch \ gnu/packages/patches/geoclue-config.patch \
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/ghostscript-runpath.patch \
gnu/packages/patches/gitolite-openssh-6.8-compat.patch \
gnu/packages/patches/glib-networking-ssl-cert-file.patch \ gnu/packages/patches/glib-networking-ssl-cert-file.patch \
gnu/packages/patches/glib-tests-desktop.patch \ gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \ gnu/packages/patches/glib-tests-homedir.patch \
@ -526,10 +525,29 @@ dist_patch_DATA = \
gnu/packages/patches/hydra-disable-darcs-test.patch \ gnu/packages/patches/hydra-disable-darcs-test.patch \
gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \
gnu/packages/patches/icecat-update-graphite2.patch \ gnu/packages/patches/icecat-update-graphite2.patch \
gnu/packages/patches/icecat-update-graphite2-pt2.patch \
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
gnu/packages/patches/icecat-CVE-2015-4477.patch \
gnu/packages/patches/icecat-CVE-2015-7207.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch \
gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch \
gnu/packages/patches/icecat-CVE-2016-1954.patch \
gnu/packages/patches/icecat-CVE-2016-1960.patch \
gnu/packages/patches/icecat-CVE-2016-1961.patch \
gnu/packages/patches/icecat-CVE-2016-1962.patch \
gnu/packages/patches/icecat-CVE-2016-1964.patch \
gnu/packages/patches/icecat-CVE-2016-1965.patch \
gnu/packages/patches/icecat-CVE-2016-1966.patch \
gnu/packages/patches/icecat-CVE-2016-1974.patch \
gnu/packages/patches/icecat-bug-1248851.patch \
gnu/packages/patches/icu4c-CVE-2014-6585.patch \ gnu/packages/patches/icu4c-CVE-2014-6585.patch \
gnu/packages/patches/icu4c-CVE-2015-1270.patch \ gnu/packages/patches/icu4c-CVE-2015-1270.patch \
gnu/packages/patches/icu4c-CVE-2015-4760.patch \ gnu/packages/patches/icu4c-CVE-2015-4760.patch \
gnu/packages/patches/ilmbase-fix-tests.patch \
gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/imagemagick-test-segv.patch \
gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \
gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \
@ -541,7 +559,10 @@ dist_patch_DATA = \
gnu/packages/patches/jasper-CVE-2014-8157.patch \ gnu/packages/patches/jasper-CVE-2014-8157.patch \
gnu/packages/patches/jasper-CVE-2014-8158.patch \ gnu/packages/patches/jasper-CVE-2014-8158.patch \
gnu/packages/patches/jasper-CVE-2014-9029.patch \ gnu/packages/patches/jasper-CVE-2014-9029.patch \
gnu/packages/patches/jasper-CVE-2016-1577.patch \
gnu/packages/patches/jasper-CVE-2016-1867.patch \ gnu/packages/patches/jasper-CVE-2016-1867.patch \
gnu/packages/patches/jasper-CVE-2016-2089.patch \
gnu/packages/patches/jasper-CVE-2016-2116.patch \
gnu/packages/patches/jbig2dec-ignore-testtest.patch \ gnu/packages/patches/jbig2dec-ignore-testtest.patch \
gnu/packages/patches/kmod-module-directory.patch \ gnu/packages/patches/kmod-module-directory.patch \
gnu/packages/patches/ldc-disable-tests.patch \ gnu/packages/patches/ldc-disable-tests.patch \
@ -561,6 +582,7 @@ dist_patch_DATA = \
gnu/packages/patches/libevent-dns-tests.patch \ gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libmtp-devices.patch \ gnu/packages/patches/libmtp-devices.patch \
gnu/packages/patches/liboop-mips64-deplibs-fix.patch \ gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
gnu/packages/patches/libotr-test-auth-fix.patch \
gnu/packages/patches/liblxqt-include.patch \ gnu/packages/patches/liblxqt-include.patch \
gnu/packages/patches/libmad-armv7-thumb-pt1.patch \ gnu/packages/patches/libmad-armv7-thumb-pt1.patch \
gnu/packages/patches/libmad-armv7-thumb-pt2.patch \ gnu/packages/patches/libmad-armv7-thumb-pt2.patch \
@ -614,7 +636,6 @@ dist_patch_DATA = \
gnu/packages/patches/module-init-tools-moduledir.patch \ gnu/packages/patches/module-init-tools-moduledir.patch \
gnu/packages/patches/mumps-build-parallelism.patch \ gnu/packages/patches/mumps-build-parallelism.patch \
gnu/packages/patches/mupen64plus-ui-console-notice.patch \ gnu/packages/patches/mupen64plus-ui-console-notice.patch \
gnu/packages/patches/mupdf-buildsystem-fix.patch \
gnu/packages/patches/mutt-store-references.patch \ gnu/packages/patches/mutt-store-references.patch \
gnu/packages/patches/net-tools-bitrot.patch \ gnu/packages/patches/net-tools-bitrot.patch \
gnu/packages/patches/ngircd-handle-zombies.patch \ gnu/packages/patches/ngircd-handle-zombies.patch \
@ -632,6 +653,7 @@ dist_patch_DATA = \
gnu/packages/patches/openjpeg-use-after-free-fix.patch \ gnu/packages/patches/openjpeg-use-after-free-fix.patch \
gnu/packages/patches/openssl-runpath.patch \ gnu/packages/patches/openssl-runpath.patch \
gnu/packages/patches/openssl-c-rehash.patch \ gnu/packages/patches/openssl-c-rehash.patch \
gnu/packages/patches/openssl-c-rehash-in.patch \
gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ gnu/packages/patches/orpheus-cast-errors-and-includes.patch \
gnu/packages/patches/ots-no-include-missing-file.patch \ gnu/packages/patches/ots-no-include-missing-file.patch \
gnu/packages/patches/patchelf-page-size.patch \ gnu/packages/patches/patchelf-page-size.patch \
@ -639,6 +661,7 @@ dist_patch_DATA = \
gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \
gnu/packages/patches/patch-hurd-path-max.patch \ gnu/packages/patches/patch-hurd-path-max.patch \
gnu/packages/patches/perl-CVE-2015-8607.patch \ gnu/packages/patches/perl-CVE-2015-8607.patch \
gnu/packages/patches/perl-CVE-2016-2381.patch \
gnu/packages/patches/perl-autosplit-default-time.patch \ gnu/packages/patches/perl-autosplit-default-time.patch \
gnu/packages/patches/perl-deterministic-ordering.patch \ gnu/packages/patches/perl-deterministic-ordering.patch \
gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \ gnu/packages/patches/perl-finance-quote-unuse-mozilla-ca.patch \
@ -661,6 +684,7 @@ dist_patch_DATA = \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \ gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \ gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/procmail-ambiguous-getline-debian.patch \
gnu/packages/patches/pt-scotch-build-parallelism.patch \ gnu/packages/patches/pt-scotch-build-parallelism.patch \
gnu/packages/patches/pulseaudio-fix-mult-test.patch \ gnu/packages/patches/pulseaudio-fix-mult-test.patch \
gnu/packages/patches/pulseaudio-longer-test-timeout.patch \ gnu/packages/patches/pulseaudio-longer-test-timeout.patch \
@ -677,6 +701,7 @@ dist_patch_DATA = \
gnu/packages/patches/python-disable-ssl-test.patch \ gnu/packages/patches/python-disable-ssl-test.patch \
gnu/packages/patches/python-fix-tests.patch \ gnu/packages/patches/python-fix-tests.patch \
gnu/packages/patches/python-ipython-inputhook-ctype.patch \ gnu/packages/patches/python-ipython-inputhook-ctype.patch \
gnu/packages/patches/python-rarfile-fix-tests.patch \
gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ gnu/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \
gnu/packages/patches/python-configobj-setuptools.patch \ gnu/packages/patches/python-configobj-setuptools.patch \
gnu/packages/patches/python-paste-remove-website-test.patch \ gnu/packages/patches/python-paste-remove-website-test.patch \
@ -702,7 +727,6 @@ dist_patch_DATA = \
gnu/packages/patches/sed-hurd-path-max.patch \ gnu/packages/patches/sed-hurd-path-max.patch \
gnu/packages/patches/scheme48-tests.patch \ gnu/packages/patches/scheme48-tests.patch \
gnu/packages/patches/scotch-test-threading.patch \ gnu/packages/patches/scotch-test-threading.patch \
gnu/packages/patches/scribus-qobject.patch \
gnu/packages/patches/sdl-libx11-1.6.patch \ gnu/packages/patches/sdl-libx11-1.6.patch \
gnu/packages/patches/serf-comment-style-fix.patch \ gnu/packages/patches/serf-comment-style-fix.patch \
gnu/packages/patches/serf-deflate-buckets-test-fix.patch \ gnu/packages/patches/serf-deflate-buckets-test-fix.patch \
@ -746,6 +770,7 @@ dist_patch_DATA = \
gnu/packages/patches/util-linux-tests.patch \ gnu/packages/patches/util-linux-tests.patch \
gnu/packages/patches/upower-builddir.patch \ gnu/packages/patches/upower-builddir.patch \
gnu/packages/patches/valgrind-enable-arm.patch \ gnu/packages/patches/valgrind-enable-arm.patch \
gnu/packages/patches/vorbis-tools-CVE-2015-6749.patch \
gnu/packages/patches/vpnc-script.patch \ gnu/packages/patches/vpnc-script.patch \
gnu/packages/patches/vtk-mesa-10.patch \ gnu/packages/patches/vtk-mesa-10.patch \
gnu/packages/patches/w3m-libgc.patch \ gnu/packages/patches/w3m-libgc.patch \

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -91,7 +91,8 @@
(mkdir-p home) (mkdir-p home)
(for-each (lambda (file) (for-each (lambda (file)
(let ((target (string-append home "/" file))) (let ((target (string-append home "/" file)))
(copy-file (string-append directory "/" file) target) (copy-recursively (string-append directory "/" file)
target)
(make-file-writable target))) (make-file-writable target)))
files))) files)))

View File

@ -159,7 +159,7 @@ as created and modified at the Epoch."
;; read-only store. ;; read-only store.
(unless (eq? (stat:type s) 'symlink) (unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0)))) (utime file 0 0 0 0))))
(find-files directory ""))) (find-files directory #:directories? #t)))
(define* (register-closure store closure (define* (register-closure store closure
#:key (deduplicate? #t)) #:key (deduplicate? #t))

View File

@ -1,8 +1,9 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,6 +24,9 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix ui) #:use-module (guix ui)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module ((guix build utils)
#:select ((package-name->name+version
. hyphen-separated-name->name+version)))
#:use-module (ice-9 ftw) #:use-module (ice-9 ftw)
#:use-module (ice-9 vlist) #:use-module (ice-9 vlist)
#:use-module (ice-9 match) #:use-module (ice-9 match)
@ -276,56 +280,63 @@ return its return value."
(lambda (k signum) (lambda (k signum)
(handler signum)))) (handler signum))))
(define (specification->package spec)
"Return a package matching SPEC. SPEC may be a package name, or a package ;;;
name followed by a hyphen and a version number. If the version number is not ;;; Package specification.
present, return the preferred newest version." ;;;
(let-values (((name version)
(package-name->name+version spec))) (define* (%find-package spec name version #:key fallback?)
(match (find-best-packages-by-name name version) (match (find-best-packages-by-name name version)
((p) ; one match ((pkg . pkg*)
p) (unless (null? pkg*)
((p x ...) ; several matches
(warning (_ "ambiguous package specification `~a'~%") spec) (warning (_ "ambiguous package specification `~a'~%") spec)
(warning (_ "choosing ~a from ~a~%") (warning (_ "choosing ~a from ~a~%")
(package-full-name p) (package-full-name pkg)
(location->string (package-location p))) (location->string (package-location pkg))))
p) (when fallback?
(_ ; no matches (warning (_ "deprecated NAME-VERSION syntax; \
(if version use NAME@VERSION instead~%")))
(leave (_ "~A: package not found for version ~a~%") pkg)
name version) (_
(leave (_ "~A: unknown package~%") name)))))) (if version
(leave (_ "~A: package not found for version ~a~%") name version)
(if (not fallback?)
;; XXX: Fallback to the older specification style with an hyphen
;; between NAME and VERSION, for backward compatibility.
(call-with-values
(lambda ()
(hyphen-separated-name->name+version name))
(cut %find-package spec <> <> #:fallback? #t))
;; The fallback case didn't find anything either, so bail out.
(leave (_ "~A: unknown package~%") name))))))
(define (specification->package spec)
"Return a package matching SPEC. SPEC may be a package name, or a package
name followed by an at-sign and a version number. If the version number is not
present, return the preferred newest version."
(let-values (((name version) (package-name->name+version spec)))
(%find-package spec name version)))
(define* (specification->package+output spec #:optional (output "out")) (define* (specification->package+output spec #:optional (output "out"))
"Return the package and output specified by SPEC, or #f and #f; SPEC may "Return the package and output specified by SPEC, or #f and #f; SPEC may
optionally contain a version number and an output name, as in these examples: optionally contain a version number and an output name, as in these examples:
guile guile
guile-2.0.9 guile@2.0.9
guile:debug guile:debug
guile-2.0.9:debug guile@2.0.9:debug
If SPEC does not specify a version number, return the preferred newest If SPEC does not specify a version number, return the preferred newest
version; if SPEC does not specify an output, return OUTPUT." version; if SPEC does not specify an output, return OUTPUT."
(define (ensure-output p sub-drv)
(if (member sub-drv (package-outputs p))
sub-drv
(leave (_ "package `~a' lacks output `~a'~%")
(package-full-name p)
sub-drv)))
(let-values (((name version sub-drv) (let-values (((name version sub-drv)
(package-specification->name+version+output spec output))) (package-specification->name+version+output spec output)))
(match (find-best-packages-by-name name version) (match (%find-package spec name version)
((p) (#f
(values p (ensure-output p sub-drv))) (values #f #f))
((p p* ...) (package
(warning (_ "ambiguous package specification `~a'~%") (if (member sub-drv (package-outputs package))
spec) (values package sub-drv)
(warning (_ "choosing ~a from ~a~%") (leave (_ "package `~a' lacks output `~a'~%")
(package-full-name p) (package-full-name package)
(location->string (package-location p))) sub-drv))))))
(values p (ensure-output p sub-drv)))
(()
(leave (_ "~a: package not found~%") spec)))))

View File

@ -9,6 +9,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -424,7 +425,7 @@ connection alive.")
(bind-minor-version "9") (bind-minor-version "9")
(bind-patch-version "8") (bind-patch-version "8")
(bind-release-type "-P") (bind-release-type "-P")
(bind-release-version "3") (bind-release-version "4")
(bind-version (string-append bind-major-version (bind-version (string-append bind-major-version
"." "."
bind-minor-version bind-minor-version
@ -540,7 +541,7 @@ connection alive.")
"/bind-" bind-version ".tar.gz")) "/bind-" bind-version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"01qa17479jghy90lb2j8b1bpg3ay6k6aaajpigyirwzsvyc9yj3a")))) "1wl9kl0630dc1qjrf7fnp8cscagfm5qgmisi0zhr1p6iwi9bil2y"))))
;; When cross-compiling, we need the cross Coreutils and sed. ;; When cross-compiling, we need the cross Coreutils and sed.
;; Otherwise just use those from %FINAL-INPUTS. ;; Otherwise just use those from %FINAL-INPUTS.

View File

@ -67,7 +67,7 @@ multiplication routines such as ToomCook and the FFT.")
(define-public cm (define-public cm
(package (package
(name "cm") (name "cm")
(version "0.2.1") (version "0.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -75,7 +75,7 @@ multiplication routines such as ToomCook and the FFT.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1r5dx5qy0ka2sq26n9jll9iy4sjqg0jp5r3jnbjhpgxvmj8jbhq8")))) "1nf5kr0nqmhbzrsrinky18z0ighjpsmb5cr8zyg8jf04bfbyrfmc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("mpfrcx" ,mpfrcx) `(("mpfrcx" ,mpfrcx)
@ -89,7 +89,7 @@ imaginary quadratic number fields and of elliptic curves with complex
multiplication via floating point approximations. It consists of libraries multiplication via floating point approximations. It consists of libraries
that can be called from within a C program and of executable command that can be called from within a C program and of executable command
line applications.") line applications.")
(license license:gpl2+) (license license:gpl3+)
(home-page "http://cm.multiprecision.org/"))) (home-page "http://cm.multiprecision.org/")))
(define-public fplll (define-public fplll

View File

@ -139,3 +139,11 @@ dictionaries, including personal ones.")
#:sha256 #:sha256
(base32 (base32
"1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v"))) "1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v")))
(define-public aspell-dict-nl
(aspell-dictionary "nl" "Dutch"
#:version "0.50-2"
#:prefix "aspell-"
#:sha256
(base32
"0ffb87yjsh211hllpc4b9khqqrblial4pzi1h9r3v465z1yhn3j4")))

View File

@ -80,6 +80,17 @@
(base32 (base32
"1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0")))) "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
`(#:configure-flags '("--enable-qt5")
#:phases
(modify-phases %standard-phases
;; Insert an extra space between linker flags.
(add-before 'configure 'add-missing-space
(lambda _
(substitute* "configure"
(("LIBS\\+=\\$LIBSsave") "LIBS+=\" $LIBSsave\"")
(("CFLAGS\\+=\\$CFLAGSsave") "CFLAGS+=\" $CFLAGSsave\""))
#t)))))
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to ;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
@ -89,7 +100,7 @@
("jack" ,jack-1) ("jack" ,jack-1)
("ladspa" ,ladspa) ("ladspa" ,ladspa)
("liblo" ,liblo) ("liblo" ,liblo)
("qt" ,qt-4))) ("qt" ,qt)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(home-page "http://alsamodular.sourceforge.net/") (home-page "http://alsamodular.sourceforge.net/")
@ -395,6 +406,319 @@ language and software synthesizer.")
ALSA PCM devices.") ALSA PCM devices.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public amb-plugins
(package
(name "amb-plugins")
(version "0.8.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/AMB-plugins-"
version ".tar.bz2"))
(sha256
(base32
"0x4blm4visjqj0ndqr0cg776v3b7lvplpc8cgi9n51llhavn0jpl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory-and-tool-paths
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr/lib/ladspa")
(string-append (assoc-ref outputs "out") "/lib/ladspa"))
(("/usr/bin/install") (which "install"))
(("/bin/rm") "#"))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA ambisonics plugins")
(description
"The AMB plugins are a set of LADSPA ambisonics plugins, mainly to be
used within Ardour. Features include: mono and stereo to B-format panning,
horizontal rotator, square, hexagon and cube decoders.")
(license license:gpl2+)))
(define-public mcp-plugins
(package
(name "mcp-plugins")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/MCP-plugins-"
version ".tar.bz2"))
(sha256
(base32
"06a9r1l85jmg7l1cvc3788mk8ra0xagjfy1rmhw3b80y4n0vlnvc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "Chorus, phaser, and vintage high-pass and low-pass filters")
(description
"This package provides various LADSPA plugins. @code{cs_chorus} and
@code{cs_phaser} provide chorus and phaser effects, respectively;
@code{mvclpf24} provides four implementations of the low-pass filter used in
vintage Moog synthesizers; @code{mvchpf24} is based on the voltage-controlled
high-pass filter by Robert Moog. The filters attempt to accurately emulate
the non-linear circuit elements of their original analog counterparts.")
(license license:gpl2+)))
(define-public rev-plugins
(package
(name "rev-plugins")
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/REV-plugins-"
version ".tar.bz2"))
(sha256
(base32
"1ikpinxm00pkfi259bnkzhsy3miagrjgdihaaf5x4v7zac29j3g7"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA reverb plugin")
(description
"This package provides a stereo reverb LADSPA plugin based on the
well-known greverb.")
(license license:gpl2+)))
(define-public fil-plugins
(package
(name "fil-plugins")
(version "0.3.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/FIL-plugins-"
version ".tar.bz2"))
(sha256
(base32
"1scfv9j7jrp50r565haa4rvxn1vk2ss86xssl5qgcr8r45qz42qw"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA four-band parametric equalizer plugin")
(description
"This package provides a LADSPA plugin for a four-band parametric
equalizer. Each section has an active/bypass switch, frequency, bandwidth and
gain controls. There is also a global bypass switch and gain control.
The 2nd order resonant filters are implemented using a Mitra-Regalia style
lattice filter, which is stable even while parameters are being changed.
All switches and controls are internally smoothed, so they can be used 'live'
without any clicks or zipper noises. This makes this plugin suitable for use
in systems that allow automation of plugin control ports, such as Ardour, or
for stage use.")
(license license:gpl2+)))
(define-public ste-plugins
(package
(name "ste-plugins")
(version "0.0.2")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/STE-plugins-"
version ".tar.bz2"))
(sha256
(base32
"0s3c9w5xihs87cnd1lh9xgj3maabjdyh6bl766qp5lhkg3ax8zy6"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA stereo width plugin")
(description
"This package provides a LADSPA plugin to manipulate the stereo width of
audio signals.")
(license license:gpl2+)))
(define-public vco-plugins
(package
(name "vco-plugins")
(version "0.3.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/VCO-plugins-"
version ".tar.bz2"))
(sha256
(base32
"1xzqdg3b07r7zww05y9bb737l9dxvfkv28m3fyak1aazaci3rsgl"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out"))
(("/bin/cp") (which "cp")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA plugin for synthesizer oscillators")
(description
"The @code{blvco} LADSPA plugin provides three anti-aliased oscillators:
@enumerate
@item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum
@item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum
@item Rec-VCO, a square / rectange oscillator
@end enumerate\n
All oscillators are low-pass filtered to provide waveforms similar to the
output of analog synthesizers such as the Moog Voyager.")
(license license:gpl2+)))
(define-public wah-plugins
(package
(name "wah-plugins")
(version "0.1.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/WAH-plugins-"
version ".tar.bz2"))
(sha256
(base32
"1wkbjarxdhjixkh7d5abralj11dj2xxg644fz3ycd7qyfgfvjfgd"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA Autowah effect plugin")
(description
"This package provides a LADSPA plugin for a Wah effect with envelope
follower.")
(license license:gpl2+)))
(define-public g2reverb
(package
(name "g2reverb")
(version "0.7.1")
(source (origin
(method url-fetch)
(uri (string-append
"http://kokkinizita.linuxaudio.org"
"/linuxaudio/downloads/g2reverb-"
version ".tar.bz2"))
(sha256
(base32
"18wb8vj1kky5glr76s34awbi8qzplsmf3wjbd7a12hfv4j0bkwrj"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
;; no configure script
(delete 'configure)
(add-before 'install 'prepare-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/lib/ladspa"))
#t))
(add-after 'unpack 'override-target-directory
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "Makefile"
(("/usr") (assoc-ref outputs "out")))
#t)))))
(home-page "http://kokkinizita.linuxaudio.org")
(synopsis "LADSPA stereo reverb plugin")
(description
"This package provides a LADSPA plugin for a stereo reverb effect.")
(license license:gpl2+)))
(define-public fluidsynth (define-public fluidsynth
(package (package
(name "fluidsynth") (name "fluidsynth")
@ -803,7 +1127,6 @@ synchronous execution of all clients, and low latency operation.")
("suil" ,suil) ("suil" ,suil)
("gtk" ,gtk+-2) ("gtk" ,gtk+-2)
("gtkmm" ,gtkmm-2) ("gtkmm" ,gtkmm-2)
("qt" ,qt-4)
("jack" ,jack-1))) ("jack" ,jack-1)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -2063,3 +2386,38 @@ module to handle that particular file type.")
(home-page "http://etree.org/shnutils/shntool/") (home-page "http://etree.org/shnutils/shntool/")
;; 'install-sh' bears the x11 license ;; 'install-sh' bears the x11 license
(license (list license:gpl2+ license:x11)))) (license (list license:gpl2+ license:x11))))
(define-public dcadec
(package
(name "dcadec")
(version "0.2.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/foo86/dcadec/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0i0dpypgqkhhi4v1fmsp2way6w9kbcix3c7q79pmg39yvrzj17gd"))))
(build-system gnu-build-system)
(arguments
;; Test files are missing: https://github.com/foo86/dcadec/issues/53
'(#:tests? #f
#:make-flags
(list "CC=gcc"
;; Build shared library.
"CONFIG_SHARED=1"
(string-append "PREFIX=" (assoc-ref %outputs "out"))
;; Set proper runpath.
(string-append "LDFLAGS=-Wl,-rpath="
(assoc-ref %outputs "out")
"/lib"))
#:phases
(modify-phases %standard-phases
;; No configure script, just a hand-written Makefile.
(delete 'configure))))
(synopsis "DTS Coherent Acoustics decoder")
(description "Dcadec is a DTS Coherent Acoustics surround sound decoder
with support for HD extensions.")
(home-page "https://github.com/foo86/dcadec")
(license license:lgpl2.1+)))

View File

@ -1,9 +1,9 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,6 +26,7 @@
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system ant)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
@ -37,11 +38,13 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpio) #:use-module (gnu packages cpio)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages doxygen) #:use-module (gnu packages doxygen)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages gawk) #:use-module (gnu packages gawk)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
@ -247,6 +250,47 @@ intervals from multiple files in widely-used genomic file formats such as BAM,
BED, GFF/GTF, VCF.") BED, GFF/GTF, VCF.")
(license license:gpl2))) (license license:gpl2)))
(define-public bioawk
(package
(name "bioawk")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/lh3/bioawk/archive/v"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1daizxsk17ahi9n58fj8vpgwyhzrzh54bzqhanjanp88kgrz7gjw"))))
(build-system gnu-build-system)
(inputs
`(("zlib" ,zlib)))
(native-inputs
`(("bison" ,bison)))
(arguments
`(#:tests? #f ; There are no tests to run.
;; Bison must generate files, before other targets can build.
#:parallel-build? #f
#:phases
(modify-phases %standard-phases
(delete 'configure) ; There is no configure phase.
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/share/man/man1")))
(mkdir-p man)
(copy-file "awk.1" (string-append man "/bioawk.1"))
(install-file "bioawk" bin)))))))
(home-page "https://github.com/lh3/bioawk")
(synopsis "AWK with bioinformatics extensions")
(description "Bioawk is an extension to Brian Kernighan's awk, adding the
support of several common biological data formats, including optionally gzip'ed
BED, GFF, SAM, VCF, FASTA/Q and TAB-delimited formats with column names. It
also adds a few built-in functions and a command line option to use TAB as the
input/output delimiter. When the new functionality is not used, bioawk is
intended to behave exactly the same as the original BWK awk.")
(license license:x11)))
(define-public python2-pybedtools (define-public python2-pybedtools
(package (package
(name "python2-pybedtools") (name "python2-pybedtools")
@ -535,10 +579,11 @@ confidence to have in an alignment.")
(snippet (snippet
`(begin `(begin
;; Remove bundled boost, pigz, zlib, and .git directory ;; Remove bundled boost, pigz, zlib, and .git directory
;; FIXME: also remove bundled sources for google-sparsehash, ;; FIXME: also remove bundled sources for murmurhash3 and
;; murmurhash3, kmc once packaged. ;; kmc once packaged.
(delete-file-recursively "boost") (delete-file-recursively "boost")
(delete-file-recursively "pigz") (delete-file-recursively "pigz")
(delete-file-recursively "google-sparsehash")
(delete-file-recursively "zlib") (delete-file-recursively "zlib")
(delete-file-recursively ".git") (delete-file-recursively ".git")
#t)))) #t))))
@ -588,6 +633,7 @@ confidence to have in an alignment.")
(inputs (inputs
`(("openmpi" ,openmpi) `(("openmpi" ,openmpi)
("boost" ,boost) ("boost" ,boost)
("sparsehash" ,sparsehash)
("pigz" ,pigz) ("pigz" ,pigz)
("zlib" ,zlib))) ("zlib" ,zlib)))
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
@ -774,6 +820,35 @@ and more accurate. BWA-MEM also has better performance than BWA-backtrack for
70-100bp Illumina reads.") 70-100bp Illumina reads.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public bwa-pssm
(package (inherit bwa)
(name "bwa-pssm")
(version "0.5.11")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/pkerpedjiev/bwa-pssm/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"02p7mpbs4mlxmn84g2x4ghak638vbj4lqix2ipx5g84pz9bhdavg"))))
(build-system gnu-build-system)
(inputs
`(("gdsl" ,gdsl)
("zlib" ,zlib)
("perl" ,perl)))
(home-page "http://bwa-pssm.binf.ku.dk/")
(synopsis "Burrows-Wheeler transform-based probabilistic short read mapper")
(description
"BWA-PSSM is a probabilistic short genomic sequence read aligner based on
the use of @dfn{position specific scoring matrices} (PSSM). Like many of the
existing aligners it is fast and sensitive. Unlike most other aligners,
however, it is also adaptible in the sense that one can direct the alignment
based on known biases within the data set. It is coded as a modification of
the original BWA alignment program and shares the genome index structure as
well as many of the command line options.")
(license license:gpl3+)))
(define-public python2-bx-python (define-public python2-bx-python
(package (package
(name "python2-bx-python") (name "python2-bx-python")
@ -809,6 +884,91 @@ and more accurate. BWA-MEM also has better performance than BWA-backtrack for
multiple sequence alignments.") multiple sequence alignments.")
(license license:expat))) (license license:expat)))
(define-public python-pysam
(package
(name "python-pysam")
(version "0.8.4")
(source (origin
(method url-fetch)
(uri (pypi-uri "pysam" version))
(sha256
(base32
"1slx5mb94mzm5qzk52q270sab0sar95j67w1g1k452nz3s9j7krh"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; tests are excluded in the manifest
#:phases
(alist-cons-before
'build 'set-flags
(lambda _
(setenv "LDFLAGS" "-lncurses")
(setenv "CFLAGS" "-D_CURSES_LIB=1"))
%standard-phases)))
(inputs
`(("ncurses" ,ncurses)
("zlib" ,zlib)))
(native-inputs
`(("python-cython" ,python-cython)
("python-setuptools" ,python-setuptools)))
(home-page "https://github.com/pysam-developers/pysam")
(synopsis "Python bindings to the SAMtools C API")
(description
"Pysam is a Python module for reading and manipulating files in the
SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
also includes an interface for tabix.")
(license license:expat)))
(define-public python2-pysam
(package-with-python2 python-pysam))
(define-public cd-hit
(package
(name "cd-hit")
(version "4.6.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/weizhongli/cdhit"
"/releases/download/V" version
"/cd-hit-v" version "-2016-0304.tar.gz"))
(sha256
(base32
"15db0hq38yyifwqx9b6l34z14jcq576dmjavhj8a426c18lvnhp3"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; there are no tests
#:make-flags
;; Executables are copied directly to the PREFIX.
(list (string-append "PREFIX=" (assoc-ref %outputs "out") "/bin"))
#:phases
(modify-phases %standard-phases
;; No "configure" script
(delete 'configure)
;; Remove sources of non-determinism
(add-after 'unpack 'be-timeless
(lambda _
(substitute* "cdhit-utility.c++"
((" \\(built on \" __DATE__ \"\\)") ""))
(substitute* "cdhit-common.c++"
(("__DATE__") "\"0\"")
(("\", %s, \" __TIME__ \"\\\\n\", date") ""))
#t))
;; The "install" target does not create the target directory
(add-before 'install 'create-target-dir
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
#t)))))
(inputs
`(("perl" ,perl)))
(home-page "http://weizhongli-lab.org/cd-hit/")
(synopsis "Cluster and compare protein or nucleotide sequences")
(description
"CD-HIT is a program for clustering and comparing protein or nucleotide
sequences. CD-HIT is designed to be fast and handle extremely large
databases.")
;; The manual says: "It can be copied under the GNU General Public License
;; version 2 (GPLv2)."
(license license:gpl2)))
(define-public clipper (define-public clipper
(package (package
(name "clipper") (name "clipper")
@ -848,6 +1008,46 @@ multiple sequence alignments.")
"CLIPper is a tool to define peaks in CLIP-seq datasets.") "CLIPper is a tool to define peaks in CLIP-seq datasets.")
(license license:gpl2))) (license license:gpl2)))
(define-public codingquarry
(package
(name "codingquarry")
(version "2.0")
(source (origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/codingquarry/CodingQuarry_v"
version ".tar.gz"))
(sha256
(base32
"0115hkjflsnfzn36xppwf9h9avfxlavr43djqmshkkzbgjzsz60i"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; no "check" target
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(doc (string-append out "/share/doc/codingquarry")))
(install-file "INSTRUCTIONS.pdf" doc)
(copy-recursively "QuarryFiles"
(string-append out "/QuarryFiles"))
(install-file "CodingQuarry" bin)
(install-file "CufflinksGTF_to_CodingQuarryGFF3.py" bin)))))))
(inputs `(("openmpi" ,openmpi)))
(native-search-paths
(list (search-path-specification
(variable "QUARRY_PATH")
(files '("QuarryFiles")))))
(native-inputs `(("python" ,python-2))) ; Only Python 2 is supported
(synopsis "Fungal gene predictor")
(description "CodingQuarry is a highly accurate, self-training GHMM fungal
gene predictor designed to work with assembled, aligned RNA-seq transcripts.")
(home-page "https://sourceforge.net/projects/codingquarry/")
(license license:gpl3+)))
(define-public couger (define-public couger
(package (package
(name "couger") (name "couger")
@ -1129,28 +1329,70 @@ other types of unwanted sequence from high-throughput sequencing reads.")
files.") files.")
(license license:expat))) (license license:expat)))
(define-public python-pybigwig
(package
(name "python-pybigwig")
(version "0.2.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "pyBigWig" version))
(sha256
(base32
"0yrpdxg3y0sny25x4w22lv1k47jzccqjmg7j4bp0hywklvp0hg7d"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled libBigWig sources
(delete-file-recursively "libBigWig")))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'link-with-libBigWig
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "setup.py"
(("libs=\\[") "libs=[\"BigWig\", "))
#t)))))
(inputs
`(("libbigwig" ,libbigwig)
("zlib" ,zlib)
("curl" ,curl)))
(home-page "https://github.com/dpryan79/pyBigWig")
(synopsis "Access bigWig files in Python using libBigWig")
(description
"This package provides Python bindings to the libBigWig library for
accessing bigWig files.")
(license license:expat)))
(define-public python2-pybigwig
(let ((pybigwig (package-with-python2 python-pybigwig)))
(package (inherit pybigwig)
(native-inputs
`(("python-setuptools" ,python2-setuptools))))))
(define-public deeptools (define-public deeptools
(package (package
(name "deeptools") (name "deeptools")
(version "1.5.11") (version "2.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append "https://github.com/fidelram/deepTools/"
"https://github.com/fidelram/deepTools/archive/" "archive/" version ".tar.gz"))
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1kaagygcbvjs9sxd9cqmskd02wcfp9imvb735r087w7hwqpvz6fs")))) "1nmfin0zjdby3vay3r4flvz94dr6qjhj41ax4yz3vx13j6wz8izd"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2)) `(#:python ,python-2))
(propagated-inputs (inputs
`(("python-scipy" ,python2-scipy) `(("python-scipy" ,python2-scipy)
("python-numpy" ,python2-numpy) ("python-numpy" ,python2-numpy)
("python-numpydoc" ,python2-numpydoc)
("python-matplotlib" ,python2-matplotlib) ("python-matplotlib" ,python2-matplotlib)
("python-bx-python" ,python2-bx-python) ("python-bx-python" ,python2-bx-python)
("python-pysam" ,python2-pysam))) ("python-pysam" ,python2-pysam)
("python-pybigwig" ,python2-pybigwig)))
(native-inputs (native-inputs
`(("python-mock" ,python2-mock) ;for tests `(("python-mock" ,python2-mock) ;for tests
("python-pytz" ,python2-pytz) ;for tests ("python-pytz" ,python2-pytz) ;for tests
@ -1851,24 +2093,17 @@ from high-throughput sequencing assays.")
(snippet '(substitute* "build.xml" (snippet '(substitute* "build.xml"
(("failifexecutionfails=\"true\"") (("failifexecutionfails=\"true\"")
"failifexecutionfails=\"false\""))))) "failifexecutionfails=\"false\"")))))
(build-system gnu-build-system) (build-system ant-build-system)
(arguments (arguments
`(#:modules ((srfi srfi-1) `(#:tests? #f ; test require Internet access
(guix build gnu-build-system) #:make-flags
(guix build utils)) (list (string-append "-Ddist=" (assoc-ref %outputs "out")
#:phases (alist-replace "/share/java/htsjdk/"))
'build #:build-target "all"
(lambda _ #:phases
(setenv "JAVA_HOME" (assoc-ref %build-inputs "jdk")) (modify-phases %standard-phases
(zero? (system* "ant" "all" ;; The build phase also installs the jars
(string-append "-Ddist=" (delete 'install))))
(assoc-ref %outputs "out")
"/share/java/htsjdk/"))))
(fold alist-delete %standard-phases
'(configure install check)))))
(native-inputs
`(("ant" ,ant)
("jdk" ,icedtea "jdk")))
(home-page "http://samtools.github.io/htsjdk/") (home-page "http://samtools.github.io/htsjdk/")
(synopsis "Java API for high-throughput sequencing data (HTS) formats") (synopsis "Java API for high-throughput sequencing data (HTS) formats")
(description (description
@ -2405,6 +2640,44 @@ the phenotype as it models the data.")
generated using the PacBio Iso-Seq protocol.") generated using the PacBio Iso-Seq protocol.")
(license license:bsd-3)))) (license license:bsd-3))))
(define-public pyicoteo
(package
(name "pyicoteo")
(version "2.0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/regulatorygenomicsupf/"
"pyicoteo/get/v" version ".tar.bz2"))
(file-name (string-append name "-" version ".tar.bz2"))
(sha256
(base32
"0d6087f29xp8wxwlj111c3sylli98n0l8ry58c51ixzq0zfm50wa"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; does not work with Python 3
#:tests? #f)) ; there are no tests
(inputs
`(("python2-matplotlib" ,python2-matplotlib)))
(home-page "https://bitbucket.org/regulatorygenomicsupf/pyicoteo")
(synopsis "Analyze high-throughput genetic sequencing data")
(description
"Pyicoteo is a suite of tools for the analysis of high-throughput genetic
sequencing data. It works with genomic coordinates. There are currently six
different command-line tools:
@enumerate
@item pyicoregion: for generating exploratory regions automatically;
@item pyicoenrich: for differential enrichment between two conditions;
@item pyicoclip: for calling CLIP-Seq peaks without a control;
@item pyicos: for genomic coordinates manipulation;
@item pyicoller: for peak calling on punctuated ChIP-Seq;
@item pyicount: to count how many reads from N experiment files overlap in a
region file;
@item pyicotrocol: to combine operations from pyicoteo.
@end enumerate\n")
(license license:gpl3+)))
(define-public prodigal (define-public prodigal
(package (package
(name "prodigal") (name "prodigal")
@ -3664,16 +3937,38 @@ barplots or heatmaps.")
packages.") packages.")
(license license:artistic2.0))) (license license:artistic2.0)))
(define-public r-dnacopy
(package
(name "r-dnacopy")
(version "1.44.0")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "DNAcopy" version))
(sha256
(base32
"1c1px4rbr36xx929hp59k7ca9k5ab66qmn8k63fk13278ncm6h66"))))
(properties
`((upstream-name . "DNAcopy")))
(build-system r-build-system)
(inputs
`(("gfortran" ,gfortran)))
(home-page "https://bioconductor.org/packages/DNAcopy")
(synopsis "Implementation of a circular binary segmentation algorithm")
(description "This package implements the circular binary segmentation (CBS)
algorithm to segment DNA copy number data and identify genomic regions with
abnormal copy number.")
(license license:gpl2+)))
(define-public r-s4vectors (define-public r-s4vectors
(package (package
(name "r-s4vectors") (name "r-s4vectors")
(version "0.8.5") (version "0.8.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "S4Vectors" version)) (uri (bioconductor-uri "S4Vectors" version))
(sha256 (sha256
(base32 (base32
"10f4jxwlwsiy7zhb3kgp6anid0d7wkvrrljl80r3nhx38yr24l5k")))) "12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66"))))
(properties (properties
`((upstream-name . "S4Vectors") `((upstream-name . "S4Vectors")
(r-repository . bioconductor))) (r-repository . bioconductor)))
@ -3695,13 +3990,13 @@ S4Vectors package itself.")
(define-public r-iranges (define-public r-iranges
(package (package
(name "r-iranges") (name "r-iranges")
(version "2.4.6") (version "2.4.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "IRanges" version)) (uri (bioconductor-uri "IRanges" version))
(sha256 (sha256
(base32 (base32
"00x0266sys1fc5ipa639y84p6m6mgspk2xb099vcwmd3w4hypj9d")))) "0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl"))))
(properties (properties
`((upstream-name . "IRanges") `((upstream-name . "IRanges")
(r-repository . bioconductor))) (r-repository . bioconductor)))
@ -4141,7 +4436,9 @@ extracting the desired features in a convenient format.")
(version "3.2.2") (version "3.2.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GO.db" version)) (uri (string-append "http://www.bioconductor.org/packages/"
"release/data/annotation/src/contrib/GO.db_"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"00gariag9ampz82dh0xllrc26r85d7vdcwc0vca5zdy147rwxr7f")))) "00gariag9ampz82dh0xllrc26r85d7vdcwc0vca5zdy147rwxr7f"))))
@ -4453,3 +4750,44 @@ Using a hidden Markov model, R/qtl allows to estimate genetic maps, to
identify genotyping errors, and to perform single-QTL and two-QTL, identify genotyping errors, and to perform single-QTL and two-QTL,
two-dimensional genome scans.") two-dimensional genome scans.")
(license license:gpl3))) (license license:gpl3)))
(define-public pepr
(package
(name "pepr")
(version "1.0.9")
(source (origin
(method url-fetch)
(uri (string-append "https://pypi.python.org/packages/source/P"
"/PePr/PePr-" version ".tar.gz"))
(sha256
(base32
"0qxjfdpl1b1y53nccws2d85f6k74zwmx8y8sd9rszcqhfayx6gdx"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; python2 only
#:tests? #f ; no tests included
#:phases
(modify-phases %standard-phases
;; When setuptools is used a ".egg" archive is generated and
;; installed. This makes it hard to actually run PePr. This issue
;; has been reported upstream:
;; https://github.com/shawnzhangyx/PePr/issues/9
(add-after 'unpack 'disable-egg-generation
(lambda _
(substitute* "setup.py"
(("from setuptools import setup")
"from distutils.core import setup"))
#t)))))
(propagated-inputs
`(("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy)
("python2-pysam" ,python2-pysam)))
(home-page "https://code.google.com/p/pepr-chip-seq/")
(synopsis "Peak-calling and prioritization pipeline for ChIP-Seq data")
(description
"PePr is a ChIP-Seq peak calling or differential binding analysis tool
that is primarily designed for data with biological replicates. It uses a
negative binomial distribution to model the read counts among the samples in
the same group, and look for consistent differences between ChIP and control
group or two ChIP groups run under different conditions.")
(license license:gpl3+)))

View File

@ -202,7 +202,7 @@ interface, for the Transmission BitTorrent daemon.")
(define-public aria2 (define-public aria2
(package (package
(name "aria2") (name "aria2")
(version "1.20.0") (version "1.21.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/tatsuhiro-t/aria2/" (uri (string-append "https://github.com/tatsuhiro-t/aria2/"
@ -210,7 +210,7 @@ interface, for the Transmission BitTorrent daemon.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1l4gzz3yr0cl6a9xdy7843c5sb7afyq0i80wi2hasfpfdx5k95mz")))) "1035rzx9y7qv4p7cv04f461343dxha7ikprch059x2fci8n5yp12"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--enable-libaria2") `(#:configure-flags '("--enable-libaria2")

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -44,14 +44,14 @@
(define-public libcddb (define-public libcddb
(package (package
(name "libcddb") (name "libcddb")
(version "1.3.0") (version "1.3.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/libcddb/libcddb-" (uri (string-append "mirror://sourceforge/libcddb/libcddb-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1y8bfy12dwm41m1jahayn3v47dm34fmz7m9cjxyh7xcw6fp3lzaf")))) "0fr21a7vprdyy1bq6s99m0x420c9jm5fipsd63pqv8qyfkhhxkim"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments '(#:tests? #f)) ; tests rely on access to external servers (arguments '(#:tests? #f)) ; tests rely on access to external servers
(home-page "http://libcddb.sourceforge.net/") (home-page "http://libcddb.sourceforge.net/")
@ -189,14 +189,14 @@ reconstruction capability.")
(define-public dvdisaster (define-public dvdisaster
(package (package
(name "dvdisaster") (name "dvdisaster")
(version "0.72.6") (version "0.79.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-" (uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0sqrprc5rh3shnfli25m2wy0i5f83db54iv04s5s7bxf77m7sy79")))) "0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gtk+" ,gtk+-2))) `(("gtk+" ,gtk+-2)))
@ -208,14 +208,7 @@ reconstruction capability.")
`(;; Parallel builds appear to be unsafe, see `(;; Parallel builds appear to be unsafe, see
;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>. ;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
#:parallel-build? #f #:parallel-build? #f
#:tests? #f ; no check target #:tests? #f)) ; no check target
#:phases
(alist-cons-before
'patch-source-shebangs 'sanitise
(lambda _
;; delete dangling symlink
(delete-file ".#GNUmakefile"))
%standard-phases)))
(home-page "http://dvdisaster.net/en/index.html") (home-page "http://dvdisaster.net/en/index.html")
(synopsis "Error correcting codes for optical media images") (synopsis "Error correcting codes for optical media images")
(description "Optical media (CD,DVD,BD) keep their data only for a (description "Optical media (CD,DVD,BD) keep their data only for a
@ -240,9 +233,8 @@ capacity is user-selectable.")
(version "1.4.0") (version "1.4.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/lipnitsk/libcue/releases" (uri (string-append "https://github.com/lipnitsk/libcue/archive/v"
"/download/v" version version ".tar.bz2"))
"/libcue-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb")))) "17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb"))))
@ -287,15 +279,15 @@ from an audio CD.")
(define-public abcde (define-public abcde
(package (package
(name "abcde") (name "abcde")
(version "2.7") (version "2.7.1")
(home-page "http://abcde.einval.com/") (home-page "https://abcde.einval.com/")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append home-page "/download/abcde-" (uri (string-append home-page "/download/abcde-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ikpffzvacadh6vj9qlary8126j1zrd2knp9gvivmp7y1656jj01")) "0l7j0nk8p30s97285i418rv9ym9bgns7bn6l8gldw3mjhnby609l"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* "Makefile" '(substitute* "Makefile"
@ -305,37 +297,36 @@ from an audio CD.")
(string-append "etcdir = $(prefix)/etc\n")))))) (string-append "etcdir = $(prefix)/etc\n"))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (alist-replace '(#:phases
'configure (modify-phases %standard-phases
(lambda* (#:key outputs inputs #:allow-other-keys) (replace 'configure
(substitute* "Makefile" (lambda* (#:key outputs inputs #:allow-other-keys)
(("^prefix = .*$") (substitute* "Makefile"
(string-append "prefix = " (("^prefix = .*$")
(assoc-ref outputs "out") (string-append "prefix = "
"\n")))) (assoc-ref outputs "out")
(alist-cons-after "\n")))))
'install 'wrap (add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((wget (assoc-ref inputs "wget")) (let ((wget (assoc-ref inputs "wget"))
(vorbis (assoc-ref inputs "vorbis-tools")) (vorbis (assoc-ref inputs "vorbis-tools"))
(parano (assoc-ref inputs "cdparanoia")) (parano (assoc-ref inputs "cdparanoia"))
(which (assoc-ref inputs "which")) (which (assoc-ref inputs "which"))
(discid (assoc-ref inputs "cd-discid")) (discid (assoc-ref inputs "cd-discid"))
(out (assoc-ref outputs "out"))) (out (assoc-ref outputs "out")))
(define (wrap file) (define (wrap file)
(wrap-program file (wrap-program file
`("PATH" ":" prefix `("PATH" ":" prefix
(,(string-append out "/bin:" (,(string-append out "/bin:"
wget "/bin:" wget "/bin:"
which "/bin:" which "/bin:"
vorbis "/bin:" vorbis "/bin:"
discid "/bin:" discid "/bin:"
parano "/bin"))))) parano "/bin")))))
(for-each wrap (for-each wrap
(find-files (string-append out "/bin") (find-files (string-append out "/bin")
".*")))) ".*"))))))
%standard-phases))
#:tests? #f)) #:tests? #f))
(inputs `(("wget" ,wget) (inputs `(("wget" ,wget)

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -89,15 +90,14 @@ with a flexible variety of user interfaces.")
(define-public cppunit (define-public cppunit
(package (package
(name "cppunit") (name "cppunit")
(version "1.12.1") (version "1.13.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/cppunit/" name "/" (uri (string-append "http://dev-www.libreoffice.org/src/"
name "-" name "-" version ".tar.gz"))
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0jm49v5rmc5qw34vqs56gy8xja1dhci73bmh23cig4kcir6a0a5c")))) "17s2kzmkw3kfjhpp72rfppyd7syr7bdq5s69syj2nvrlwd3d4irz"))))
;; Explicitly link with libdl. This is expected to be done by packages ;; Explicitly link with libdl. This is expected to be done by packages
;; relying on cppunit for their tests. However, not all of them do. ;; relying on cppunit for their tests. However, not all of them do.
;; If we added the linker flag to such packages, we would pollute all ;; If we added the linker flag to such packages, we would pollute all
@ -105,7 +105,7 @@ with a flexible variety of user interfaces.")
(arguments (arguments
`(#:make-flags '("LDFLAGS=-ldl"))) `(#:make-flags '("LDFLAGS=-ldl")))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://sourceforge.net/projects/cppunit/") (home-page "https://wiki.freedesktop.org/www/Software/cppunit/")
(synopsis "Unit testing framework for C++") (synopsis "Unit testing framework for C++")
(description "CppUnit is the C++ port of the famous JUnit framework for (description "CppUnit is the C++ port of the famous JUnit framework for
unit testing. Test output is in XML for automatic testing and GUI based for unit testing. Test output is in XML for automatic testing and GUI based for
@ -115,17 +115,17 @@ supervised tests.")
(define-public catch-framework (define-public catch-framework
(package (package
(name "catch") (name "catch")
(version "1.1.3") ;Sub-minor is the build number (version "1.3.5") ;Sub-minor is the build number
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/philsquared/Catch") (url "https://github.com/philsquared/Catch")
;; Semi-arbitrary. ;; Semi-arbitrary.
(commit "c51e86819d"))) (commit "ae5ee2cf63d6d67bd1369b512d2a7b60b571c907")))
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"0kgi7wxxysgjbpisqfj4dj0k19cyyai92f001zi8gzkybd4fkgv5")))) "1yfb3lxv929szqy1nw9xw3d45wzkppziqshkjxvrb1fdmf46x564"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -172,3 +172,24 @@ different compilers. Cmocka supports several different message output formats
like Test Anything Protocol, Subunit, xUnit XML or the original cmockery output like Test Anything Protocol, Subunit, xUnit XML or the original cmockery output
format.") format.")
(license asl2.0))) (license asl2.0)))
(define-public cppcheck
(package
(name "cppcheck")
(version "1.72")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/danmar/cppcheck/archive/"
version ".tar.gz"))
(sha256
(base32 "0zxaixhqi4vmj7xj56gzadggcbjhbjjm6abyr86qlan23sg98667"))
(file-name (string-append name "-" version ".tar.gz"))))
(build-system cmake-build-system)
(home-page "http://cppcheck.sourceforge.net")
(synopsis "Static C/C++ code analyzer")
(description "Cppcheck is a static code analyzer for C and C++. Unlike
C/C++ compilers and many other analysis tools it does not detect syntax errors
in the code. Cppcheck primarily detects the types of bugs that the compilers
normally do not detect. The goal is to detect only real errors in the code
(i.e. have zero false positives).")
(license gpl3+)))

View File

@ -68,14 +68,14 @@ a major mode for Emacs for examining the flowcharts that it produces.")
(define-public complexity (define-public complexity
(package (package
(name "complexity") (name "complexity")
(version "1.3") (version "1.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnu/complexity/complexity-" (uri (string-append "mirror://gnu/complexity/complexity-"
version ".tar.gz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"19bc64sxpqd5rqylqaa7dijz2x7qp2b0dg3ah3fb3qbcvd8b4wgy")))) "0lr0l9kj2w3jilz9h9y4np9pf9i9ccpy6331lanki2fnz4z8ldvd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("texinfo" ,texinfo) `(("texinfo" ,texinfo)
@ -190,7 +190,7 @@ COCOMO model or user-provided parameters.")
(define-public the-silver-searcher (define-public the-silver-searcher
(package (package
(name "the-silver-searcher") (name "the-silver-searcher")
(version "0.29.1") (version "0.31.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -198,7 +198,7 @@ COCOMO model or user-provided parameters.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ah7vcqprl9hhafi68bvzaiywy7dfm28zf7kpw3xrlqzfn0vg7kp")) "1a3xncsq3x8pci194k484s5mdqij2sirpz6dj6711n2p8mzq5g31"))
(file-name (string-append name "-" version ".tar.gz")))) (file-name (string-append name "-" version ".tar.gz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
@ -284,14 +284,14 @@ stack traces.")
(define-public lcov (define-public lcov
(package (package
(name "lcov") (name "lcov")
(version "1.10") (version "1.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/ltp/lcov-" (uri (string-append "mirror://sourceforge/ltp/lcov-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"13xq2ln4jjasslqzzhr5g11q1c19gwpng1jphzbzmylmrjz62ila")))) "19wfifdpxxivhq9adbphanjfga9bg9spms9v7c3589wndjff8x5l"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags (let ((out (assoc-ref %outputs "out"))) '(#:make-flags (let ((out (assoc-ref %outputs "out")))

View File

@ -268,6 +268,7 @@
(let ((perl (package (let ((perl (package
(inherit perl) (inherit perl)
(name "perl-boot0") (name "perl-boot0")
(replacement #f)
(arguments (arguments
(substitute-keyword-arguments (package-arguments perl) (substitute-keyword-arguments (package-arguments perl)
((#:phases phases) ((#:phases phases)
@ -870,10 +871,10 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
("libc-debug" ,glibc-final "debug"))))) ("libc-debug" ,glibc-final "debug")))))
(define-public gcc-toolchain-4.8 (define-public gcc-toolchain-4.8
(gcc-toolchain gcc-final)) (gcc-toolchain gcc-4.8))
(define-public gcc-toolchain-4.9 (define-public gcc-toolchain-4.9
(gcc-toolchain gcc-4.9)) (gcc-toolchain gcc-final))
(define-public gcc-toolchain-5 (define-public gcc-toolchain-5
(gcc-toolchain gcc-5)) (gcc-toolchain gcc-5))

View File

@ -54,16 +54,7 @@
(inputs `(("gnutls" ,gnutls) (inputs `(("gnutls" ,gnutls)
("gss" ,gss) ("gss" ,gss)
("libidn" ,libidn) ("libidn" ,libidn)
("libssh2" ,libssh2)
;; XXX libssh2-1.4 is a temporary package for use only by curl,
;; to allow most users of libssh2 to get the security update for
;; CVE-2016-7087 while postponing the large number of rebuilds
;; entailed by updating curl. Soon, curl should be updated to
;; use the latest libssh2 and libssh2-1.4 should be removed.
;; XXX libssh2-1.4 is vulnerable to CVE-2016-0787.
("libssh2" ,libssh2-1.4)
("openldap" ,openldap) ("openldap" ,openldap)
("zlib" ,zlib))) ("zlib" ,zlib)))
(native-inputs (native-inputs

View File

@ -28,6 +28,7 @@
(define-module (gnu packages databases) (define-module (gnu packages databases)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages language) #:use-module (gnu packages language)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
@ -132,16 +133,19 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
(define-public mysql (define-public mysql
(package (package
(name "mysql") (name "mysql")
(version "5.6.25") (version "5.7.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (list (string-append
"http://dev.mysql.com/get/Downloads/MySQL-" "http://dev.mysql.com/get/Downloads/MySQL-"
(version-major+minor version) "/" (version-major+minor version) "/"
name "-" version ".tar.gz")) name "-" version ".tar.gz")
(string-append
"http://downloads.mysql.com/archives/get/file/"
name "-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"1gbz5i1z3nswpq3q8f477vrx7g15j8n41pyb94k0jfnkhc5rq1qm")))) "03hzd2ikabxhh5ch2yvml2nks2wpv3qbkqmx3520in6khypwgy2l"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -167,16 +171,11 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
"-DINSTALL_SQLBENCHDIR=") "-DINSTALL_SQLBENCHDIR=")
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
(add-after (add-after
'install 'strip-extra-references 'unpack 'patch-boost-version
(lambda* (#:key outputs #:allow-other-keys) (lambda _
;; Strip references to GCC and other build-time ;; Mysql wants boost-1.59.0 specifically
;; dependencies. (substitute* "cmake/boost.cmake"
(let ((out (assoc-ref outputs "out"))) (("59") "60"))))
(for-each remove-store-references
(list (string-append out "/bin/mysqlbug")
(string-append
out "/share/mysql/docs/INFO_BIN")))
#t)))
(add-after (add-after
'install 'remove-extra-binaries 'install 'remove-extra-binaries
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
@ -191,10 +190,11 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
`(("bison" ,bison) `(("bison" ,bison)
("perl" ,perl))) ("perl" ,perl)))
(inputs (inputs
`(("libaio" ,libaio) `(("boost" ,boost)
("libaio" ,libaio)
("ncurses" ,ncurses)
("openssl" ,openssl) ("openssl" ,openssl)
("zlib" ,zlib) ("zlib" ,zlib)))
("ncurses" ,ncurses)))
(home-page "http://www.mysql.com/") (home-page "http://www.mysql.com/")
(synopsis "Fast, easy to use, and popular database") (synopsis "Fast, easy to use, and popular database")
(description (description
@ -206,7 +206,7 @@ Language.")
(define-public mariadb (define-public mariadb
(package (package
(name "mariadb") (name "mariadb")
(version "10.0.23") (version "10.1.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://downloads.mariadb.org/f/" (uri (string-append "https://downloads.mariadb.org/f/"
@ -214,7 +214,7 @@ Language.")
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0x52gfxk7zr84al83x62s4gh7mbngahy1svafdkbwd18i5lysvhm")))) "1rzlc2ns84x540asbkgdp9562haxhlszfpdqh64i9pz4q1m4cpvr"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -23,6 +23,29 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu)) #:use-module (guix build-system gnu))
(define-public gdsl
(package
(name "gdsl")
(version "1.8")
(source (origin
(method url-fetch)
(uri (string-append "http://download.gna.org/gdsl/"
"gdsl-" version ".tar.gz"))
(sha256
(base32
"1v64jvlnj8jfpphphgjgb36p0kv50kwfyqncf0y12f16v8ydyiaw"))))
(build-system gnu-build-system)
(home-page "http://home.gna.org/gdsl/")
(synopsis "Generic data structures library")
(description "The Generic Data Structures Library (GDSL) is a collection
of routines for generic data structures manipulation. It is a re-entrant
library fully written from scratch in pure ANSI C. It is designed to offer
for C programmers common data structures with powerful algorithms, and hidden
implementation. Available structures are lists, queues, stacks, hash tables,
binary trees, binary search trees, red-black trees, 2D arrays, permutations
and heaps.")
(license license:gpl2+)))
(define-public sparsehash (define-public sparsehash
(package (package
(name "sparsehash") (name "sparsehash")

View File

@ -52,21 +52,16 @@ clients.")
(define-public vdirsyncer (define-public vdirsyncer
(package (package
(name "vdirsyncer") (name "vdirsyncer")
(version "0.9.0") (version "0.9.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "vdirsyncer" version)) (uri (pypi-uri "vdirsyncer" version))
(sha256 (sha256
(base32 (base32
"0s9awjr9v60rr80xcpwmdhkf4v1yqnydahjmxwvxmh64565is465")))) "1g1107cz4sk41d2z6k6pn9n2fzd26m72j8aj33zn483vfvmyrc4q"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
(replace 'check
(lambda _
(setenv "DAV_SERVER" "radicale")
(setenv "REMOTESTORAGE_SERVER" "skip")
(zero? (system* "py.test"))))
;; vdirsyncer requires itself to be installed in order to build ;; vdirsyncer requires itself to be installed in order to build
;; the manpage. ;; the manpage.
(add-after 'install 'manpage (add-after 'install 'manpage
@ -80,17 +75,24 @@ clients.")
"docs/_build/man/vdirsyncer.1" "docs/_build/man/vdirsyncer.1"
(string-append (string-append
(assoc-ref outputs "out") (assoc-ref outputs "out")
"/share/man/man1"))))))) "/share/man/man1"))))
;; vdirsyncer requires itself to be installed in order to run the test
;; suite.
(delete 'check)
(add-after 'install 'check-later
(lambda _
(setenv "DETERMINISTIC_TESTS" "true")
(setenv "DAV_SERVER" "radicale")
(setenv "REMOTESTORAGE_SERVER" "skip")
(zero? (system* "make" "test")))))))
(native-inputs (native-inputs
`(("python-oauthlib" ,python-oauthlib) `(("python-setuptools-scm" ,python-setuptools-scm)
("python-setuptools-scm" ,python-setuptools-scm)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
;; Required for testing ;; Required for testing
("python-hypothesis" ,python-hypothesis) ("python-hypothesis" ,python-hypothesis)
("python-pytest" ,python-pytest) ("python-pytest" ,python-pytest)
("python-pytest-localserver" ,python-pytest-localserver) ("python-pytest-localserver" ,python-pytest-localserver)
("python-pytest-subtesthack" ,python-pytest-subtesthack) ("python-pytest-subtesthack" ,python-pytest-subtesthack)
("python-pytest-xprocess" ,python-pytest-xprocess)
("python-wsgi-intercept" ,python-wsgi-intercept) ("python-wsgi-intercept" ,python-wsgi-intercept)
("radicale" ,radicale))) ("radicale" ,radicale)))
(propagated-inputs (propagated-inputs
@ -98,7 +100,7 @@ clients.")
("python-click" ,python-click) ("python-click" ,python-click)
("python-click-log" ,python-click-log) ("python-click-log" ,python-click-log)
("python-click-threading" ,python-click-threading) ("python-click-threading" ,python-click-threading)
("python-lxml" ,python-lxml) ; which one? ("python-lxml" ,python-lxml)
("python-requests-toolbelt" ,python-requests-toolbelt))) ("python-requests-toolbelt" ,python-requests-toolbelt)))
(synopsis "Synchronize calendars and contacts") (synopsis "Synchronize calendars and contacts")
(description "Vdirsyncer synchronizes your calendars and addressbooks (description "Vdirsyncer synchronizes your calendars and addressbooks

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com> ;;; Copyright © 2016 Tobias Geerinckx-Rice <tobias.geerinckx.rice@gmail.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -99,7 +100,7 @@ tables, and it understands a variety of different formats.")
(define-public ddrescue (define-public ddrescue
(package (package
(name "ddrescue") (name "ddrescue")
(version "1.20") (version "1.21")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -107,7 +108,7 @@ tables, and it understands a variety of different formats.")
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"1gb0ak2c47nass7qdf9pnfrshcb38c318z1fx5v5v1k7l6qr7yc3")))) "1b71hb42lh33y9843nd1mxlwkk9qh9ajvnz6ivzd1jq9lav4x7ph"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.gnu.org/software/ddrescue/ddrescue.html") (home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
(synopsis "Data recovery utility") (synopsis "Data recovery utility")
@ -171,3 +172,35 @@ transport), SCSI and ATAPI tape drives, and SCSI enclosures. This utility can
also send commands associated with starting and stopping the media, loading also send commands associated with starting and stopping the media, loading
and unloading removable media and some other housekeeping functions.") and unloading removable media and some other housekeeping functions.")
(license bsd-3))) (license bsd-3)))
(define-public idle3-tools
(package
(name "idle3-tools")
(version "0.9.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/idle3-tools/idle3-tools-"
version ".tgz"))
(sha256
(base32
"00ia7xq9yldxyl9gz0mr4xa568nav14p0fnv82f2rbbkg060cy4p"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:phases
(modify-phases %standard-phases
(delete 'configure))
#:make-flags (list "CC=gcc"
(string-append "manprefix=")
(string-append "DESTDIR="
(assoc-ref %outputs "out")))))
(home-page "http://idle3-tools.sourceforge.net")
(synopsis "Change or disable Western Digital hard drives' Idle3 timer")
(description
"Idle3-tools provides a utility to get, set, or disable the Idle3 timer
present in many Western Digital hard drives. This timer is part of the
\"IntelliPark\" feature that stops the disk when not in use. Unfortunately,
the default timer setting is not well suited to Linux or other *nix systems,
and can dramatically shorten the lifespan of the drive if left unchecked.")
(license gpl3+)))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -65,14 +66,14 @@ and BOOTP/TFTP for network booting of diskless machines.")
(define-public bind-utils (define-public bind-utils
(package (package
(name "bind-utils") (name "bind-utils")
(version "9.10.3-P3") (version "9.10.3-P4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.isc.org/isc/bind9/" version (uri (string-append "http://ftp.isc.org/isc/bind9/" version
"/bind-" version ".tar.gz")) "/bind-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"10yblk8qbb85qxakzdjy5qmqvqj4rlcqsqvlkriglampzg8i0239")))) "0giys46ifypysf799w9v58kbaz1v3fbdzw3s212znifzzfsl9h1a"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
;; it would be nice to add GeoIP and gssapi once there is package ;; it would be nice to add GeoIP and gssapi once there is package

View File

@ -308,7 +308,7 @@ when typing parentheses directly or commenting out code line by line.")
(define-public git-modes (define-public git-modes
(package (package
(name "git-modes") (name "git-modes")
(version "1.2.0") (version "1.2.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -317,7 +317,7 @@ when typing parentheses directly or commenting out code line by line.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"09dv7ikbj2bi4y3lmvjfzqpdmx2f9bd4w7jkp10bkap62d05iqhk")))) "088wyddh8y0yw77i0hx449n9zg4wzyc90h63wlmxba1ijg4dzm0p"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
@ -1018,44 +1018,47 @@ single buffer.")
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests
#:modules ((guix build gnu-build-system) #:modules ((guix build gnu-build-system)
((guix build emacs-build-system) #:prefix emacs:)
(guix build utils) (guix build utils)
(guix build emacs-utils)) (guix build emacs-utils))
#:imported-modules (,@%gnu-build-system-modules #:imported-modules (,@%gnu-build-system-modules
(guix build emacs-build-system)
(guix build emacs-utils)) (guix build emacs-utils))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-dir (lambda _ (chdir "server") #t)) ;; Build server side using 'gnu-build-system'.
(add-before (add-after 'unpack 'enter-server-dir
'configure 'autogen (lambda _ (chdir "server") #t))
(lambda _ (add-before 'configure 'autogen
(zero? (system* "bash" "autogen.sh")))) (lambda _
(add-before (zero? (system* "bash" "autogen.sh"))))
'build 'patch-variables
(lambda* (#:key outputs #:allow-other-keys) ;; Build emacs side using 'emacs-build-system'.
(with-directory-excursion "../lisp" (add-after 'compress-documentation 'enter-lisp-dir
;; Set path to epdfinfo program. (lambda _ (chdir "../lisp") #t))
(emacs-substitute-variables "pdf-info.el" (add-after 'enter-lisp-dir 'emacs-patch-variables
("pdf-info-epdfinfo-program" (lambda* (#:key outputs #:allow-other-keys)
(string-append (assoc-ref outputs "out") ;; Set path to epdfinfo program.
"/bin/epdfinfo"))) (emacs-substitute-variables "pdf-info.el"
;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto ("pdf-info-epdfinfo-program"
;; upgrading" that pdf-tools tries to perform. (string-append (assoc-ref outputs "out")
(emacs-substitute-variables "pdf-tools.el" "/bin/epdfinfo")))
("pdf-tools-handle-upgrades" '()))))) ;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
(add-after ;; upgrading" that pdf-tools tries to perform.
'install 'install-lisp (emacs-substitute-variables "pdf-tools.el"
(lambda* (#:key outputs #:allow-other-keys) ("pdf-tools-handle-upgrades" '()))))
(let ((target (string-append (assoc-ref outputs "out") (add-after 'emacs-patch-variables 'emacs-install
"/share/emacs/site-lisp/"))) (assoc-ref emacs:%standard-phases 'install))
(for-each (lambda (file) (add-after 'emacs-install 'emacs-build
(install-file file target)) (assoc-ref emacs:%standard-phases 'build))
(find-files "../lisp" "^(pdf|tab).*\\.elc?")) (add-after 'emacs-install 'emacs-make-autoloads
(emacs-byte-compile-directory target) (assoc-ref emacs:%standard-phases 'make-autoloads)))))
(emacs-generate-autoloads "pdf-tools" target)))))))
(native-inputs `(("autoconf" ,autoconf) (native-inputs `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("emacs" ,emacs-no-x))) ("emacs" ,emacs-no-x)))
(propagated-inputs
`(("let-alist" ,let-alist)))
(inputs `(("poppler" ,poppler) (inputs `(("poppler" ,poppler)
("cairo" ,cairo) ("cairo" ,cairo)
("glib" ,glib) ("glib" ,glib)

View File

@ -273,7 +273,7 @@ Libraries with some extra bells and whistles.")
(define-public enlightenment (define-public enlightenment
(package (package
(name "enlightenment") (name "enlightenment")
(version "0.20.5") (version "0.20.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -281,7 +281,7 @@ Libraries with some extra bells and whistles.")
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1l02m2d7d5r0vnfgn44glhvqhc8ygbjxjkf6cdd2vxpxsa29ax12")))) "11ahll68nlci214ka05whp5l32hy9lznmcdfqx3hxsmq2p7bl7zj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags '("--enable-mount-eeze"))) `(#:configure-flags '("--enable-mount-eeze")))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Joshua Grant <tadni@riseup.net> ;;; Copyright © 2014 Joshua Grant <tadni@riseup.net>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
@ -7,6 +7,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net> ;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; Copyright © 2016 Jookia <166291@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -24,6 +25,7 @@
;;; 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 fonts) (define-module (gnu packages fonts)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
@ -67,14 +69,15 @@ in print. With attention to detail for high resolution rendering.")
(define-public font-ubuntu (define-public font-ubuntu
(package (package
(name "font-ubuntu") (name "font-ubuntu")
(version "0.80") (version "0.83")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://font.ubuntu.com/download/ubuntu-font-family-" (uri (string-append
version ".zip")) "http://font.ubuntu.com/download/ubuntu-font-family-"
version ".zip"))
(sha256 (sha256
(base32 (base32
"0k4f548riq23gmw4zhn30qqkcpaj4g2ab5rbc3lflfxwkc4p0w8h")))) "0hjvq2x758dx0sfwqhzflns0ns035qm7h6ygskbx1svzg517sva5"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -235,6 +238,25 @@ package provides the TrueType (TTF) files.")
(license:x11-style (license:x11-style
"http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts")))) "http://www.gnome.org/fonts/#Final_Bitstream_Vera_Fonts"))))
(define-public font-cantarell
(package
(name "font-abattis-cantarell")
(version "0.0.24")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/cantarell-fonts/"
(version-major+minor version)
"/cantarell-fonts-" version ".tar.xz"))
(sha256
(base32
"0r4jnc2x9yncf40lixjb1pqgpq8rzbi2fz33pshlqzjgx2d69bcw"))))
(build-system gnu-build-system)
(home-page "https://wiki.gnome.org/Projects/CantarellFonts")
(synopsis "Cantarell sans-serif typeface")
(description "The Cantarell font family is a contemporary Humanist
sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.")
(license license:silofl1.1)))
(define-public font-gnu-freefont-ttf (define-public font-gnu-freefont-ttf
(package (package
(name "font-gnu-freefont-ttf") (name "font-gnu-freefont-ttf")
@ -628,3 +650,113 @@ Unicode's Basic Multilingual Plane. The package also includes
utilities to ease adding new glyphs to the font.") utilities to ease adding new glyphs to the font.")
(home-page "http://unifoundry.com/unifont.html") (home-page "http://unifoundry.com/unifont.html")
(license license:gpl2+))) (license license:gpl2+)))
(define-public font-google-noto
(package
(name "font-google-noto")
(version "20150929")
(source (origin
(method url-fetch)
(uri (string-append "https://noto-website-2.storage.googleapis.com/"
"pkgs/Noto-hinted.zip"))
(sha256
(base32
"13jhpqzhsqhyby8n0ksqg155a3jyaif3nzj9anzbq8s2gn1xjyd9"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
(let ((PATH (string-append (assoc-ref %build-inputs
"unzip")
"/bin"))
(font-dir (string-append %output
"/share/fonts/truetype")))
(setenv "PATH" PATH)
(system* "unzip" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(for-each (lambda (ttf)
(copy-file ttf
(string-append font-dir "/" ttf)))
(find-files "." "\\.ttf$"))
(for-each (lambda (otf)
(copy-file otf
(string-append font-dir "/" otf)))
(find-files "." "\\.otf$"))))))
(native-inputs `(("unzip" ,unzip)))
(home-page "https://www.google.com/get/noto/")
(synopsis "Fonts aimed to cover all languages")
(description "Googe Noto Fonts is a family of fonts aimed to support all
languages with a consistent look and aesthetic. It's goal is to have no Unicode
symbols unable to be displayed properly.")
(license license:silofl1.1)))
(define-public font-un
(package
(name "font-un")
(version "1.0.2-080608")
;; The upstream server at kldp.net is serving us broken MIME.
;; See <http://bugs.gnu.org/22908>.
(source (origin
(method url-fetch)
(uri (list
(string-append
"http://krosos.sdf.org/static/unix/"
"un-fonts-core-" version ".tar.gz")
;; XXX: The upstream server at kldp.net
(string-append
"https://kldp.net/projects/unfonts/download/4695?filename="
"un-fonts-core-" version ".tar.gz")))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"13liaz2pmww3aqabm55la5npd08m1skh334ky7qfidxaz5s742iv"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((tar (string-append (assoc-ref %build-inputs "tar")
"/bin/tar"))
(PATH (string-append (assoc-ref %build-inputs "gzip")
"/bin"))
(font-dir (string-append %output "/share/fonts/truetype"))
(doc-dir (string-append %output "/share/doc/" ,name)))
(setenv "PATH" PATH)
(system* tar "xvf" (assoc-ref %build-inputs "source"))
(mkdir-p font-dir)
(mkdir-p doc-dir)
(chdir (string-append "un-fonts"))
(for-each (lambda (ttf)
(copy-file ttf
(string-append font-dir "/"
(basename ttf))))
(find-files "." "\\.ttf$"))
(for-each (lambda (doc)
(copy-file doc
(string-append doc-dir "/"
(basename doc))))
'("COPYING" "README"))))))
(native-inputs
`(("tar" ,tar)
("gzip" ,gzip)))
(home-page "https://kldp.net/projects/unfonts/")
(synopsis "Collection of Korean fonts")
(description
"Un-fonts is a family of mainly Korean fonts.
It contains the following fonts and styles:
@enumerate
@item UnBatang, UnBatangBold: serif;
@item UnDotum, UnDotumBold: sans-serif;
@item UnGraphic, UnGraphicBold: sans-serif style;
@item UnDinaru, UnDinaruBold, UnDinaruLight;
@item UnPilgi, UnPilgiBold: script;
@item UnGungseo: cursive, brush-stroke.
@end enumerate\n")
(license license:gpl2+)))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -93,8 +94,12 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
(string-append "--with-default-fonts=" (string-append "--with-default-fonts="
(assoc-ref %build-inputs "gs-fonts") (assoc-ref %build-inputs "gs-fonts")
"/share/fonts") "/share/fonts")
;; register fonts from user profile ;; register fonts from user profile
;; TODO: Add /run/current-system/profile/share/fonts and remove
;; the skeleton that works around it from 'default-skeletons'.
"--with-add-fonts=~/.guix-profile/share/fonts" "--with-add-fonts=~/.guix-profile/share/fonts"
;; python is not actually needed ;; python is not actually needed
"PYTHON=false") "PYTHON=false")
#:phases #:phases
@ -203,6 +208,7 @@ applications should be.")
(define-public graphite2 (define-public graphite2
(package (package
(replacement graphite2-1.3.6)
(name "graphite2") (name "graphite2")
(version "1.3.5") (version "1.3.5")
(source (source
@ -229,6 +235,21 @@ and returns a sequence of positioned glyphids from the font.")
(license license:lgpl2.1+) (license license:lgpl2.1+)
(home-page "https://github.com/silnrsi/graphite"))) (home-page "https://github.com/silnrsi/graphite")))
(define graphite2-1.3.6
(package
(inherit graphite2)
(replacement #f)
(source
(let ((name "graphite2") (version "1.3.6"))
(origin
(method url-fetch)
(uri (string-append "https://github.com/silnrsi/graphite/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s")))))))
(define-public potrace (define-public potrace
(package (package
(name "potrace") (name "potrace")
@ -305,7 +326,7 @@ smooth contours with constant curvature at the spline joins.")
(define-public libuninameslist (define-public libuninameslist
(package (package
(name "libuninameslist") (name "libuninameslist")
(version "0.4.20140731") (version "0.5.20150701")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -314,7 +335,7 @@ smooth contours with constant curvature at the spline joins.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"016zxffpc8iwpxxmnjkdirn6dsbcvdb2wjdrp123sf79f4nsynyj")))) "1j6147l100rppw7axlrkdx0p35fax6bz2zh1xgpg7a3b4pmqaj3v"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("autoconf" ,autoconf) (native-inputs `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -336,37 +357,51 @@ definitions.")
(define-public fontforge (define-public fontforge
(package (package
(name "fontforge") (name "fontforge")
(version "20120731-b") ;aka 1.0 (version "20150824")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/fontforge/fontforge_full-" (uri (string-append
version ".tar.bz2")) "https://github.com/fontforge/fontforge/releases/download/"
version "/fontforge-" version ".tar.gz"))
(sha256 (base32 (sha256 (base32
"1dhg0i2pf76j40cb9g1wzpag21fgarpjaad0hdbk27i1zz588q8v")))) "0gfcm8yn1d30giqhdwbchnfnspcqypqdzrxlhqhwy1i18wgl0v2v"))
(modules '((guix build utils)))
(snippet
;; Make builds bit-reproducible by using fixed date strings.
'(substitute* "configure"
(("^FONTFORGE_MODTIME=.*$")
"FONTFORGE_MODTIME=\"1458399002\"\n")
(("^FONTFORGE_MODTIME_STR=.*$")
"FONTFORGE_MODTIME_STR=\"15:50 CET 19-Mar-2016\"\n")
(("^FONTFORGE_VERSIONDATE=.*$")
"FONTFORGE_VERSIONDATE=\"20160319\"\n")))))
(build-system gnu-build-system) (build-system gnu-build-system)
;; TODO: Add python for scripting support. (native-inputs
(inputs `(("gettext" ,gnu-gettext) `(("pkg-config" ,pkg-config)))
("libtiff" ,libtiff) (inputs `(("cairo" ,cairo)
("libjpeg" ,libjpeg) ("fontconfig" ,fontconfig) ;dlopen'd
("libpng" ,libpng) ("freetype" ,freetype)
("gettext" ,gnu-gettext)
("giflib" ,giflib) ;needs giflib 4.* ("giflib" ,giflib) ;needs giflib 4.*
("libxml2" ,libxml2) ("glib" ,glib) ;needed for pango detection
("libX11" ,libx11)
("libXi" ,libxi)
("libICE" ,libice) ("libICE" ,libice)
("libSM" ,libsm) ("libSM" ,libsm)
("freetype" ,freetype) ("libX11" ,libx11)
("potrace" ,potrace) ("libXi" ,libxi)
("libjpeg" ,libjpeg)
("libltdl" ,libltdl)
("libpng" ,libpng)
("libspiro" ,libspiro) ("libspiro" ,libspiro)
("zlib" ,zlib) ("libtiff" ,libtiff)
("cairo" ,cairo)
("fontconfig" ,fontconfig) ;dlopen'd
("libuninameslist" ,libuninameslist) ("libuninameslist" ,libuninameslist)
("libxft" ,libxft)
("libxml2" ,libxml2)
("pango" ,pango) ("pango" ,pango)
("glib" ,glib))) ;needed for pango detection ("potrace" ,potrace)
("python" ,python)
("zlib" ,zlib)))
(arguments (arguments
'(#:configure-flags `("--enable-double") '(#:tests? #f
#:tests? #f
#:phases #:phases
(alist-cons-before (alist-cons-before
'configure 'patch-configure 'configure 'patch-configure
@ -406,5 +441,5 @@ definitions.")
"FontForge allows you to create and modify postscript, truetype and "FontForge allows you to create and modify postscript, truetype and
opentype fonts. You can save fonts in many different outline formats, and opentype fonts. You can save fonts in many different outline formats, and
generate bitmaps.") generate bitmaps.")
(license license:bsd-3) (license license:gpl3+)
(home-page "http://fontforge.org/"))) (home-page "http://fontforge.org/")))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@pobox.com> ;;; Copyright © 2015 Andy Wingo <wingo@pobox.com>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
@ -82,14 +82,14 @@ freedesktop.org project.")
(define-public libinput (define-public libinput
(package (package
(name "libinput") (name "libinput")
(version "1.1.902") (version "1.2.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://freedesktop.org/software/libinput/" (uri (string-append "https://freedesktop.org/software/libinput/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"19wa5yizc3nfq3gibyqb3ygdvcs7v7bz1m5ifv0f4va3igxc3nk3")))) "0b3f67xsy1s84cvzw22mjfkbcv6pj4p4yns4h3m0fmb7zqbvjm0p"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
@ -142,14 +142,14 @@ the freedesktop.org XDG Base Directory specification.")
(define-public elogind (define-public elogind
(package (package
(name "elogind") (name "elogind")
(version "219.12") (version "219.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://wingolog.org/pub/" name "/" (uri (string-append "https://wingolog.org/pub/" name "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7")) "1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -165,11 +165,17 @@ the freedesktop.org XDG Base Directory specification.")
(assoc-ref %build-inputs "libcap")) (assoc-ref %build-inputs "libcap"))
(string-append "--with-udevrulesdir=" (string-append "--with-udevrulesdir="
(assoc-ref %outputs "out") (assoc-ref %outputs "out")
"/lib/udev/rules.d") "/lib/udev/rules.d"))
;; XXX: fail with: #:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
;; src/shared/clean-ipc.c:315: undefined reference to `mq_unlink' #:phases (modify-phases %standard-phases
"LDFLAGS=-lrt") (add-before 'build 'fix-service-file
#:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent"))) (lambda* (#:key outputs #:allow-other-keys)
;; Fix the file name of the 'elogind' binary in the D-Bus
;; '.service' file.
(substitute* "src/login/org.freedesktop.login1.service"
(("^Exec=.*")
(string-append "Exec=" (assoc-ref %outputs "out")
"/libexec/elogind/elogind\n"))))))))
(native-inputs (native-inputs
`(("intltool" ,intltool) `(("intltool" ,intltool)
("gettext" ,gnu-gettext) ("gettext" ,gnu-gettext)
@ -188,7 +194,7 @@ the freedesktop.org XDG Base Directory specification.")
;when pressing the power button ;when pressing the power button
("dbus" ,dbus) ("dbus" ,dbus)
("eudev" ,eudev))) ("eudev" ,eudev)))
(home-page "https://github.com/andywingo/elogind") (home-page "https://github.com/wingo/elogind")
(synopsis "User, seat, and session management service") (synopsis "User, seat, and session management service")
(description "Elogind is the systemd project's \"logind\" service, (description "Elogind is the systemd project's \"logind\" service,
extracted out as a separate project. Elogind integrates with PAM to provide extracted out as a separate project. Elogind integrates with PAM to provide
@ -247,15 +253,16 @@ Python.")
(define-public wayland (define-public wayland
(package (package
(name "wayland") (name "wayland")
(version "1.9.0") (version "1.10.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://wayland.freedesktop.org/releases/" (uri (string-append "https://wayland.freedesktop.org/releases/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww")))) "1p307ly1yyqjnzn9dbv78yffql2qszn84qk74lwanl3gma8fgxjb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments `(#:parallel-tests? #f))
(native-inputs (native-inputs
`(("doxygen" ,doxygen) `(("doxygen" ,doxygen)
("graphviz" ,graphviz) ("graphviz" ,graphviz)
@ -268,7 +275,7 @@ Python.")
("expat" ,expat) ("expat" ,expat)
("libffi" ,libffi) ("libffi" ,libffi)
("libxml2" ,libxml2))) ; for XML_CATALOG_FILES ("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
(home-page "http://wayland.freedesktop.org/") (home-page "https://wayland.freedesktop.org/")
(synopsis "Display server protocol") (synopsis "Display server protocol")
(description (description
"Wayland is a protocol for a compositor to talk to its clients as well as "Wayland is a protocol for a compositor to talk to its clients as well as
@ -358,6 +365,7 @@ Analysis and Reporting Technology) functionality.")
"doc")) ;5 MiB of gtk-doc HTML "doc")) ;5 MiB of gtk-doc HTML
(arguments (arguments
`(#:tests? #f ; requiring system message dbus `(#:tests? #f ; requiring system message dbus
#:disallowed-references ("doc") ;enforce separation of "doc"
#:configure-flags #:configure-flags
(list "--disable-man" (list "--disable-man"
"--localstatedir=/var" "--localstatedir=/var"
@ -404,7 +412,7 @@ message bus.")
(version "0.6.40") (version "0.6.40")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://www.freedesktop.org/software/" (uri (string-append "https://www.freedesktop.org/software/"
name "/" name "-" version ".tar.xz")) name "/" name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
@ -444,7 +452,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.freedesktop.org/software/" name "/" "https://www.freedesktop.org/software/" name "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
@ -471,15 +479,15 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
(define-public libqmi (define-public libqmi
(package (package
(name "libqmi") (name "libqmi")
(version "1.12.6") (version "1.12.8")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.freedesktop.org/software/" name "/" "https://www.freedesktop.org/software/" name "/"
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"101ppan2q1h4pyp2zbn9b8sdwy2c7fk9rp91yykxz3afrvzbymq8")))) "19w2zkm5xl6i3vm1xhjjclks4awas17gfbb2k5y66gwnkiykjfnj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums `(("glib:bin" ,glib "bin") ; for glib-mkenums
@ -488,7 +496,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
(propagated-inputs (propagated-inputs
`(("glib" ,glib))) ; required by qmi-glib.pc `(("glib" ,glib))) ; required by qmi-glib.pc
(synopsis "Library to communicate with QMI-powered modems") (synopsis "Library to communicate with QMI-powered modems")
(home-page "http://www.freedesktop.org/wiki/Software/libqmi/") (home-page "https://www.freedesktop.org/wiki/Software/libqmi/")
(description (description
"Libqmi is a GLib-based library for talking to WWAN modems and devices "Libqmi is a GLib-based library for talking to WWAN modems and devices
which speak the Qualcomm MSM Interface (QMI) protocol.") which speak the Qualcomm MSM Interface (QMI) protocol.")

View File

@ -5,6 +5,7 @@
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -127,7 +128,7 @@ provide connectivity for client applications written in any language.")
(define-public tiled (define-public tiled
(package (package
(name "tiled") (name "tiled")
(version "0.13.1") (version "0.15.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/bjorn/tiled/archive/v" (uri (string-append "https://github.com/bjorn/tiled/archive/v"
@ -135,19 +136,18 @@ provide connectivity for client applications written in any language.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"057a5cna3vhznpl9hyql2sxz995aprv43r8wva89x4vdphxv04lm")))) "10bbjdv5r36229r1dqg32bxcj9yvpkx9jgs9v4s1qb71v856b15h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("qt" ,qt) (inputs `(("qt" ,qt)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
'(#:phases '(#:phases
(alist-replace (modify-phases %standard-phases
'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(system* "qmake" (system* "qmake"
(string-append "PREFIX=" out)))) (string-append "PREFIX=" out))))))))
%standard-phases)))
(home-page "http://www.mapeditor.org/") (home-page "http://www.mapeditor.org/")
(synopsis "Tile map editor") (synopsis "Tile map editor")
(description (description

View File

@ -7,7 +7,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015, 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
@ -15,6 +15,8 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org> ;;; Copyright © 2016 Rodger Fox <thylakoid@openmailbox.org>
;;; Copyright © 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -69,6 +71,7 @@
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gstreamer) #:use-module (gnu packages gstreamer)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
@ -1182,7 +1185,7 @@ is programmed in Haskell.")
(define-public manaplus (define-public manaplus
(package (package
(name "manaplus") (name "manaplus")
(version "1.6.1.16") (version "1.6.3.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1190,7 +1193,7 @@ is programmed in Haskell.")
version "/manaplus-" version ".tar.xz")) version "/manaplus-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir")))) "02bnd4nk1qzrfqckqkwb6sbjzsmacv968ih74cdgcykslpsr684d"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
@ -1917,3 +1920,109 @@ Catan. It can be played on a local network, on the internet, and with AI
players.") players.")
(home-page "http://pio.sourceforge.net/") (home-page "http://pio.sourceforge.net/")
(license license:gpl2+))) (license license:gpl2+)))
(define-public desmume
(package
(name "desmume")
(version "0.9.11")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://sourceforge/desmume/desmume/"
version "/desmume-" version ".tar.gz"))
(sha256
(base32
"15l8wdw3q61fniy3h93d84dnm6s4pyadvh95a0j6d580rjk4pcrs"))))
(build-system gnu-build-system)
(arguments
;; Enable support for WiFi and microphone.
`(#:configure-flags '("--enable-wifi"
"--enable-openal")))
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
(inputs
`(("zlib" ,zlib)
("sdl" ,sdl)
("glib" ,glib)
("gtk+" ,gtk+-2)
("glu" ,glu)))
(home-page "http://desmume.org/")
(synopsis "Nintendo DS emulator")
(description
"DeSmuME is an emulator for the Nintendo DS handheld gaming console.")
(license license:gpl2)))
(define-public einstein
(package
(name "einstein")
(version "2.0")
(source (origin
(method url-fetch)
(uri (string-append "http://http.debian.net/debian/pool/main/e/"
"einstein/einstein_2.0.dfsg.2.orig.tar.gz"))
(sha256
(base32
"1hxrlv6n8py48j487i6wbb4n4vd55w0na69r7ccmmr9vmrsw5mlk"))
(patches (list (search-patch "einstein-build.patch")))))
(build-system gnu-build-system)
(inputs
`(("freetype" ,freetype)
("sdl" ,(sdl-union (list sdl sdl-mixer sdl-ttf)))
("zlib" ,zlib)))
(native-inputs
`(("font-dejavu" ,font-dejavu)))
(arguments
`(#:tests? #f ; no check target
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(dejavu (string-append (assoc-ref inputs "font-dejavu")
"/share/fonts/truetype/DejaVuSans.ttf")))
(substitute* "Makefile"
(("PREFIX=/usr/local") (string-append "PREFIX=" out)))
;; The patch above registers a free font for use by the binary,
;; but the font is copied during the compile phase into a
;; resources file, so we need to make the ttf file available.
(symlink dejavu "res/DejaVuSans.ttf")
#t))))))
(synopsis "Logic puzzle game")
(description "The goal of this logic game is to open all cards in a 6x6
grid, using a number of hints as to their relative position. The game idea
is attributed to Albert Einstein.")
;; The original home page has disappeared.
(home-page (string-append "http://web.archive.org/web/20120521062745/"
"http://games.flowix.com/en/index.html"))
;; License according to
;; http://web.archive.org/web/20150222180355/http://www.babichev.info/en/projects/index.html
;; The source code is a DFSG-sanitized tarball and does not contain any
;; license information.
(license license:gpl3+)))
(define-public powwow
(package
(name "powwow")
(version "1.2.17")
(source (origin
(method url-fetch)
(uri (string-append
"http://www.hoopajoo.net/static/projects/powwow-"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1xmsg2y7qcvj67i9ilnih0mvfxcpni7fzrz343x9rdfnkkzf3pp8"))))
(inputs
`(("ncurses" ,ncurses)))
(build-system gnu-build-system)
(home-page "http://www.hoopajoo.net/projects/powwow.html")
(synopsis "MUD and telnet client")
(description
"POWWOW is a client software which can be used for telnet as well as for
@dfn{Multi-User Dungeon} (MUD). Additionally it can serve as a nice client for
the chat server psyced with the specific config located at
http://lavachat.symlynx.com/unix/")
(license license:gpl2+)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
@ -354,6 +354,8 @@ Go. It also includes runtime support libraries for these languages.")
"1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq")) "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"))
(patches (list (search-patch "gcc-5.0-libvtv-runpath.patch"))))))) (patches (list (search-patch "gcc-5.0-libvtv-runpath.patch")))))))
;; Note: When changing the default gcc version, update
;; the gcc-toolchain-* definitions accordingly.
(define-public gcc gcc-4.9) (define-public gcc gcc-4.9)
(define-public (make-libstdc++ gcc) (define-public (make-libstdc++ gcc)
@ -440,7 +442,15 @@ as the 'native-search-paths' field."
`(cons (string-append "--enable-languages=" `(cons (string-append "--enable-languages="
,(string-join languages ",")) ,(string-join languages ","))
(remove (cut string-match "--enable-languages.*" <>) (remove (cut string-match "--enable-languages.*" <>)
,flags))))))) ,flags)))
((#:phases phases)
`(modify-phases ,phases
(add-after 'install 'remove-broken-or-conflicting-files
(lambda* (#:key outputs #:allow-other-keys)
(for-each delete-file
(find-files (string-append (assoc-ref outputs "out") "/bin")
".*(c\\+\\+|cpp|g\\+\\+|gcov|gcc.*)"))
#t))))))))
(define %generic-search-paths (define %generic-search-paths
;; This is the language-neutral search path for GCC. Entries in $CPATH are ;; This is the language-neutral search path for GCC. Entries in $CPATH are

View File

@ -144,7 +144,7 @@ catalogs. Nearly all GNU packages use Gettext.")
("perl-module-build" ,perl-module-build) ("perl-module-build" ,perl-module-build)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml) ;for tests ("docbook-xml" ,docbook-xml) ;for tests
("texlive-bin" ,texlive-bin) ;for tests ("texlive" ,texlive-minimal) ;for tests
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("xsltproc" ,libxslt))) ("xsltproc" ,libxslt)))
(home-page "http://po4a.alioth.debian.org/") (home-page "http://po4a.alioth.debian.org/")

View File

@ -524,9 +524,11 @@ useful for C++.")
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(inputs (inputs
`(("python" ,python) `(("python" ,python)
("glib" ,glib)
("python-pycairo" ,python-pycairo) ("python-pycairo" ,python-pycairo)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)))
(propagated-inputs
;; pygobject-3.0.pc refers to all these.
`(("glib" ,glib)
("libffi" ,libffi))) ("libffi" ,libffi)))
(arguments (arguments
;; TODO: failing tests: test_native_calls_async ;; TODO: failing tests: test_native_calls_async
@ -538,6 +540,8 @@ useful for C++.")
;; test_callback_user_data_middle_single ;; test_callback_user_data_middle_single
;; test_callback_user_data_middle_tuple ;; test_callback_user_data_middle_tuple
'(#:tests? #f)) '(#:tests? #f))
;; For finding typelib files, since gobject-introscpetion isn't propagated.
(native-search-paths (package-native-search-paths gobject-introspection))
(home-page "https://live.gnome.org/PyGObject") (home-page "https://live.gnome.org/PyGObject")
(synopsis "Python bindings for GObject") (synopsis "Python bindings for GObject")
(description (description
@ -550,10 +554,8 @@ useful for C++.")
(name "python2-pygobject") (name "python2-pygobject")
(inputs (inputs
`(("python" ,python-2) `(("python" ,python-2)
("glib" ,glib)
("python-pycairo" ,python2-pycairo) ("python-pycairo" ,python2-pycairo)
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)))))
("libffi" ,libffi)))))
(define telepathy-glib (define telepathy-glib
(package (package

View File

@ -34,6 +34,7 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system glib-or-gtk)
@ -107,6 +108,7 @@
#:use-module (gnu packages cdrom) #:use-module (gnu packages cdrom)
#:use-module (gnu packages samba) #:use-module (gnu packages samba)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages fonts)
#:use-module (srfi srfi-1)) #:use-module (srfi srfi-1))
(define-public brasero (define-public brasero
@ -1463,7 +1465,7 @@ Hints specification (EWMH).")
(license license:lgpl2.0+))) (license license:lgpl2.0+)))
;; stable version for gtk2, required by xfwm4. ;; stable version for gtk2, required by xfwm4.
(define-public libwnck-1 (define-public libwnck-2
(package (inherit libwnck) (package (inherit libwnck)
(name "libwnck") (name "libwnck")
(version "2.30.7") (version "2.30.7")
@ -3381,7 +3383,7 @@ USB transfers with your high-level application or system daemon.")
(define-public simple-scan (define-public simple-scan
(package (package
(name "simple-scan") (name "simple-scan")
(version "3.17.4") (version "3.19.91")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://launchpad.net/simple-scan/" (uri (string-append "https://launchpad.net/simple-scan/"
@ -3390,7 +3392,7 @@ USB transfers with your high-level application or system daemon.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1pslbv45g01g039zj2b01k08f763kkhzqw8wwz7yh27m7bjllnx6")))) "1c5glf5vxgld41w4jxfqcv17q76qnh43fawpv33hncgh8d283xkf"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(inputs (inputs
`(("gtk" ,gtk+) `(("gtk" ,gtk+)
@ -3408,6 +3410,21 @@ USB transfers with your high-level application or system daemon.")
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("vala" ,vala) ("vala" ,vala)
("xmllint" ,libxml2))) ("xmllint" ,libxml2)))
(arguments
'(#:configure-flags '("--disable-packagekit")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'clean
(lambda _
;; Remove a left-over reference to PackageKit.
;; https://bugs.launchpad.net/simple-scan/+bug/1462769
;; There are some generated C files erroneously
;; included in the source distribution, and this
;; one breaks the build by referring to a
;; non-existent header (packagekit.h)
(delete-file "src/ui.c"))))))
(home-page "https://launchpad.net/simple-scan") (home-page "https://launchpad.net/simple-scan")
(synopsis "Document and image scanner") (synopsis "Document and image scanner")
(description "Simple Scan is an easy-to-use application, designed to let (description "Simple Scan is an easy-to-use application, designed to let
@ -3778,6 +3795,46 @@ such as gzip tarballs.")
(sha256 (sha256
(base32 (base32
"0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk"))))
(arguments
'(#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
;; Use elogind instead of systemd.
(substitute* "configure"
(("libsystemd-login >= 183 libsystemd-daemon libsystemd-journal")
"libelogind")
(("systemd") "elogind"))
(substitute* "gnome-session/gsm-systemd.c"
(("#include <systemd/sd-login.h>")
"#include <elogind/sd-login.h>"))
;; Remove uses of the systemd journal.
(substitute* "gnome-session/main.c"
(("#ifdef HAVE_SYSTEMD") "#if 0"))
(substitute* "gnome-session/gsm-manager.c"
(("#ifdef HAVE_SYSTEMD") "#if 0"))
#t))
(add-after 'install 'wrap-gnome-session
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'gnome-session' finds the 'gsettings' program.
(let ((glib (assoc-ref inputs "glib:bin"))
(out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/gnome-session")
`("PATH" ":" prefix (,(string-append glib "/bin"))))
#t)))
(add-after 'install 'disable-hardware-acceleration-check
(lambda* (#:key outputs #:allow-other-keys)
;; Do not abort if hardware acceleration is missing. This allows
;; GNOME to run in QEMU and on low-end devices.
(let ((out (assoc-ref outputs "out")))
(substitute* (string-append out
"/share/xsessions/gnome.desktop")
(("gnome-session")
"gnome-session --disable-acceleration-check"))
#t))))
#:configure-flags
'("--enable-elogind")))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(native-inputs (native-inputs
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
@ -3785,7 +3842,8 @@ such as gzip tarballs.")
("intltool" ,intltool) ("intltool" ,intltool)
("xsltproc" ,libxslt))) ("xsltproc" ,libxslt)))
(inputs (inputs
`(("gnome-desktop" ,gnome-desktop) `(("elogind" ,elogind)
("gnome-desktop" ,gnome-desktop)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("json-glib" ,json-glib) ("json-glib" ,json-glib)
@ -4147,22 +4205,10 @@ Evolution (hence the name), but is now used by other packages as well.")
users.") users.")
(license license:lgpl2.1))) (license license:lgpl2.1)))
(define %network-manager-glib-duplicate-test-patch
(origin
(method url-fetch)
(uri (string-append
"http://cgit.freedesktop.org/NetworkManager/NetworkManager/"
"patch/libnm-core/tests/test-general.c"
"?id=874f455d6d47c5a34ed9861a6710f4b78202e0d6"))
(file-name "network-manager-glib-duplicate-test.patch")
(sha256
(base32
"1v0vpxzf0p0b1y5lmq8w7rjndp216gr60nbf2dpdz5rgxx3p3ml6"))))
(define-public network-manager (define-public network-manager
(package (package
(name "network-manager") (name "network-manager")
(version "1.0.6") (version "1.0.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/NetworkManager/" (uri (string-append "mirror://gnome/sources/NetworkManager/"
@ -4170,8 +4216,7 @@ users.")
"NetworkManager-" version ".tar.xz")) "NetworkManager-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1galh9j95yw33iv1jj8zz0h88ahx8gm5mqmam7zq9f730cj01siq")) "1g4z2wg036n0njqp8fycrisj46l3yda6pl00l4rg9nfz862cxkqv"))))
(patches (list %network-manager-glib-duplicate-test-patch))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" (outputs '("out"
"doc")) ; 8 MiB of gtk-doc HTML "doc")) ; 8 MiB of gtk-doc HTML
@ -4194,6 +4239,19 @@ users.")
(string-append "--with-dhclient=" dhclient))) (string-append "--with-dhclient=" dhclient)))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda _
;; These tests try to test aspects of network-manager's
;; functionality within restricted containers, but they don't
;; cope with being already in the Guix build jail as that jail
;; lacks some features that they would like to proxy over (like
;; a /sys mount).
(substitute* '("src/platform/Makefile.in")
(("SUBDIRS = tests") ""))
(substitute* '("src/tests/Makefile.in")
(("\ttest-route-manager-linux") "\t")
(("\ttest-route-manager-fake") "\t"))
#t))
(add-before 'check 'pre-check (add-before 'check 'pre-check
(lambda _ (lambda _
;; For the missing /etc/machine-id. ;; For the missing /etc/machine-id.
@ -4242,7 +4300,7 @@ services.")
(define-public network-manager-applet (define-public network-manager-applet
(package (package
(name "network-manager-applet") (name "network-manager-applet")
(version "1.0.6") (version "1.0.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
@ -4250,7 +4308,7 @@ services.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1yj0m6fb9v12d0di0rfmk3hx1vmygjkiff2c476rf792sbh56kax")))) "1szh5jyijxm6z55irkp5s44pwah0nikss40mx7pvpk38m8zaqidh"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments '(#:configure-flags '("--disable-migration"))) (arguments '(#:configure-flags '("--disable-migration")))
(native-inputs (native-inputs
@ -4634,13 +4692,17 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
("gobject-introspection" ,gobject-introspection) ("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool) ("intltool" ,intltool)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(propagated-inputs
`(("gtk+" ,gtk+))) ; required by libnautilus-extension.pc
(inputs (inputs
;; TODO: add gvfs support. ;; TODO: add gvfs support.
`(("dconf" ,dconf) `(("dconf" ,dconf)
("exempi" ,exempi) ("exempi" ,exempi)
("gnome-desktop" ,gnome-desktop) ("gnome-desktop" ,gnome-desktop)
;; XXX: gtk+ is required by libnautilus-extension.pc
;;
;; Don't propagate it to reduces "profile pollution" of the 'gnome' meta
;; package. See:
;; <http://lists.gnu.org/archive/html/guix-devel/2016-03/msg00283.html>.
("gtk+" ,gtk+)
("libexif" ,libexif) ("libexif" ,libexif)
("libxml2" ,libxml2))) ("libxml2" ,libxml2)))
(synopsis "File manager for GNOME") (synopsis "File manager for GNOME")
@ -4783,6 +4845,7 @@ software that do not provide their own configuration interface.")
;; TODO: Add more packages according to: ;; TODO: Add more packages according to:
;; <https://packages.debian.org/jessie/gnome-core>. ;; <https://packages.debian.org/jessie/gnome-core>.
`(("adwaita-icon-theme" ,adwaita-icon-theme) `(("adwaita-icon-theme" ,adwaita-icon-theme)
("font-cantarell" ,font-cantarell)
("at-spi2-core" ,at-spi2-core) ("at-spi2-core" ,at-spi2-core)
("dbus" ,dbus) ("dbus" ,dbus)
("dconf" ,dconf) ("dconf" ,dconf)
@ -4805,9 +4868,63 @@ software that do not provide their own configuration interface.")
("totem" ,totem) ("totem" ,totem)
("yelp" ,yelp) ("yelp" ,yelp)
("zenity" ,zenity))) ("zenity" ,zenity)))
(synopsis "Desktop environment (meta-package)") (synopsis "The GNU desktop environment")
(home-page "https://www.gnome.org/") (home-page "https://www.gnome.org/")
(description (description
"GNOME is an intutive and attractive desktop environment. It aims to be "GNOME is the graphical desktop for GNU. It includes a wide variety of
an easy and elegant way to use your computer.") applications for browsing the web, editing text and images, creating
documents and diagrams, playing media, scanning, and much more.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public byzanz
;; The last stable release of Byzanz was in 2011, but there have been many
;; useful commits made to the Byzanz repository since then that it would be
;; silly to use such an old release.
(let ((commit "f7af3a5bd252db84af8365bd059c117a7aa5c4af"))
(package
(name "byzanz")
(version (string-append "0.2-1." (string-take commit 7)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.gnome.org/byzanz")
(commit commit)))
(sha256
(base32
"1l60myzxf9cav27v5v3nsijlslz9r7ip6d5kiirfpkf9k0w26hz3"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'bootstrap
(lambda _
;; The build system cleverly detects that we're not building from
;; a release tarball and turns on -Werror for GCC.
;; Unsurprisingly, there is a warning during compilation that
;; causes the build to fail unnecessarily, so we remove the flag.
(substitute* '("configure.ac")
(("-Werror") ""))
;; The autogen.sh script in gnome-common will run ./configure
;; by default, which is problematic because source shebangs
;; have not yet been patched.
(setenv "NOCONFIGURE" "t")
(zero? (system* "sh" "autogen.sh")))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("gnome-common" ,gnome-common)
("intltool" ,intltool)
("libtool" ,libtool)
("pkg-config" ,pkg-config)
("which" ,which)))
(inputs
`(("glib" ,glib)
("gstreamer" ,gstreamer)
("gst-plugins-base" ,gst-plugins-base)
("gtk+" ,gtk+)))
(synopsis "Desktop recording program")
(description "Byzanz is a simple desktop recording program with a
command-line interface. It can record part or all of an X display for a
specified duration and save it as a GIF encoded animated image file.")
(home-page "https://git.gnome.org/browse/byzanz")
(license license:gpl2+))))

View File

@ -177,7 +177,7 @@ in the Mozilla clients.")
(define-public nss (define-public nss
(package (package
(name "nss") (name "nss")
(version "3.21") (version "3.21.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -188,7 +188,7 @@ in the Mozilla clients.")
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"0fbjx3xsdm4gjc1gyzy2z315cvyw7yilsm7p9w75rpbwgl15nyiz")) "0knr99yc8sba2ga6x1gwhg9gr1dmgcl344g3bmxm8c364i2vpxns"))
;; Create nss.pc and nss-config. ;; Create nss.pc and nss-config.
(patches (list (search-patch "nss-pkgconfig.patch"))))) (patches (list (search-patch "nss-pkgconfig.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
@ -290,7 +290,25 @@ standards.")
(patches (map search-patch (patches (map search-patch
'("icecat-avoid-bundled-includes.patch" '("icecat-avoid-bundled-includes.patch"
"icecat-re-enable-DHE-cipher-suites.patch" "icecat-re-enable-DHE-cipher-suites.patch"
"icecat-update-graphite2.patch"))) "icecat-update-graphite2.patch"
"icecat-update-graphite2-pt2.patch"
"icecat-CVE-2015-4477.patch"
"icecat-CVE-2015-7207.patch"
"icecat-CVE-2016-1952-pt01.patch"
"icecat-CVE-2016-1952-pt02.patch"
"icecat-CVE-2016-1952-pt03.patch"
"icecat-CVE-2016-1952-pt04.patch"
"icecat-CVE-2016-1952-pt05.patch"
"icecat-CVE-2016-1952-pt06.patch"
"icecat-CVE-2016-1954.patch"
"icecat-CVE-2016-1960.patch"
"icecat-CVE-2016-1961.patch"
"icecat-CVE-2016-1962.patch"
"icecat-CVE-2016-1964.patch"
"icecat-CVE-2016-1965.patch"
"icecat-CVE-2016-1966.patch"
"icecat-CVE-2016-1974.patch"
"icecat-bug-1248851.patch")))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin

View File

@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +27,8 @@
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
@ -32,14 +36,96 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages image)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages photo)
#:use-module (gnu packages python)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages video)
#:use-module (gnu packages xorg)) #:use-module (gnu packages xorg))
(define-public blender
(package
(name "blender")
(version "2.76b")
(source (origin
(method url-fetch)
(uri (string-append "http://download.blender.org/source/"
"blender-" version ".tar.gz"))
(sha256
(base32
"0pb0mlj4vj0iir528ifqq67nsh3ca1942933d9cwlbpcja2jm1dx"))))
(build-system cmake-build-system)
(arguments
`(;; Test files are very large and not included in the release tarball.
#:tests? #f
#:configure-flags
(list "-DWITH_CODEC_FFMPEG=ON"
"-DWITH_CODEC_SNDFILE=ON"
"-DWITH_CYCLES=ON"
"-DWITH_DOC_MANPAGE=ON"
"-DWITH_FFTW3=ON"
"-DWITH_GAMEENGINE=ON"
"-DWITH_IMAGE_OPENJPEG=ON"
"-DWITH_INPUT_NDOF=ON"
"-DWITH_INSTALL_PORTABLE=OFF"
"-DWITH_JACK=ON"
"-DWITH_MOD_OCEANSIM=ON"
"-DWITH_PLAYER=ON"
"-DWITH_PYTHON_INSTALL=OFF"
"-DWITH_SYSTEM_OPENJPEG=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-broken-import
(lambda _
(substitute* "release/scripts/addons/io_scene_fbx/json2fbx.py"
(("import encode_bin") "from . import encode_bin"))
#t))
(add-after 'set-paths 'add-ilmbase-include-path
(lambda* (#:key inputs #:allow-other-keys)
;; OpenEXR propagates ilmbase, but its include files do not appear
;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to
;; the CPATH to satisfy the dependency on "half.h".
(setenv "CPATH"
(string-append (assoc-ref inputs "ilmbase")
"/include/OpenEXR"
":" (or (getenv "CPATH") "")))
#t)))))
(inputs
`(("boost" ,boost)
("jemalloc" ,jemalloc)
("libx11" ,libx11)
("openimageio" ,openimageio)
("openexr" ,openexr)
("ilmbase" ,ilmbase)
("openjpeg" ,openjpeg-1)
("libjpeg" ,libjpeg)
("libpng" ,libpng)
("libtiff" ,libtiff)
("ffmpeg" ,ffmpeg)
("fftw" ,fftw)
("jack" ,jack-1)
("libsndfile" ,libsndfile)
("freetype" ,freetype)
("glew" ,glew)
("openal" ,openal)
("python" ,python-wrapper)
("zlib" ,zlib)))
(home-page "http://blender.org/")
(synopsis "3D graphics creation suite")
(description
"Blender is a 3D graphics creation suite. It supports the entirety of
the 3D pipelinemodeling, rigging, animation, simulation, rendering,
compositing and motion tracking, even video editing and game creation. The
application can be customized via its API for Python scripting.")
(license license:gpl2+)))
(define-public cgal (define-public cgal
(package (package
(name "cgal") (name "cgal")
@ -89,7 +175,8 @@ many more.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c")))) "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
(patches (map search-patch '("ilmbase-fix-tests.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.openexr.com/") (home-page "http://www.openexr.com/")
(synopsis "Utility C++ libraries for threads, maths, and exceptions") (synopsis "Utility C++ libraries for threads, maths, and exceptions")
@ -119,6 +206,20 @@ exception-handling library.")
"\"/tmp/\""))) "\"/tmp/\"")))
(patches (list (search-patch "openexr-missing-samples.patch"))))) (patches (list (search-patch "openexr-missing-samples.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-broken-test
;; This test fails on i686. Upstream developers suggest that
;; this test is broken on i686 and can be safely disabled:
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
(lambda _
(substitute* "IlmImfTest/main.cpp"
(("#include \"testOptimizedInterleavePatterns.h\"")
"//#include \"testOptimizedInterleavePatterns.h\"")
(("TEST \\(testOptimizedInterleavePatterns")
"//TEST (testOptimizedInterleavePatterns"))
#t)))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(propagated-inputs (propagated-inputs

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015, 2016 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -20,10 +20,11 @@
;;; 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 gstreamer) (define-module (gnu packages gstreamer)
#:use-module ((guix licenses) #:select (lgpl2.0+ bsd-2 bsd-3 gpl2+)) #:use-module ((guix licenses) #:select (lgpl2.0+ lgpl2.1+ bsd-2 bsd-3 gpl2+))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages audio) #:use-module (gnu packages audio)
#:use-module (gnu packages bison) #:use-module (gnu packages bison)
@ -61,14 +62,14 @@
(define-public orc (define-public orc
(package (package
(name "orc") (name "orc")
(version "0.4.24") (version "0.4.25")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/data/src/" (uri (string-append "https://gstreamer.freedesktop.org/data/src/"
"orc/orc-" version ".tar.xz")) "orc/orc-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"16ykgdrgxr6pfpy931p979cs68klvwmk3ii1k0a00wr4nn9x931k")))) "1lak3hyvvb0w9avzmf0a8vayb7vqhj4m709q1czlhvgjb15dbcf1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments `(#:phases (arguments `(#:phases
(alist-cons-before (alist-cons-before
@ -400,3 +401,54 @@ distribution problems in some jurisdictions, e.g. due to patent threats.")
"This GStreamer plugin supports a large number of audio and video "This GStreamer plugin supports a large number of audio and video
compression formats through the use of the libav library.") compression formats through the use of the libav library.")
(license gpl2+))) (license gpl2+)))
(define-public python-gst
(package
(name "python-gst")
(version "1.6.2")
(source (origin
(method url-fetch)
(uri (string-append
"https://gstreamer.freedesktop.org/src/gst-python/"
"gst-python-" version ".tar.xz"))
(sha256
(base32
"09ci5zvr7lms7mvgbjgsjwaxcl4nq45n1g9pdwnqmx3rf0qkwxjf"))))
(build-system gnu-build-system)
(arguments
;; XXX: Factorize python-sitedir with python-build-system.
`(#:imported-modules (,@%gnu-build-system-modules
(guix build python-build-system))
#:configure-flags
(let* ((python (assoc-ref %build-inputs "python"))
(python-version ((@@ (guix build python-build-system)
get-python-version)
python))
(python-sitedir (string-append
"lib/python" python-version "/site-packages")))
(list (string-append
"--with-pygi-overrides-dir=" %output "/" python-sitedir
"/gi/overrides")))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python)))
(propagated-inputs
`(("gst-plugins-base" ,gst-plugins-base)
("python-pygobject" ,python-pygobject)))
(home-page "http://gstreamer.freedesktop.org/")
(synopsis "GStreamer GObject Introspection overrides for Python")
(description
"This package contains GObject Introspection overrides for Python that can
be used by Python applications using GStreamer.")
(license lgpl2.1+)
(properties `((python2-variant . ,(delay python2-gst))))))
(define-public python2-gst
(package (inherit python-gst)
(name "python2-gst")
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-2)))
(propagated-inputs
`(("gst-plugins-base" ,gst-plugins-base)
("python-pygobject" ,python2-pygobject)))))

View File

@ -433,6 +433,35 @@ in the GNOME project.")
(license license:lgpl2.0+) (license license:lgpl2.0+)
(home-page "https://developer.gnome.org/gdk-pixbuf/"))) (home-page "https://developer.gnome.org/gdk-pixbuf/")))
;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
;; on gdk-pixbuf, so this new varibale. Also, librsvg adds 90MiB to the
;; closure size.
(define-public gdk-pixbuf+svg
(package (inherit gdk-pixbuf)
(name "gdk-pixbuf+svg")
(inputs
`(("librsvg" ,librsvg)
,@(package-inputs gdk-pixbuf)))
(arguments
'(#:configure-flags '("--with-x11")
#:tests? #f ; tested by the gdk-pixbuf package already
#:phases
(modify-phases %standard-phases
(add-after 'install 'register-svg-loader
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(librsvg (assoc-ref inputs "librsvg"))
(loaders
(append
(find-files out "^libpixbufloader-.*\\.so$")
(find-files librsvg "^libpixbufloader-.*\\.so$")))
(gdk-pixbuf-query-loaders
(string-append out "/bin/gdk-pixbuf-query-loaders")))
(zero? (apply system* `(,gdk-pixbuf-query-loaders
"--update-cache" ,@loaders)))))))))
(synopsis
"GNOME image loading and manipulation library, with SVG support")))
(define-public at-spi2-core (define-public at-spi2-core
(package (package
(name "at-spi2-core") (name "at-spi2-core")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -255,7 +256,16 @@ without requiring the source code to be rewritten.")
("flex" ,flex) ("flex" ,flex)
("texinfo" ,texinfo) ("texinfo" ,texinfo)
("gettext" ,gnu-gettext) ("gettext" ,gnu-gettext)
,@(package-native-inputs guile-next))))) ,@(package-native-inputs guile-next)))
;; Same as in guile-2.0
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
(files '("share/guile/site/2.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/2.0/ccache"
"share/guile/site/2.0")))))))
;;; ;;;

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 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>
;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
@ -7,6 +7,7 @@
;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net> ;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -547,14 +548,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
(define-public vigra (define-public vigra
(package (package
(name "vigra") (name "vigra")
(version "1.10.0") (version "1.11.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hci.iwr.uni-heidelberg.de/vigra/vigra-" (uri (string-append "https://github.com/ukoethe/vigra/releases/download/"
version "-src.tar.gz")) "Version-1-11-0/vigra-"
(sha256 (base32 version "-src.tar.gz"))
"16d0jvz3k49niljg9qvvlyxxl15yk0300xkymvyznlmvn1hs7m22")))) (sha256 (base32
"1jzm79kqiiilvys3b8mlzy9cvmiirrcwsrlg19qd9rza8zipsqb8"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("boost" ,boost) `(("boost" ,boost)
@ -576,6 +578,7 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
("python2-sphinx" ,python2-sphinx))) ("python2-sphinx" ,python2-sphinx)))
(arguments (arguments
`(#:test-target "check" `(#:test-target "check"
#:parallel-build? #f ; parallel builds trigger an ICE
#:configure-flags #:configure-flags
(list "-Wno-dev" ; suppress developer mode with lots of warnings (list "-Wno-dev" ; suppress developer mode with lots of warnings
(string-append "-DVIGRANUMPY_INSTALL_DIR=" (string-append "-DVIGRANUMPY_INSTALL_DIR="
@ -731,7 +734,10 @@ convert, manipulate, filter and display a wide variety of image formats.")
(search-patch "jasper-CVE-2014-8157.patch") (search-patch "jasper-CVE-2014-8157.patch")
(search-patch "jasper-CVE-2014-8158.patch") (search-patch "jasper-CVE-2014-8158.patch")
(search-patch "jasper-CVE-2014-9029.patch") (search-patch "jasper-CVE-2014-9029.patch")
(search-patch "jasper-CVE-2016-1867.patch"))))) (search-patch "jasper-CVE-2016-1577.patch")
(search-patch "jasper-CVE-2016-1867.patch")
(search-patch "jasper-CVE-2016-2089.patch")
(search-patch "jasper-CVE-2016-2116.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("unzip" ,unzip))) `(("unzip" ,unzip)))

View File

@ -1,6 +1,8 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net> ;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -17,32 +19,117 @@
;;; 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/>.
;; TODO: Add ruby (define-module (gnu packages irc)
#:use-module ((guix licenses) #:prefix license:)
(define-module (gnu packages weechat) #:use-module (guix download)
#:use-module (guix packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages base)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages file)
#:use-module (gnu packages compression)
#:use-module (gnu packages lua)
#:use-module (gnu packages python)
#:use-module (gnu packages perl)
#:use-module (gnu packages tcl)
#:use-module (gnu packages aspell) #:use-module (gnu packages aspell)
#:use-module (gnu packages curl)
#:use-module (gnu packages guile)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages autogen) #:use-module (gnu packages autogen)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages file)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
#:use-module (gnu packages lua)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls) #:use-module (gnu packages python)
#:use-module (guix packages) #:use-module (gnu packages qt)
#:use-module (guix download) #:use-module (gnu packages tcl)
#:use-module (guix build-system gnu) #:use-module (gnu packages tls))
#:use-module ((guix licenses) #:select (gpl3)))
(define-public quassel
(package
(name "quassel")
(version "0.12.3")
(source
(origin
(method url-fetch)
(uri (string-append "http://quassel-irc.org/pub/quassel-"
version ".tar.bz2"))
(sha256
(base32
"0d6lwf6qblj1ia5j9mjy112zrmpbbg9mmxgscbgxiqychldyjgjd"))))
(build-system cmake-build-system)
(arguments
;; The three binaries are not mutually exlusive, and are all built
;; by default.
`(#:configure-flags '(;;"-DWANT_QTCLIENT=OFF" ; 5.0 MiB
;;"-DWANT_CORE=OFF" ; 2.3 MiB
;;"-DWANT_MONO=OFF" ; 6.3 MiB
"-DUSE_QT5=ON" ; default is qt4
"-DWITH_KDE=OFF" ; no to integration
"-DWITH_OXYGEN=ON" ; on=embed icons
"-DWITH_WEBKIT=ON") ; wants qtwebkit, in qt5
#:tests? #f)) ; no test target
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("oxygen-icons" ,oxygen-icons)
("qca" ,qca)
("qt", qt)
("snorenotify" ,snorenotify)
("zlib" ,zlib)))
(home-page "http://quassel-irc.org/")
(synopsis "Distributed IRC client")
(description "Quassel is a distributed IRC client, meaning that one or more
clients can attach to and detach from the central core. It resembles the
popular combination of screen and a text-based IRC client such as WeeChat or
irssi, but graphical.")
(license (list license:gpl2 license:gpl3)))) ;; dual licensed
(define-public irssi
(package
(name "irssi")
(version "0.8.18")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
"releases/download/" version "/irssi-"
version ".tar.xz"))
(sha256
(base32
"0h3q0p5rnm6h0hcv06m8vrs97kyr1l7snjdy3qbjsz3m97vpg8f0"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(ncurses (assoc-ref inputs "ncurses")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(string-append "--with-ncurses=" ncurses)
(string-append "--with-proxy")
(string-append "--with-socks")
(string-append "--with-bot")))))))))
(inputs
`(("glib" ,glib)
("ncurses" ,ncurses)
("openssl" ,openssl)))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)))
(home-page "http://www.irssi.org/")
(synopsis "Terminal-based IRC client")
(description
"Irssi is a terminal based IRC client for UNIX systems. It also supports
SILC and ICB protocols via plugins.")
(license license:gpl2+)))
(define-public weechat (define-public weechat
(package (package
@ -103,4 +190,4 @@ for Web, Qt, Android and Emacs. In WeeChat everything can be done
with a keyboard, though it also supports mouse. It is customizable with a keyboard, though it also supports mouse. It is customizable
and extensible with plugins and scripts.") and extensible with plugins and scripts.")
(home-page "http://www.weechat.org/") (home-page "http://www.weechat.org/")
(license gpl3))) (license license:gpl3)))

View File

@ -1,70 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2015 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 irssi)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages glib)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls))
(define-public irssi
(package
(name "irssi")
(version "0.8.17")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi-import/irssi/"
"releases/download/0.8.17/irssi-"
version ".tar.bz2"))
(sha256
(base32
"01v82q2pfiimx6lh271kdvgp8hl4pahc3srg04fqzxgdsb5015iw"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(alist-replace
'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(ncurses (assoc-ref inputs "ncurses")))
(setenv "CONFIG_SHELL" (which "bash"))
(zero?
(system* "./configure"
(string-append "--prefix=" out)
(string-append "--with-ncurses=" ncurses)))))
%standard-phases)))
(inputs
`(("glib" ,glib)
("ncurses" ,ncurses)
("openssl" ,openssl)))
(native-inputs
`(("pkg-config" ,pkg-config)
("perl" ,perl)))
(home-page "http://www.irssi.org/")
(synopsis "Terminal-based IRC client")
(description
"Irssi is a terminal based IRC client for UNIX systems. It also supports
SILC and ICB protocols via plugins.")
(license license:gpl2+)))

View File

@ -139,9 +139,8 @@ is implemented.")
(version "1.9.6") (version "1.9.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append "mirror://apache/ant/source/apache-ant-"
"https://www.apache.org/dist/ant/source/apache-ant-" version "-src.tar.gz"))
version "-src.tar.gz"))
(sha256 (sha256
(base32 (base32
"1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am")))) "1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am"))))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <address@hidden> ;;; Copyright © 2014 Eric Bavier <address@hidden>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,7 +28,7 @@
(define-public jrnl (define-public jrnl
(package (package
(name "jrnl") (name "jrnl")
(version "1.8.4") (version "1.9.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -36,11 +37,10 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"019ky09sj5i7frmca0imv4jm46mn3f4lzah2wmiwxh22cisj7ksn")))) "0mfq7hhw5np2dj9jlxpyyk2cg9i0xgz2brb894d928hczszy97bq"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-setuptools" ,python-setuptools) `(("behave" ,behave)))
("behave" ,behave)))
(inputs (inputs
`(("python" ,python) `(("python" ,python)
("python-keyring" ,python-keyring) ("python-keyring" ,python-keyring)

View File

@ -91,3 +91,27 @@ lower level classes for interaction with the X Windowing System.")
;; Some source files mention lgpl2.0+, but the included license is ;; Some source files mention lgpl2.0+, but the included license is
;; the lgpl2.1. Some source files are under non-copyleft licenses. ;; the lgpl2.1. Some source files are under non-copyleft licenses.
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public oxygen-icons
(package
(name "oxygen-icons")
(version kde-frameworks-version)
(source
(origin
(method url-fetch)
(uri (string-append "http://download.kde.org/stable/frameworks/"
(version-major+minor version) "/"
name "5-"version ".tar.xz"))
(sha256
(base32
"09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("qt" ,qt)))
(home-page "https://community.kde.org/Frameworks")
(synopsis "Oxygen provides the standard icon theme for the KDE desktop.")
(description "Oxygen icon theme for the KDE desktop")
(license license:lgpl3+)))

79
gnu/packages/kde.scm Normal file
View File

@ -0,0 +1,79 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 kde)
#:use-module (guix build-system cmake)
#:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages tls)
#:use-module (gnu packages qt))
(define-public qca
(package
(name "qca")
(version "2.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.kde.org/stable/qca/" version
"/src/qca-" version ".tar.xz"))
(sha256
(base32
"10z9icq28fww4qbzwra8d9z55ywbv74qk68nhiqfrydm21wkxplm"))))
(build-system cmake-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("openssl" ,openssl)
("qt" ,qt)))
(home-page "http://delta.affinix.com/qca/")
(synopsis "Libraries for the Qt Cryptographic Architecture")
(description "The Qt Cryptographic Architecture (QCA) provides a
straightforward and cross-platform API for a range of cryptographic features,
including SSL/TLS, X.509 certificates, SASL, OpenPGP, S/MIME CMS, and smart
cards.")
(license license:lgpl2.1)))
(define-public snorenotify
(package
(name "snorenotify")
(version "0.7.0")
(source
(origin
(method url-fetch)
(uri (string-append "http://download.kde.org/stable/snorenotify/"
version "/src/snorenotify-" version ".tar.xz"))
(sha256
(base32
"0jz6ivk90h7iwgyxar7xzzj8yvzn6s1my6cqs9bdnwqswfk1nhbd"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; both tests fail, require display
(inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("qt" ,qt)))
(home-page "https://techbase.kde.org/Projects/Snorenotify")
(synopsis "Qt notification framework")
(description "Snorenotify is a multi platform Qt notification framework.
Using a plugin system it is possible to create notifications with many
different notification systems.")
(license license:lgpl3)))

View File

@ -21,6 +21,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 (gnu packages algebra) #:use-module (gnu packages algebra)
#:use-module (gnu packages audio) #:use-module (gnu packages audio)
@ -68,18 +69,67 @@
#:use-module (gnu packages yasm) #:use-module (gnu packages yasm)
#:use-module (gnu packages zip)) #:use-module (gnu packages zip))
(define-public crossguid
(let ((commit "8f399e8bd4252be9952f3dfa8199924cc8487ca4"))
(package
(name "crossguid")
(version (string-append "0.0-1." (string-take commit 7)))
;; There's no official release. Just a Git repository.
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/graeme-hill/crossguid.git")
(commit commit)))
(sha256
(base32
"1i29y207qqddvaxbn39pk2fbh3gx8zvdprfp35wasj9rw2wjk3s9"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
;; There's no build system here, so we have to do it ourselves.
(replace 'build
(lambda _
(and (zero? (system* "g++" "-c" "guid.cpp" "-o" "guid.o"
"-std=c++11" "-DGUID_LIBUUID"))
(zero? (system* "ar" "rvs" "libcrossguid.a" "guid.o")))))
(replace 'check
(lambda _
(and (zero? (system* "g++" "-c" "test.cpp" "-o" "test.o"
"-std=c++11"))
(zero? (system* "g++" "-c" "testmain.cpp" "-o" "testmain.o"
"-std=c++11"))
(zero? (system* "g++" "test.o" "guid.o" "testmain.o"
"-o" "test" "-luuid"))
(zero? (system* (string-append (getcwd) "/test"))))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "guid.h" (string-append out "/include"))
(install-file "libcrossguid.a"
(string-append out "/lib"))
#t))))))
(inputs
`(("util-linux" ,util-linux)))
(synopsis "Lightweight universal identifier library")
(description "CrossGuid is a minimal GUID/UUID
generator library for C++.")
(home-page "https://github.com/graeme-hill/crossguid")
(license license:expat))))
(define-public kodi (define-public kodi
(package (package
(name "kodi") (name "kodi")
(version "15.2") (version "16.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://mirrors.kodi.tv/releases/source/" (uri (string-append "http://mirrors.kodi.tv/releases/source/"
version "-Isengard.tar.gz")) version "-Jarvis.tar.gz"))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"043i0f1crx9glwxil4xm45z5kxpkrx316gi4ir4d3rbd5safp2nx")) "0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884"))
(snippet (snippet
;; Delete bundled ffmpeg. ;; Delete bundled ffmpeg.
;; TODO: Delete every other bundled library. ;; TODO: Delete every other bundled library.
@ -161,7 +211,9 @@
("bluez" ,bluez) ("bluez" ,bluez)
("boost" ,boost) ("boost" ,boost)
("bzip2" ,bzip2) ("bzip2" ,bzip2)
("crossguid" ,crossguid)
("curl" ,curl) ("curl" ,curl)
("dcadec" ,dcadec)
("dbus" ,dbus) ("dbus" ,dbus)
("enca" ,enca) ("enca" ,enca)
("eudev" ,eudev) ("eudev" ,eudev)
@ -213,6 +265,7 @@
("taglib" ,taglib) ("taglib" ,taglib)
("tinyxml" ,tinyxml) ("tinyxml" ,tinyxml)
("unzip" ,unzip) ("unzip" ,unzip)
("util-linux" ,util-linux)
("zip" ,zip) ("zip" ,zip)
("zlib" ,zlib))) ("zlib" ,zlib)))
(synopsis "Media center for home theater computers") (synopsis "Media center for home theater computers")

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr> ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; ;;;
@ -32,16 +32,15 @@
(define-public libevent (define-public libevent
(package (package
(name "libevent") (name "libevent")
(version "2.0.21") (version "2.0.22")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://github.com/downloads/libevent/libevent/libevent-" "https://github.com/libevent/libevent/releases/download/release-"
version version "-stable/libevent-" version "-stable.tar.gz"))
"-stable.tar.gz"))
(sha256 (sha256
(base32 (base32
"1xblymln9vihdmf1aqkp8chwvnhpdch3786bh30bj75slnl31992")) "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki"))
(patches (list (search-patch "libevent-dns-tests.patch"))))) (patches (list (search-patch "libevent-dns-tests.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,7 +22,7 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module ((guix licenses) #:use-module ((guix licenses)
#:select (gpl2+ lgpl2.1+ mpl1.1 mpl2.0 #:select (gpl2+ lgpl2.1+ lgpl3+ mpl1.1 mpl2.0
non-copyleft x11-style)) non-copyleft x11-style))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
@ -373,6 +374,33 @@ CorelDRAW documents of all versions.")
Apple Keynote documents. It currently supports Keynote versions 2 to 5.") Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
(license mpl2.0))) (license mpl2.0)))
(define-public liblangtag
(package
(name "liblangtag")
(version "0.5.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/tagoh/liblangtag/downloads/"
name "-" version ".tar.bz2"))
(sha256
(base32
"1akf0d7yp29pv3j2pw2riii4n5kyjr9szc0y77khnx9zzr5zdqh8"))))
(build-system gnu-build-system)
(native-inputs
`(("libtool" ,libtool)
("pkg-config" ,pkg-config)))
(inputs
`(("libxml2" ,libxml2)))
(home-page "http://tagoh.bitbucket.org/liblangtag/")
(synopsis "Library to access tags for identifying languages")
(description "Liblangtag implements an interface to work with tags
for identifying languages as described in RFC 5646. It supports the
extensions described in RFC6067 and RFC6497, and Extension T for
language/locale identifiers as described in the Unicode CLDR
standard 21.0.2.")
(license (list lgpl3+ mpl2.0)))) ; dual license
(define-public libexttextcat (define-public libexttextcat
(package (package
(name "libexttextcat") (name "libexttextcat")
@ -681,7 +709,7 @@ and to return information on pronunciations, meanings and synonyms.")
(define-public libreoffice (define-public libreoffice
(package (package
(name "libreoffice") (name "libreoffice")
(version "5.0.3.2") (version "5.0.5.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -690,7 +718,7 @@ and to return information on pronunciations, meanings and synonyms.")
"http://download.documentfoundation.org/libreoffice/src/" "http://download.documentfoundation.org/libreoffice/src/"
(version-prefix version 3) "/libreoffice-" version ".tar.xz")) (version-prefix version 3) "/libreoffice-" version ".tar.xz"))
(sha256 (base32 (sha256 (base32
"1gflcsnw7bx02jbb2x5darf56x0qgia03ylaycadk68ikibckybp")))) "120vcxpxzs0za76fyfry281ysv6d1ianb37d1yq8py8chkdjkrqy"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(;; autoreconf is run by the LibreOffice build system, since after `(;; autoreconf is run by the LibreOffice build system, since after
@ -762,8 +790,7 @@ and to return information on pronunciations, meanings and synonyms.")
("xmlsec-src" ,xmlsec-src-libreoffice) ("xmlsec-src" ,xmlsec-src-libreoffice)
("zip" ,zip))) ("zip" ,zip)))
(arguments (arguments
`(#:parallel-build? #f ; Otherwise the build fails. `(#:tests? #f ; Building the tests already fails.
#:tests? #f ; Building the tests already fails.
#:make-flags '("build-nocheck") ; Do not build unit tests, which fails. #:make-flags '("build-nocheck") ; Do not build unit tests, which fails.
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -220,7 +220,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(search-path %load-path file))) (search-path %load-path file)))
(define-public linux-libre (define-public linux-libre
(let* ((version "4.4.3") (let* ((version "4.5")
(build-phase (build-phase
'(lambda* (#:key system inputs #:allow-other-keys #:rest args) '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
;; Apply the neat patch. ;; Apply the neat patch.
@ -294,7 +294,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
(uri (linux-libre-urls version)) (uri (linux-libre-urls version))
(sha256 (sha256
(base32 (base32
"06wl6gvhds6j6aaryzpz4jngdf3v70spvp1xb7k2c03kvm9v5f4v")))) "0km863vwy557flpygkr869yshpjs1v11ni78p8k9p9nm31ai6yn3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("x86_64-linux" "i686-linux")) (supported-systems '("x86_64-linux" "i686-linux"))
(native-inputs `(("perl" ,perl) (native-inputs `(("perl" ,perl)
@ -303,8 +303,10 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
("module-init-tools" ,module-init-tools) ("module-init-tools" ,module-init-tools)
("patch/freedo+gnu" ,%boot-logo-patch) ("patch/freedo+gnu" ,%boot-logo-patch)
,@(let ((conf (kernel-config (or (%current-target-system) ,@(let ((conf (kernel-config
(%current-system))))) (or (%current-target-system)
(%current-system))
#:variant (version-major+minor version))))
(if conf (if conf
`(("kconfig" ,conf)) `(("kconfig" ,conf))
'())))) '()))))
@ -326,16 +328,33 @@ It has been modified to remove all non-free binary blobs.")
(license license:gpl2) (license license:gpl2)
(home-page "http://www.gnu.org/software/linux-libre/")))) (home-page "http://www.gnu.org/software/linux-libre/"))))
(define-public linux-libre-4.1 (define-public linux-libre-4.4
(package (package
(inherit linux-libre) (inherit linux-libre)
(version "4.1.18") (version "4.4.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (linux-libre-urls version)) (uri (linux-libre-urls version))
(sha256 (sha256
(base32 (base32
"1bddh2rg645lavhjkk9z75vflba5y0g73z2fjwgbfrj5jb44x9i7")))) "0sf623knc4j23p96r0w1ng725kj45ra50bwix01z5nvl5aqpnsrp"))))
(native-inputs
(let ((conf (kernel-config (or (%current-target-system)
(%current-system))
#:variant "4.4")))
`(,@(alist-delete "kconfig" (package-native-inputs linux-libre))
("kconfig" ,conf))))))
(define-public linux-libre-4.1
(package
(inherit linux-libre)
(version "4.1.19")
(source (origin
(method url-fetch)
(uri (linux-libre-urls version))
(sha256
(base32
"0xkj94xmnmxr768qp6n68r1g68ix1sds95nv6zfg4x8fc7fzn8km"))))
(native-inputs (native-inputs
(let ((conf (kernel-config (or (%current-target-system) (let ((conf (kernel-config (or (%current-target-system)
(%current-system)) (%current-system))
@ -2472,7 +2491,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.4") (version "4.4.1")
(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/"
@ -2480,7 +2499,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
"0jssv1ys4nw2jf7mkp58c19yspaa8ybf48fxsrhhp0683mzpr73p")))) "1z5882zx9jx02vyg067siws0irsl8pg37myx17hr4imn9ypf6r4r"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:test-target "test" '(#:test-target "test"
@ -2505,3 +2524,35 @@ easy administration.")
;; GPL2+: crc32.c, radix-tree.c, raid6.c, rbtree.c. ;; GPL2+: crc32.c, radix-tree.c, raid6.c, rbtree.c.
;; GPL2: Everything else. ;; GPL2: Everything else.
(license (list license:gpl2 license:gpl2+)))) (license (list license:gpl2 license:gpl2+))))
(define-public freefall
(package
(name "freefall")
(version (package-version linux-libre))
(source (package-source linux-libre))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(add-after 'unpack 'enter-subdirectory
(lambda _
(chdir "tools/laptop/freefall")))
(delete 'configure)
(add-before 'build 'increase-timeout
(lambda _
;; The default of 2 seconds is too low: it assumes an
;; open lid and AC power without actually checking.
(substitute* "freefall.c"
(("alarm\\(2\\)") "alarm(5)")))))
#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")))
#:tests? #f)) ;no tests
(home-page (package-home-page linux-libre))
(synopsis "Free-fall protection for spinning laptop hard drives")
(description
"Prevents shock damage to the internal spinning hard drive(s) of some
HP and Dell laptops. When sudden movement is detected, all input/output
operations on the drive are suspended and its heads are parked on the ramp,
where they are less likely to cause damage to the spinning disc. Requires a
drive that supports the ATA/ATAPI-7 IDLE IMMEDIATE command with unload
feature, and a laptop with an accelerometer. It has no effect on SSDs.")
(license license:gpl2)))

View File

@ -11,6 +11,8 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -69,8 +71,8 @@
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:use-module ((guix licenses)
#:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft #:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
(expat . license:expat))) non-copyleft (expat . license:expat)))
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
@ -287,7 +289,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap (define-public offlineimap
(package (package
(name "offlineimap") (name "offlineimap")
(version "6.6.1") (version "6.7.0")
(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/"
@ -295,7 +297,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
"1c2b03856a78ripkpl9jjzj6yzyfb3rlrdnjx300s647l1xx8gxg")))) "0462mal2fxvavxhwjk1a6vsnspx07yniifa687dwg46aplqznin4"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs `(("python" ,python-2))) (native-inputs `(("python" ,python-2)))
(arguments (arguments
@ -629,7 +631,19 @@ which can add many functionalities to the base client.")
(arguments (arguments
`(#:configure-flags (list "--with-libgsasl" `(#:configure-flags (list "--with-libgsasl"
"--with-libidn" "--with-libidn"
"--with-tls=gnutls"))) "--with-tls=gnutls")
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-msmtpq
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(doc (string-append out "/share/doc/msmtp"))
(msmtpq (string-append "scripts/msmtpq")))
(install-file (string-append msmtpq "/msmtpq") bin)
(install-file (string-append msmtpq "/msmtp-queue") bin)
(install-file (string-append msmtpq "/README.msmtpq") doc)
#t))))))
(synopsis (synopsis
"Simple and easy to use SMTP client with decent sendmail compatibility") "Simple and easy to use SMTP client with decent sendmail compatibility")
(description (description
@ -641,7 +655,7 @@ delivery.")
(define-public exim (define-public exim
(package (package
(name "exim") (name "exim")
(version "4.86") (version "4.86.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -651,7 +665,7 @@ delivery.")
version ".tar.bz2"))) version ".tar.bz2")))
(sha256 (sha256
(base32 (base32
"0mn4bxih9slrmll5262ayhf41ji43pjf1rv0y6xpy6x55v7g5k7i")))) "1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("bdb" ,bdb) `(("bdb" ,bdb)
@ -1085,4 +1099,97 @@ deliver it in various ways.")
;; with that information. ;; with that information.
(non-copyleft "https://github.com/nicm/fdm/blob/master/command.c")))) (non-copyleft "https://github.com/nicm/fdm/blob/master/command.c"))))
;;; mail.scm ends here
(define-public procmail
(package
(name "procmail")
(version "3.22")
(source
(origin
(method url-fetch)
(uri (string-append
"ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-"
version
".tar.gz"))
(sha256
(base32
"05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08"))
;; The following patch fixes an ambiguous definition of
;; getline() in formail.c. The patch is provided by Debian as
;; patch 24.
(patches
(list
(search-patch "procmail-ambiguous-getline-debian.patch")))))
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'configure
(lambda _
(substitute* "Makefile"
(("/bin/sh")
(which "sh"))
(("/usr")
(assoc-ref %outputs "out"))
(("/bin/rm")
(which "rm")))
#t)))
#:tests? #f)) ;; There are no tests indicating a successful
;; build. Some tests of basic locking mechanisms provided by the
;; filesystem are performed during 'make install'. However, these
;; are performed before the actual build process.
(build-system gnu-build-system)
(inputs `(("glibc" ,glibc)
("exim" ,exim)))
(home-page "http://www.procmail.org/")
(synopsis "Versatile mail delivery agent (MDA)")
(description "Procmail is a mail delivery agent (MDA) featuring support
for a variety of mailbox formats such as mbox, mh and maildir. Incoming mail
can be sorted into separate files/directories and arbitrary commands can be
executed on mail arrival. Procmail is considered stable, but is no longer
maintained.")
(license gpl2+))) ;; procmail allows to choose the
;; nonfree Artistic License 1.0
;; as alternative to the GPL2+.
;; This option is not listed here.
(define-public khard
(package
(name "khard")
(version "0.8.1")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
"098gs94qmnspdfn6ar8lycx7dbsz9bcff90aps0cmn47mw7llch0"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only python-2 is supported.
#:phases
(modify-phases %standard-phases
(add-before 'build 'disable-egg-compression
;; Do not compress the egg.
(lambda _
(let ((port (open-file "setup.cfg" "a")))
(display "\n[easy_install]\nzip_ok = 0\n"
port)
(close-port port)
#t)))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/khard")))
(copy-recursively "misc/khard" doc)))))))
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(propagated-inputs
`(("python2-vobject" ,python2-vobject)
("python2-pyyaml" ,python2-pyyaml)
("python2-atomicwrites" ,python2-atomicwrites)
("python2-configobj" ,python2-configobj)))
(synopsis "Console address book using CardDAV")
(description "Khard is an address book for the console. It creates, reads,
modifies and removes CardDAV address book entries at your local machine. For
synchronizing with a remote address book, @command{vdirsyncer} is recommended.
Khard can also be used from within the email client @command{mutt}.")
(home-page "https://github.com/scheibler/khard")
(license gpl3+)))

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014 John Darrington <jmd@gnu.org> ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org> ;;; Copyright © 2014 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
@ -177,7 +177,7 @@ numbers.")
(define-public glpk (define-public glpk
(package (package
(name "glpk") (name "glpk")
(version "4.58") (version "4.59")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -185,7 +185,7 @@ numbers.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1jmrya04hgwnrxrqqs40i6m9cqka3q601cx3nh9ijyvlg90zlq24")))) "1bpbp5z0378kaj5bqmc5m2j5h9c7553p0s2j6a28badqghpbx673"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gmp" ,gmp))) `(("gmp" ,gmp)))
@ -354,9 +354,7 @@ singular value problems.")
("pango" ,pango) ("pango" ,pango)
("gd" ,gd))) ("gd" ,gd)))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
;; Need 'tex', 'latex', 'pdflatex', 'kpsexand', and ("texlive" ,texlive-minimal)))
;; 'texhash' binaries.
("texlive" ,texlive-bin)))
(home-page "http://www.gnuplot.info") (home-page "http://www.gnuplot.info")
(synopsis "Command-line driven graphing utility") (synopsis "Command-line driven graphing utility")
(description "Gnuplot is a portable command-line driven graphing (description "Gnuplot is a portable command-line driven graphing
@ -567,16 +565,15 @@ ASCII text files using Gmsh's own scripting language.")
'install 'clean-install 'install 'clean-install
;; Try to keep installed files from leaking build directory names. ;; Try to keep installed files from leaking build directory names.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")) (let ((out (assoc-ref outputs "out")))
(fortran (assoc-ref inputs "gfortran")))
(substitute* (map (lambda (file) (substitute* (map (lambda (file)
(string-append out "/lib/petsc/conf/" file)) (string-append out "/lib/petsc/conf/" file))
'("petscvariables" "PETScConfig.cmake")) '("petscvariables" "PETScConfig.cmake"))
(((getcwd)) out)) (((getcwd)) out))
;; Make compiler references point to the store ;; Make compiler references point to the store
(substitute* (string-append out "/lib/petsc/conf/petscvariables") (substitute* (string-append out "/lib/petsc/conf/petscvariables")
(("= g(cc|\\+\\+|fortran)" _ suffix) (("= (gcc|g\\+\\+|gfortran)" _ compiler)
(string-append "= " fortran "/bin/g" suffix))) (string-append "= " (which compiler))))
;; PETSc installs some build logs, which aren't necessary. ;; PETSc installs some build logs, which aren't necessary.
(for-each (lambda (file) (for-each (lambda (file)
(let ((f (string-append out "/lib/petsc/conf/" file))) (let ((f (string-append out "/lib/petsc/conf/" file)))
@ -643,6 +640,7 @@ scientific applications modeled by partial differential equations.")
(method url-fetch) (method url-fetch)
(uri (string-append "http://slepc.upv.es/download/download.php?" (uri (string-append "http://slepc.upv.es/download/download.php?"
"filename=slepc-" version ".tar.gz")) "filename=slepc-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1pv5iqz2kc8sj49zsabyz4arnfpana8mjrhq31vzgk16xldk3d1a")))) "1pv5iqz2kc8sj49zsabyz4arnfpana8mjrhq31vzgk16xldk3d1a"))))

View File

@ -63,17 +63,21 @@
(define-public libotr (define-public libotr
(package (package
(name "libotr") (name "libotr")
(version "4.1.0") (version "4.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://otr.cypherpunks.ca/libotr-" (uri (string-append "https://otr.cypherpunks.ca/libotr-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0c6rkh58s6wqzcrpccwdik5qs91qj6dgd60a340d72gc80cqknsg")))) (base32
"1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
(patches
(list (search-patch "libotr-test-auth-fix.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h
(inputs `(("libgpg-error" ,libgpg-error))) (inputs `(("libgpg-error" ,libgpg-error)))
(native-inputs `(("perl" ,perl))) ; for the test suite
(synopsis "Off-the-Record (OTR) Messaging Library and Toolkit") (synopsis "Off-the-Record (OTR) Messaging Library and Toolkit")
(description (description
"OTR allows you to have private conversations over instant messaging by "OTR allows you to have private conversations over instant messaging by
@ -88,27 +92,16 @@ keys, no previous conversation is compromised.")
(home-page "https://otr.cypherpunks.ca/") (home-page "https://otr.cypherpunks.ca/")
(license (list lgpl2.1 gpl2)))) (license (list lgpl2.1 gpl2))))
(define-public libotr-3
(package (inherit libotr)
(version "3.2.1")
(source (origin
(method url-fetch)
(uri (string-append "https://otr.cypherpunks.ca/libotr-"
version ".tar.gz"))
(sha256
(base32 "1x6dd4rh499hdraiqfhz81igrj0a5rs0gjhc8l4sljwqhjjyla6l"))))))
(define-public bitlbee (define-public bitlbee
(package (package
(name "bitlbee") (name "bitlbee")
(version "3.4") (version "3.4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://get.bitlbee.org/src/bitlbee-" (uri (string-append "https://get.bitlbee.org/src/bitlbee-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf")) (base32 "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh"))))
(patches (list (search-patch "bitlbee-configure-doc-fix.patch")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("check" ,check))) ("check" ,check)))
@ -327,14 +320,14 @@ chat protocols.")
(define-public pidgin-otr (define-public pidgin-otr
(package (package
(name "pidgin-otr") (name "pidgin-otr")
(version "4.0.1") (version "4.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://otr.cypherpunks.ca/" (uri (string-append "https://otr.cypherpunks.ca/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"02pkkf86fh5jvzsdn9y78impsgzj1n0p81kc2girvk3vq941yy0v")))) "1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)

View File

@ -28,6 +28,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python)
#:use-module (gnu packages avahi) #:use-module (gnu packages avahi)
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages icu4c) #:use-module (gnu packages icu4c)
@ -40,6 +41,7 @@
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -240,3 +242,34 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
;; instead. ;; instead.
(home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble") (home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble")
(license license:gpl2+))) (license license:gpl2+)))
(define-public python-mpd2
(package
(name "python-mpd2")
(version "0.5.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "python-mpd2" version))
(sha256
(base32
"0laypd7h1j14b4vrmiayqlzdsh2j5hc3zv4l0fqvbrbw9y6763ii"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _ (zero? (system* "python" "mpd_test.py")))))))
(native-inputs `(("python-mock" ,python-mock)))
(home-page "https://github.com/Mic92/python-mpd2")
(synopsis "Python MPD client library")
(description "Python-mpd2 is a Python library which provides a client
interface for the Music Player Daemon.")
(license license:lgpl3+)
(properties `((python2-variant . ,(delay python2-mpd2))))))
(define-public python2-mpd2
(let ((mpd2 (package-with-python2
(strip-python2-variant python-mpd2))))
(package (inherit mpd2)
(native-inputs `(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs mpd2))))))

View File

@ -4,6 +4,7 @@
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2016 Al McElrath <hello@yrns.org> ;;; Copyright © 2016 Al McElrath <hello@yrns.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -49,6 +50,7 @@
#:use-module (gnu packages fltk) #:use-module (gnu packages fltk)
#:use-module (gnu packages fonts) #:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
@ -64,6 +66,7 @@
#:use-module (gnu packages linux) ; for alsa-utils #:use-module (gnu packages linux) ; for alsa-utils
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages mpd)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm) #:use-module (gnu packages netpbm)
#:use-module (gnu packages pdf) #:use-module (gnu packages pdf)
@ -817,7 +820,7 @@ projects.")
(define-public frescobaldi (define-public frescobaldi
(package (package
(name "frescobaldi") (name "frescobaldi")
(version "2.18.1") (version "2.18.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -825,7 +828,7 @@ projects.")
version "/frescobaldi-" version ".tar.gz")) version "/frescobaldi-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7")))) "1yns7nq2a2hz5rv4xjp21bgcdi1xj6fq48lqjrld7ypqqi5nfjp5"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("lilypond" ,lilypond) `(("lilypond" ,lilypond)
@ -1134,3 +1137,167 @@ personalized online radio pandora.com. It has configurable keys for playing
and managing stations, can be controlled remotely via fifo, and can run and managing stations, can be controlled remotely via fifo, and can run
event-based scripts for scrobbling, notifications, etc.") event-based scripts for scrobbling, notifications, etc.")
(license license:expat))) (license license:expat)))
(define-public python-mutagen
(package
(name "python-mutagen")
(version "1.31")
(source (origin
(method url-fetch)
(uri (pypi-uri "mutagen" version))
(sha256
(base32
"16fnnhspniac2i7qswxafawsh2x2a803hmc6bn9k1zl5fxq1380a"))))
(build-system python-build-system)
(home-page "https://bitbucket.org/lazka/mutagen")
(synopsis "Read and write audio tags")
(description "Mutagen is a Python module to handle audio metadata. It
supports ASF, FLAC, M4A, Monkeys Audio, MP3, Musepack, Ogg FLAC, Ogg Speex, Ogg
Theora, Ogg Vorbis, True Audio, WavPack and OptimFROG audio files. All versions
of ID3v2 are supported, and all standard ID3v2.4 frames are parsed. It can read
Xing headers to accurately calculate the bitrate and length of MP3s. ID3 and
APEv2 tags can be edited regardless of audio format. It can also manipulate Ogg
streams on an individual packet/page level.")
(license license:gpl2))) ; "later version" never mentioned
(define-public python2-mutagen
(package-with-python2 python-mutagen))
(define-public python-musicbrainzngs
(package
(name "python-musicbrainzngs")
(version "0.5")
(source (origin
(method url-fetch)
(uri (pypi-uri "musicbrainzngs" version))
(sha256
(base32
"12f48llmdf5rkiqxcb70k2k1dmhm8byq0ifazvlrca8dfnmqh4r8"))))
(build-system python-build-system)
(home-page "https://python-musicbrainzngs.readthedocs.org/")
(synopsis "Python bindings for MusicBrainz NGS webservice")
(description "Musicbrainzngs implements Python bindings of the MusicBrainz
web service. This library can be used to retrieve music metadata from the
MusicBrainz database.")
;; 'musicbrainzngs/compat.py' is ISC licensed.
(license (list license:bsd-2 license:isc))))
(define-public python2-musicbrainzngs
(package-with-python2 python-musicbrainzngs))
(define-public python-pyechonest
(package
(name "python-pyechonest")
(version "9.0.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "pyechonest" version))
(sha256
(base32
"1584nira3rkiman9dm81kdshihmkj21s8navndz2l8spnjwb790x"))))
(build-system python-build-system)
(home-page "https://github.com/echonest/pyechonest")
(synopsis "Python interface to The Echo Nest APIs")
(description "Pyechonest is an open source Python library for the Echo Nest
API. With Pyechonest you have Python access to the entire set of API methods
including:
@enumerate
@item artist - search for artists by name, description, or attribute, and get
back detailed information about any artist including audio, similar artists,
blogs, familiarity, hotttnesss, news, reviews, urls and video.
@item song - search songs by artist, title, description, or attribute (tempo,
duration, etc) and get detailed information back about each song, such as
hotttnesss, audio_summary, or tracks.
@item track - upload a track to the Echo Nest and receive summary information
about the track including key, duration, mode, tempo, time signature along with
detailed track info including timbre, pitch, rhythm and loudness information.
@end enumerate\n")
(license license:bsd-3)
(properties `((python2-variant . ,(delay python2-pyechonest))))))
(define-public python2-pyechonest
(package (inherit (package-with-python2
(strip-python2-variant python-pyechonest)))
(native-inputs `(("python2-setuptools" ,python2-setuptools)))))
(define-public python-pylast
(package
(name "python-pylast")
(version "1.5.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "pylast" version))
(sha256
(base32
"10znd9xr1vs2ix519jkz3ccm90zciaddcdr2w2wrrh2jyy3bc59a"))))
(build-system python-build-system)
(native-inputs
`(("python-coverage" ,python-coverage)
("python-mock" ,python-mock)
("python-pep8" ,python-pep8)
("python-pytest" ,python-pytest)
("python-pyflakes" ,python-pyflakes)
("python-pyyaml" ,python-pyyaml)))
(propagated-inputs
`(("python-six" ,python-six)))
(home-page "https://github.com/pylast/pylast")
(synopsis "Python interface to Last.fm and Libre.fm")
(description "A Python interface to Last.fm and other API-compatible
websites such as Libre.fm.")
(license license:asl2.0)
(properties `((python2-variant . ,(delay python2-pylast))))))
(define-public python2-pylast
(let ((pylast (package-with-python2
(strip-python2-variant python-pylast))))
(package (inherit pylast)
(native-inputs
`(("python2-setuptools" ,python2-setuptools)
,@(package-native-inputs pylast))))))
(define-public beets
(package
(name "beets")
(version "1.3.17")
(source (origin
(method url-fetch)
(uri (pypi-uri name version))
(sha256
(base32
"0yg7sp18sdpszkinhb0bi6yinbn316jy1baxrwiw0m4byrj3rr6c"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only Python 2 is supported
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-HOME
(lambda _ (setenv "HOME" (string-append (getcwd) "/tmp")))))))
(native-inputs
`(("python2-beautifulsoup4" ,python2-beautifulsoup4)
("python2-flask" ,python2-flask)
("python2-setuptools" ,python2-setuptools)
("python2-mock" ,python2-mock)
("python2-mpd2" ,python2-mpd2)
("python2-pathlib" ,python2-pathlib)
("python2-pyxdg" ,python2-pyxdg)
("python2-pyechonest" ,python2-pyechonest)
("python2-pylast" ,python2-pylast)
("python2-rarfile" ,python2-rarfile)
("python2-responses" ,python2-responses)))
;; TODO: Install optional plugins and dependencies.
(propagated-inputs
`(("python2-enum34" ,python2-enum34)
("python2-jellyfish" ,python2-jellyfish)
("python2-munkres" ,python2-munkres)
("python2-musicbrainzngs" ,python2-musicbrainzngs)
("python2-mutagen" ,python2-mutagen)
("python2-pyyaml" ,python2-pyyaml)
("python2-unidecode" ,python2-unidecode)))
(home-page "http://beets.io")
(synopsis "Music organizer")
(description "The purpose of beets is to get your music collection right
once and for all. It catalogs your collection, automatically improving its
metadata as it goes using the MusicBrainz database. Then it provides a variety
of tools for manipulating and accessing your music.")
(license license:expat)))

View File

@ -28,7 +28,7 @@
(define-public nano (define-public nano
(package (package
(name "nano") (name "nano")
(version "2.5.2") (version "2.5.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -36,7 +36,7 @@
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0hgbmqzjy1pashb1g3qby75pqb7r5g9bmn1iajlx50082b2nmgc9")))) "1vhjrcydcfxqq1719vcsvqqnbjbq2523m00dhzag5vwzkc961c5j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("gettext" ,gnu-gettext) `(("gettext" ,gnu-gettext)

View File

@ -3,6 +3,7 @@
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -187,3 +188,25 @@ needed/wanted real-time traffic statistics of multiple network
interfaces, with a simple and efficient view on the command line. It is interfaces, with a simple and efficient view on the command line. It is
intended as a substitute for the PPPStatus and EthStatus projects.") intended as a substitute for the PPPStatus and EthStatus projects.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public nload
(package
(name "nload")
(version "0.7.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/nload/nload-"
version ".tar.gz"))
(sha256
(base32
"1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
(build-system gnu-build-system)
(inputs `(("ncurses" ,ncurses)))
(home-page "http://www.roland-riegel.de/nload/")
(synopsis "Realtime console network usage monitor")
(description
"Nload is a console application which monitors network traffic and
bandwidth usage in real time. It visualizes the in- and outgoing traffic using
two graphs and provides additional info like total amount of transfered data
and min/max network usage.")
(license license:gpl2+)))

View File

@ -195,7 +195,7 @@ the Nix package manager.")
;; ;;
;; Note: use a short commit id; when using the long one, the limit on socket ;; Note: use a short commit id; when using the long one, the limit on socket
;; file names is exceeded while running the tests. ;; file names is exceeded while running the tests.
(let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7")) (let ((commit "71e2065a38cf2641b7eb8c557b0f043f5a42a649"))
(package (inherit guix-0.9.0) (package (inherit guix-0.9.0)
(version (string-append "0.9.0." (string-take commit 7))) (version (string-append "0.9.0." (string-take commit 7)))
(source (origin (source (origin
@ -205,7 +205,7 @@ the Nix package manager.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"1mbikn6awgx3h08bzk3nz8xrqvxdjsbvzrbn26d6m8nrz96ya53a")) "0wrrywfdc27yxjns55qdz5si49c8zcb9q5557g2kx48dbm7p0dzw"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments guix-0.9.0) (substitute-keyword-arguments (package-arguments guix-0.9.0)

View File

@ -42,7 +42,7 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20160122") (version "20160222")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -50,7 +50,7 @@
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1xs8y8jh7wyjs27079xz0ja7xfi4dywz8d6hbkl44mafdnnfjfiy")))) "1sjmvinwr9j2a0jdk9y9nf2x4hhzcbl529slkwpz0vva0cwybywd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("perl" ,perl))) (inputs `(("perl" ,perl)))
(home-page "http://www.gnu.org/software/parallel/") (home-page "http://www.gnu.org/software/parallel/")

View File

@ -3,6 +3,8 @@
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de> ;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Jessica Tallon <tsyesika@tsyesika.se>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,16 +27,20 @@
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages linux)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xdisorg) #:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
@ -241,3 +247,51 @@ JSON files. It has a command line interface as well as a very simple
graphical interface, which can even \"type\" your passwords into graphical interface, which can even \"type\" your passwords into
any X11 window.") any X11 window.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public password-store
(package
(name "password-store")
(version "1.6.5")
(source (origin
(method url-fetch)
(uri
(string-append "https://git.zx2c4.com/password-store/snapshot/"
name "-" version ".tar.xz"))
(sha256
(base32
"05bk3lrp5jwg0v338lvylp7glpliydzz4jf5pjr6k3kagrv3jyik"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after
;; The script requires 'getopt' at run-time, and this allows
;; the user to not install the providing package 'util-linux'
;; in their profile.
'unpack 'patch-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((getopt (string-append (assoc-ref inputs "getopt")
"/bin/getopt")))
(substitute* "src/password-store.sh"
(("GETOPT=\"getopt\"")
(string-append "GETOPT=\"" getopt "\"")))
#t))))
#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
#:test-target "test"))
(native-inputs `(("getopt" ,util-linux))) ; getopt for the tests
(inputs `(("gnupg" ,gnupg)
("pwgen" ,pwgen)
("xclip" ,xclip)
("git" ,git)
("tree" ,tree)
("which" ,which)))
(home-page "http://www.passwordstore.org/")
(synopsis "Encrypted password manager")
(description "Password-store is a password manager which uses GnuPG to
store and retrieve passwords. The tool stores each password in its own
GnuPG-encrypted file, allowing the program to be simple yet secure.
Synchronization is possible using the integrated git support, which commits
changes to your password database to a git repository that can be managed
through the pass command.")
(license license:gpl2+)))

View File

@ -1,15 +0,0 @@
Fix the check for the prebuilt helpfile when xsltproc is not available.
--- bitlbee-3.4/configure.orig 2015-03-25 18:09:10.000000000 -0400
+++ bitlbee-3.4/configure 2015-05-20 14:51:33.627975970 -0400
@@ -650,8 +650,8 @@
if [ "$doc" = "1" ]; then
if [ ! -e doc/user-guide/help.txt ] && \
- ! type xmlto > /dev/null 2> /dev/null || \
- ! type xsltproc > /dev/null 2> /dev/null
+ (! type xmlto > /dev/null 2> /dev/null || \
+ ! type xsltproc > /dev/null 2> /dev/null)
then
echo
echo 'WARNING: Building from an unreleased source tree without prebuilt helpfile.'

View File

@ -0,0 +1,401 @@
These patches are required to build with a modern GCC; most of them
are taken from the Debian package. Upstream has disappeared.
diff -r -u einstein-2.0.orig/convert.h einstein-2.0/convert.h
--- einstein-2.0.orig/convert.h 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/convert.h 2016-03-05 18:25:08.488917021 +0100
@@ -5,6 +5,7 @@
#include <iostream>
#include <sstream>
#include <string>
+#include <typeinfo>
#include "exceptions.h"
#include "unicode.h"
diff -r -u einstein-2.0.orig/descr.cpp einstein-2.0/descr.cpp
--- einstein-2.0.orig/descr.cpp 2005-08-17 15:42:29.000000000 +0200
+++ einstein-2.0/descr.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -139,9 +139,9 @@
{
currentPage = 0;
//area.add(parentArea, false);
- titleFont = new Font(L"nova.ttf", 26);
- buttonFont = new Font(L"laudcn2.ttf", 14);
- textFont = new Font(L"laudcn2.ttf", 16);
+ titleFont = new Font(L"DejaVuSans.ttf", 26);
+ buttonFont = new Font(L"DejaVuSans.ttf", 14);
+ textFont = new Font(L"DejaVuSans.ttf", 16);
textHeight = (int)(textFont->getHeight(L"A") * 1.0);
text = new TextParser(msg(L"rulesText"), *textFont, START_X, START_Y,
CLIENT_WIDTH, CLIENT_HEIGHT);
diff -r -u einstein-2.0.orig/font.h einstein-2.0/font.h
--- einstein-2.0.orig/font.h 2005-08-16 00:33:17.000000000 +0200
+++ einstein-2.0/font.h 2016-03-05 18:22:05.563794039 +0100
@@ -3,7 +3,7 @@
#include <string>
-#include <SDL_ttf.h>
+#include <SDL/SDL_ttf.h>
class Font
diff -r -u einstein-2.0.orig/formatter.cpp einstein-2.0/formatter.cpp
--- einstein-2.0.orig/formatter.cpp 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/formatter.cpp 2016-03-05 18:18:41.146882565 +0100
@@ -58,7 +58,7 @@
if ((c.type == INT_ARG) || (c.type == STRING_ARG) ||
(c.type == FLOAT_ARG) || (c.type == DOUBLE_ARG))
{
- int no = (int)c.data;
+ long no = (long)c.data;
args[no - 1] = c.type;
}
}
@@ -123,7 +123,7 @@
std::wstring Formatter::format(std::vector<ArgValue*> &argValues) const
{
std::wstring s;
- int no;
+ long no;
for (int i = 0; i < commandsCnt; i++) {
Command *cmd = &commands[i];
@@ -135,8 +135,8 @@
case STRING_ARG:
case INT_ARG:
- no = (int)cmd->data - 1;
- if (no < (int)argValues.size())
+ no = (long)cmd->data - 1;
+ if (no < (long)argValues.size())
s += argValues[no]->format(cmd);
break;
diff -r -u einstein-2.0.orig/game.cpp einstein-2.0/game.cpp
--- einstein-2.0.orig/game.cpp 2005-08-23 00:44:54.000000000 +0200
+++ einstein-2.0/game.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -33,7 +33,7 @@
screen.draw(8, 10, tile);
SDL_FreeSurface(tile);
- Font titleFont(L"nova.ttf", 28);
+ Font titleFont(L"DejaVuSans.ttf", 28);
titleFont.draw(screen.getSurface(), 20, 20, 255,255,0, true,
msg(L"einsteinPuzzle"));
@@ -89,7 +89,7 @@
{
lastRun = elapsed = lastUpdate = 0;
stop();
- font = new Font(L"luximb.ttf", 16);
+ font = new Font(L"DejaVuSans.ttf", 16);
}
Watch::Watch(std::istream &stream)
@@ -97,7 +97,7 @@
elapsed = readInt(stream);
lastUpdate = 0;
stop();
- font = new Font(L"luximb.ttf", 16);
+ font = new Font(L"DejaVuSans.ttf", 16);
}
Watch::~Watch()
@@ -178,7 +178,7 @@
watch->stop();
Area area;
area.add(background, false);
- Font font(L"laudcn2.ttf", 16);
+ Font font(L"DejaVuSans.ttf", 16);
area.add(new Window(280, 275, 240, 50, L"greenpattern.bmp", 6));
area.add(new Label(&font, 280, 275, 240, 50, Label::ALIGN_CENTER,
Label::ALIGN_MIDDLE, 255,255,0, msg(L"paused")));
@@ -209,7 +209,7 @@
virtual void doAction() {
sound->play(L"applause.wav");
watch->stop();
- Font font(L"laudcn2.ttf", 20);
+ Font font(L"DejaVuSans.ttf", 20);
showMessageWindow(gameArea, L"marble1.bmp",
500, 70, &font, 255,0,0, msg(L"won"));
gameArea->draw();
@@ -257,8 +257,8 @@
sound->play(L"glasbk2.wav");
bool restart = false;
bool newGame = false;
- Font font(L"laudcn2.ttf", 24);
- Font btnFont(L"laudcn2.ttf", 14);
+ Font font(L"DejaVuSans.ttf", 24);
+ Font btnFont(L"DejaVuSans.ttf", 14);
Area area;
area.add(gameArea);
area.add(new Window(220, 240, 360, 140, L"redpattern.bmp", 6));
@@ -329,7 +329,7 @@
CheatCommand(Area *a) { gameArea = a; };
virtual void doAction() {
- Font font(L"nova.ttf", 30);
+ Font font(L"DejaVuSans.ttf", 30);
showMessageWindow(gameArea, L"darkpattern.bmp",
500, 100, &font, 255,255,255,
msg(L"iddqd"));
@@ -475,7 +475,7 @@
drawWallpaper(L"rain.bmp");
Window window(230, 260, 340, 80, L"greenpattern.bmp", 6);
window.draw();
- Font font(L"laudcn2.ttf", 16);
+ Font font(L"DejaVuSans.ttf", 16);
Label label(&font, 280, 275, 240, 50, Label::ALIGN_CENTER,
Label::ALIGN_MIDDLE, 255,255,0, msg(L"loading"));
label.draw();
@@ -533,7 +533,7 @@
void Game::run()
{
Area area;
- Font btnFont(L"laudcn2.ttf", 14);
+ Font btnFont(L"DejaVuSans.ttf", 14);
area.setTimer(300, watch);
diff -r -u einstein-2.0.orig/main.cpp einstein-2.0/main.cpp
--- einstein-2.0.orig/main.cpp 2005-09-26 12:32:54.000000000 +0200
+++ einstein-2.0/main.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -2,7 +2,7 @@
#include <iostream>
#include <SDL.h>
#include <SDL_main.h>
-#include <SDL_ttf.h>
+#include <SDL/SDL_ttf.h>
#include "main.h"
#include "utils.h"
#include "storage.h"
@@ -78,7 +78,7 @@
/*static void checkBetaExpire()
{
if (1124832535L + 60L*60L*24L*40L < time(NULL)) {
- Font font(L"laudcn2.ttf", 16);
+ Font font(L"DejaVuSans.ttf", 16);
Area area;
showMessageWindow(&area, L"darkpattern.bmp",
700, 100, &font, 255,255,255,
diff -r -u einstein-2.0.orig/Makefile einstein-2.0/Makefile
--- einstein-2.0.orig/Makefile 2005-09-25 23:20:30.000000000 +0200
+++ einstein-2.0/Makefile 2016-03-05 18:14:22.365450608 +0100
@@ -49,10 +49,14 @@
$(TARGET): $(OBJECTS)
+ cd mkres && make
+ cd res && ../mkres/mkres --source resources.descr --output ../einstein.res
$(CXX) $(LNFLAGS) $(OBJECTS) -o $(TARGET)
clean:
rm -f $(OBJECTS) core* *core $(TARGET) *~
+ cd res && rm -f einstein.res
+ cd mkres && make clean
depend:
@makedepend $(SOURCES) 2> /dev/null
diff -r -u einstein-2.0.orig/menu.cpp einstein-2.0/menu.cpp
--- einstein-2.0.orig/menu.cpp 2005-09-25 22:51:00.000000000 +0200
+++ einstein-2.0/menu.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -23,11 +23,11 @@
SDL_Surface *title = loadImage(L"nova.bmp");
screen.draw(0, 0, title);
SDL_FreeSurface(title);
- Font font(L"nova.ttf", 28);
+ Font font(L"DejaVuSans.ttf", 28);
std::wstring s(msg(L"einsteinFlowix"));
int width = font.getWidth(s);
font.draw((screen.getWidth() - width) / 2, 30, 255,255,255, true, s);
- Font urlFont(L"luximb.ttf", 16);
+ Font urlFont(L"DejaVuSans.ttf", 16);
s = L"http://games.flowix.com";
width = urlFont.getWidth(s);
urlFont.draw((screen.getWidth() - width) / 2, 60, 255,255,0, true, s);
@@ -133,9 +133,9 @@
virtual void doAction() {
Area area;
- Font titleFont(L"nova.ttf", 26);
- Font font(L"laudcn2.ttf", 14);
- Font urlFont(L"luximb.ttf", 16);
+ Font titleFont(L"DejaVuSans.ttf", 26);
+ Font font(L"DejaVuSans.ttf", 14);
+ Font urlFont(L"DejaVuSans.ttf", 16);
#define LABEL(pos, c, f, text) area.add(new Label(&f, 220, pos, 360, 20, \
Label::ALIGN_CENTER, Label::ALIGN_MIDDLE, 255,255,c, text));
@@ -171,7 +171,7 @@
void menu()
{
Area area;
- Font font(L"laudcn2.ttf", 20);
+ Font font(L"DejaVuSans.ttf", 20);
area.add(new MenuBackground());
area.draw();
diff -r -u einstein-2.0.orig/mkres/compressor.cpp einstein-2.0/mkres/compressor.cpp
--- einstein-2.0.orig/mkres/compressor.cpp 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/mkres/compressor.cpp 2016-03-05 18:26:13.194264129 +0100
@@ -2,6 +2,7 @@
#include <zlib.h>
#include "convert.h"
#include "exceptions.h"
+#include "string.h"
ResourceCompressor::ResourceCompressor()
diff -r -u einstein-2.0.orig/mkres/convert.h einstein-2.0/mkres/convert.h
--- einstein-2.0.orig/mkres/convert.h 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/mkres/convert.h 2016-03-05 18:25:21.479990669 +0100
@@ -5,6 +5,7 @@
#include <iostream>
#include <sstream>
#include <string>
+#include <typeinfo>
#include "exceptions.h"
#include "unicode.h"
diff -r -u einstein-2.0.orig/mkres/main.cpp einstein-2.0/mkres/main.cpp
--- einstein-2.0.orig/mkres/main.cpp 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/mkres/main.cpp 2016-03-05 18:25:55.062765900 +0100
@@ -1,5 +1,6 @@
#include "compressor.h"
#include "exceptions.h"
+#include "string.h"
#include "unicode.h"
#include "table.h"
diff -r -u einstein-2.0.orig/mkres/unicode.cpp einstein-2.0/mkres/unicode.cpp
--- einstein-2.0.orig/mkres/unicode.cpp 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/mkres/unicode.cpp 2016-03-05 18:26:28.065492890 +0100
@@ -5,6 +5,7 @@
#endif
#include "unicode.h"
#include "exceptions.h"
+#include "string.h"
/// Returns length of wide character in utf-8
diff -r -u einstein-2.0.orig/opensave.cpp einstein-2.0/opensave.cpp
--- einstein-2.0.orig/opensave.cpp 2005-08-14 23:33:36.000000000 +0200
+++ einstein-2.0/opensave.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -160,7 +160,7 @@
static void showListWindow(SavesList &list, Command **commands,
const std::wstring &title, Area &area, Font *font)
{
- Font titleFont(L"nova.ttf", 26);
+ Font titleFont(L"DejaVuSans.ttf", 26);
area.add(new Window(250, 90, 300, 420, L"blue.bmp"));
area.add(new Label(&titleFont, 250, 95, 300, 40, Label::ALIGN_CENTER,
@@ -189,7 +189,7 @@
Area area;
area.add(parentArea, false);
- Font font(L"laudcn2.ttf", 14);
+ Font font(L"DejaVuSans.ttf", 14);
bool saved = false;
SavesList list;
@@ -258,7 +258,7 @@
Area area;
area.add(parentArea, false);
- Font font(L"laudcn2.ttf", 14);
+ Font font(L"DejaVuSans.ttf", 14);
Game *newGame = NULL;
diff -r -u einstein-2.0.orig/options.cpp einstein-2.0/options.cpp
--- einstein-2.0.orig/options.cpp 2005-09-26 12:33:18.000000000 +0200
+++ einstein-2.0/options.cpp 2016-03-05 18:29:27.960352230 +0100
@@ -53,8 +53,8 @@
void showOptionsWindow(Area *parentArea)
{
- Font titleFont(L"nova.ttf", 26);
- Font font(L"laudcn2.ttf", 14);
+ Font titleFont(L"DejaVuSans.ttf", 26);
+ Font font(L"DejaVuSans.ttf", 14);
bool fullscreen = (getStorage()->get(L"fullscreen", 1) != 0);
bool niceCursor = (getStorage()->get(L"niceCursor", 1) != 0);
diff -r -u einstein-2.0.orig/res/resources.descr einstein-2.0/res/resources.descr
--- einstein-2.0.orig/res/resources.descr 2005-09-25 22:51:14.000000000 +0200
+++ einstein-2.0/res/resources.descr 2016-03-05 18:30:08.563704873 +0100
@@ -89,13 +89,11 @@
{ name = "title.bmp" }
{ name = "marble1.bmp" }
{ name = "blue.bmp" }
- { name = "luximb.ttf" }
{ name = "redpattern.bmp" }
{ name = "greenpattern.bmp" }
{ name = "darkpattern.bmp" }
{ name = "nova.bmp" }
- { name = "nova.ttf" }
- { name = "laudcn2.ttf" }
+ { name = "DejaVuSans.ttf" }
{ name = "btn.bmp" }
{ name = "rules.txt", format = "messages" group = "messages" }
{ name = "rules_ru.txt", format = "messages" group = "messages" }
Only in einstein-2.0/res: resources.descr.orig
diff -r -u einstein-2.0.orig/sound.h einstein-2.0/sound.h
--- einstein-2.0.orig/sound.h 2005-09-24 08:24:20.000000000 +0200
+++ einstein-2.0/sound.h 2016-03-05 18:22:19.314931225 +0100
@@ -4,7 +4,7 @@
#include <string>
#include <map>
-#include <SDL_mixer.h>
+#include <SDL/SDL_mixer.h>
class Sound
diff -r -u einstein-2.0.orig/topscores.cpp einstein-2.0/topscores.cpp
--- einstein-2.0.orig/topscores.cpp 2005-08-14 23:08:43.000000000 +0200
+++ einstein-2.0/topscores.cpp 2016-03-05 18:29:27.970353055 +0100
@@ -103,9 +103,9 @@
ScoresWindow::ScoresWindow(int x, int y, TopScores *scores, int highlight):
Window(x, y, 320, 350, L"blue.bmp")
{
- Font titleFont(L"nova.ttf", 26);
- Font entryFont(L"laudcn2.ttf", 14);
- Font timeFont(L"luximb.ttf", 14);
+ Font titleFont(L"DejaVuSans.ttf", 26);
+ Font entryFont(L"DejaVuSans.ttf", 14);
+ Font timeFont(L"DejaVuSans.ttf", 14);
std::wstring txt = msg(L"topScores");
int w = titleFont.getWidth(txt);
@@ -139,7 +139,7 @@
{
Area area;
- Font font(L"laudcn2.ttf", 16);
+ Font font(L"DejaVuSans.ttf", 16);
area.add(parentArea);
area.add(new ScoresWindow(240, 125, scores, highlight));
ExitCommand exitCmd(area);
@@ -154,7 +154,7 @@
{
Area area;
- Font font(L"laudcn2.ttf", 16);
+ Font font(L"DejaVuSans.ttf", 16);
area.add(parentArea);
area.add(new Window(170, 280, 460, 100, L"blue.bmp"));
Storage *storage = getStorage();
diff -r -u einstein-2.0.orig/unicode.cpp einstein-2.0/unicode.cpp
--- einstein-2.0.orig/unicode.cpp 2005-08-14 04:40:58.000000000 +0200
+++ einstein-2.0/unicode.cpp 2016-03-05 18:26:55.747780024 +0100
@@ -5,6 +5,7 @@
#endif
#include "unicode.h"
#include "exceptions.h"
+#include "string.h"
/// Returns length of wide character in utf-8

View File

@ -1,25 +0,0 @@
From ed807a40c6683960e357bc995b3acf721ec088b4 Mon Sep 17 00:00:00 2001
From: Sitaram Chamarty <sitaram@atc.tcs.com>
Date: Thu, 19 Mar 2015 05:17:59 +0530
Subject: [PATCH] openssh 6.8 compat
---
src/triggers/post-compile/ssh-authkeys | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/triggers/post-compile/ssh-authkeys b/src/triggers/post-compile/ssh-authkeys
index 84dda73..d5f5d8b 100755
--- a/src/triggers/post-compile/ssh-authkeys
+++ b/src/triggers/post-compile/ssh-authkeys
@@ -115,7 +115,7 @@ sub fp_file {
my $f = shift;
my $fp = `ssh-keygen -l -f '$f'`;
chomp($fp);
- _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/;
+ _die "fingerprinting failed for '$f'" unless $fp =~ /([0-9a-f][0-9a-f](:[0-9a-f][0-9a-f])+)/ or $fp =~ m(SHA256:([A-ZA-z0-9+/]+));
$fp = $1;
return $fp;
}
--
2.2.1

View File

@ -0,0 +1,37 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/beae8783b8c2
# HG changeset patch
# User Paul Adenot <paul@paul.cx>
# Date 1456422965 0
# Node ID beae8783b8c2c672da12a95c70ae663cbd0d5016
# Parent 3a606f8182c82480f8f350b622ab55a170ec1eb6
Bug 1179484. r=roc
MozReview-Commit-ID: HNaYLyMe3sM
diff --git a/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp b/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
--- a/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
+++ b/dom/media/webaudio/MediaStreamAudioDestinationNode.cpp
@@ -69,16 +69,20 @@ MediaStreamAudioDestinationNode::MediaSt
ChannelInterpretation::Speakers)
, mDOMStream(DOMAudioNodeMediaStream::CreateTrackUnionStream(GetOwner(),
this))
{
TrackUnionStream* tus = static_cast<TrackUnionStream*>(mDOMStream->GetStream());
MOZ_ASSERT(tus == mDOMStream->GetStream()->AsProcessedStream());
tus->SetTrackIDFilter(FilterAudioNodeStreamTrack);
+ if (aContext->Graph() != tus->Graph()) {
+ return;
+ }
+
MediaStreamDestinationEngine* engine = new MediaStreamDestinationEngine(this, tus);
mStream = aContext->Graph()->CreateAudioNodeStream(engine, MediaStreamGraph::INTERNAL_STREAM);
mPort = tus->AllocateInputPort(mStream, 0);
nsIDocument* doc = aContext->GetParentObject()->GetExtantDoc();
if (doc) {
mDOMStream->CombineWithPrincipal(doc->NodePrincipal());
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,356 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/c1d67bd4c993
# HG changeset patch
# User Timothy Nikkel <tnikkel@gmail.com>
# Date 1454023801 21600
# Node ID c1d67bd4c993b9e344c68954e6f0392c82b81e38
# Parent 530559abe159d3c23f078d673d30ff03d9c244e2
Bug 1224979 - Check if we compute usable filters for the downscaler, and if not put the downscaler in error state so it's not used. r=edwin, a=al
diff --git a/image/Downscaler.cpp b/image/Downscaler.cpp
new file mode 100644
--- /dev/null
+++ b/image/Downscaler.cpp
@@ -0,0 +1,340 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "Downscaler.h"
+
+#include <algorithm>
+#include <ctime>
+#include "gfxPrefs.h"
+#include "image_operations.h"
+#include "mozilla/SSE.h"
+#include "convolver.h"
+#include "skia/include/core/SkTypes.h"
+
+using std::max;
+using std::swap;
+
+namespace mozilla {
+namespace image {
+
+Downscaler::Downscaler(const nsIntSize& aTargetSize)
+ : mTargetSize(aTargetSize)
+ , mOutputBuffer(nullptr)
+ , mXFilter(MakeUnique<skia::ConvolutionFilter1D>())
+ , mYFilter(MakeUnique<skia::ConvolutionFilter1D>())
+ , mWindowCapacity(0)
+ , mHasAlpha(true)
+ , mFlipVertically(false)
+{
+ MOZ_ASSERT(gfxPrefs::ImageDownscaleDuringDecodeEnabled(),
+ "Downscaling even though downscale-during-decode is disabled?");
+ MOZ_ASSERT(mTargetSize.width > 0 && mTargetSize.height > 0,
+ "Invalid target size");
+}
+
+Downscaler::~Downscaler()
+{
+ ReleaseWindow();
+}
+
+void
+Downscaler::ReleaseWindow()
+{
+ if (!mWindow) {
+ return;
+ }
+
+ for (int32_t i = 0; i < mWindowCapacity; ++i) {
+ delete[] mWindow[i];
+ }
+
+ mWindow = nullptr;
+ mWindowCapacity = 0;
+}
+
+nsresult
+Downscaler::BeginFrame(const nsIntSize& aOriginalSize,
+ const Maybe<nsIntRect>& aFrameRect,
+ uint8_t* aOutputBuffer,
+ bool aHasAlpha,
+ bool aFlipVertically /* = false */)
+{
+ MOZ_ASSERT(aOutputBuffer);
+ MOZ_ASSERT(mTargetSize != aOriginalSize,
+ "Created a downscaler, but not downscaling?");
+ MOZ_ASSERT(mTargetSize.width <= aOriginalSize.width,
+ "Created a downscaler, but width is larger");
+ MOZ_ASSERT(mTargetSize.height <= aOriginalSize.height,
+ "Created a downscaler, but height is larger");
+ MOZ_ASSERT(aOriginalSize.width > 0 && aOriginalSize.height > 0,
+ "Invalid original size");
+
+ mFrameRect = aFrameRect.valueOr(nsIntRect(nsIntPoint(), aOriginalSize));
+ MOZ_ASSERT(mFrameRect.x >= 0 && mFrameRect.y >= 0 &&
+ mFrameRect.width >= 0 && mFrameRect.height >= 0,
+ "Frame rect must have non-negative components");
+ MOZ_ASSERT(nsIntRect(0, 0, aOriginalSize.width, aOriginalSize.height)
+ .Contains(mFrameRect),
+ "Frame rect must fit inside image");
+ MOZ_ASSERT_IF(!nsIntRect(0, 0, aOriginalSize.width, aOriginalSize.height)
+ .IsEqualEdges(mFrameRect),
+ aHasAlpha);
+
+ mOriginalSize = aOriginalSize;
+ mScale = gfxSize(double(mOriginalSize.width) / mTargetSize.width,
+ double(mOriginalSize.height) / mTargetSize.height);
+ mOutputBuffer = aOutputBuffer;
+ mHasAlpha = aHasAlpha;
+ mFlipVertically = aFlipVertically;
+
+ ReleaseWindow();
+
+ auto resizeMethod = skia::ImageOperations::RESIZE_LANCZOS3;
+
+ skia::resize::ComputeFilters(resizeMethod,
+ mOriginalSize.width, mTargetSize.width,
+ 0, mTargetSize.width,
+ mXFilter.get());
+
+ if (mXFilter->max_filter() <= 0 || mXFilter->num_values() != mTargetSize.width) {
+ NS_WARNING("Failed to compute filters for image downscaling");
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ skia::resize::ComputeFilters(resizeMethod,
+ mOriginalSize.height, mTargetSize.height,
+ 0, mTargetSize.height,
+ mYFilter.get());
+
+ if (mYFilter->max_filter() <= 0 || mYFilter->num_values() != mTargetSize.height) {
+ NS_WARNING("Failed to compute filters for image downscaling");
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ // Allocate the buffer, which contains scanlines of the original image.
+ // pad by 15 to handle overreads by the simd code
+ size_t bufferLen = mOriginalSize.width * sizeof(uint32_t) + 15;
+ mRowBuffer.reset(new (fallible) uint8_t[bufferLen]);
+ if (MOZ_UNLIKELY(!mRowBuffer)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ // Zero buffer to keep valgrind happy.
+ memset(mRowBuffer.get(), 0, bufferLen);
+
+ // Allocate the window, which contains horizontally downscaled scanlines. (We
+ // can store scanlines which are already downscale because our downscaling
+ // filter is separable.)
+ mWindowCapacity = mYFilter->max_filter();
+ mWindow.reset(new (fallible) uint8_t*[mWindowCapacity]);
+ if (MOZ_UNLIKELY(!mWindow)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ bool anyAllocationFailed = false;
+ // pad by 15 to handle overreads by the simd code
+ const int rowSize = mTargetSize.width * sizeof(uint32_t) + 15;
+ for (int32_t i = 0; i < mWindowCapacity; ++i) {
+ mWindow[i] = new (fallible) uint8_t[rowSize];
+ anyAllocationFailed = anyAllocationFailed || mWindow[i] == nullptr;
+ }
+
+ if (MOZ_UNLIKELY(anyAllocationFailed)) {
+ // We intentionally iterate through the entire array even if an allocation
+ // fails, to ensure that all the pointers in it are either valid or nullptr.
+ // That in turn ensures that ReleaseWindow() can clean up correctly.
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ ResetForNextProgressivePass();
+
+ return NS_OK;
+}
+
+void
+Downscaler::SkipToRow(int32_t aRow)
+{
+ if (mCurrentInLine < aRow) {
+ ClearRow();
+ do {
+ CommitRow();
+ } while (mCurrentInLine < aRow);
+ }
+}
+
+void
+Downscaler::ResetForNextProgressivePass()
+{
+ mPrevInvalidatedLine = 0;
+ mCurrentOutLine = 0;
+ mCurrentInLine = 0;
+ mLinesInBuffer = 0;
+
+ if (mFrameRect.IsEmpty()) {
+ // Our frame rect is zero size; commit rows until the end of the image.
+ SkipToRow(mOriginalSize.height - 1);
+ } else {
+ // If we have a vertical offset, commit rows to shift us past it.
+ SkipToRow(mFrameRect.y);
+ }
+}
+
+static void
+GetFilterOffsetAndLength(UniquePtr<skia::ConvolutionFilter1D>& aFilter,
+ int32_t aOutputImagePosition,
+ int32_t* aFilterOffsetOut,
+ int32_t* aFilterLengthOut)
+{
+ MOZ_ASSERT(aOutputImagePosition < aFilter->num_values());
+ aFilter->FilterForValue(aOutputImagePosition,
+ aFilterOffsetOut,
+ aFilterLengthOut);
+}
+
+void
+Downscaler::ClearRow(uint32_t aStartingAtCol)
+{
+ MOZ_ASSERT(int64_t(mOriginalSize.width) > int64_t(aStartingAtCol));
+ uint32_t bytesToClear = (mOriginalSize.width - aStartingAtCol)
+ * sizeof(uint32_t);
+ memset(mRowBuffer.get() + (aStartingAtCol * sizeof(uint32_t)),
+ 0, bytesToClear);
+}
+
+void
+Downscaler::CommitRow()
+{
+ MOZ_ASSERT(mOutputBuffer, "Should have a current frame");
+ MOZ_ASSERT(mCurrentInLine < mOriginalSize.height, "Past end of input");
+
+ if (mCurrentOutLine < mTargetSize.height) {
+ int32_t filterOffset = 0;
+ int32_t filterLength = 0;
+ GetFilterOffsetAndLength(mYFilter, mCurrentOutLine,
+ &filterOffset, &filterLength);
+
+ int32_t inLineToRead = filterOffset + mLinesInBuffer;
+ MOZ_ASSERT(mCurrentInLine <= inLineToRead, "Reading past end of input");
+ if (mCurrentInLine == inLineToRead) {
+ skia::ConvolveHorizontally(mRowBuffer.get(), *mXFilter,
+ mWindow[mLinesInBuffer++], mHasAlpha,
+ supports_sse2());
+ }
+
+ MOZ_ASSERT(mCurrentOutLine < mTargetSize.height,
+ "Writing past end of output");
+
+ while (mLinesInBuffer == filterLength) {
+ DownscaleInputLine();
+
+ if (mCurrentOutLine == mTargetSize.height) {
+ break; // We're done.
+ }
+
+ GetFilterOffsetAndLength(mYFilter, mCurrentOutLine,
+ &filterOffset, &filterLength);
+ }
+ }
+
+ mCurrentInLine += 1;
+
+ // If we're at the end of the part of the original image that has data, commit
+ // rows to shift us to the end.
+ if (mCurrentInLine == (mFrameRect.y + mFrameRect.height)) {
+ SkipToRow(mOriginalSize.height - 1);
+ }
+}
+
+bool
+Downscaler::HasInvalidation() const
+{
+ return mCurrentOutLine > mPrevInvalidatedLine;
+}
+
+DownscalerInvalidRect
+Downscaler::TakeInvalidRect()
+{
+ if (MOZ_UNLIKELY(!HasInvalidation())) {
+ return DownscalerInvalidRect();
+ }
+
+ DownscalerInvalidRect invalidRect;
+
+ // Compute the target size invalid rect.
+ if (mFlipVertically) {
+ // We need to flip it. This will implicitly flip the original size invalid
+ // rect, since we compute it by scaling this rect.
+ invalidRect.mTargetSizeRect =
+ IntRect(0, mTargetSize.height - mCurrentOutLine,
+ mTargetSize.width, mCurrentOutLine - mPrevInvalidatedLine);
+ } else {
+ invalidRect.mTargetSizeRect =
+ IntRect(0, mPrevInvalidatedLine,
+ mTargetSize.width, mCurrentOutLine - mPrevInvalidatedLine);
+ }
+
+ mPrevInvalidatedLine = mCurrentOutLine;
+
+ // Compute the original size invalid rect.
+ invalidRect.mOriginalSizeRect = invalidRect.mTargetSizeRect;
+ invalidRect.mOriginalSizeRect.ScaleRoundOut(mScale.width, mScale.height);
+
+ return invalidRect;
+}
+
+void
+Downscaler::DownscaleInputLine()
+{
+ typedef skia::ConvolutionFilter1D::Fixed FilterValue;
+
+ MOZ_ASSERT(mOutputBuffer);
+ MOZ_ASSERT(mCurrentOutLine < mTargetSize.height,
+ "Writing past end of output");
+
+ int32_t filterOffset = 0;
+ int32_t filterLength = 0;
+ MOZ_ASSERT(mCurrentOutLine < mYFilter->num_values());
+ auto filterValues =
+ mYFilter->FilterForValue(mCurrentOutLine, &filterOffset, &filterLength);
+
+ int32_t currentOutLine = mFlipVertically
+ ? mTargetSize.height - (mCurrentOutLine + 1)
+ : mCurrentOutLine;
+ MOZ_ASSERT(currentOutLine >= 0);
+
+ uint8_t* outputLine =
+ &mOutputBuffer[currentOutLine * mTargetSize.width * sizeof(uint32_t)];
+ skia::ConvolveVertically(static_cast<const FilterValue*>(filterValues),
+ filterLength, mWindow.get(), mXFilter->num_values(),
+ outputLine, mHasAlpha, supports_sse2());
+
+ mCurrentOutLine += 1;
+
+ if (mCurrentOutLine == mTargetSize.height) {
+ // We're done.
+ return;
+ }
+
+ int32_t newFilterOffset = 0;
+ int32_t newFilterLength = 0;
+ GetFilterOffsetAndLength(mYFilter, mCurrentOutLine,
+ &newFilterOffset, &newFilterLength);
+
+ int diff = newFilterOffset - filterOffset;
+ MOZ_ASSERT(diff >= 0, "Moving backwards in the filter?");
+
+ // Shift the buffer. We're just moving pointers here, so this is cheap.
+ mLinesInBuffer -= diff;
+ mLinesInBuffer = max(mLinesInBuffer, 0);
+ for (int32_t i = 0; i < mLinesInBuffer; ++i) {
+ swap(mWindow[i], mWindow[filterLength - mLinesInBuffer + i]);
+ }
+}
+
+
+
+} // namespace image
+} // namespace mozilla

View File

@ -0,0 +1,58 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/9719b71d72dd
# HG changeset patch
# User Byron Campen [:bwc] <docfaraday@gmail.com>
# Date 1454100887 21600
# Node ID 9719b71d72dd2a3c5ee12ace156af2a63d9595ac
# Parent b68673d974a10f65390f80b36d4307eb31e44669
Bug 1234578 - Assert if PCM is destroyed improperly. r=rjesup, a=sylvestre
diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.cpp
@@ -712,16 +712,18 @@ PeerConnectionMedia::SelfDestruct_m()
{
CSFLogDebug(logTag, "%s: ", __FUNCTION__);
ASSERT_ON_THREAD(mMainThread);
mLocalSourceStreams.Clear();
mRemoteSourceStreams.Clear();
+ mMainThread = nullptr;
+
// Final self-destruct.
this->Release();
}
void
PeerConnectionMedia::ShutdownMediaTransport_s()
{
ASSERT_ON_THREAD(mSTSThread);
diff --git a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
--- a/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
+++ b/media/webrtc/signaling/src/peerconnection/PeerConnectionMedia.h
@@ -210,17 +210,20 @@ class RemoteSourceStreamInfo : public So
std::vector<std::string> mTrackIdMap;
// True iff SetPullEnabled(true) has been called on the DOMMediaStream. This
// happens when offer/answer concludes.
bool mReceiving;
};
class PeerConnectionMedia : public sigslot::has_slots<> {
- ~PeerConnectionMedia() {}
+ ~PeerConnectionMedia()
+ {
+ MOZ_RELEASE_ASSERT(!mMainThread);
+ }
public:
explicit PeerConnectionMedia(PeerConnectionImpl *parent);
PeerConnectionImpl* GetPC() { return mParent; }
nsresult Init(const std::vector<NrIceStunServer>& stun_servers,
const std::vector<NrIceTurnServer>& turn_servers);
// WARNING: This destroys the object!

View File

@ -0,0 +1,60 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/2839062f84fb
# HG changeset patch
# User Jan de Mooij <jdemooij@mozilla.com>
# Date 1455119320 -3600
# Node ID 2839062f84fb6cba2781ea8d59150f13d4813ddc
# Parent 185b233ea03f3811404e3979b65ec86b29d13555
Bug 1242279 - r=bhackett1024 a=sylvestre
diff --git a/js/src/vm/TypeInference.cpp b/js/src/vm/TypeInference.cpp
--- a/js/src/vm/TypeInference.cpp
+++ b/js/src/vm/TypeInference.cpp
@@ -3961,16 +3961,22 @@ JSScript::maybeSweepTypes(AutoClearTypeI
unsigned num = TypeScript::NumTypeSets(this);
StackTypeSet* typeArray = types_->typeArray();
// Remove constraints and references to dead objects from stack type sets.
for (unsigned i = 0; i < num; i++)
typeArray[i].sweep(zone(), *oom);
+ if (oom->hadOOM()) {
+ // It's possible we OOM'd while copying freeze constraints, so they
+ // need to be regenerated.
+ hasFreezeConstraints_ = false;
+ }
+
// Update the recompile indexes in any IonScripts still on the script.
if (hasIonScript())
ionScript()->recompileInfoRef().shouldSweep(types);
}
void
TypeScript::destroy()
{
diff --git a/js/src/vm/TypeInference.h b/js/src/vm/TypeInference.h
--- a/js/src/vm/TypeInference.h
+++ b/js/src/vm/TypeInference.h
@@ -566,16 +566,19 @@ class AutoClearTypeInferenceStateOnOOM
: zone(zone), oom(false)
{}
~AutoClearTypeInferenceStateOnOOM();
void setOOM() {
oom = true;
}
+ bool hadOOM() const {
+ return oom;
+ }
};
/* Superclass common to stack and heap type sets. */
class ConstraintTypeSet : public TypeSet
{
public:
/* Chain of constraints which propagate changes out from this type set. */
TypeConstraint* constraintList;

View File

@ -0,0 +1,53 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/9dd60e798819
# HG changeset patch
# User Olli Pettay <bugs@pettay.fi>
# Date 1455204078 -3600
# Node ID 9dd60e798819fe2ebf1e5bd36aa9006ecd2f82c9
# Parent c1d67bd4c993b9e344c68954e6f0392c82b81e38
Bug 1244250 - r=mats, a=al
diff --git a/layout/style/nsAnimationManager.cpp b/layout/style/nsAnimationManager.cpp
--- a/layout/style/nsAnimationManager.cpp
+++ b/layout/style/nsAnimationManager.cpp
@@ -715,16 +715,17 @@ nsAnimationManager::FlushAnimations(Flus
}
DispatchEvents(); // may destroy us
}
void
nsAnimationManager::DoDispatchEvents()
{
+ nsRefPtr<nsAnimationManager> kungFuDeathGrip(this);
EventArray events;
mPendingEvents.SwapElements(events);
for (uint32_t i = 0, i_end = events.Length(); i < i_end; ++i) {
AnimationEventInfo &info = events[i];
EventDispatcher::Dispatch(info.mElement, mPresContext, &info.mEvent);
if (!mPresContext) {
break;
diff --git a/layout/style/nsTransitionManager.cpp b/layout/style/nsTransitionManager.cpp
--- a/layout/style/nsTransitionManager.cpp
+++ b/layout/style/nsTransitionManager.cpp
@@ -753,16 +753,17 @@ nsTransitionManager::FlushTransitions(Fl
}
}
}
if (didThrottle) {
mPresContext->Document()->SetNeedStyleFlush();
}
+ nsRefPtr<nsTransitionManager> kungFuDeathGrip(this);
for (uint32_t i = 0, i_end = events.Length(); i < i_end; ++i) {
TransitionEventInfo &info = events[i];
EventDispatcher::Dispatch(info.mElement, mPresContext, &info.mEvent);
if (!mPresContext) {
break;
}
}

View File

@ -0,0 +1,32 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/1dd0ca8e70bd
# HG changeset patch
# User Nicolas B. Pierron <nicolas.b.pierron@mozilla.com>
# Date 1456161361 0
# Node ID 1dd0ca8e70bd77b6fd93f36cc4e9c2cebfe8ba0a
# Parent 95ff874886905ef46a7bbc760981d15ad0831096
Bug 1221872 - ValueNumbering: Set the dominator index of fixup blocks when they are created. r=sunfish, a=ritu
diff --git a/js/src/jit/ValueNumbering.cpp b/js/src/jit/ValueNumbering.cpp
--- a/js/src/jit/ValueNumbering.cpp
+++ b/js/src/jit/ValueNumbering.cpp
@@ -433,16 +433,17 @@ ValueNumberer::fixupOSROnlyLoop(MBasicBl
MBasicBlock* fake = MBasicBlock::NewAsmJS(graph_, block->info(),
nullptr, MBasicBlock::NORMAL);
if (fake == nullptr)
return false;
graph_.insertBlockBefore(block, fake);
fake->setImmediateDominator(fake);
fake->addNumDominated(1);
+ fake->setDomIndex(fake->id());
// Create zero-input phis to use as inputs for any phis in |block|.
// Again, this is a little odd, but it's the least-odd thing we can do
// without significant complexity.
for (MPhiIterator iter(block->phisBegin()), end(block->phisEnd()); iter != end; ++iter) {
MPhi* phi = *iter;
MPhi* fakePhi = MPhi::New(graph_.alloc(), phi->type());
fake->addPhi(fakePhi);

View File

@ -0,0 +1,103 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/6f4d51302387
# HG changeset patch
# User Andrew McCreight <continuation@gmail.com>
# Date 1456273423 28800
# Node ID 6f4d5130238790fa5810c76ffeb9eccc65efa8c9
# Parent 70f6c59d9d73a5edefd216b48ca74a931da12cf1
Bug 1249685 - Use more nsCOMPtrs for stack variables in DOM code. r=smaug, a=ritu
diff --git a/dom/base/nsRange.cpp b/dom/base/nsRange.cpp
--- a/dom/base/nsRange.cpp
+++ b/dom/base/nsRange.cpp
@@ -1985,17 +1985,17 @@ nsRange::CutContents(DocumentFragment**
rv = closestAncestor ? PrependChild(closestAncestor, nodeToResult)
: PrependChild(commonCloneAncestor, nodeToResult);
NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_STATE(!guard.Mutated(parent ? 2 : 1) ||
ValidateCurrentNode(this, iter));
} else if (nodeToResult) {
nsMutationGuard guard;
nsCOMPtr<nsINode> node = nodeToResult;
- nsINode* parent = node->GetParentNode();
+ nsCOMPtr<nsINode> parent = node->GetParentNode();
if (parent) {
mozilla::ErrorResult error;
parent->RemoveChild(*node, error);
NS_ENSURE_FALSE(error.Failed(), error.ErrorCode());
}
NS_ENSURE_STATE(!guard.Mutated(1) ||
ValidateCurrentNode(this, iter));
}
diff --git a/dom/base/nsTreeSanitizer.cpp b/dom/base/nsTreeSanitizer.cpp
--- a/dom/base/nsTreeSanitizer.cpp
+++ b/dom/base/nsTreeSanitizer.cpp
@@ -1423,18 +1423,18 @@ nsTreeSanitizer::SanitizeChildren(nsINod
mAllowStyles,
false);
}
node = node->GetNextNonChildNode(aRoot);
continue;
}
if (MustFlatten(ns, localName)) {
RemoveAllAttributes(node);
- nsIContent* next = node->GetNextNode(aRoot);
- nsIContent* parent = node->GetParent();
+ nsCOMPtr<nsIContent> next = node->GetNextNode(aRoot);
+ nsCOMPtr<nsIContent> parent = node->GetParent();
nsCOMPtr<nsIContent> child; // Must keep the child alive during move
ErrorResult rv;
while ((child = node->GetFirstChild())) {
parent->InsertBefore(*child, node, rv);
if (rv.Failed()) {
break;
}
}
diff --git a/dom/html/HTMLSelectElement.cpp b/dom/html/HTMLSelectElement.cpp
--- a/dom/html/HTMLSelectElement.cpp
+++ b/dom/html/HTMLSelectElement.cpp
@@ -624,17 +624,17 @@ HTMLSelectElement::Add(nsGenericHTMLElem
{
if (!aBefore) {
Element::AppendChild(aElement, aError);
return;
}
// Just in case we're not the parent, get the parent of the reference
// element
- nsINode* parent = aBefore->Element::GetParentNode();
+ nsCOMPtr<nsINode> parent = aBefore->Element::GetParentNode();
if (!parent || !nsContentUtils::ContentIsDescendantOf(parent, this)) {
// NOT_FOUND_ERR: Raised if before is not a descendant of the SELECT
// element.
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
return;
}
// If the before parameter is not null, we are equivalent to the
diff --git a/dom/html/HTMLTableElement.cpp b/dom/html/HTMLTableElement.cpp
--- a/dom/html/HTMLTableElement.cpp
+++ b/dom/html/HTMLTableElement.cpp
@@ -516,18 +516,18 @@ HTMLTableElement::InsertRow(int32_t aInd
if (rowCount > 0) {
if (refIndex == rowCount || aIndex == -1) {
// we set refIndex to the last row so we can get the last row's
// parent we then do an AppendChild below if (rowCount<aIndex)
refIndex = rowCount - 1;
}
- Element* refRow = rows->Item(refIndex);
- nsINode* parent = refRow->GetParentNode();
+ RefPtr<Element> refRow = rows->Item(refIndex);
+ nsCOMPtr<nsINode> parent = refRow->GetParentNode();
// create the row
nsRefPtr<mozilla::dom::NodeInfo> nodeInfo;
nsContentUtils::NameChanged(mNodeInfo, nsGkAtoms::tr,
getter_AddRefs(nodeInfo));
newRow = NS_NewHTMLTableRowElement(nodeInfo.forget());

View File

@ -0,0 +1,32 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/a5c4c18849b4
# HG changeset patch
# User Christoph Kerschbaumer <mozilla@christophkerschbaumer.com>
# Date 1456157874 28800
# Node ID a5c4c18849b486ef8693e20421b69239a2cbe574
# Parent e93aeb25e2a44df8d22f5a065b4410620e2c8730
Bug 1243178: CSP - Skip sending reports for non http schemes (r=dveditz) a=ritu
diff --git a/dom/security/nsCSPContext.cpp b/dom/security/nsCSPContext.cpp
--- a/dom/security/nsCSPContext.cpp
+++ b/dom/security/nsCSPContext.cpp
@@ -798,16 +798,17 @@ nsCSPContext::SendReports(nsISupports* a
(NS_SUCCEEDED(reportURI->SchemeIs("https", &isHttpScheme)) && isHttpScheme);
if (!isHttpScheme) {
const char16_t* params[] = { reportURIs[r].get() };
CSP_LogLocalizedStr(NS_LITERAL_STRING("reportURInotHttpsOrHttp2").get(),
params, ArrayLength(params),
aSourceFile, aScriptSample, aLineNum, 0,
nsIScriptError::errorFlag, "CSP", mInnerWindowID);
+ continue;
}
// make sure this is an anonymous request (no cookies) so in case the
// policy URI is injected, it can't be abused for CSRF.
nsLoadFlags flags;
rv = reportChannel->GetLoadFlags(&flags);
NS_ENSURE_SUCCESS(rv, rv);
flags |= nsIRequest::LOAD_ANONYMOUS;

View File

@ -0,0 +1,55 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/185b233ea03f
# HG changeset patch
# User Henri Sivonen <hsivonen@hsivonen.fi>
# Date 1455100746 -7200
# Node ID 185b233ea03f3811404e3979b65ec86b29d13555
# Parent 271e3a5a53d96871141e89271f611033b512e3e4
Bug 1246014. r=wchen. a=sylvestre
diff --git a/parser/html/javasrc/TreeBuilder.java b/parser/html/javasrc/TreeBuilder.java
--- a/parser/html/javasrc/TreeBuilder.java
+++ b/parser/html/javasrc/TreeBuilder.java
@@ -4437,17 +4437,17 @@ public abstract class TreeBuilder<T> imp
return TreeBuilder.NOT_FOUND_ON_STACK;
}
private void clearStackBackTo(int eltPos) throws SAXException {
int eltGroup = stack[eltPos].getGroup();
while (currentPtr > eltPos) { // > not >= intentional
if (stack[currentPtr].ns == "http://www.w3.org/1999/xhtml"
&& stack[currentPtr].getGroup() == TEMPLATE
- && (eltGroup == TABLE || eltGroup == TBODY_OR_THEAD_OR_TFOOT|| eltGroup == TR || eltGroup == HTML)) {
+ && (eltGroup == TABLE || eltGroup == TBODY_OR_THEAD_OR_TFOOT|| eltGroup == TR || eltPos == 0)) {
return;
}
pop();
}
}
private void resetTheInsertionMode() {
StackNode<T> node;
diff --git a/parser/html/nsHtml5TreeBuilder.cpp b/parser/html/nsHtml5TreeBuilder.cpp
--- a/parser/html/nsHtml5TreeBuilder.cpp
+++ b/parser/html/nsHtml5TreeBuilder.cpp
@@ -3301,17 +3301,17 @@ nsHtml5TreeBuilder::findLastInTableScope
return NS_HTML5TREE_BUILDER_NOT_FOUND_ON_STACK;
}
void
nsHtml5TreeBuilder::clearStackBackTo(int32_t eltPos)
{
int32_t eltGroup = stack[eltPos]->getGroup();
while (currentPtr > eltPos) {
- if (stack[currentPtr]->ns == kNameSpaceID_XHTML && stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE && (eltGroup == NS_HTML5TREE_BUILDER_TABLE || eltGroup == NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT || eltGroup == NS_HTML5TREE_BUILDER_TR || eltGroup == NS_HTML5TREE_BUILDER_HTML)) {
+ if (stack[currentPtr]->ns == kNameSpaceID_XHTML && stack[currentPtr]->getGroup() == NS_HTML5TREE_BUILDER_TEMPLATE && (eltGroup == NS_HTML5TREE_BUILDER_TABLE || eltGroup == NS_HTML5TREE_BUILDER_TBODY_OR_THEAD_OR_TFOOT || eltGroup == NS_HTML5TREE_BUILDER_TR || !eltPos)) {
return;
}
pop();
}
}
void
nsHtml5TreeBuilder::resetTheInsertionMode()

View File

@ -0,0 +1,33 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e93aeb25e2a4
# HG changeset patch
# User Andrew McCreight <continuation@gmail.com>
# Date 1455891967 28800
# Node ID e93aeb25e2a44df8d22f5a065b4410620e2c8730
# Parent 221de852fda32714a9e484774ceafafb450ea73c
Bug 1249377 - Hold a strong reference to |root| in nsHTMLDocument::SetBody. r=bz, a=sylvestre
diff --git a/dom/html/nsHTMLDocument.cpp b/dom/html/nsHTMLDocument.cpp
--- a/dom/html/nsHTMLDocument.cpp
+++ b/dom/html/nsHTMLDocument.cpp
@@ -1044,17 +1044,17 @@ nsHTMLDocument::SetBody(nsIDOMHTMLElemen
ErrorResult rv;
SetBody(static_cast<nsGenericHTMLElement*>(newBody.get()), rv);
return rv.ErrorCode();
}
void
nsHTMLDocument::SetBody(nsGenericHTMLElement* newBody, ErrorResult& rv)
{
- Element* root = GetRootElement();
+ nsCOMPtr<Element> root = GetRootElement();
// The body element must be either a body tag or a frameset tag. And we must
// have a html root tag, otherwise GetBody will not return the newly set
// body.
if (!newBody || !(newBody->Tag() == nsGkAtoms::body ||
newBody->Tag() == nsGkAtoms::frameset) ||
!root || !root->IsHTML() ||
root->Tag() != nsGkAtoms::html) {

View File

@ -0,0 +1,107 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/221de852fda3
# HG changeset patch
# User Randell Jesup <rjesup@jesup.org>
# Date 1455862087 18000
# Node ID 221de852fda32714a9e484774ceafafb450ea73c
# Parent b03db72e32f6e3acdc9f8705371cb222d7e6c456
Bug 1240760: Update DataChannel::Close() r=mcmanus, a=ritu
MozReview-Commit-ID: 7nN9h3M3O8w
diff --git a/netwerk/sctp/datachannel/DataChannel.cpp b/netwerk/sctp/datachannel/DataChannel.cpp
--- a/netwerk/sctp/datachannel/DataChannel.cpp
+++ b/netwerk/sctp/datachannel/DataChannel.cpp
@@ -1771,17 +1771,17 @@ DataChannelConnection::HandleStreamReset
}
NS_DispatchToMainThread(new DataChannelOnMessageAvailable(
DataChannelOnMessageAvailable::ON_CHANNEL_CLOSED, this,
channel));
mStreams[channel->mStream] = nullptr;
LOG(("Disconnected DataChannel %p from connection %p",
(void *) channel.get(), (void *) channel->mConnection.get()));
- channel->Destroy();
+ channel->DestroyLocked();
// At this point when we leave here, the object is a zombie held alive only by the DOM object
} else {
LOG(("Can't find incoming channel %d",i));
}
}
}
}
@@ -2498,17 +2498,17 @@ DataChannelConnection::CloseInt(DataChan
mStreams[channel->mStream] = nullptr;
} else {
SendOutgoingStreamReset();
}
}
aChannel->mState = CLOSING;
if (mState == CLOSED) {
// we're not going to hang around waiting
- channel->Destroy();
+ channel->DestroyLocked();
}
// At this point when we leave here, the object is a zombie held alive only by the DOM object
}
void DataChannelConnection::CloseAll()
{
LOG(("Closing all channels (connection %p)", (void*) this));
// Don't need to lock here
@@ -2552,23 +2552,25 @@ DataChannel::~DataChannel()
// wrong, nothing bad happens. A worst it's a leak.
NS_ASSERTION(mState == CLOSED || mState == CLOSING, "unexpected state in ~DataChannel");
}
void
DataChannel::Close()
{
ENSURE_DATACONNECTION;
+ RefPtr<DataChannelConnection> connection(mConnection);
mConnection->Close(this);
}
// Used when disconnecting from the DataChannelConnection
void
-DataChannel::Destroy()
+DataChannel::DestroyLocked()
{
+ mConnection->mLock.AssertCurrentThreadOwns();
ENSURE_DATACONNECTION;
LOG(("Destroying Data channel %u", mStream));
MOZ_ASSERT_IF(mStream != INVALID_STREAM,
!mConnection->FindChannelByStream(mStream));
mStream = INVALID_STREAM;
mState = CLOSED;
mConnection = nullptr;
diff --git a/netwerk/sctp/datachannel/DataChannel.h b/netwerk/sctp/datachannel/DataChannel.h
--- a/netwerk/sctp/datachannel/DataChannel.h
+++ b/netwerk/sctp/datachannel/DataChannel.h
@@ -331,19 +331,20 @@ public:
{
NS_ASSERTION(mConnection,"NULL connection");
}
private:
~DataChannel();
public:
- void Destroy(); // when we disconnect from the connection after stream RESET
+ NS_INLINE_DECL_THREADSAFE_REFCOUNTING(DataChannel)
- NS_INLINE_DECL_THREADSAFE_REFCOUNTING(DataChannel)
+ // when we disconnect from the connection after stream RESET
+ void DestroyLocked();
// Close this DataChannel. Can be called multiple times. MUST be called
// before destroying the DataChannel (state must be CLOSED or CLOSING).
void Close();
// Set the listener (especially for channels created from the other side)
void SetListener(DataChannelListener *aListener, nsISupports *aContext);

View File

@ -0,0 +1,54 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/a653013e7b50
# HG changeset patch
# User Peter Van der Beken <peterv@propagandism.org>
# Date 1454340035 -3600
# Node ID a653013e7b503912a32621e8da64a37171316588
# Parent 0d0d7e8292f7ecf5f1149d528c0524f04447c4ad
Bug 1243335 - report bad QName. r=sicking, a=sylvestre
diff --git a/dom/xslt/xslt/txInstructions.cpp b/dom/xslt/xslt/txInstructions.cpp
--- a/dom/xslt/xslt/txInstructions.cpp
+++ b/dom/xslt/xslt/txInstructions.cpp
@@ -93,16 +93,19 @@ txAttribute::txAttribute(nsAutoPtr<Expr>
txNamespaceMap* aMappings)
: mName(Move(aName)), mNamespace(Move(aNamespace)), mMappings(aMappings)
{
}
nsresult
txAttribute::execute(txExecutionState& aEs)
{
+ nsAutoPtr<txTextHandler> handler(
+ static_cast<txTextHandler*>(aEs.popResultHandler()));
+
nsAutoString name;
nsresult rv = mName->evaluateToString(aEs.getEvalContext(), name);
NS_ENSURE_SUCCESS(rv, rv);
const char16_t* colon;
if (!XMLUtils::isValidQName(name, &colon) ||
TX_StringEqualsAtom(name, nsGkAtoms::xmlns)) {
return NS_OK;
@@ -125,19 +128,16 @@ txAttribute::execute(txExecutionState& a
if (!nspace.IsEmpty()) {
nsId = txNamespaceManager::getNamespaceID(nspace);
}
}
else if (colon) {
nsId = mMappings->lookupNamespace(prefix);
}
- nsAutoPtr<txTextHandler> handler(
- static_cast<txTextHandler*>(aEs.popResultHandler()));
-
// add attribute if everything was ok
return nsId != kNameSpaceID_Unknown ?
aEs.mResultHandler->attribute(prefix, Substring(name, lnameStart),
nsId, handler->mValue) :
NS_OK;
}
txCallTemplate::txCallTemplate(const txExpandedName& aName)

View File

@ -0,0 +1,44 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/b4467681abd6
# HG changeset patch
# User Gijs Kruitbosch <gijskruitbosch@gmail.com>
# Date 1455276061 0
# Node ID b4467681abd676cd5575cbdf922927f8f54d2ad9
# Parent 8c1d40e45a72c6432e879137a0afa519dc6c9841
Bug 1245264 - r=bz, r=ritu
MozReview-Commit-ID: I0sVdritpD3
diff --git a/dom/base/nsLocation.cpp b/dom/base/nsLocation.cpp
--- a/dom/base/nsLocation.cpp
+++ b/dom/base/nsLocation.cpp
@@ -735,16 +735,27 @@ nsLocation::SetProtocol(const nsAString&
return rv;
}
rv = uri->SetScheme(NS_ConvertUTF16toUTF8(aProtocol));
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
+ nsAutoCString newSpec;
+ rv = uri->GetSpec(newSpec);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+ // We may want a new URI class for the new URI, so recreate it:
+ rv = NS_NewURI(getter_AddRefs(uri), newSpec);
+ if (NS_FAILED(rv)) {
+ return rv;
+ }
+
return SetURI(uri);
}
void
nsLocation::GetUsername(nsAString& aUsername, ErrorResult& aError)
{
if (!CallerSubsumes()) {
aError.Throw(NS_ERROR_DOM_SECURITY_ERR);

View File

@ -0,0 +1,36 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/291c2f31c48c
# HG changeset patch
# User Nicholas Nethercote <nnethercote@mozilla.com>
# Date 1454650565 -39600
# Node ID 291c2f31c48c7e96b1884b55273355970fa0fc30
# Parent 11e6614756551cfd7291e73eefb90c52873a8480
Bug 1246054 - Fix an erroneous nsNPObjWrapper assertion. r=froydnj. a=ritu
diff --git a/dom/plugins/base/nsJSNPRuntime.cpp b/dom/plugins/base/nsJSNPRuntime.cpp
--- a/dom/plugins/base/nsJSNPRuntime.cpp
+++ b/dom/plugins/base/nsJSNPRuntime.cpp
@@ -1915,18 +1915,19 @@ nsNPObjWrapper::GetNewOrUsed(NPP npp, JS
// No existing JSObject, create one.
JS::Rooted<JSObject*> obj(cx, ::JS_NewObject(cx, js::Jsvalify(&sNPObjectJSWrapperClass)));
if (generation != sNPObjWrappers.Generation()) {
// Reload entry if the JS_NewObject call caused a GC and reallocated
// the table (see bug 445229). This is guaranteed to succeed.
- NS_ASSERTION(PL_DHashTableSearch(&sNPObjWrappers, npobj),
- "Hashtable didn't find what we just added?");
+ entry = static_cast<NPObjWrapperHashEntry*>
+ (PL_DHashTableSearch(&sNPObjWrappers, npobj));
+ NS_ASSERTION(entry, "Hashtable didn't find what we just added?");
}
if (!obj) {
// OOM? Remove the stale entry from the hash.
PL_DHashTableRawRemove(&sNPObjWrappers, entry);
return nullptr;

View File

@ -0,0 +1,530 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/271e3a5a53d9
# HG changeset patch
# User Henri Sivonen <hsivonen@hsivonen.fi>
# Date 1455014759 -7200
# Node ID 271e3a5a53d96871141e89271f611033b512e3e4
# Parent 9719b71d72dd2a3c5ee12ace156af2a63d9595ac
Bug 1228103. r=smaug. a=sylvestre
diff --git a/parser/htmlparser/nsExpatDriver.cpp b/parser/htmlparser/nsExpatDriver.cpp
--- a/parser/htmlparser/nsExpatDriver.cpp
+++ b/parser/htmlparser/nsExpatDriver.cpp
@@ -1127,22 +1127,28 @@ nsExpatDriver::ConsumeToken(nsScanner& a
XML_Size lastLineLength = XML_GetCurrentColumnNumber(mExpatParser);
if (lastLineLength <= consumed) {
// The length of the last line was less than what expat consumed, so
// there was at least one line break in the consumed data. Store the
// last line until the point where we stopped parsing.
nsScannerIterator startLastLine = currentExpatPosition;
startLastLine.advance(-((ptrdiff_t)lastLineLength));
- CopyUnicodeTo(startLastLine, currentExpatPosition, mLastLine);
+ if (!CopyUnicodeTo(startLastLine, currentExpatPosition, mLastLine)) {
+ return (mInternalState = NS_ERROR_OUT_OF_MEMORY);
+ }
}
else {
// There was no line break in the consumed data, append the consumed
// data.
- AppendUnicodeTo(oldExpatPosition, currentExpatPosition, mLastLine);
+ if (!AppendUnicodeTo(oldExpatPosition,
+ currentExpatPosition,
+ mLastLine)) {
+ return (mInternalState = NS_ERROR_OUT_OF_MEMORY);
+ }
}
}
mExpatBuffered += length - consumed;
if (BlockedOrInterrupted()) {
PR_LOG(GetExpatDriverLog(), PR_LOG_DEBUG,
("Blocked or interrupted parser (probably for loading linked "
diff --git a/parser/htmlparser/nsParser.cpp b/parser/htmlparser/nsParser.cpp
--- a/parser/htmlparser/nsParser.cpp
+++ b/parser/htmlparser/nsParser.cpp
@@ -1508,17 +1508,19 @@ nsParser::ResumeParse(bool allowIteratio
DidBuildModel(mStreamStatus);
return NS_OK;
}
} else {
CParserContext* theContext = PopContext();
if (theContext) {
theIterationIsOk = allowIteration && theContextIsStringBased;
if (theContext->mCopyUnused) {
- theContext->mScanner->CopyUnusedData(mUnusedInput);
+ if (!theContext->mScanner->CopyUnusedData(mUnusedInput)) {
+ mInternalState = NS_ERROR_OUT_OF_MEMORY;
+ }
}
delete theContext;
}
result = mInternalState;
aIsFinalChunk = mParserContext &&
mParserContext->mStreamListenerState == eOnStop;
diff --git a/parser/htmlparser/nsScanner.cpp b/parser/htmlparser/nsScanner.cpp
--- a/parser/htmlparser/nsScanner.cpp
+++ b/parser/htmlparser/nsScanner.cpp
@@ -379,17 +379,19 @@ nsresult nsScanner::Peek(nsAString& aStr
if (mCountRemaining < uint32_t(aNumChars + aOffset)) {
end = mEndPosition;
}
else {
end = start;
end.advance(aNumChars);
}
- CopyUnicodeTo(start, end, aStr);
+ if (!CopyUnicodeTo(start, end, aStr)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
return NS_OK;
}
/**
* Skip whitespace on scanner input stream
*
@@ -542,17 +544,19 @@ nsresult nsScanner::ReadTagIdentifier(ns
if (!found) {
++current;
}
}
// Don't bother appending nothing.
if (current != mCurrentPosition) {
- AppendUnicodeTo(mCurrentPosition, current, aString);
+ if (!AppendUnicodeTo(mCurrentPosition, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
}
SetPosition(current);
if (current == end) {
result = kEOF;
}
//DoErrTest(aString);
@@ -597,26 +601,30 @@ nsresult nsScanner::ReadEntityIdentifier
default:
found = ('a'<=theChar && theChar<='z') ||
('A'<=theChar && theChar<='Z') ||
('0'<=theChar && theChar<='9');
break;
}
if(!found) {
- AppendUnicodeTo(mCurrentPosition, current, aString);
+ if (!AppendUnicodeTo(mCurrentPosition, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
break;
}
}
++current;
}
SetPosition(current);
if (current == end) {
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
return kEOF;
}
//DoErrTest(aString);
return result;
}
@@ -646,26 +654,30 @@ nsresult nsScanner::ReadNumber(nsString&
while(current != end) {
theChar=*current;
if(theChar) {
done = (theChar < '0' || theChar > '9') &&
((aBase == 16)? (theChar < 'A' || theChar > 'F') &&
(theChar < 'a' || theChar > 'f')
:true);
if(done) {
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
break;
}
}
++current;
}
SetPosition(current);
if (current == end) {
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
return kEOF;
}
//DoErrTest(aString);
return result;
}
@@ -712,37 +724,43 @@ nsresult nsScanner::ReadWhitespace(nsSca
char16_t thePrevChar = theChar;
theChar = (++current != end) ? *current : '\0';
if ((thePrevChar == '\r' && theChar == '\n') ||
(thePrevChar == '\n' && theChar == '\r')) {
theChar = (++current != end) ? *current : '\0'; // CRLF == LFCR => LF
haveCR = true;
} else if (thePrevChar == '\r') {
// Lone CR becomes CRLF; callers should know to remove extra CRs
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
aString.writable().Append(char16_t('\n'));
origin = current;
haveCR = true;
}
}
break;
case ' ' :
case '\t':
theChar = (++current != end) ? *current : '\0';
break;
default:
done = true;
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
break;
}
}
SetPosition(current);
if (current == end) {
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
result = kEOF;
}
aHaveCR = haveCR;
return result;
}
//XXXbz callers of this have to manage their lone '\r' themselves if they want
@@ -846,34 +864,38 @@ nsresult nsScanner::ReadUntil(nsAString&
if(!(theChar & aEndCondition.mFilter)) {
// They were. Do a thorough check.
setcurrent = setstart;
while (*setcurrent) {
if (*setcurrent == theChar) {
if(addTerminal)
++current;
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
SetPosition(current);
//DoErrTest(aString);
return NS_OK;
}
++setcurrent;
}
}
++current;
}
// If we are here, we didn't find any terminator in the string and
// current = mEndPosition
SetPosition(current);
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
return kEOF;
}
nsresult nsScanner::ReadUntil(nsScannerSharedSubstring& aString,
const nsReadEndCondition& aEndCondition,
bool addTerminal)
{
if (!mSlidingBuffer) {
@@ -906,34 +928,38 @@ nsresult nsScanner::ReadUntil(nsScannerS
if(!(theChar & aEndCondition.mFilter)) {
// They were. Do a thorough check.
setcurrent = setstart;
while (*setcurrent) {
if (*setcurrent == theChar) {
if(addTerminal)
++current;
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
SetPosition(current);
//DoErrTest(aString);
return NS_OK;
}
++setcurrent;
}
}
++current;
}
// If we are here, we didn't find any terminator in the string and
// current = mEndPosition
SetPosition(current);
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
return kEOF;
}
nsresult nsScanner::ReadUntil(nsScannerIterator& aStart,
nsScannerIterator& aEnd,
const nsReadEndCondition &aEndCondition,
bool addTerminal)
{
@@ -1025,26 +1051,30 @@ nsresult nsScanner::ReadUntil(nsAString&
if (theChar == '\0') {
ReplaceCharacter(current, sInvalid);
theChar = sInvalid;
}
if (aTerminalChar == theChar) {
if(addTerminal)
++current;
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
SetPosition(current);
return NS_OK;
}
++current;
}
// If we are here, we didn't find any terminator in the string and
// current = mEndPosition
- AppendUnicodeTo(origin, current, aString);
+ if (!AppendUnicodeTo(origin, current, aString)) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
SetPosition(current);
return kEOF;
}
void nsScanner::BindSubstring(nsScannerSubstring& aSubstring, const nsScannerIterator& aStart, const nsScannerIterator& aEnd)
{
aSubstring.Rebind(*mSlidingBuffer, aStart, aEnd);
@@ -1142,29 +1172,29 @@ bool nsScanner::AppendToBuffer(nsScanner
}
/**
* call this to copy bytes out of the scanner that have not yet been consumed
* by the tokenization process.
*
* @update gess 5/12/98
* @param aCopyBuffer is where the scanner buffer will be copied to
- * @return nada
+ * @return true if OK or false on OOM
*/
-void nsScanner::CopyUnusedData(nsString& aCopyBuffer) {
+bool nsScanner::CopyUnusedData(nsString& aCopyBuffer) {
if (!mSlidingBuffer) {
aCopyBuffer.Truncate();
- return;
+ return true;
}
nsScannerIterator start, end;
start = mCurrentPosition;
end = mEndPosition;
- CopyUnicodeTo(start, end, aCopyBuffer);
+ return CopyUnicodeTo(start, end, aCopyBuffer);
}
/**
* Retrieve the name of the file that the scanner is reading from.
* In some cases, it's just a given name, because the scanner isn't
* really reading from a file.
*
* @update gess 5/12/98
diff --git a/parser/htmlparser/nsScanner.h b/parser/htmlparser/nsScanner.h
--- a/parser/htmlparser/nsScanner.h
+++ b/parser/htmlparser/nsScanner.h
@@ -204,19 +204,19 @@ class nsScanner {
nsIRequest *aRequest);
/**
* Call this to copy bytes out of the scanner that have not yet been consumed
* by the tokenization process.
*
* @update gess 5/12/98
* @param aCopyBuffer is where the scanner buffer will be copied to
- * @return nada
+ * @return true if OK or false on OOM
*/
- void CopyUnusedData(nsString& aCopyBuffer);
+ bool CopyUnusedData(nsString& aCopyBuffer);
/**
* Retrieve the name of the file that the scanner is reading from.
* In some cases, it's just a given name, because the scanner isn't
* really reading from a file.
*
* @update gess 5/12/98
* @return
diff --git a/parser/htmlparser/nsScannerString.cpp b/parser/htmlparser/nsScannerString.cpp
--- a/parser/htmlparser/nsScannerString.cpp
+++ b/parser/htmlparser/nsScannerString.cpp
@@ -461,61 +461,63 @@ copy_multifragment_string( nsScannerIter
sink_traits::write(result, source_traits::read(first), distance);
NS_ASSERTION(distance > 0, "|copy_multifragment_string| will never terminate");
source_traits::advance(first, distance);
}
return result;
}
-void
+bool
CopyUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsAString& aDest )
{
nsAString::iterator writer;
if (!aDest.SetLength(Distance(aSrcStart, aSrcEnd), mozilla::fallible)) {
aDest.Truncate();
- return; // out of memory
+ return false; // out of memory
}
aDest.BeginWriting(writer);
nsScannerIterator fromBegin(aSrcStart);
copy_multifragment_string(fromBegin, aSrcEnd, writer);
+ return true;
}
-void
+bool
AppendUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsScannerSharedSubstring& aDest )
{
// Check whether we can just create a dependent string.
if (aDest.str().IsEmpty()) {
// We can just make |aDest| point to the buffer.
// This will take care of copying if the buffer spans fragments.
aDest.Rebind(aSrcStart, aSrcEnd);
- } else {
- // The dest string is not empty, so it can't be a dependent substring.
- AppendUnicodeTo(aSrcStart, aSrcEnd, aDest.writable());
+ return true;
}
+ // The dest string is not empty, so it can't be a dependent substring.
+ return AppendUnicodeTo(aSrcStart, aSrcEnd, aDest.writable());
}
-void
+bool
AppendUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsAString& aDest )
{
nsAString::iterator writer;
uint32_t oldLength = aDest.Length();
if (!aDest.SetLength(oldLength + Distance(aSrcStart, aSrcEnd), mozilla::fallible))
- return; // out of memory
+ return false; // out of memory
aDest.BeginWriting(writer).advance(oldLength);
nsScannerIterator fromBegin(aSrcStart);
copy_multifragment_string(fromBegin, aSrcEnd, writer);
+ return true;
}
bool
FindCharInReadable( char16_t aChar,
nsScannerIterator& aSearchStart,
const nsScannerIterator& aSearchEnd )
{
while ( aSearchStart != aSearchEnd )
diff --git a/parser/htmlparser/nsScannerString.h b/parser/htmlparser/nsScannerString.h
--- a/parser/htmlparser/nsScannerString.h
+++ b/parser/htmlparser/nsScannerString.h
@@ -539,43 +539,43 @@ nsScannerBufferList::Position::operator=
inline
size_t
Distance( const nsScannerIterator& aStart, const nsScannerIterator& aEnd )
{
typedef nsScannerBufferList::Position Position;
return Position::Distance(Position(aStart), Position(aEnd));
}
-void
+bool
CopyUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsAString& aDest );
inline
-void
+bool
CopyUnicodeTo( const nsScannerSubstring& aSrc, nsAString& aDest )
{
nsScannerIterator begin, end;
- CopyUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest);
+ return CopyUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest);
}
-void
+bool
AppendUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsAString& aDest );
inline
-void
+bool
AppendUnicodeTo( const nsScannerSubstring& aSrc, nsAString& aDest )
{
nsScannerIterator begin, end;
- AppendUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest);
+ return AppendUnicodeTo(aSrc.BeginReading(begin), aSrc.EndReading(end), aDest);
}
-void
+bool
AppendUnicodeTo( const nsScannerIterator& aSrcStart,
const nsScannerIterator& aSrcEnd,
nsScannerSharedSubstring& aDest );
bool
FindCharInReadable( char16_t aChar,
nsScannerIterator& aStart,
const nsScannerIterator& aEnd );

View File

@ -0,0 +1,37 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/8c1d40e45a72
# HG changeset patch
# User Xidorn Quan <quanxunzhen@gmail.com>
# Date 1456199544 -28800
# Node ID 8c1d40e45a72c6432e879137a0afa519dc6c9841
# Parent 1dd0ca8e70bd77b6fd93f36cc4e9c2cebfe8ba0a
Bug 1248851 - r=sicking, a=ritu
diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp
--- a/dom/indexedDB/ActorsParent.cpp
+++ b/dom/indexedDB/ActorsParent.cpp
@@ -14823,22 +14823,19 @@ ObjectStoreAddOrPutRequestOp::DoDatabase
}
snappy::RawCompress(uncompressed, uncompressedLength, compressed,
&compressedLength);
uint8_t* dataBuffer = reinterpret_cast<uint8_t*>(compressed);
size_t dataBufferLength = compressedLength;
- // If this call succeeds, | compressed | is now owned by the statement, and
- // we are no longer responsible for it.
rv = stmt->BindAdoptedBlobByName(NS_LITERAL_CSTRING("data"), dataBuffer,
dataBufferLength);
if (NS_WARN_IF(NS_FAILED(rv))) {
- moz_free(compressed);
return rv;
}
}
nsCOMPtr<nsIFile> fileDirectory;
nsCOMPtr<nsIFile> journalDirectory;
if (mFileManager) {

View File

@ -0,0 +1,861 @@
Copied from upstream:
https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/ec9cff7bb543
# HG changeset patch
# User Jonathan Kew <jkew@mozilla.com>
# Date 1456760339 0
# Node ID ec9cff7bb5439b2b4c1249ff9376d07a80172c27
# Parent 6f4d5130238790fa5810c76ffeb9eccc65efa8c9
Bug 1248876 - Update graphite2 to upstream release 1.3.6. r=jrmuizel a=sledru
diff --git a/gfx/graphite2/README.mozilla b/gfx/graphite2/README.mozilla
--- a/gfx/graphite2/README.mozilla
+++ b/gfx/graphite2/README.mozilla
@@ -1,7 +1,3 @@
-This directory contains the Graphite2 library release 1.3.5 from
-https://github.com/silnrsi/graphite/releases/download/1.3.5/graphite2-minimal-1.3.5.tgz
+This directory contains the Graphite2 library release 1.3.6 from
+https://github.com/silnrsi/graphite/releases/download/1.3.6/graphite-minimal-1.3.6.tgz
See gfx/graphite2/moz-gr-update.sh for update procedure.
-
-Also includes two post-1.3.5 fixes:
-a8b3ac2aed0eb132cd80efe7de88f8153e73c829
-e569e28d83491fedb31b9220493f3c07f6ec6d80
diff --git a/gfx/graphite2/include/graphite2/Font.h b/gfx/graphite2/include/graphite2/Font.h
--- a/gfx/graphite2/include/graphite2/Font.h
+++ b/gfx/graphite2/include/graphite2/Font.h
@@ -25,17 +25,17 @@
either version 2 of the License or (at your option) any later version.
*/
#pragma once
#include "graphite2/Types.h"
#define GR2_VERSION_MAJOR 1
#define GR2_VERSION_MINOR 3
-#define GR2_VERSION_BUGFIX 5
+#define GR2_VERSION_BUGFIX 6
#ifdef __cplusplus
extern "C"
{
#endif
typedef struct gr_face gr_face;
typedef struct gr_font gr_font;
diff --git a/gfx/graphite2/moz-gr-update.sh b/gfx/graphite2/moz-gr-update.sh
--- a/gfx/graphite2/moz-gr-update.sh
+++ b/gfx/graphite2/moz-gr-update.sh
@@ -14,17 +14,17 @@
RELEASE=$1
if [ "x$RELEASE" == "x" ]
then
echo "Must provide the version number to be used."
exit 1
fi
-TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite2-minimal-$RELEASE.tgz"
+TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite-minimal-$RELEASE.tgz"
foo=`basename $0`
TMPFILE=`mktemp -t ${foo}` || exit 1
curl -L "$TARBALL" -o "$TMPFILE"
tar -x -z -C gfx/graphite2/ --strip-components 1 -f "$TMPFILE" || exit 1
rm "$TMPFILE"
diff --git a/gfx/graphite2/src/CmapCache.cpp b/gfx/graphite2/src/CmapCache.cpp
--- a/gfx/graphite2/src/CmapCache.cpp
+++ b/gfx/graphite2/src/CmapCache.cpp
@@ -33,43 +33,43 @@ of the License or (at your option) any l
using namespace graphite2;
const void * bmp_subtable(const Face::Table & cmap)
{
const void * stbl;
if (!cmap.size()) return 0;
- if (TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 3, 1, cmap.size()), cmap.size())
- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 3, cmap.size()), cmap.size())
- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 2, cmap.size()), cmap.size())
- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 1, cmap.size()), cmap.size())
- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 0, cmap.size()), cmap.size()))
+ if (TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 3, 1, cmap.size()), cmap + cmap.size())
+ || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 3, cmap.size()), cmap + cmap.size())
+ || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 2, cmap.size()), cmap + cmap.size())
+ || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 1, cmap.size()), cmap + cmap.size())
+ || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 0, cmap.size()), cmap + cmap.size()))
return stbl;
return 0;
}
const void * smp_subtable(const Face::Table & cmap)
{
const void * stbl;
if (!cmap.size()) return 0;
- if (TtfUtil::CheckCmapSubtable12(stbl = TtfUtil::FindCmapSubtable(cmap, 3, 10, cmap.size()), cmap.size())
- || TtfUtil::CheckCmapSubtable12(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 4, cmap.size()), cmap.size()))
+ if (TtfUtil::CheckCmapSubtable12(stbl = TtfUtil::FindCmapSubtable(cmap, 3, 10, cmap.size()), cmap + cmap.size())
+ || TtfUtil::CheckCmapSubtable12(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 4, cmap.size()), cmap + cmap.size()))
return stbl;
return 0;
}
template <unsigned int (*NextCodePoint)(const void *, unsigned int, int *),
uint16 (*LookupCodePoint)(const void *, unsigned int, int)>
bool cache_subtable(uint16 * blocks[], const void * cst, const unsigned int limit)
{
int rangeKey = 0;
uint32 codePoint = NextCodePoint(cst, 0, &rangeKey),
prevCodePoint = 0;
- while (codePoint != limit)
+ while (codePoint < limit)
{
unsigned int block = codePoint >> 8;
if (!blocks[block])
{
blocks[block] = grzeroalloc<uint16>(0x100);
if (!blocks[block])
return false;
}
diff --git a/gfx/graphite2/src/Code.cpp b/gfx/graphite2/src/Code.cpp
--- a/gfx/graphite2/src/Code.cpp
+++ b/gfx/graphite2/src/Code.cpp
@@ -79,18 +79,19 @@ struct context
class Machine::Code::decoder
{
public:
struct limits;
struct analysis
{
+ static const int NUMCONTEXTS = 256;
uint8 slotref;
- context contexts[256];
+ context contexts[NUMCONTEXTS];
byte max_ref;
analysis() : slotref(0), max_ref(0) {};
void set_ref(int index, bool incinsert=false) throw();
void set_noref(int index) throw();
void set_changed(int index) throw();
};
@@ -363,29 +364,33 @@ opcode Machine::Code::decoder::fetch_opc
break;
case ATTR_SET :
case ATTR_ADD :
case ATTR_SUB :
case ATTR_SET_SLOT :
if (--_stack_depth < 0)
failure(underfull_stack);
valid_upto(gr_slatMax, bc[0]);
+ if (attrCode(bc[0]) == gr_slatUserDefn) // use IATTR for user attributes
+ failure(out_of_range_data);
test_context();
break;
case IATTR_SET_SLOT :
if (--_stack_depth < 0)
failure(underfull_stack);
if (valid_upto(gr_slatMax, bc[0]))
valid_upto(_max.attrid[bc[0]], bc[1]);
test_context();
break;
case PUSH_SLOT_ATTR :
++_stack_depth;
valid_upto(gr_slatMax, bc[0]);
valid_upto(_rule_length, _pre_context + int8(bc[1]));
+ if (attrCode(bc[0]) == gr_slatUserDefn) // use IATTR for user attributes
+ failure(out_of_range_data);
break;
case PUSH_GLYPH_ATTR_OBS :
++_stack_depth;
valid_upto(_max.glyf_attrs, bc[0]);
valid_upto(_rule_length, _pre_context + int8(bc[1]));
break;
case PUSH_GLYPH_METRIC :
++_stack_depth;
@@ -656,24 +661,24 @@ bool Machine::Code::decoder::validate_op
return false;
}
return true;
}
bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw()
{
- const bool t = x < limit;
+ const bool t = (limit != 0) && (x < limit);
if (!t) failure(out_of_range_data);
return t;
}
bool Machine::Code::decoder::test_context() const throw()
{
- if (_pre_context >= _rule_length)
+ if (_pre_context >= _rule_length || _analysis.slotref >= analysis::NUMCONTEXTS - 1)
{
failure(out_of_range_data);
return false;
}
return true;
}
inline
@@ -681,34 +686,34 @@ void Machine::Code::failure(const status
release_buffers();
_status = s;
}
inline
void Machine::Code::decoder::analysis::set_ref(int index, bool incinsert) throw() {
if (incinsert && contexts[slotref].flags.inserted) --index;
- if (index + slotref < 0) return;
+ if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
contexts[index + slotref].flags.referenced = true;
if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
}
inline
void Machine::Code::decoder::analysis::set_noref(int index) throw() {
if (contexts[slotref].flags.inserted) --index;
- if (index + slotref < 0) return;
+ if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
}
inline
void Machine::Code::decoder::analysis::set_changed(int index) throw() {
if (contexts[slotref].flags.inserted) --index;
- if (index + slotref < 0) return;
+ if (index + slotref < 0 || index + slotref >= NUMCONTEXTS) return;
contexts[index + slotref].flags.changed = true;
if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref;
}
void Machine::Code::release_buffers() throw()
{
if (_own)
diff --git a/gfx/graphite2/src/GlyphCache.cpp b/gfx/graphite2/src/GlyphCache.cpp
--- a/gfx/graphite2/src/GlyphCache.cpp
+++ b/gfx/graphite2/src/GlyphCache.cpp
@@ -260,17 +260,17 @@ GlyphCache::Loader::Loader(const Face &
_head = Face::Table();
return;
}
if (!dumb_font)
{
if ((m_pGlat = Face::Table(face, Tag::Glat, 0x00030000)) == NULL
|| (m_pGloc = Face::Table(face, Tag::Gloc)) == NULL
- || m_pGloc.size() < 6)
+ || m_pGloc.size() < 8)
{
_head = Face::Table();
return;
}
const byte * p = m_pGloc;
int version = be::read<uint32>(p);
const uint16 flags = be::read<uint16>(p);
_num_attrs = be::read<uint16>(p);
diff --git a/gfx/graphite2/src/Pass.cpp b/gfx/graphite2/src/Pass.cpp
--- a/gfx/graphite2/src/Pass.cpp
+++ b/gfx/graphite2/src/Pass.cpp
@@ -233,17 +233,17 @@ bool Pass::readRules(const byte * rule_m
m_codes = new Code [m_numRules*2];
const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data);
m_progs = gralloc<byte>(prog_pool_sz);
byte * prog_pool_free = m_progs,
* prog_pool_end = m_progs + prog_pool_sz;
if (e.test(!(m_rules && m_codes && m_progs), E_OUTOFMEM)) return face.error(e);
Rule * r = m_rules + m_numRules - 1;
- for (size_t n = m_numRules; n; --n, --r, ac_end = ac_begin, rc_end = rc_begin)
+ for (size_t n = m_numRules; r >= m_rules; --n, --r, ac_end = ac_begin, rc_end = rc_begin)
{
face.error_context((face.error_context() & 0xFFFF00) + EC_ARULE + ((n - 1) << 24));
r->preContext = *--precontext;
r->sort = be::peek<uint16>(--sort_key);
#ifndef NDEBUG
r->rule_idx = n - 1;
#endif
if (r->sort > 63 || r->preContext >= r->sort || r->preContext > m_maxPreCtxt || r->preContext < m_minPreCtxt)
@@ -405,16 +405,17 @@ bool Pass::runGraphite(vm::Machine & m,
json::closer rules_array_closer(fsm.dbgout);
#endif
m.slotMap().highwater(currHigh);
int lc = m_iMaxLoop;
do
{
findNDoRule(s, m, fsm);
+ if (m.status() != Machine::finished) return false;
if (s && (s == m.slotMap().highwater() || m.slotMap().highpassed() || --lc == 0)) {
if (!lc)
s = m.slotMap().highwater();
lc = m_iMaxLoop;
if (s)
m.slotMap().highwater(s->next());
}
} while (s);
@@ -495,17 +496,22 @@ void Pass::findNDoRule(Slot * & slot, Ma
{
assert(slot);
if (runFSM(fsm, slot))
{
// Search for the first rule which passes the constraint
const RuleEntry * r = fsm.rules.begin(),
* const re = fsm.rules.end();
- while (r != re && !testConstraint(*r->rule, m)) ++r;
+ while (r != re && !testConstraint(*r->rule, m))
+ {
+ ++r;
+ if (m.status() != Machine::finished)
+ return;
+ }
#if !defined GRAPHITE2_NTRACING
if (fsm.dbgout)
{
if (fsm.rules.size() != 0)
{
*fsm.dbgout << json::item << json::object;
dumpRuleEventConsidered(fsm, *r);
@@ -530,16 +536,17 @@ void Pass::findNDoRule(Slot * & slot, Ma
}
}
else
#endif
{
if (r != re)
{
const int adv = doAction(r->rule->action, slot, m);
+ if (m.status() != Machine::finished) return;
if (r->rule->action->deletes()) fsm.slots.collectGarbage(slot);
adjustSlot(adv, slot, fsm.slots);
return;
}
}
}
slot = slot->next();
diff --git a/gfx/graphite2/src/Segment.cpp b/gfx/graphite2/src/Segment.cpp
--- a/gfx/graphite2/src/Segment.cpp
+++ b/gfx/graphite2/src/Segment.cpp
@@ -205,18 +205,23 @@ Slot *Segment::newSlot()
void Segment::freeSlot(Slot *aSlot)
{
if (m_last == aSlot) m_last = aSlot->prev();
if (m_first == aSlot) m_first = aSlot->next();
if (aSlot->attachedTo())
aSlot->attachedTo()->removeChild(aSlot);
while (aSlot->firstChild())
{
- aSlot->firstChild()->attachTo(NULL);
- aSlot->removeChild(aSlot->firstChild());
+ if (aSlot->firstChild()->attachedTo() == aSlot)
+ {
+ aSlot->firstChild()->attachTo(NULL);
+ aSlot->removeChild(aSlot->firstChild());
+ }
+ else
+ aSlot->firstChild(NULL);
}
// reset the slot incase it is reused
::new (aSlot) Slot(aSlot->userAttrs());
memset(aSlot->userAttrs(), 0, m_silf->numUser() * sizeof(int16));
// Update generation counter for debug
#if !defined GRAPHITE2_NTRACING
if (m_face->logger())
++aSlot->userAttrs()[m_silf->numUser()];
diff --git a/gfx/graphite2/src/Slot.cpp b/gfx/graphite2/src/Slot.cpp
--- a/gfx/graphite2/src/Slot.cpp
+++ b/gfx/graphite2/src/Slot.cpp
@@ -192,16 +192,18 @@ int32 Slot::clusterMetric(const Segment
#define SLOTGETCOLATTR(x) { SlotCollision *c = seg->collisionInfo(this); return c ? int(c-> x) : 0; }
int Slot::getAttr(const Segment *seg, attrCode ind, uint8 subindex) const
{
if (ind == gr_slatUserDefnV1)
{
ind = gr_slatUserDefn;
subindex = 0;
+ if (seg->numAttrs() == 0)
+ return 0;
}
else if (ind >= gr_slatJStretch && ind < gr_slatJStretch + 20 && ind != gr_slatJWidth)
{
int indx = ind - gr_slatJStretch;
return getJustify(seg, indx / 5, indx % 5);
}
switch (ind)
@@ -269,16 +271,18 @@ int Slot::getAttr(const Segment *seg, at
break; }
void Slot::setAttr(Segment *seg, attrCode ind, uint8 subindex, int16 value, const SlotMap & map)
{
if (ind == gr_slatUserDefnV1)
{
ind = gr_slatUserDefn;
subindex = 0;
+ if (seg->numAttrs() == 0)
+ return;
}
else if (ind >= gr_slatJStretch && ind < gr_slatJStretch + 20 && ind != gr_slatJWidth)
{
int indx = ind - gr_slatJStretch;
return setJustify(seg, indx / 5, indx % 5, value);
}
switch (ind)
@@ -416,32 +420,32 @@ bool Slot::sibling(Slot *ap)
}
bool Slot::removeChild(Slot *ap)
{
if (this == ap || !m_child) return false;
else if (ap == m_child)
{
Slot *nSibling = m_child->nextSibling();
- m_child->sibling(NULL);
+ m_child->removeSibling(nSibling);
m_child = nSibling;
return true;
}
else
return m_child->removeSibling(ap);
return true;
}
bool Slot::removeSibling(Slot *ap)
{
if (this == ap || !m_sibling) return false;
else if (ap == m_sibling)
{
m_sibling = m_sibling->nextSibling();
- ap->sibling(NULL);
+ if (m_sibling) ap->removeSibling(m_sibling);
return true;
}
else
return m_sibling->removeSibling(ap);
return true;
}
void Slot::setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph)
diff --git a/gfx/graphite2/src/TtfUtil.cpp b/gfx/graphite2/src/TtfUtil.cpp
--- a/gfx/graphite2/src/TtfUtil.cpp
+++ b/gfx/graphite2/src/TtfUtil.cpp
@@ -884,18 +884,19 @@ const void * FindCmapSubtable(const void
}
return 0;
}
/*----------------------------------------------------------------------------------------------
Check the Microsoft Unicode subtable for expected values
----------------------------------------------------------------------------------------------*/
-bool CheckCmapSubtable4(const void * pCmapSubtable4, size_t table_len /*, unsigned int maxgid*/)
+bool CheckCmapSubtable4(const void * pCmapSubtable4, const void * pCmapEnd /*, unsigned int maxgid*/)
{
+ size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable4;
if (!pCmapSubtable4) return false;
const Sfnt::CmapSubTable * pTable = reinterpret_cast<const Sfnt::CmapSubTable *>(pCmapSubtable4);
// Bob H say some freeware TT fonts have version 1 (eg, CALIGULA.TTF)
// so don't check subtable version. 21 Mar 2002 spec changes version to language.
if (be::swap(pTable->format) != 4) return false;
const Sfnt::CmapSubTableFormat4 * pTable4 = reinterpret_cast<const Sfnt::CmapSubTableFormat4 *>(pCmapSubtable4);
uint16 length = be::swap(pTable4->length);
if (length > table_len)
@@ -1044,17 +1045,17 @@ unsigned int CmapSubtable4NextCodepoint(
*pRangeKey = nRange - 1;
return 0xFFFF;
}
int iRange = (pRangeKey) ? *pRangeKey : 0;
// Just in case we have a bad key:
while (iRange > 0 && be::peek<uint16>(pStartCode + iRange) > nUnicodePrev)
iRange--;
- while (be::peek<uint16>(pTable->end_code + iRange) < nUnicodePrev)
+ while (iRange < nRange - 1 && be::peek<uint16>(pTable->end_code + iRange) < nUnicodePrev)
iRange++;
// Now iRange is the range containing nUnicodePrev.
unsigned int nStartCode = be::peek<uint16>(pStartCode + iRange);
unsigned int nEndCode = be::peek<uint16>(pTable->end_code + iRange);
if (nStartCode > nUnicodePrev)
// Oops, nUnicodePrev is not in the cmap! Adjust so we get a reasonable
@@ -1069,36 +1070,37 @@ unsigned int CmapSubtable4NextCodepoint(
return nUnicodePrev + 1;
}
// Otherwise the next codepoint is the first one in the next range.
// There is guaranteed to be a next range because there must be one that
// ends with 0xFFFF.
if (pRangeKey)
*pRangeKey = iRange + 1;
- return be::peek<uint16>(pStartCode + iRange + 1);
+ return (iRange + 1 >= nRange) ? 0xFFFF : be::peek<uint16>(pStartCode + iRange + 1);
}
/*----------------------------------------------------------------------------------------------
Check the Microsoft UCS-4 subtable for expected values.
----------------------------------------------------------------------------------------------*/
-bool CheckCmapSubtable12(const void *pCmapSubtable12, size_t table_len /*, unsigned int maxgid*/)
+bool CheckCmapSubtable12(const void *pCmapSubtable12, const void *pCmapEnd /*, unsigned int maxgid*/)
{
+ size_t table_len = (const byte *)pCmapEnd - (const byte *)pCmapSubtable12;
if (!pCmapSubtable12) return false;
const Sfnt::CmapSubTable * pTable = reinterpret_cast<const Sfnt::CmapSubTable *>(pCmapSubtable12);
if (be::swap(pTable->format) != 12)
return false;
const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast<const Sfnt::CmapSubTableFormat12 *>(pCmapSubtable12);
uint32 length = be::swap(pTable12->length);
if (length > table_len)
return false;
if (length < sizeof(Sfnt::CmapSubTableFormat12))
return false;
uint32 num_groups = be::swap(pTable12->num_groups);
- if (length != (sizeof(Sfnt::CmapSubTableFormat12) + (num_groups - 1) * sizeof(uint32) * 3))
+ if (num_groups > 0x10000000 || length != (sizeof(Sfnt::CmapSubTableFormat12) + (num_groups - 1) * sizeof(uint32) * 3))
return false;
#if 0
for (unsigned int i = 0; i < num_groups; ++i)
{
if (be::swap(pTable12->group[i].end_char_code) - be::swap(pTable12->group[i].start_char_code) + be::swap(pTable12->group[i].start_glyph_id) > maxgid)
return false;
if (i > 0 && be::swap(pTable12->group[i].start_char_code) <= be::swap(pTable12->group[i-1].end_char_code))
return false;
@@ -1161,17 +1163,17 @@ unsigned int CmapSubtable12NextCodepoint
*pRangeKey = nRange;
return 0x10FFFF;
}
int iRange = (pRangeKey) ? *pRangeKey : 0;
// Just in case we have a bad key:
while (iRange > 0 && be::swap(pTable->group[iRange].start_char_code) > nUnicodePrev)
iRange--;
- while (be::swap(pTable->group[iRange].end_char_code) < nUnicodePrev)
+ while (iRange < nRange - 1 && be::swap(pTable->group[iRange].end_char_code) < nUnicodePrev)
iRange++;
// Now iRange is the range containing nUnicodePrev.
unsigned int nStartCode = be::swap(pTable->group[iRange].start_char_code);
unsigned int nEndCode = be::swap(pTable->group[iRange].end_char_code);
if (nStartCode > nUnicodePrev)
diff --git a/gfx/graphite2/src/call_machine.cpp b/gfx/graphite2/src/call_machine.cpp
--- a/gfx/graphite2/src/call_machine.cpp
+++ b/gfx/graphite2/src/call_machine.cpp
@@ -67,32 +67,34 @@ using namespace vm;
struct regbank {
slotref is;
slotref * map;
SlotMap & smap;
slotref * const map_base;
const instr * & ip;
uint8 direction;
int8 flags;
+ Machine::status_t & status;
};
typedef bool (* ip_t)(registers);
// Pull in the opcode definitions
// We pull these into a private namespace so these otherwise common names dont
// pollute the toplevel namespace.
namespace {
#define smap reg.smap
#define seg smap.segment
#define is reg.is
#define ip reg.ip
#define map reg.map
#define mapb reg.map_base
#define flags reg.flags
#define dir reg.direction
+#define status reg.status
#include "inc/opcodes.h"
#undef smap
#undef seg
#undef is
#undef ip
#undef map
@@ -108,17 +110,17 @@ Machine::stack_t Machine::run(const ins
{
assert(program != 0);
// Declare virtual machine registers
const instr * ip = program-1;
const byte * dp = data;
stack_t * sp = _stack + Machine::STACK_GUARD,
* const sb = sp;
- regbank reg = {*map, map, _map, _map.begin()+_map.context(), ip, _map.dir(), 0};
+ regbank reg = {*map, map, _map, _map.begin()+_map.context(), ip, _map.dir(), 0, _status};
// Run the program
while ((reinterpret_cast<ip_t>(*++ip))(dp, sp, sb, reg)) {}
const stack_t ret = sp == _stack+STACK_GUARD+1 ? *sp-- : 0;
check_final_stack(sp);
map = reg.map;
*map = reg.is;
diff --git a/gfx/graphite2/src/direct_machine.cpp b/gfx/graphite2/src/direct_machine.cpp
--- a/gfx/graphite2/src/direct_machine.cpp
+++ b/gfx/graphite2/src/direct_machine.cpp
@@ -57,36 +57,37 @@ using namespace vm;
namespace {
const void * direct_run(const bool get_table_mode,
const instr * program,
const byte * data,
Machine::stack_t * stack,
slotref * & __map,
uint8 _dir,
+ Machine::status_t & status,
SlotMap * __smap=0)
{
// We need to define and return to opcode table from within this function
// other inorder to take the addresses of the instruction bodies.
#include "inc/opcode_table.h"
if (get_table_mode)
return opcode_table;
// Declare virtual machine registers
- const instr * ip = program;
- const byte * dp = data;
- Machine::stack_t * sp = stack + Machine::STACK_GUARD,
- * const sb = sp;
- SlotMap & smap = *__smap;
- Segment & seg = smap.segment;
- slotref is = *__map,
- * map = __map,
- * const mapb = smap.begin()+smap.context();
- uint8 dir = _dir;
- int8 flags = 0;
+ const instr * ip = program;
+ const byte * dp = data;
+ Machine::stack_t * sp = stack + Machine::STACK_GUARD,
+ * const sb = sp;
+ SlotMap & smap = *__smap;
+ Segment & seg = smap.segment;
+ slotref is = *__map,
+ * map = __map,
+ * const mapb = smap.begin()+smap.context();
+ uint8 dir = _dir;
+ int8 flags = 0;
// start the program
goto **ip;
// Pull in the opcode definitions
#include "inc/opcodes.h"
end:
@@ -95,25 +96,26 @@ const void * direct_run(const bool
return sp;
}
}
const opcode_t * Machine::getOpcodeTable() throw()
{
slotref * dummy;
- return static_cast<const opcode_t *>(direct_run(true, 0, 0, 0, dummy, 0));
+ Machine::status_t dumstat = Machine::finished;
+ return static_cast<const opcode_t *>(direct_run(true, 0, 0, 0, dummy, 0, dumstat));
}
Machine::stack_t Machine::run(const instr * program,
const byte * data,
slotref * & is)
{
assert(program != 0);
const stack_t *sp = static_cast<const stack_t *>(
- direct_run(false, program, data, _stack, is, _map.dir(), &_map));
+ direct_run(false, program, data, _stack, is, _map.dir(), _status, &_map));
const stack_t ret = sp == _stack+STACK_GUARD+1 ? *sp-- : 0;
check_final_stack(sp);
return ret;
}
diff --git a/gfx/graphite2/src/inc/Code.h b/gfx/graphite2/src/inc/Code.h
--- a/gfx/graphite2/src/inc/Code.h
+++ b/gfx/graphite2/src/inc/Code.h
@@ -109,17 +109,17 @@ public:
int32 run(Machine &m, slotref * & map) const;
CLASS_NEW_DELETE;
};
inline
size_t Machine::Code::estimateCodeDataOut(size_t n_bc)
{
- return n_bc * (sizeof(instr)+sizeof(byte));
+ return (n_bc + 1) * (sizeof(instr)+sizeof(byte));
}
inline Machine::Code::Code() throw()
: _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0),
_status(loaded), _constraint(false), _modify(false), _delete(false),
_own(false)
{
diff --git a/gfx/graphite2/src/inc/Machine.h b/gfx/graphite2/src/inc/Machine.h
--- a/gfx/graphite2/src/inc/Machine.h
+++ b/gfx/graphite2/src/inc/Machine.h
@@ -135,17 +135,18 @@ public:
class Code;
enum status_t {
finished = 0,
stack_underflow,
stack_not_empty,
stack_overflow,
- slot_offset_out_bounds
+ slot_offset_out_bounds,
+ died_early
};
Machine(SlotMap &) throw();
static const opcode_t * getOpcodeTable() throw();
CLASS_NEW_DELETE;
SlotMap & slotMap() const throw();
diff --git a/gfx/graphite2/src/inc/TtfUtil.h b/gfx/graphite2/src/inc/TtfUtil.h
--- a/gfx/graphite2/src/inc/TtfUtil.h
+++ b/gfx/graphite2/src/inc/TtfUtil.h
@@ -132,21 +132,21 @@ public:
int GetLangsForNames(const void * pName, int nPlatformId, int nEncodingId,
int *nameIdList, int cNameIds, short *langIdList);
void SwapWString(void * pWStr, size_t nSize = 0); // throw (std::invalid_argument);
#endif
////////////////////////////////// cmap lookup tools
const void * FindCmapSubtable(const void * pCmap, int nPlatformId = 3,
int nEncodingId = 1, size_t length = 0);
- bool CheckCmapSubtable4(const void * pCmap31, size_t table_len /*, unsigned int maxgid*/);
+ bool CheckCmapSubtable4(const void * pCmap31, const void * pCmapEnd /*, unsigned int maxgid*/);
gid16 CmapSubtable4Lookup(const void * pCmapSubtabel4, unsigned int nUnicodeId, int rangeKey = 0);
unsigned int CmapSubtable4NextCodepoint(const void *pCmap31, unsigned int nUnicodeId,
int * pRangeKey = 0);
- bool CheckCmapSubtable12(const void *pCmap310, size_t table_len /*, unsigned int maxgid*/);
+ bool CheckCmapSubtable12(const void *pCmap310, const void * pCmapEnd /*, unsigned int maxgid*/);
gid16 CmapSubtable12Lookup(const void * pCmap310, unsigned int uUnicodeId, int rangeKey = 0);
unsigned int CmapSubtable12NextCodepoint(const void *pCmap310, unsigned int nUnicodeId,
int * pRangeKey = 0);
///////////////////////////////// horizontal metric data for a glyph
bool HorMetrics(gid16 nGlyphId, const void * pHmtx, size_t lHmtxSize,
const void * pHhea, int & nLsb, unsigned int & nAdvWid);
diff --git a/gfx/graphite2/src/inc/opcodes.h b/gfx/graphite2/src/inc/opcodes.h
--- a/gfx/graphite2/src/inc/opcodes.h
+++ b/gfx/graphite2/src/inc/opcodes.h
@@ -71,17 +71,17 @@ of the License or (at your option) any l
#define use_params(n) dp += n
#define declare_params(n) const byte * param = dp; \
use_params(n);
#define push(n) { *++sp = n; }
#define pop() (*sp--)
#define slotat(x) (map[(x)])
-#define DIE { is=seg.last(); EXIT(1); }
+#define DIE { is=seg.last(); status = Machine::died_early; EXIT(1); }
#define POSITIONED 1
STARTOP(nop)
do {} while (0);
ENDOP
STARTOP(push_byte)
declare_params(1);
@@ -387,30 +387,30 @@ STARTOP(attr_set)
ENDOP
STARTOP(attr_add)
declare_params(1);
const attrCode slat = attrCode(uint8(*param));
const int val = int(pop());
if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
{
- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
flags |= POSITIONED;
}
int res = is->getAttr(&seg, slat, 0);
is->setAttr(&seg, slat, 0, val + res, smap);
ENDOP
STARTOP(attr_sub)
declare_params(1);
const attrCode slat = attrCode(uint8(*param));
const int val = int(pop());
if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
{
- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
flags |= POSITIONED;
}
int res = is->getAttr(&seg, slat, 0);
is->setAttr(&seg, slat, 0, res - val, smap);
ENDOP
STARTOP(attr_set_slot)
declare_params(1);
@@ -429,17 +429,17 @@ STARTOP(iattr_set_slot)
ENDOP
STARTOP(push_slot_attr)
declare_params(2);
const attrCode slat = attrCode(uint8(param[0]));
const int slot_ref = int8(param[1]);
if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
{
- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
flags |= POSITIONED;
}
slotref slot = slotat(slot_ref);
if (slot)
{
int res = slot->getAttr(&seg, slat, 0);
push(res);
}
@@ -505,17 +505,17 @@ ENDOP
STARTOP(push_islot_attr)
declare_params(3);
const attrCode slat = attrCode(uint8(param[0]));
const int slot_ref = int8(param[1]),
idx = uint8(param[2]);
if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0)
{
- seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir);
+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), seg.currdir());
flags |= POSITIONED;
}
slotref slot = slotat(slot_ref);
if (slot)
{
int res = slot->getAttr(&seg, slat, idx);
push(res);
}

View File

@ -0,0 +1,149 @@
Fix FTBFS on i686-linux due to rounding issue (see references).
Fixes Guix bug #22049 (see below).
Copied from Debian.
Source:
https://sources.debian.net/src/ilmbase/2.2.0-11/debian/patches/testBoxAlgo.patch/
https://sources.debian.net/src/ilmbase/2.2.0-11/debian/patches/testBox.patch/
References:
https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=22049
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815712
https://anonscm.debian.org/cgit/pkg-phototools/ilmbase.git/commit/?id=ab28bb45cdad8adc32e345b777ab8e692b1d9a9c
---
Subject: testBoxAlgo: allow fuzzy match of b12 == b2
From: Steven Chamberlain <steven@pyro.eu.org>
Date: Wed, 24 Feb 2016 01:04:11 +0000
Also fix a pre-existing typo.
Index: ilmbase/ImathTest/testBoxAlgo.cpp
===================================================================
--- ilmbase.orig/ImathTest/testBoxAlgo.cpp
+++ ilmbase/ImathTest/testBoxAlgo.cpp
@@ -886,10 +886,11 @@ boxMatrixTransform ()
assert (approximatelyEqual (b2.min, b4.min, e));
assert (approximatelyEqual (b2.max, b4.max, e));
- assert (approximatelyEqual (b3.max, b4.max, e));
+ assert (approximatelyEqual (b3.min, b4.min, e));
assert (approximatelyEqual (b3.max, b4.max, e));
- assert (b21 == b2);
+ assert (approximatelyEqual (b2.min, b21.min, e));
+ assert (approximatelyEqual (b2.max, b21.max, e));
assert (b31 == b3);
M[0][3] = 1;
---
Subject: testBox: allow fuzzy comparison of floats, doubles
From: Steven Chamberlain <steven@pyro.eu.org>
Date: Wed, 24 Feb 2016 01:10:11 +0000
Allow for inexact values, as long as the error is smaller than the
epsilon of the data type.
On 32-bit x86, allow even greater discrepency at double
precision, due to possible double-rounding. See
https://lists.nongnu.org/archive/html/openexr-devel/2015-12/msg00001.html
Index: ilmbase/ImathTest/testBox.cpp
===================================================================
--- ilmbase.orig/ImathTest/testBox.cpp
+++ ilmbase/ImathTest/testBox.cpp
@@ -47,6 +47,58 @@ using namespace IMATH_INTERNAL_NAMESPACE
namespace {
+template <class T>
+bool
+approximatelyEqual (const T &p1, const T &p2)
+{
+ /* int and short should be exact */
+ return (p1 == p2);
+}
+
+bool
+approximatelyEqual (const Vec2<float> &p1, const Vec2<float> &p2)
+{
+ float e = limits<float>::epsilon();
+ float m = 0;
+
+ for (int i = 0; i < 2; ++i)
+ {
+ m = max (m, abs (p1[i]));
+ m = max (m, abs (p2[i]));
+ }
+
+ for (int i = 0; i < 2; ++i)
+ if (!equalWithAbsError (p1[i], p2[i], m * e))
+ return false;
+
+ return true;
+}
+
+bool
+approximatelyEqual (const Vec2<double> &p1, const Vec2<double> &p2)
+{
+#if defined(__i386__) || defined(_M_IX86)
+ /* double-rounding on 32-bit x86 may cause larger error:
+ use epsilon of float rather than double */
+ double e = limits<float>::epsilon();
+#else
+ double e = limits<double>::epsilon();
+#endif
+ double m = 0;
+
+ for (int i = 0; i < 2; ++i)
+ {
+ m = max (m, abs (p1[i]));
+ m = max (m, abs (p2[i]));
+ }
+
+ for (int i = 0; i < 2; ++i)
+ if (!equalWithAbsError (p1[i], p2[i], m * e))
+ return false;
+
+ return true;
+}
+
//
// Test case generation utility - create a vector of IMATH_INTERNAL_NAMESPACE::Vec{2,3,4}
// with all permutations of integers 1..T::dimensions().
@@ -250,7 +302,8 @@ testExtendByPoint(const char *type)
IMATH_INTERNAL_NAMESPACE::Box<T> b;
b.extendBy(p);
- assert(b.min == p && b.max == p);
+ assert (approximatelyEqual (b.min, p));
+ assert (approximatelyEqual (b.max, p));
}
//
@@ -283,7 +336,8 @@ testExtendByPoint(const char *type)
b.extendBy(p);
- assert(b.min == min && b.max == max);
+ assert (approximatelyEqual (b.min, min));
+ assert (approximatelyEqual (b.max, max));
}
}
}
@@ -358,7 +412,8 @@ testExtendByBox(const char *type)
}
b.extendBy(IMATH_INTERNAL_NAMESPACE::Box<T>(p0, p1));
- assert(b.min == min && b.max == max);
+ assert (approximatelyEqual (b.min, min));
+ assert (approximatelyEqual (b.max, max));
}
}
}

View File

@ -0,0 +1,19 @@
Description: CVE-2016-1577: Prevent double-free in jas_iccattrval_destroy()
Origin: vendor, http://www.openwall.com/lists/oss-security/2016/03/03/12
Bug-Ubuntu: https://launchpad.net/bugs/1547865
Bug-Debian: https://bugs.debian.org/816625
Forwarded: not-needed
Author: Tyler Hicks <tyhicks@canonical.com>
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
Last-Update: 2016-03-05
--- a/src/libjasper/base/jas_icc.c
+++ b/src/libjasper/base/jas_icc.c
@@ -300,6 +300,7 @@ jas_iccprof_t *jas_iccprof_load(jas_stre
if (jas_iccprof_setattr(prof, tagtabent->tag, attrval))
goto error;
jas_iccattrval_destroy(attrval);
+ attrval = 0;
} else {
#if 0
jas_eprintf("warning: skipping unknown tag type\n");

View File

@ -0,0 +1,90 @@
Description: CVE-2016-2089: matrix rows_ NULL pointer dereference in jas_matrix_clip()
Origin: vendor
Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1302636
Bug-Debian: https://bugs.debian.org/812978
Forwarded: not-needed
Author: Tomas Hoger <thoger@redhat.com>
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
Last-Update: 2016-03-05
--- a/src/libjasper/base/jas_image.c
+++ b/src/libjasper/base/jas_image.c
@@ -426,6 +426,10 @@ int jas_image_readcmpt(jas_image_t *imag
return -1;
}
+ if (!data->rows_) {
+ return -1;
+ }
+
if (jas_matrix_numrows(data) != height || jas_matrix_numcols(data) != width) {
if (jas_matrix_resize(data, height, width)) {
return -1;
@@ -479,6 +483,10 @@ int jas_image_writecmpt(jas_image_t *ima
return -1;
}
+ if (!data->rows_) {
+ return -1;
+ }
+
if (jas_matrix_numrows(data) != height || jas_matrix_numcols(data) != width) {
return -1;
}
--- a/src/libjasper/base/jas_seq.c
+++ b/src/libjasper/base/jas_seq.c
@@ -262,6 +262,10 @@ void jas_matrix_divpow2(jas_matrix_t *ma
int rowstep;
jas_seqent_t *data;
+ if (!matrix->rows_) {
+ return;
+ }
+
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
@@ -282,6 +286,10 @@ void jas_matrix_clip(jas_matrix_t *matri
jas_seqent_t *data;
int rowstep;
+ if (!matrix->rows_) {
+ return;
+ }
+
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
@@ -306,6 +314,10 @@ void jas_matrix_asr(jas_matrix_t *matrix
int rowstep;
jas_seqent_t *data;
+ if (!matrix->rows_) {
+ return;
+ }
+
assert(n >= 0);
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
@@ -325,6 +337,10 @@ void jas_matrix_asl(jas_matrix_t *matrix
int rowstep;
jas_seqent_t *data;
+ if (!matrix->rows_) {
+ return;
+ }
+
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {
@@ -367,6 +383,10 @@ void jas_matrix_setall(jas_matrix_t *mat
int rowstep;
jas_seqent_t *data;
+ if (!matrix->rows_) {
+ return;
+ }
+
rowstep = jas_matrix_rowstep(matrix);
for (i = matrix->numrows_, rowstart = matrix->rows_[0]; i > 0; --i,
rowstart += rowstep) {

View File

@ -0,0 +1,19 @@
Description: CVE-2016-2116: Prevent jas_stream_t memory leak in jas_iccprof_createfrombuf()
Origin: vendor, http://www.openwall.com/lists/oss-security/2016/03/03/12
Bug-Debian: https://bugs.debian.org/816626
Forwarded: not-needed
Author: Tyler Hicks <tyhicks@canoonical.com>
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
Last-Update: 2016-03-05
--- a/src/libjasper/base/jas_icc.c
+++ b/src/libjasper/base/jas_icc.c
@@ -1693,6 +1693,8 @@ jas_iccprof_t *jas_iccprof_createfrombuf
jas_stream_close(in);
return prof;
error:
+ if (in)
+ jas_stream_close(in);
return 0;
}

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