Merge branch 'master' into core-updates
This commit is contained in:
commit
09ec508a4c
15
Makefile.am
15
Makefile.am
|
@ -56,6 +56,7 @@ MODULES = \
|
|||
guix/graph.scm \
|
||||
guix/cve.scm \
|
||||
guix/build-system.scm \
|
||||
guix/build-system/ant.scm \
|
||||
guix/build-system/cmake.scm \
|
||||
guix/build-system/emacs.scm \
|
||||
guix/build-system/glib-or-gtk.scm \
|
||||
|
@ -75,6 +76,7 @@ MODULES = \
|
|||
guix/cvs-download.scm \
|
||||
guix/svn-download.scm \
|
||||
guix/ui.scm \
|
||||
guix/build/ant-build-system.scm \
|
||||
guix/build/download.scm \
|
||||
guix/build/cmake-build-system.scm \
|
||||
guix/build/emacs-build-system.scm \
|
||||
|
@ -109,7 +111,6 @@ MODULES = \
|
|||
guix/import/cran.scm \
|
||||
guix/import/hackage.scm \
|
||||
guix/import/elpa.scm \
|
||||
guix/import/github.scm \
|
||||
guix/scripts.scm \
|
||||
guix/scripts/download.scm \
|
||||
guix/scripts/build.scm \
|
||||
|
@ -143,6 +144,7 @@ MODULES = \
|
|||
if HAVE_GUILE_JSON
|
||||
|
||||
MODULES += \
|
||||
guix/import/github.scm \
|
||||
guix/import/json.scm \
|
||||
guix/import/pypi.scm \
|
||||
guix/scripts/import/pypi.scm \
|
||||
|
@ -171,8 +173,10 @@ dist_noinst_DATA = guix/tests.scm
|
|||
|
||||
# Linux-Libre configurations.
|
||||
KCONFIGS = \
|
||||
gnu/packages/linux-libre-i686.conf \
|
||||
gnu/packages/linux-libre-x86_64.conf \
|
||||
gnu/packages/linux-libre-4.5-i686.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-x86_64.conf
|
||||
|
||||
|
@ -225,6 +229,7 @@ SCM_TESTS = \
|
|||
tests/grafts.scm \
|
||||
tests/ui.scm \
|
||||
tests/records.scm \
|
||||
tests/upstream.scm \
|
||||
tests/utils.scm \
|
||||
tests/build-utils.scm \
|
||||
tests/packages.scm \
|
||||
|
@ -416,7 +421,11 @@ include daemon.am
|
|||
endif BUILD_DAEMON
|
||||
|
||||
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 = \
|
||||
--localstatedir="$$dc_install_base/var" \
|
||||
--with-libgcrypt-prefix="$(LIBGCRYPT_PREFIX)" \
|
||||
--with-libgcrypt-libdir="$(LIBGCRYPT_LIBDIR)" \
|
||||
--with-nix-prefix="$(NIX_PREFIX)" \
|
||||
|
|
17
NEWS
17
NEWS
|
@ -14,18 +14,30 @@ Please send Guix bug reports to bug-guix@gnu.org.
|
|||
|
||||
** 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 package’s 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 system generations
|
||||
*** Emacs interface for hydra.gnu.org
|
||||
*** Changes in Emacs interface variables and faces
|
||||
|
||||
In the following names, BUFFER-TYPE means "info" or "list";
|
||||
ENTRY-TYPE means "package", "output" or "generation".
|
||||
|
||||
**** Removed
|
||||
|
||||
- guix-info-fill-column
|
||||
- guix-info-insert-ENTRY-TYPE-function
|
||||
|
||||
**** Renamed
|
||||
|
||||
- guix-info-ignore-empty-vals -> guix-info-ignore-empty-values
|
||||
- guix-output-name-width -> guix-generation-output-name-width
|
||||
- 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
|
||||
|
||||
**** Replaced
|
||||
|
||||
- guix-list-column-format, guix-list-column-value-methods ->
|
||||
guix-ENTRY-TYPE-list-format
|
||||
- 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-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)
|
||||
|
||||
** Package management
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -21,6 +21,7 @@
|
|||
;;;
|
||||
|
||||
(use-modules (guix store)
|
||||
(guix grafts)
|
||||
(guix packages)
|
||||
(guix derivations)
|
||||
(gnu packages emacs)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -21,6 +21,7 @@
|
|||
;;;
|
||||
|
||||
(use-modules (guix store)
|
||||
(guix grafts)
|
||||
(guix packages)
|
||||
(guix derivations)
|
||||
(guix ui)
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
|
||||
(use-modules (guix config)
|
||||
(guix store)
|
||||
(guix grafts)
|
||||
(guix packages)
|
||||
(guix derivations)
|
||||
(guix monads)
|
||||
|
@ -248,27 +249,35 @@ valid."
|
|||
%packages-to-cross-build))
|
||||
(remove (either from-32-to-64? same?) %cross-targets)))
|
||||
|
||||
;; Return one job for each package, except bootstrap packages.
|
||||
(append-map (lambda (system)
|
||||
(case subset
|
||||
((all)
|
||||
;; Build everything.
|
||||
(fold-packages (lambda (package result)
|
||||
(let ((job (package->job store package
|
||||
system)))
|
||||
(if job
|
||||
(cons job result)
|
||||
result)))
|
||||
(append (qemu-jobs store system)
|
||||
(tarball-jobs store system)
|
||||
(cross-jobs system))))
|
||||
((core)
|
||||
;; 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))
|
||||
;; Turn off grafts. Grafting is meant to happen on the user's machines.
|
||||
(parameterize ((%graft? #f))
|
||||
;; Return one job for each package, except bootstrap packages.
|
||||
(append-map (lambda (system)
|
||||
(case subset
|
||||
((all)
|
||||
;; Build everything, including replacements.
|
||||
(let ((all (fold-packages
|
||||
(lambda (package result)
|
||||
(if (package-replacement package)
|
||||
(cons* package
|
||||
(package-replacement package)
|
||||
result)
|
||||
(cons package result)))
|
||||
'()))
|
||||
(job (lambda (package)
|
||||
(package->job store package
|
||||
system))))
|
||||
(append (filter-map job all)
|
||||
(qemu-jobs store system)
|
||||
(tarball-jobs store system)
|
||||
(cross-jobs system))))
|
||||
((core)
|
||||
;; 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)))
|
||||
|
|
|
@ -110,6 +110,20 @@ if test "x$guix_build_daemon" = "xyes"; then
|
|||
dnl Check for <linux/fs.h> (for immutable file support).
|
||||
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 'restore-file-set', which requires unbuffered custom binary input
|
||||
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"
|
||||
AC_SUBST([GUIX_TEST_ROOT])
|
||||
|
||||
GUIX_CHECK_LOCALSTATEDIR
|
||||
|
||||
AC_CONFIG_FILES([nix/scripts/list-runtime-roots],
|
||||
[chmod +x nix/scripts/list-runtime-roots])
|
||||
AC_CONFIG_FILES([nix/scripts/substitute],
|
||||
|
|
61
doc.am
61
doc.am
|
@ -98,45 +98,48 @@ dvi-local: ps-local
|
|||
## 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 = \
|
||||
doc/guix-archive.1 \
|
||||
doc/guix-build.1 \
|
||||
doc/guix-challenge.1 \
|
||||
doc/guix-download.1 \
|
||||
doc/guix-edit.1 \
|
||||
doc/guix-environment.1 \
|
||||
doc/guix-gc.1 \
|
||||
doc/guix-hash.1 \
|
||||
doc/guix-import.1 \
|
||||
doc/guix-lint.1 \
|
||||
doc/guix-package.1 \
|
||||
doc/guix-publish.1 \
|
||||
doc/guix-pull.1 \
|
||||
doc/guix-refresh.1 \
|
||||
doc/guix-size.1 \
|
||||
doc/guix-system.1
|
||||
$(srcdir)/doc/guix-archive.1 \
|
||||
$(srcdir)/doc/guix-build.1 \
|
||||
$(srcdir)/doc/guix-challenge.1 \
|
||||
$(srcdir)/doc/guix-download.1 \
|
||||
$(srcdir)/doc/guix-edit.1 \
|
||||
$(srcdir)/doc/guix-environment.1 \
|
||||
$(srcdir)/doc/guix-gc.1 \
|
||||
$(srcdir)/doc/guix-hash.1 \
|
||||
$(srcdir)/doc/guix-import.1 \
|
||||
$(srcdir)/doc/guix-lint.1 \
|
||||
$(srcdir)/doc/guix-package.1 \
|
||||
$(srcdir)/doc/guix-publish.1 \
|
||||
$(srcdir)/doc/guix-pull.1 \
|
||||
$(srcdir)/doc/guix-refresh.1 \
|
||||
$(srcdir)/doc/guix-size.1 \
|
||||
$(srcdir)/doc/guix-system.1
|
||||
|
||||
dist_man1_MANS = \
|
||||
doc/guix.1 \
|
||||
$(srcdir)/doc/guix.1 \
|
||||
$(sub_commands_mans)
|
||||
|
||||
# Man pages are generated using GNU help2man.
|
||||
gen_man = \
|
||||
LANGUAGE= $(top_builddir)/pre-inst-env $(HELP2MAN) \
|
||||
$(HELP2MANFLAGS)
|
||||
|
||||
HELP2MANFLAGS = --source=GNU --info-page=$(PACKAGE_TARNAME)
|
||||
|
||||
# Note: Do not depend on 'scripts/guix' since that would trigger a rebuild
|
||||
# even for people building from a tarball.
|
||||
doc/guix.1: $(sub_commands_mans)
|
||||
$(srcdir)/doc/guix.1: scripts/guix.in $(sub_commands_mans)
|
||||
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
|
||||
|
||||
# Note: The dependency on $(GOBJECTS) is meant to force these docs to be made
|
||||
# only after all Guile modules have been compiled. The 'case' ensures the man
|
||||
# pages are only generated if the corresponding script source has been
|
||||
# changed.
|
||||
doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
||||
# The 'case' ensures the man pages are only generated if the corresponding
|
||||
# source script (the first prerequisite) has been changed. The $(GOBJECTS)
|
||||
# prerequisite is solely meant to force these docs to be made only after all
|
||||
# Guile modules have been compiled.
|
||||
$(srcdir)/doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
||||
-@case '$?' in \
|
||||
*$<*) $(AM_V_P) && set -x || echo " HELP2MAN $@"; \
|
||||
$(gen_man) --output="$@" "guix $*";; \
|
||||
|
@ -145,11 +148,9 @@ doc/guix-%.1: guix/scripts/%.scm $(GOBJECTS)
|
|||
|
||||
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
|
||||
# for people building from a tarball.
|
||||
doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
|
||||
$(srcdir)/doc/guix-daemon.1: nix/nix-daemon/guix-daemon.cc
|
||||
-$(AM_V_HELP2MAN)$(gen_man) --output="$@" `basename "$@" .1`
|
||||
|
||||
endif
|
||||
|
|
|
@ -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
|
||||
local source tree; it simply updates the @file{~/.config/guix/latest}
|
||||
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
|
||||
|
|
689
doc/guix.texi
689
doc/guix.texi
File diff suppressed because it is too large
Load Diff
2
emacs.am
2
emacs.am
|
@ -64,7 +64,7 @@ $(AUTOLOADS): $(ELFILES)
|
|||
$(AM_V_EMACS)$(EMACS) --batch --eval \
|
||||
"(let ((backup-inhibited t) \
|
||||
(generated-autoload-file \
|
||||
(expand-file-name \"$(AUTOLOADS)\" \"$(srcdir)\"))) \
|
||||
(expand-file-name \"$(AUTOLOADS)\" \"$(builddir)\"))) \
|
||||
(update-directory-autoloads \
|
||||
(expand-file-name \"emacs\" \"$(srcdir)\")))"
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
(defun guix-package-name-specification (name version &optional output)
|
||||
"Return Guix package specification by its NAME, VERSION and OUTPUT."
|
||||
(concat name "-" version
|
||||
(concat name "@" version
|
||||
(when output (concat ":" output))))
|
||||
|
||||
|
||||
|
|
|
@ -36,6 +36,10 @@
|
|||
(concat ".*\\." (regexp-opt guix-help-system-types) "\\'")
|
||||
"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 _)
|
||||
"Display a message after showing Hydra ENTRIES."
|
||||
;; XXX Add more messages maybe.
|
||||
|
|
|
@ -86,13 +86,13 @@
|
|||
(define (full-name->name+version spec)
|
||||
"Given package specification SPEC with or without output,
|
||||
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)
|
||||
(package-specification->name+version+output spec)))
|
||||
(values 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)
|
||||
(let ((full-name (if version
|
||||
|
@ -263,7 +263,8 @@ Example:
|
|||
"Return a list of full names of the packages from package INPUTS."
|
||||
(filter-map (match-lambda
|
||||
((_ (? package? package))
|
||||
(package-full-name package))
|
||||
(make-package-specification (package-name package)
|
||||
(package-version package)))
|
||||
((_ (? package? package) output)
|
||||
(make-package-specification (package-name package)
|
||||
(package-version package)
|
||||
|
@ -953,10 +954,11 @@ GENERATIONS is a list of generation numbers."
|
|||
|
||||
(define (package-location-string id-or-name)
|
||||
"Return a location string of a package with ID-OR-NAME."
|
||||
(and-let* ((package (or (package-by-id id-or-name)
|
||||
(first (packages-by-name id-or-name))))
|
||||
(location (package-location package)))
|
||||
(location->string location)))
|
||||
(and=> (or (package-by-id id-or-name)
|
||||
(match (packages-by-name id-or-name)
|
||||
(() #f)
|
||||
((package _ ...) package)))
|
||||
(compose location->string package-location)))
|
||||
|
||||
(define (package-source-derivation->store-path derivation)
|
||||
"Return a store path of the package source DERIVATION."
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
(require 'guix-guile)
|
||||
(require 'guix-entry)
|
||||
(require 'guix-utils)
|
||||
(require 'guix-hydra)
|
||||
(require 'guix-hydra-build)
|
||||
(require 'guix-read)
|
||||
(require 'guix-license)
|
||||
|
@ -388,7 +389,7 @@ formatted with this string, an action button is inserted.")
|
|||
:system (button-label btn))))
|
||||
(apply #'guix-hydra-build-get-display
|
||||
'latest args)))
|
||||
'job-name (guix-package-name-specification
|
||||
'job-name (guix-hydra-job-name-specification
|
||||
(guix-entry-value entry 'name)
|
||||
(guix-entry-value entry 'version))))
|
||||
|
||||
|
@ -776,7 +777,7 @@ for all ARGS."
|
|||
(interactive
|
||||
(let ((entry (guix-list-current-entry)))
|
||||
(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 'version)))))
|
||||
(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)
|
||||
"Display Guix packages with NAME.
|
||||
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'.
|
||||
Interactively with prefix, prompt for PROFILE."
|
||||
|
|
|
@ -166,12 +166,13 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/indent.scm \
|
||||
gnu/packages/inklingreader.scm \
|
||||
gnu/packages/inkscape.scm \
|
||||
gnu/packages/irssi.scm \
|
||||
gnu/packages/irc.scm \
|
||||
gnu/packages/iso-codes.scm \
|
||||
gnu/packages/java.scm \
|
||||
gnu/packages/jemalloc.scm \
|
||||
gnu/packages/jrnl.scm \
|
||||
gnu/packages/julia.scm \
|
||||
gnu/packages/kde.scm \
|
||||
gnu/packages/kde-frameworks.scm \
|
||||
gnu/packages/key-mon.scm \
|
||||
gnu/packages/kodi.scm \
|
||||
|
@ -336,7 +337,6 @@ GNU_SYSTEM_MODULES = \
|
|||
gnu/packages/wdiff.scm \
|
||||
gnu/packages/web.scm \
|
||||
gnu/packages/webkit.scm \
|
||||
gnu/packages/weechat.scm \
|
||||
gnu/packages/wget.scm \
|
||||
gnu/packages/wicd.scm \
|
||||
gnu/packages/wine.scm \
|
||||
|
@ -426,7 +426,6 @@ dist_patch_DATA = \
|
|||
gnu/packages/patches/bigloo-gc-shebangs.patch \
|
||||
gnu/packages/patches/binutils-ld-new-dtags.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/calibre-drop-unrar.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-test_selection-tmp.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-exec-path.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/ghostscript-CVE-2015-3228.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-tests-desktop.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/icecat-avoid-bundled-includes.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-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-2015-1270.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/irrlicht-mesa-10.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-8158.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-2089.patch \
|
||||
gnu/packages/patches/jasper-CVE-2016-2116.patch \
|
||||
gnu/packages/patches/jbig2dec-ignore-testtest.patch \
|
||||
gnu/packages/patches/kmod-module-directory.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/libmtp-devices.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/libmad-armv7-thumb-pt1.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/mumps-build-parallelism.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/net-tools-bitrot.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/openssl-runpath.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/ots-no-include-missing-file.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/patch-hurd-path-max.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-deterministic-ordering.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/polkit-drop-test.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/pulseaudio-fix-mult-test.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-fix-tests.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/python-configobj-setuptools.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/scheme48-tests.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/serf-comment-style-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/upower-builddir.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/vtk-mesa-10.patch \
|
||||
gnu/packages/patches/w3m-libgc.patch \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -91,7 +91,8 @@
|
|||
(mkdir-p home)
|
||||
(for-each (lambda (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)))
|
||||
files)))
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ as created and modified at the Epoch."
|
|||
;; read-only store.
|
||||
(unless (eq? (stat:type s) 'symlink)
|
||||
(utime file 0 0 0 0))))
|
||||
(find-files directory "")))
|
||||
(find-files directory #:directories? #t)))
|
||||
|
||||
(define* (register-closure store closure
|
||||
#:key (deduplicate? #t))
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
;;; 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 © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -23,6 +24,9 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix ui)
|
||||
#: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 vlist)
|
||||
#:use-module (ice-9 match)
|
||||
|
@ -276,56 +280,63 @@ return its return value."
|
|||
(lambda (k 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
|
||||
present, return the preferred newest version."
|
||||
(let-values (((name version)
|
||||
(package-name->name+version spec)))
|
||||
(match (find-best-packages-by-name name version)
|
||||
((p) ; one match
|
||||
p)
|
||||
((p x ...) ; several matches
|
||||
|
||||
;;;
|
||||
;;; Package specification.
|
||||
;;;
|
||||
|
||||
(define* (%find-package spec name version #:key fallback?)
|
||||
(match (find-best-packages-by-name name version)
|
||||
((pkg . pkg*)
|
||||
(unless (null? pkg*)
|
||||
(warning (_ "ambiguous package specification `~a'~%") spec)
|
||||
(warning (_ "choosing ~a from ~a~%")
|
||||
(package-full-name p)
|
||||
(location->string (package-location p)))
|
||||
p)
|
||||
(_ ; no matches
|
||||
(if version
|
||||
(leave (_ "~A: package not found for version ~a~%")
|
||||
name version)
|
||||
(leave (_ "~A: unknown package~%") name))))))
|
||||
(package-full-name pkg)
|
||||
(location->string (package-location pkg))))
|
||||
(when fallback?
|
||||
(warning (_ "deprecated NAME-VERSION syntax; \
|
||||
use NAME@VERSION instead~%")))
|
||||
pkg)
|
||||
(_
|
||||
(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"))
|
||||
"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:
|
||||
|
||||
guile
|
||||
guile-2.0.9
|
||||
guile@2.0.9
|
||||
guile:debug
|
||||
guile-2.0.9:debug
|
||||
guile@2.0.9:debug
|
||||
|
||||
If SPEC does not specify a version number, return the preferred newest
|
||||
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)
|
||||
(package-specification->name+version+output spec output)))
|
||||
(match (find-best-packages-by-name name version)
|
||||
((p)
|
||||
(values p (ensure-output p sub-drv)))
|
||||
((p p* ...)
|
||||
(warning (_ "ambiguous package specification `~a'~%")
|
||||
spec)
|
||||
(warning (_ "choosing ~a from ~a~%")
|
||||
(package-full-name p)
|
||||
(location->string (package-location p)))
|
||||
(values p (ensure-output p sub-drv)))
|
||||
(()
|
||||
(leave (_ "~a: package not found~%") spec)))))
|
||||
(match (%find-package spec name version)
|
||||
(#f
|
||||
(values #f #f))
|
||||
(package
|
||||
(if (member sub-drv (package-outputs package))
|
||||
(values package sub-drv)
|
||||
(leave (_ "package `~a' lacks output `~a'~%")
|
||||
(package-full-name package)
|
||||
sub-drv))))))
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -424,7 +425,7 @@ connection alive.")
|
|||
(bind-minor-version "9")
|
||||
(bind-patch-version "8")
|
||||
(bind-release-type "-P")
|
||||
(bind-release-version "3")
|
||||
(bind-release-version "4")
|
||||
(bind-version (string-append bind-major-version
|
||||
"."
|
||||
bind-minor-version
|
||||
|
@ -540,7 +541,7 @@ connection alive.")
|
|||
"/bind-" bind-version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"01qa17479jghy90lb2j8b1bpg3ay6k6aaajpigyirwzsvyc9yj3a"))))
|
||||
"1wl9kl0630dc1qjrf7fnp8cscagfm5qgmisi0zhr1p6iwi9bil2y"))))
|
||||
|
||||
;; When cross-compiling, we need the cross Coreutils and sed.
|
||||
;; Otherwise just use those from %FINAL-INPUTS.
|
||||
|
|
|
@ -67,7 +67,7 @@ multiplication routines such as Toom–Cook and the FFT.")
|
|||
(define-public cm
|
||||
(package
|
||||
(name "cm")
|
||||
(version "0.2.1")
|
||||
(version "0.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -75,7 +75,7 @@ multiplication routines such as Toom–Cook and the FFT.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1r5dx5qy0ka2sq26n9jll9iy4sjqg0jp5r3jnbjhpgxvmj8jbhq8"))))
|
||||
"1nf5kr0nqmhbzrsrinky18z0ighjpsmb5cr8zyg8jf04bfbyrfmc"))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("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
|
||||
that can be called from within a C program and of executable command
|
||||
line applications.")
|
||||
(license license:gpl2+)
|
||||
(license license:gpl3+)
|
||||
(home-page "http://cm.multiprecision.org/")))
|
||||
|
||||
(define-public fplll
|
||||
|
|
|
@ -139,3 +139,11 @@ dictionaries, including personal ones.")
|
|||
#:sha256
|
||||
(base32
|
||||
"1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v")))
|
||||
|
||||
(define-public aspell-dict-nl
|
||||
(aspell-dictionary "nl" "Dutch"
|
||||
#:version "0.50-2"
|
||||
#:prefix "aspell-"
|
||||
#:sha256
|
||||
(base32
|
||||
"0ffb87yjsh211hllpc4b9khqqrblial4pzi1h9r3v465z1yhn3j4")))
|
||||
|
|
|
@ -80,6 +80,17 @@
|
|||
(base32
|
||||
"1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0"))))
|
||||
(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
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
;; We cannot use zita-alsa-pcmi (the successor of clalsadrv) due to
|
||||
|
@ -89,7 +100,7 @@
|
|||
("jack" ,jack-1)
|
||||
("ladspa" ,ladspa)
|
||||
("liblo" ,liblo)
|
||||
("qt" ,qt-4)))
|
||||
("qt" ,qt)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "http://alsamodular.sourceforge.net/")
|
||||
|
@ -395,6 +406,319 @@ language and software synthesizer.")
|
|||
ALSA PCM devices.")
|
||||
(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
|
||||
(package
|
||||
(name "fluidsynth")
|
||||
|
@ -803,7 +1127,6 @@ synchronous execution of all clients, and low latency operation.")
|
|||
("suil" ,suil)
|
||||
("gtk" ,gtk+-2)
|
||||
("gtkmm" ,gtkmm-2)
|
||||
("qt" ,qt-4)
|
||||
("jack" ,jack-1)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -2063,3 +2386,38 @@ module to handle that particular file type.")
|
|||
(home-page "http://etree.org/shnutils/shntool/")
|
||||
;; 'install-sh' bears the x11 license
|
||||
(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+)))
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014, 2015, 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; 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 © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -26,6 +26,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system ant)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system cmake)
|
||||
#:use-module (guix build-system perl)
|
||||
|
@ -37,11 +38,13 @@
|
|||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages doxygen)
|
||||
#:use-module (gnu packages datastructures)
|
||||
#:use-module (gnu packages file)
|
||||
#:use-module (gnu packages gawk)
|
||||
#: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.")
|
||||
(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
|
||||
(package
|
||||
(name "python2-pybedtools")
|
||||
|
@ -535,10 +579,11 @@ confidence to have in an alignment.")
|
|||
(snippet
|
||||
`(begin
|
||||
;; Remove bundled boost, pigz, zlib, and .git directory
|
||||
;; FIXME: also remove bundled sources for google-sparsehash,
|
||||
;; murmurhash3, kmc once packaged.
|
||||
;; FIXME: also remove bundled sources for murmurhash3 and
|
||||
;; kmc once packaged.
|
||||
(delete-file-recursively "boost")
|
||||
(delete-file-recursively "pigz")
|
||||
(delete-file-recursively "google-sparsehash")
|
||||
(delete-file-recursively "zlib")
|
||||
(delete-file-recursively ".git")
|
||||
#t))))
|
||||
|
@ -588,6 +633,7 @@ confidence to have in an alignment.")
|
|||
(inputs
|
||||
`(("openmpi" ,openmpi)
|
||||
("boost" ,boost)
|
||||
("sparsehash" ,sparsehash)
|
||||
("pigz" ,pigz)
|
||||
("zlib" ,zlib)))
|
||||
(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.")
|
||||
(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
|
||||
(package
|
||||
(name "python2-bx-python")
|
||||
|
@ -809,6 +884,91 @@ and more accurate. BWA-MEM also has better performance than BWA-backtrack for
|
|||
multiple sequence alignments.")
|
||||
(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
|
||||
(package
|
||||
(name "clipper")
|
||||
|
@ -848,6 +1008,46 @@ multiple sequence alignments.")
|
|||
"CLIPper is a tool to define peaks in CLIP-seq datasets.")
|
||||
(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
|
||||
(package
|
||||
(name "couger")
|
||||
|
@ -1129,28 +1329,70 @@ other types of unwanted sequence from high-throughput sequencing reads.")
|
|||
files.")
|
||||
(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
|
||||
(package
|
||||
(name "deeptools")
|
||||
(version "1.5.11")
|
||||
(version "2.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/fidelram/deepTools/archive/"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "https://github.com/fidelram/deepTools/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kaagygcbvjs9sxd9cqmskd02wcfp9imvb735r087w7hwqpvz6fs"))))
|
||||
"1nmfin0zjdby3vay3r4flvz94dr6qjhj41ax4yz3vx13j6wz8izd"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:python ,python-2))
|
||||
(propagated-inputs
|
||||
(inputs
|
||||
`(("python-scipy" ,python2-scipy)
|
||||
("python-numpy" ,python2-numpy)
|
||||
("python-numpydoc" ,python2-numpydoc)
|
||||
("python-matplotlib" ,python2-matplotlib)
|
||||
("python-bx-python" ,python2-bx-python)
|
||||
("python-pysam" ,python2-pysam)))
|
||||
("python-pysam" ,python2-pysam)
|
||||
("python-pybigwig" ,python2-pybigwig)))
|
||||
(native-inputs
|
||||
`(("python-mock" ,python2-mock) ;for tests
|
||||
("python-pytz" ,python2-pytz) ;for tests
|
||||
|
@ -1851,24 +2093,17 @@ from high-throughput sequencing assays.")
|
|||
(snippet '(substitute* "build.xml"
|
||||
(("failifexecutionfails=\"true\"")
|
||||
"failifexecutionfails=\"false\"")))))
|
||||
(build-system gnu-build-system)
|
||||
(build-system ant-build-system)
|
||||
(arguments
|
||||
`(#:modules ((srfi srfi-1)
|
||||
(guix build gnu-build-system)
|
||||
(guix build utils))
|
||||
#:phases (alist-replace
|
||||
'build
|
||||
(lambda _
|
||||
(setenv "JAVA_HOME" (assoc-ref %build-inputs "jdk"))
|
||||
(zero? (system* "ant" "all"
|
||||
(string-append "-Ddist="
|
||||
(assoc-ref %outputs "out")
|
||||
"/share/java/htsjdk/"))))
|
||||
(fold alist-delete %standard-phases
|
||||
'(configure install check)))))
|
||||
(native-inputs
|
||||
`(("ant" ,ant)
|
||||
("jdk" ,icedtea "jdk")))
|
||||
`(#:tests? #f ; test require Internet access
|
||||
#:make-flags
|
||||
(list (string-append "-Ddist=" (assoc-ref %outputs "out")
|
||||
"/share/java/htsjdk/"))
|
||||
#:build-target "all"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
;; The build phase also installs the jars
|
||||
(delete 'install))))
|
||||
(home-page "http://samtools.github.io/htsjdk/")
|
||||
(synopsis "Java API for high-throughput sequencing data (HTS) formats")
|
||||
(description
|
||||
|
@ -2405,6 +2640,44 @@ the phenotype as it models the data.")
|
|||
generated using the PacBio Iso-Seq protocol.")
|
||||
(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
|
||||
(package
|
||||
(name "prodigal")
|
||||
|
@ -3664,16 +3937,38 @@ barplots or heatmaps.")
|
|||
packages.")
|
||||
(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
|
||||
(package
|
||||
(name "r-s4vectors")
|
||||
(version "0.8.5")
|
||||
(version "0.8.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "S4Vectors" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10f4jxwlwsiy7zhb3kgp6anid0d7wkvrrljl80r3nhx38yr24l5k"))))
|
||||
"12iibcs63m9iy7f45wgjcqsna2dnqwckphk682389grshz0g4x66"))))
|
||||
(properties
|
||||
`((upstream-name . "S4Vectors")
|
||||
(r-repository . bioconductor)))
|
||||
|
@ -3695,13 +3990,13 @@ S4Vectors package itself.")
|
|||
(define-public r-iranges
|
||||
(package
|
||||
(name "r-iranges")
|
||||
(version "2.4.6")
|
||||
(version "2.4.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "IRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00x0266sys1fc5ipa639y84p6m6mgspk2xb099vcwmd3w4hypj9d"))))
|
||||
"0hi5k1j5jm4xrg1l506g279qw1xkvp1gg1zgsjzpbng4vx4k4iyl"))))
|
||||
(properties
|
||||
`((upstream-name . "IRanges")
|
||||
(r-repository . bioconductor)))
|
||||
|
@ -4141,7 +4436,9 @@ extracting the desired features in a convenient format.")
|
|||
(version "3.2.2")
|
||||
(source (origin
|
||||
(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
|
||||
(base32
|
||||
"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,
|
||||
two-dimensional genome scans.")
|
||||
(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+)))
|
||||
|
|
|
@ -202,7 +202,7 @@ interface, for the Transmission BitTorrent daemon.")
|
|||
(define-public aria2
|
||||
(package
|
||||
(name "aria2")
|
||||
(version "1.20.0")
|
||||
(version "1.21.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/tatsuhiro-t/aria2/"
|
||||
|
@ -210,7 +210,7 @@ interface, for the Transmission BitTorrent daemon.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l4gzz3yr0cl6a9xdy7843c5sb7afyq0i80wi2hasfpfdx5k95mz"))))
|
||||
"1035rzx9y7qv4p7cv04f461343dxha7ikprch059x2fci8n5yp12"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--enable-libaria2")
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -44,14 +44,14 @@
|
|||
(define-public libcddb
|
||||
(package
|
||||
(name "libcddb")
|
||||
(version "1.3.0")
|
||||
(version "1.3.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/libcddb/libcddb-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1y8bfy12dwm41m1jahayn3v47dm34fmz7m9cjxyh7xcw6fp3lzaf"))))
|
||||
"0fr21a7vprdyy1bq6s99m0x420c9jm5fipsd63pqv8qyfkhhxkim"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments '(#:tests? #f)) ; tests rely on access to external servers
|
||||
(home-page "http://libcddb.sourceforge.net/")
|
||||
|
@ -189,14 +189,14 @@ reconstruction capability.")
|
|||
(define-public dvdisaster
|
||||
(package
|
||||
(name "dvdisaster")
|
||||
(version "0.72.6")
|
||||
(version "0.79.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://dvdisaster.net/downloads/dvdisaster-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0sqrprc5rh3shnfli25m2wy0i5f83db54iv04s5s7bxf77m7sy79"))))
|
||||
"0f8gjnia2fxcbmhl8b3qkr5b7idl8m855dw7xw2fnmbqwvcm6k4w"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gtk+" ,gtk+-2)))
|
||||
|
@ -208,14 +208,7 @@ reconstruction capability.")
|
|||
`(;; Parallel builds appear to be unsafe, see
|
||||
;; <http://hydra.gnu.org/build/49331/nixlog/1/raw>.
|
||||
#:parallel-build? #f
|
||||
#:tests? #f ; no check target
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'patch-source-shebangs 'sanitise
|
||||
(lambda _
|
||||
;; delete dangling symlink
|
||||
(delete-file ".#GNUmakefile"))
|
||||
%standard-phases)))
|
||||
#:tests? #f)) ; no check target
|
||||
(home-page "http://dvdisaster.net/en/index.html")
|
||||
(synopsis "Error correcting codes for optical media images")
|
||||
(description "Optical media (CD,DVD,BD) keep their data only for a
|
||||
|
@ -240,9 +233,8 @@ capacity is user-selectable.")
|
|||
(version "1.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/lipnitsk/libcue/releases"
|
||||
"/download/v" version
|
||||
"/libcue-" version ".tar.bz2"))
|
||||
(uri (string-append "https://github.com/lipnitsk/libcue/archive/v"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"17kjd7rjz1bvfn44n3n2bjb7a1ywd0yc0g4sqp5ihf9b5bn7cwlb"))))
|
||||
|
@ -287,15 +279,15 @@ from an audio CD.")
|
|||
(define-public abcde
|
||||
(package
|
||||
(name "abcde")
|
||||
(version "2.7")
|
||||
(home-page "http://abcde.einval.com/")
|
||||
(version "2.7.1")
|
||||
(home-page "https://abcde.einval.com/")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/download/abcde-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ikpffzvacadh6vj9qlary8126j1zrd2knp9gvivmp7y1656jj01"))
|
||||
"0l7j0nk8p30s97285i418rv9ym9bgns7bn6l8gldw3mjhnby609l"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(substitute* "Makefile"
|
||||
|
@ -305,37 +297,36 @@ from an audio CD.")
|
|||
(string-append "etcdir = $(prefix)/etc\n"))))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(substitute* "Makefile"
|
||||
(("^prefix = .*$")
|
||||
(string-append "prefix = "
|
||||
(assoc-ref outputs "out")
|
||||
"\n"))))
|
||||
(alist-cons-after
|
||||
'install 'wrap
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((wget (assoc-ref inputs "wget"))
|
||||
(vorbis (assoc-ref inputs "vorbis-tools"))
|
||||
(parano (assoc-ref inputs "cdparanoia"))
|
||||
(which (assoc-ref inputs "which"))
|
||||
(discid (assoc-ref inputs "cd-discid"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(define (wrap file)
|
||||
(wrap-program file
|
||||
`("PATH" ":" prefix
|
||||
(,(string-append out "/bin:"
|
||||
wget "/bin:"
|
||||
which "/bin:"
|
||||
vorbis "/bin:"
|
||||
discid "/bin:"
|
||||
parano "/bin")))))
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(substitute* "Makefile"
|
||||
(("^prefix = .*$")
|
||||
(string-append "prefix = "
|
||||
(assoc-ref outputs "out")
|
||||
"\n")))))
|
||||
(add-after 'install 'wrap
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((wget (assoc-ref inputs "wget"))
|
||||
(vorbis (assoc-ref inputs "vorbis-tools"))
|
||||
(parano (assoc-ref inputs "cdparanoia"))
|
||||
(which (assoc-ref inputs "which"))
|
||||
(discid (assoc-ref inputs "cd-discid"))
|
||||
(out (assoc-ref outputs "out")))
|
||||
(define (wrap file)
|
||||
(wrap-program file
|
||||
`("PATH" ":" prefix
|
||||
(,(string-append out "/bin:"
|
||||
wget "/bin:"
|
||||
which "/bin:"
|
||||
vorbis "/bin:"
|
||||
discid "/bin:"
|
||||
parano "/bin")))))
|
||||
|
||||
(for-each wrap
|
||||
(find-files (string-append out "/bin")
|
||||
".*"))))
|
||||
%standard-phases))
|
||||
(for-each wrap
|
||||
(find-files (string-append out "/bin")
|
||||
".*"))))))
|
||||
#:tests? #f))
|
||||
|
||||
(inputs `(("wget" ,wget)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -89,15 +90,14 @@ with a flexible variety of user interfaces.")
|
|||
(define-public cppunit
|
||||
(package
|
||||
(name "cppunit")
|
||||
(version "1.12.1")
|
||||
(version "1.13.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/cppunit/" name "/"
|
||||
name "-"
|
||||
version ".tar.gz"))
|
||||
(uri (string-append "http://dev-www.libreoffice.org/src/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jm49v5rmc5qw34vqs56gy8xja1dhci73bmh23cig4kcir6a0a5c"))))
|
||||
"17s2kzmkw3kfjhpp72rfppyd7syr7bdq5s69syj2nvrlwd3d4irz"))))
|
||||
;; Explicitly link with libdl. This is expected to be done by packages
|
||||
;; 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
|
||||
|
@ -105,7 +105,7 @@ with a flexible variety of user interfaces.")
|
|||
(arguments
|
||||
`(#:make-flags '("LDFLAGS=-ldl")))
|
||||
(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++")
|
||||
(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
|
||||
|
@ -115,17 +115,17 @@ supervised tests.")
|
|||
(define-public catch-framework
|
||||
(package
|
||||
(name "catch")
|
||||
(version "1.1.3") ;Sub-minor is the build number
|
||||
(version "1.3.5") ;Sub-minor is the build number
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/philsquared/Catch")
|
||||
;; Semi-arbitrary.
|
||||
(commit "c51e86819d")))
|
||||
(commit "ae5ee2cf63d6d67bd1369b512d2a7b60b571c907")))
|
||||
(file-name (string-append name "-" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kgi7wxxysgjbpisqfj4dj0k19cyyai92f001zi8gzkybd4fkgv5"))))
|
||||
"1yfb3lxv929szqy1nw9xw3d45wzkppziqshkjxvrb1fdmf46x564"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
format.")
|
||||
(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+)))
|
||||
|
|
|
@ -68,14 +68,14 @@ a major mode for Emacs for examining the flowcharts that it produces.")
|
|||
(define-public complexity
|
||||
(package
|
||||
(name "complexity")
|
||||
(version "1.3")
|
||||
(version "1.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/complexity/complexity-"
|
||||
version ".tar.gz"))
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19bc64sxpqd5rqylqaa7dijz2x7qp2b0dg3ah3fb3qbcvd8b4wgy"))))
|
||||
"0lr0l9kj2w3jilz9h9y4np9pf9i9ccpy6331lanki2fnz4z8ldvd"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)
|
||||
|
@ -190,7 +190,7 @@ COCOMO model or user-provided parameters.")
|
|||
(define-public the-silver-searcher
|
||||
(package
|
||||
(name "the-silver-searcher")
|
||||
(version "0.29.1")
|
||||
(version "0.31.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -198,7 +198,7 @@ COCOMO model or user-provided parameters.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ah7vcqprl9hhafi68bvzaiywy7dfm28zf7kpw3xrlqzfn0vg7kp"))
|
||||
"1a3xncsq3x8pci194k484s5mdqij2sirpz6dj6711n2p8mzq5g31"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
|
@ -284,14 +284,14 @@ stack traces.")
|
|||
(define-public lcov
|
||||
(package
|
||||
(name "lcov")
|
||||
(version "1.10")
|
||||
(version "1.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/ltp/lcov-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13xq2ln4jjasslqzzhr5g11q1c19gwpng1jphzbzmylmrjz62ila"))))
|
||||
"19wfifdpxxivhq9adbphanjfga9bg9spms9v7c3589wndjff8x5l"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:make-flags (let ((out (assoc-ref %outputs "out")))
|
||||
|
|
|
@ -268,6 +268,7 @@
|
|||
(let ((perl (package
|
||||
(inherit perl)
|
||||
(name "perl-boot0")
|
||||
(replacement #f)
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments perl)
|
||||
((#:phases phases)
|
||||
|
@ -870,10 +871,10 @@ and binaries, plus debugging symbols in the 'debug' output), and Binutils.")
|
|||
("libc-debug" ,glibc-final "debug")))))
|
||||
|
||||
(define-public gcc-toolchain-4.8
|
||||
(gcc-toolchain gcc-final))
|
||||
(gcc-toolchain gcc-4.8))
|
||||
|
||||
(define-public gcc-toolchain-4.9
|
||||
(gcc-toolchain gcc-4.9))
|
||||
(gcc-toolchain gcc-final))
|
||||
|
||||
(define-public gcc-toolchain-5
|
||||
(gcc-toolchain gcc-5))
|
||||
|
|
|
@ -54,16 +54,7 @@
|
|||
(inputs `(("gnutls" ,gnutls)
|
||||
("gss" ,gss)
|
||||
("libidn" ,libidn)
|
||||
|
||||
;; 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)
|
||||
|
||||
("libssh2" ,libssh2)
|
||||
("openldap" ,openldap)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
(define-module (gnu packages databases)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages perl)
|
||||
#:use-module (gnu packages language)
|
||||
#: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
|
||||
(package
|
||||
(name "mysql")
|
||||
(version "5.6.25")
|
||||
(version "5.7.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://dev.mysql.com/get/Downloads/MySQL-"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.gz"))
|
||||
(uri (list (string-append
|
||||
"http://dev.mysql.com/get/Downloads/MySQL-"
|
||||
(version-major+minor version) "/"
|
||||
name "-" version ".tar.gz")
|
||||
(string-append
|
||||
"http://downloads.mysql.com/archives/get/file/"
|
||||
name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1gbz5i1z3nswpq3q8f477vrx7g15j8n41pyb94k0jfnkhc5rq1qm"))))
|
||||
"03hzd2ikabxhh5ch2yvml2nks2wpv3qbkqmx3520in6khypwgy2l"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -167,16 +171,11 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.")
|
|||
"-DINSTALL_SQLBENCHDIR=")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-after
|
||||
'install 'strip-extra-references
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Strip references to GCC and other build-time
|
||||
;; dependencies.
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(for-each remove-store-references
|
||||
(list (string-append out "/bin/mysqlbug")
|
||||
(string-append
|
||||
out "/share/mysql/docs/INFO_BIN")))
|
||||
#t)))
|
||||
'unpack 'patch-boost-version
|
||||
(lambda _
|
||||
;; Mysql wants boost-1.59.0 specifically
|
||||
(substitute* "cmake/boost.cmake"
|
||||
(("59") "60"))))
|
||||
(add-after
|
||||
'install 'remove-extra-binaries
|
||||
(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)
|
||||
("perl" ,perl)))
|
||||
(inputs
|
||||
`(("libaio" ,libaio)
|
||||
`(("boost" ,boost)
|
||||
("libaio" ,libaio)
|
||||
("ncurses" ,ncurses)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)
|
||||
("ncurses" ,ncurses)))
|
||||
("zlib" ,zlib)))
|
||||
(home-page "http://www.mysql.com/")
|
||||
(synopsis "Fast, easy to use, and popular database")
|
||||
(description
|
||||
|
@ -206,7 +206,7 @@ Language.")
|
|||
(define-public mariadb
|
||||
(package
|
||||
(name "mariadb")
|
||||
(version "10.0.23")
|
||||
(version "10.1.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://downloads.mariadb.org/f/"
|
||||
|
@ -214,7 +214,7 @@ Language.")
|
|||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0x52gfxk7zr84al83x62s4gh7mbngahy1svafdkbwd18i5lysvhm"))))
|
||||
"1rzlc2ns84x540asbkgdp9562haxhlszfpdqh64i9pz4q1m4cpvr"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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.
|
||||
;;;
|
||||
|
@ -23,6 +23,29 @@
|
|||
#:use-module (guix download)
|
||||
#: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
|
||||
(package
|
||||
(name "sparsehash")
|
||||
|
|
|
@ -52,21 +52,16 @@ clients.")
|
|||
(define-public vdirsyncer
|
||||
(package
|
||||
(name "vdirsyncer")
|
||||
(version "0.9.0")
|
||||
(version "0.9.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "vdirsyncer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0s9awjr9v60rr80xcpwmdhkf4v1yqnydahjmxwvxmh64565is465"))))
|
||||
"1g1107cz4sk41d2z6k6pn9n2fzd26m72j8aj33zn483vfvmyrc4q"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#: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
|
||||
;; the manpage.
|
||||
(add-after 'install 'manpage
|
||||
|
@ -80,17 +75,24 @@ clients.")
|
|||
"docs/_build/man/vdirsyncer.1"
|
||||
(string-append
|
||||
(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
|
||||
`(("python-oauthlib" ,python-oauthlib)
|
||||
("python-setuptools-scm" ,python-setuptools-scm)
|
||||
`(("python-setuptools-scm" ,python-setuptools-scm)
|
||||
("python-sphinx" ,python-sphinx)
|
||||
;; Required for testing
|
||||
("python-hypothesis" ,python-hypothesis)
|
||||
("python-pytest" ,python-pytest)
|
||||
("python-pytest-localserver" ,python-pytest-localserver)
|
||||
("python-pytest-subtesthack" ,python-pytest-subtesthack)
|
||||
("python-pytest-xprocess" ,python-pytest-xprocess)
|
||||
("python-wsgi-intercept" ,python-wsgi-intercept)
|
||||
("radicale" ,radicale)))
|
||||
(propagated-inputs
|
||||
|
@ -98,7 +100,7 @@ clients.")
|
|||
("python-click" ,python-click)
|
||||
("python-click-log" ,python-click-log)
|
||||
("python-click-threading" ,python-click-threading)
|
||||
("python-lxml" ,python-lxml) ; which one?
|
||||
("python-lxml" ,python-lxml)
|
||||
("python-requests-toolbelt" ,python-requests-toolbelt)))
|
||||
(synopsis "Synchronize calendars and contacts")
|
||||
(description "Vdirsyncer synchronizes your calendars and addressbooks
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -99,7 +100,7 @@ tables, and it understands a variety of different formats.")
|
|||
(define-public ddrescue
|
||||
(package
|
||||
(name "ddrescue")
|
||||
(version "1.20")
|
||||
(version "1.21")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -107,7 +108,7 @@ tables, and it understands a variety of different formats.")
|
|||
version ".tar.lz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gb0ak2c47nass7qdf9pnfrshcb38c318z1fx5v5v1k7l6qr7yc3"))))
|
||||
"1b71hb42lh33y9843nd1mxlwkk9qh9ajvnz6ivzd1jq9lav4x7ph"))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.gnu.org/software/ddrescue/ddrescue.html")
|
||||
(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
|
||||
and unloading removable media and some other housekeeping functions.")
|
||||
(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+)))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -65,14 +66,14 @@ and BOOTP/TFTP for network booting of diskless machines.")
|
|||
(define-public bind-utils
|
||||
(package
|
||||
(name "bind-utils")
|
||||
(version "9.10.3-P3")
|
||||
(version "9.10.3-P4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ftp.isc.org/isc/bind9/" version
|
||||
"/bind-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10yblk8qbb85qxakzdjy5qmqvqj4rlcqsqvlkriglampzg8i0239"))))
|
||||
"0giys46ifypysf799w9v58kbaz1v3fbdzw3s212znifzzfsl9h1a"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
;; it would be nice to add GeoIP and gssapi once there is package
|
||||
|
|
|
@ -308,7 +308,7 @@ when typing parentheses directly or commenting out code line by line.")
|
|||
(define-public git-modes
|
||||
(package
|
||||
(name "git-modes")
|
||||
(version "1.2.0")
|
||||
(version "1.2.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"09dv7ikbj2bi4y3lmvjfzqpdmx2f9bd4w7jkp10bkap62d05iqhk"))))
|
||||
"088wyddh8y0yw77i0hx449n9zg4wzyc90h63wlmxba1ijg4dzm0p"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
|
@ -1018,44 +1018,47 @@ single buffer.")
|
|||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:modules ((guix build gnu-build-system)
|
||||
((guix build emacs-build-system) #:prefix emacs:)
|
||||
(guix build utils)
|
||||
(guix build emacs-utils))
|
||||
#:imported-modules (,@%gnu-build-system-modules
|
||||
(guix build emacs-build-system)
|
||||
(guix build emacs-utils))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'enter-dir (lambda _ (chdir "server") #t))
|
||||
(add-before
|
||||
'configure 'autogen
|
||||
(lambda _
|
||||
(zero? (system* "bash" "autogen.sh"))))
|
||||
(add-before
|
||||
'build 'patch-variables
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(with-directory-excursion "../lisp"
|
||||
;; Set path to epdfinfo program.
|
||||
(emacs-substitute-variables "pdf-info.el"
|
||||
("pdf-info-epdfinfo-program"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/bin/epdfinfo")))
|
||||
;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
|
||||
;; upgrading" that pdf-tools tries to perform.
|
||||
(emacs-substitute-variables "pdf-tools.el"
|
||||
("pdf-tools-handle-upgrades" '())))))
|
||||
(add-after
|
||||
'install 'install-lisp
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((target (string-append (assoc-ref outputs "out")
|
||||
"/share/emacs/site-lisp/")))
|
||||
(for-each (lambda (file)
|
||||
(install-file file target))
|
||||
(find-files "../lisp" "^(pdf|tab).*\\.elc?"))
|
||||
(emacs-byte-compile-directory target)
|
||||
(emacs-generate-autoloads "pdf-tools" target)))))))
|
||||
;; Build server side using 'gnu-build-system'.
|
||||
(add-after 'unpack 'enter-server-dir
|
||||
(lambda _ (chdir "server") #t))
|
||||
(add-before 'configure 'autogen
|
||||
(lambda _
|
||||
(zero? (system* "bash" "autogen.sh"))))
|
||||
|
||||
;; Build emacs side using 'emacs-build-system'.
|
||||
(add-after 'compress-documentation 'enter-lisp-dir
|
||||
(lambda _ (chdir "../lisp") #t))
|
||||
(add-after 'enter-lisp-dir 'emacs-patch-variables
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Set path to epdfinfo program.
|
||||
(emacs-substitute-variables "pdf-info.el"
|
||||
("pdf-info-epdfinfo-program"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/bin/epdfinfo")))
|
||||
;; Set 'pdf-tools-handle-upgrades' to nil to avoid "auto
|
||||
;; upgrading" that pdf-tools tries to perform.
|
||||
(emacs-substitute-variables "pdf-tools.el"
|
||||
("pdf-tools-handle-upgrades" '()))))
|
||||
(add-after 'emacs-patch-variables 'emacs-install
|
||||
(assoc-ref emacs:%standard-phases 'install))
|
||||
(add-after 'emacs-install 'emacs-build
|
||||
(assoc-ref emacs:%standard-phases 'build))
|
||||
(add-after 'emacs-install 'emacs-make-autoloads
|
||||
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
|
||||
(native-inputs `(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("pkg-config" ,pkg-config)
|
||||
("emacs" ,emacs-no-x)))
|
||||
(propagated-inputs
|
||||
`(("let-alist" ,let-alist)))
|
||||
(inputs `(("poppler" ,poppler)
|
||||
("cairo" ,cairo)
|
||||
("glib" ,glib)
|
||||
|
|
|
@ -273,7 +273,7 @@ Libraries with some extra bells and whistles.")
|
|||
(define-public enlightenment
|
||||
(package
|
||||
(name "enlightenment")
|
||||
(version "0.20.5")
|
||||
(version "0.20.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -281,7 +281,7 @@ Libraries with some extra bells and whistles.")
|
|||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1l02m2d7d5r0vnfgn44glhvqhc8ygbjxjkf6cdd2vxpxsa29ax12"))))
|
||||
"11ahll68nlci214ka05whp5l32hy9lznmcdfqx3hxsmq2p7bl7zj"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags '("--enable-mount-eeze")))
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 Joshua Grant <tadni@riseup.net>
|
||||
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
|
||||
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2016 Nils Gillmann <niasterisk@grrlz.net>
|
||||
;;; Copyright © 2016 Jookia <166291@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -24,6 +25,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (gnu packages fonts)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
|
@ -67,14 +69,15 @@ in print. With attention to detail for high resolution rendering.")
|
|||
(define-public font-ubuntu
|
||||
(package
|
||||
(name "font-ubuntu")
|
||||
(version "0.80")
|
||||
(version "0.83")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://font.ubuntu.com/download/ubuntu-font-family-"
|
||||
version ".zip"))
|
||||
(uri (string-append
|
||||
"http://font.ubuntu.com/download/ubuntu-font-family-"
|
||||
version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0k4f548riq23gmw4zhn30qqkcpaj4g2ab5rbc3lflfxwkc4p0w8h"))))
|
||||
"0hjvq2x758dx0sfwqhzflns0ns035qm7h6ygskbx1svzg517sva5"))))
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build utils))
|
||||
|
@ -235,6 +238,25 @@ package provides the TrueType (TTF) files.")
|
|||
(license:x11-style
|
||||
"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
|
||||
(package
|
||||
(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.")
|
||||
(home-page "http://unifoundry.com/unifont.html")
|
||||
(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+)))
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; 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="
|
||||
(assoc-ref %build-inputs "gs-fonts")
|
||||
"/share/fonts")
|
||||
|
||||
;; 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"
|
||||
|
||||
;; python is not actually needed
|
||||
"PYTHON=false")
|
||||
#:phases
|
||||
|
@ -203,6 +208,7 @@ applications should be.")
|
|||
|
||||
(define-public graphite2
|
||||
(package
|
||||
(replacement graphite2-1.3.6)
|
||||
(name "graphite2")
|
||||
(version "1.3.5")
|
||||
(source
|
||||
|
@ -229,6 +235,21 @@ and returns a sequence of positioned glyphids from the font.")
|
|||
(license license:lgpl2.1+)
|
||||
(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
|
||||
(package
|
||||
(name "potrace")
|
||||
|
@ -305,7 +326,7 @@ smooth contours with constant curvature at the spline joins.")
|
|||
(define-public libuninameslist
|
||||
(package
|
||||
(name "libuninameslist")
|
||||
(version "0.4.20140731")
|
||||
(version "0.5.20150701")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -314,7 +335,7 @@ smooth contours with constant curvature at the spline joins.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"016zxffpc8iwpxxmnjkdirn6dsbcvdb2wjdrp123sf79f4nsynyj"))))
|
||||
"1j6147l100rppw7axlrkdx0p35fax6bz2zh1xgpg7a3b4pmqaj3v"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
|
@ -336,37 +357,51 @@ definitions.")
|
|||
(define-public fontforge
|
||||
(package
|
||||
(name "fontforge")
|
||||
(version "20120731-b") ;aka 1.0
|
||||
(version "20150824")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/fontforge/fontforge_full-"
|
||||
version ".tar.bz2"))
|
||||
(uri (string-append
|
||||
"https://github.com/fontforge/fontforge/releases/download/"
|
||||
version "/fontforge-" version ".tar.gz"))
|
||||
(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)
|
||||
;; TODO: Add python for scripting support.
|
||||
(inputs `(("gettext" ,gnu-gettext)
|
||||
("libtiff" ,libtiff)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libpng" ,libpng)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("cairo" ,cairo)
|
||||
("fontconfig" ,fontconfig) ;dlopen'd
|
||||
("freetype" ,freetype)
|
||||
("gettext" ,gnu-gettext)
|
||||
("giflib" ,giflib) ;needs giflib 4.*
|
||||
("libxml2" ,libxml2)
|
||||
("libX11" ,libx11)
|
||||
("libXi" ,libxi)
|
||||
("glib" ,glib) ;needed for pango detection
|
||||
("libICE" ,libice)
|
||||
("libSM" ,libsm)
|
||||
("freetype" ,freetype)
|
||||
("potrace" ,potrace)
|
||||
("libX11" ,libx11)
|
||||
("libXi" ,libxi)
|
||||
("libjpeg" ,libjpeg)
|
||||
("libltdl" ,libltdl)
|
||||
("libpng" ,libpng)
|
||||
("libspiro" ,libspiro)
|
||||
("zlib" ,zlib)
|
||||
("cairo" ,cairo)
|
||||
("fontconfig" ,fontconfig) ;dlopen'd
|
||||
("libtiff" ,libtiff)
|
||||
("libuninameslist" ,libuninameslist)
|
||||
("libxft" ,libxft)
|
||||
("libxml2" ,libxml2)
|
||||
("pango" ,pango)
|
||||
("glib" ,glib))) ;needed for pango detection
|
||||
("potrace" ,potrace)
|
||||
("python" ,python)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
'(#:configure-flags `("--enable-double")
|
||||
#:tests? #f
|
||||
'(#:tests? #f
|
||||
#:phases
|
||||
(alist-cons-before
|
||||
'configure 'patch-configure
|
||||
|
@ -406,5 +441,5 @@ definitions.")
|
|||
"FontForge allows you to create and modify postscript, truetype and
|
||||
opentype fonts. You can save fonts in many different outline formats, and
|
||||
generate bitmaps.")
|
||||
(license license:bsd-3)
|
||||
(license license:gpl3+)
|
||||
(home-page "http://fontforge.org/")))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.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 David Hashe <david.hashe@dhashe.com>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -82,14 +82,14 @@ freedesktop.org project.")
|
|||
(define-public libinput
|
||||
(package
|
||||
(name "libinput")
|
||||
(version "1.1.902")
|
||||
(version "1.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://freedesktop.org/software/libinput/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"19wa5yizc3nfq3gibyqb3ygdvcs7v7bz1m5ifv0f4va3igxc3nk3"))))
|
||||
"0b3f67xsy1s84cvzw22mjfkbcv6pj4p4yns4h3m0fmb7zqbvjm0p"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
|
@ -142,14 +142,14 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(define-public elogind
|
||||
(package
|
||||
(name "elogind")
|
||||
(version "219.12")
|
||||
(version "219.14")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wingolog.org/pub/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"13qc4f0dl7ynnfp1y565z2k0jjizly5w3dqhiqkdk7v6jr4pksb7"))
|
||||
"1jckc4wx199n1q4r4fv43ibjs6nlq91s39w9r78ilk1z383m1hcx"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -165,11 +165,17 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
(assoc-ref %build-inputs "libcap"))
|
||||
(string-append "--with-udevrulesdir="
|
||||
(assoc-ref %outputs "out")
|
||||
"/lib/udev/rules.d")
|
||||
;; XXX: fail with:
|
||||
;; src/shared/clean-ipc.c:315: undefined reference to `mq_unlink'
|
||||
"LDFLAGS=-lrt")
|
||||
#:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")))
|
||||
"/lib/udev/rules.d"))
|
||||
#:make-flags '("PKTTYAGENT=/run/current-system/profile/bin/pkttyagent")
|
||||
#:phases (modify-phases %standard-phases
|
||||
(add-before 'build 'fix-service-file
|
||||
(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
|
||||
`(("intltool" ,intltool)
|
||||
("gettext" ,gnu-gettext)
|
||||
|
@ -188,7 +194,7 @@ the freedesktop.org XDG Base Directory specification.")
|
|||
;when pressing the power button
|
||||
("dbus" ,dbus)
|
||||
("eudev" ,eudev)))
|
||||
(home-page "https://github.com/andywingo/elogind")
|
||||
(home-page "https://github.com/wingo/elogind")
|
||||
(synopsis "User, seat, and session management service")
|
||||
(description "Elogind is the systemd project's \"logind\" service,
|
||||
extracted out as a separate project. Elogind integrates with PAM to provide
|
||||
|
@ -247,15 +253,16 @@ Python.")
|
|||
(define-public wayland
|
||||
(package
|
||||
(name "wayland")
|
||||
(version "1.9.0")
|
||||
(version "1.10.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://wayland.freedesktop.org/releases/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yhy62vkbq8j8c9zaa6yzvn75cd99kfa8n2zfdwl80x019r711ww"))))
|
||||
"1p307ly1yyqjnzn9dbv78yffql2qszn84qk74lwanl3gma8fgxjb"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:parallel-tests? #f))
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)
|
||||
("graphviz" ,graphviz)
|
||||
|
@ -268,7 +275,7 @@ Python.")
|
|||
("expat" ,expat)
|
||||
("libffi" ,libffi)
|
||||
("libxml2" ,libxml2))) ; for XML_CATALOG_FILES
|
||||
(home-page "http://wayland.freedesktop.org/")
|
||||
(home-page "https://wayland.freedesktop.org/")
|
||||
(synopsis "Display server protocol")
|
||||
(description
|
||||
"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
|
||||
(arguments
|
||||
`(#:tests? #f ; requiring system message dbus
|
||||
#:disallowed-references ("doc") ;enforce separation of "doc"
|
||||
#:configure-flags
|
||||
(list "--disable-man"
|
||||
"--localstatedir=/var"
|
||||
|
@ -404,7 +412,7 @@ message bus.")
|
|||
(version "0.6.40")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.freedesktop.org/software/"
|
||||
(uri (string-append "https://www.freedesktop.org/software/"
|
||||
name "/" name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -444,7 +452,7 @@ interfaces, based on the useradd, usermod and userdel commands.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.freedesktop.org/software/" name "/"
|
||||
"https://www.freedesktop.org/software/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -471,15 +479,15 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
|
|||
(define-public libqmi
|
||||
(package
|
||||
(name "libqmi")
|
||||
(version "1.12.6")
|
||||
(version "1.12.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://www.freedesktop.org/software/" name "/"
|
||||
"https://www.freedesktop.org/software/" name "/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"101ppan2q1h4pyp2zbn9b8sdwy2c7fk9rp91yykxz3afrvzbymq8"))))
|
||||
"19w2zkm5xl6i3vm1xhjjclks4awas17gfbb2k5y66gwnkiykjfnj"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-mkenums
|
||||
|
@ -488,7 +496,7 @@ which speak the Mobile Interface Broadband Model (MBIM) protocol.")
|
|||
(propagated-inputs
|
||||
`(("glib" ,glib))) ; required by qmi-glib.pc
|
||||
(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
|
||||
"Libqmi is a GLib-based library for talking to WWAN modems and devices
|
||||
which speak the Qualcomm MSM Interface (QMI) protocol.")
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -127,7 +128,7 @@ provide connectivity for client applications written in any language.")
|
|||
(define-public tiled
|
||||
(package
|
||||
(name "tiled")
|
||||
(version "0.13.1")
|
||||
(version "0.15.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"057a5cna3vhznpl9hyql2sxz995aprv43r8wva89x4vdphxv04lm"))))
|
||||
"10bbjdv5r36229r1dqg32bxcj9yvpkx9jgs9v4s1qb71v856b15h"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("qt" ,qt)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
'(#:phases
|
||||
(alist-replace
|
||||
'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(system* "qmake"
|
||||
(string-append "PREFIX=" out))))
|
||||
%standard-phases)))
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(system* "qmake"
|
||||
(string-append "PREFIX=" out))))))))
|
||||
(home-page "http://www.mapeditor.org/")
|
||||
(synopsis "Tile map editor")
|
||||
(description
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
|
||||
;;; 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 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -15,6 +15,8 @@
|
|||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -69,6 +71,7 @@
|
|||
#:use-module (gnu packages sdl)
|
||||
#:use-module (gnu packages texinfo)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gstreamer)
|
||||
#:use-module (gnu packages bash)
|
||||
|
@ -1182,7 +1185,7 @@ is programmed in Haskell.")
|
|||
(define-public manaplus
|
||||
(package
|
||||
(name "manaplus")
|
||||
(version "1.6.1.16")
|
||||
(version "1.6.3.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1190,7 +1193,7 @@ is programmed in Haskell.")
|
|||
version "/manaplus-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vrsjvdbdzbnqmr8sp110b2d93kp5yfnifsn6zjm60kdvvbphdir"))))
|
||||
"02bnd4nk1qzrfqckqkwb6sbjzsmacv968ih74cdgcykslpsr684d"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
|
@ -1917,3 +1920,109 @@ Catan. It can be played on a local network, on the internet, and with AI
|
|||
players.")
|
||||
(home-page "http://pio.sourceforge.net/")
|
||||
(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+)))
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.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 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
|
@ -354,6 +354,8 @@ Go. It also includes runtime support libraries for these languages.")
|
|||
"1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"))
|
||||
(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 (make-libstdc++ gcc)
|
||||
|
@ -440,7 +442,15 @@ as the 'native-search-paths' field."
|
|||
`(cons (string-append "--enable-languages="
|
||||
,(string-join 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
|
||||
;; This is the language-neutral search path for GCC. Entries in $CPATH are
|
||||
|
|
|
@ -144,7 +144,7 @@ catalogs. Nearly all GNU packages use Gettext.")
|
|||
("perl-module-build" ,perl-module-build)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("docbook-xml" ,docbook-xml) ;for tests
|
||||
("texlive-bin" ,texlive-bin) ;for tests
|
||||
("texlive" ,texlive-minimal) ;for tests
|
||||
("libxml2" ,libxml2)
|
||||
("xsltproc" ,libxslt)))
|
||||
(home-page "http://po4a.alioth.debian.org/")
|
||||
|
|
|
@ -524,9 +524,11 @@ useful for C++.")
|
|||
("pkg-config" ,pkg-config)))
|
||||
(inputs
|
||||
`(("python" ,python)
|
||||
("glib" ,glib)
|
||||
("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)))
|
||||
(arguments
|
||||
;; 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_tuple
|
||||
'(#: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")
|
||||
(synopsis "Python bindings for GObject")
|
||||
(description
|
||||
|
@ -550,10 +554,8 @@ useful for C++.")
|
|||
(name "python2-pygobject")
|
||||
(inputs
|
||||
`(("python" ,python-2)
|
||||
("glib" ,glib)
|
||||
("python-pycairo" ,python2-pycairo)
|
||||
("gobject-introspection" ,gobject-introspection)
|
||||
("libffi" ,libffi)))))
|
||||
("gobject-introspection" ,gobject-introspection)))))
|
||||
|
||||
(define telepathy-glib
|
||||
(package
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system glib-or-gtk)
|
||||
|
@ -107,6 +108,7 @@
|
|||
#:use-module (gnu packages cdrom)
|
||||
#:use-module (gnu packages samba)
|
||||
#:use-module (gnu packages readline)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public brasero
|
||||
|
@ -1463,7 +1465,7 @@ Hints specification (EWMH).")
|
|||
(license license:lgpl2.0+)))
|
||||
|
||||
;; stable version for gtk2, required by xfwm4.
|
||||
(define-public libwnck-1
|
||||
(define-public libwnck-2
|
||||
(package (inherit libwnck)
|
||||
(name "libwnck")
|
||||
(version "2.30.7")
|
||||
|
@ -3381,7 +3383,7 @@ USB transfers with your high-level application or system daemon.")
|
|||
(define-public simple-scan
|
||||
(package
|
||||
(name "simple-scan")
|
||||
(version "3.17.4")
|
||||
(version "3.19.91")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pslbv45g01g039zj2b01k08f763kkhzqw8wwz7yh27m7bjllnx6"))))
|
||||
"1c5glf5vxgld41w4jxfqcv17q76qnh43fawpv33hncgh8d283xkf"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(inputs
|
||||
`(("gtk" ,gtk+)
|
||||
|
@ -3408,6 +3410,21 @@ USB transfers with your high-level application or system daemon.")
|
|||
("pkg-config" ,pkg-config)
|
||||
("vala" ,vala)
|
||||
("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")
|
||||
(synopsis "Document and image scanner")
|
||||
(description "Simple Scan is an easy-to-use application, designed to let
|
||||
|
@ -3778,6 +3795,46 @@ such as gzip tarballs.")
|
|||
(sha256
|
||||
(base32
|
||||
"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)
|
||||
(native-inputs
|
||||
`(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc.
|
||||
|
@ -3785,7 +3842,8 @@ such as gzip tarballs.")
|
|||
("intltool" ,intltool)
|
||||
("xsltproc" ,libxslt)))
|
||||
(inputs
|
||||
`(("gnome-desktop" ,gnome-desktop)
|
||||
`(("elogind" ,elogind)
|
||||
("gnome-desktop" ,gnome-desktop)
|
||||
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
|
||||
("gtk+" ,gtk+)
|
||||
("json-glib" ,json-glib)
|
||||
|
@ -4147,22 +4205,10 @@ Evolution (hence the name), but is now used by other packages as well.")
|
|||
users.")
|
||||
(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
|
||||
(package
|
||||
(name "network-manager")
|
||||
(version "1.0.6")
|
||||
(version "1.0.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
||||
|
@ -4170,8 +4216,7 @@ users.")
|
|||
"NetworkManager-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1galh9j95yw33iv1jj8zz0h88ahx8gm5mqmam7zq9f730cj01siq"))
|
||||
(patches (list %network-manager-glib-duplicate-test-patch))))
|
||||
"1g4z2wg036n0njqp8fycrisj46l3yda6pl00l4rg9nfz862cxkqv"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out"
|
||||
"doc")) ; 8 MiB of gtk-doc HTML
|
||||
|
@ -4194,6 +4239,19 @@ users.")
|
|||
(string-append "--with-dhclient=" dhclient)))
|
||||
#: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
|
||||
(lambda _
|
||||
;; For the missing /etc/machine-id.
|
||||
|
@ -4242,7 +4300,7 @@ services.")
|
|||
(define-public network-manager-applet
|
||||
(package
|
||||
(name "network-manager-applet")
|
||||
(version "1.0.6")
|
||||
(version "1.0.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/" name "/"
|
||||
|
@ -4250,7 +4308,7 @@ services.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1yj0m6fb9v12d0di0rfmk3hx1vmygjkiff2c476rf792sbh56kax"))))
|
||||
"1szh5jyijxm6z55irkp5s44pwah0nikss40mx7pvpk38m8zaqidh"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments '(#:configure-flags '("--disable-migration")))
|
||||
(native-inputs
|
||||
|
@ -4634,13 +4692,17 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.")
|
|||
("gobject-introspection" ,gobject-introspection)
|
||||
("intltool" ,intltool)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("gtk+" ,gtk+))) ; required by libnautilus-extension.pc
|
||||
(inputs
|
||||
;; TODO: add gvfs support.
|
||||
`(("dconf" ,dconf)
|
||||
("exempi" ,exempi)
|
||||
("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)
|
||||
("libxml2" ,libxml2)))
|
||||
(synopsis "File manager for GNOME")
|
||||
|
@ -4783,6 +4845,7 @@ software that do not provide their own configuration interface.")
|
|||
;; TODO: Add more packages according to:
|
||||
;; <https://packages.debian.org/jessie/gnome-core>.
|
||||
`(("adwaita-icon-theme" ,adwaita-icon-theme)
|
||||
("font-cantarell" ,font-cantarell)
|
||||
("at-spi2-core" ,at-spi2-core)
|
||||
("dbus" ,dbus)
|
||||
("dconf" ,dconf)
|
||||
|
@ -4805,9 +4868,63 @@ software that do not provide their own configuration interface.")
|
|||
("totem" ,totem)
|
||||
("yelp" ,yelp)
|
||||
("zenity" ,zenity)))
|
||||
(synopsis "Desktop environment (meta-package)")
|
||||
(synopsis "The GNU desktop environment")
|
||||
(home-page "https://www.gnome.org/")
|
||||
(description
|
||||
"GNOME is an intutive and attractive desktop environment. It aims to be
|
||||
an easy and elegant way to use your computer.")
|
||||
"GNOME is the graphical desktop for GNU. It includes a wide variety of
|
||||
applications for browsing the web, editing text and images, creating
|
||||
documents and diagrams, playing media, scanning, and much more.")
|
||||
(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+))))
|
||||
|
|
|
@ -177,7 +177,7 @@ in the Mozilla clients.")
|
|||
(define-public nss
|
||||
(package
|
||||
(name "nss")
|
||||
(version "3.21")
|
||||
(version "3.21.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (let ((version-with-underscores
|
||||
|
@ -188,7 +188,7 @@ in the Mozilla clients.")
|
|||
"nss-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"0fbjx3xsdm4gjc1gyzy2z315cvyw7yilsm7p9w75rpbwgl15nyiz"))
|
||||
"0knr99yc8sba2ga6x1gwhg9gr1dmgcl344g3bmxm8c364i2vpxns"))
|
||||
;; Create nss.pc and nss-config.
|
||||
(patches (list (search-patch "nss-pkgconfig.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
|
@ -290,7 +290,25 @@ standards.")
|
|||
(patches (map search-patch
|
||||
'("icecat-avoid-bundled-includes.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)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Ludovic Courtès <ludo@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.
|
||||
;;;
|
||||
|
@ -25,6 +27,8 @@
|
|||
#:use-module (guix build-system cmake)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages boost)
|
||||
|
@ -32,14 +36,96 @@
|
|||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages multiprecision)
|
||||
#:use-module (gnu packages boost)
|
||||
#: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 sdl)
|
||||
#:use-module (gnu packages video)
|
||||
#: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 pipeline—modeling, 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
|
||||
(package
|
||||
(name "cgal")
|
||||
|
@ -89,7 +175,8 @@ many more.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))))
|
||||
"1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c"))
|
||||
(patches (map search-patch '("ilmbase-fix-tests.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(home-page "http://www.openexr.com/")
|
||||
(synopsis "Utility C++ libraries for threads, maths, and exceptions")
|
||||
|
@ -119,6 +206,20 @@ exception-handling library.")
|
|||
"\"/tmp/\"")))
|
||||
(patches (list (search-patch "openexr-missing-samples.patch")))))
|
||||
(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
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; 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>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -20,10 +20,11 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(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 download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages audio)
|
||||
#:use-module (gnu packages bison)
|
||||
|
@ -61,14 +62,14 @@
|
|||
(define-public orc
|
||||
(package
|
||||
(name "orc")
|
||||
(version "0.4.24")
|
||||
(version "0.4.25")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gstreamer.freedesktop.org/data/src/"
|
||||
"orc/orc-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"16ykgdrgxr6pfpy931p979cs68klvwmk3ii1k0a00wr4nn9x931k"))))
|
||||
"1lak3hyvvb0w9avzmf0a8vayb7vqhj4m709q1czlhvgjb15dbcf1"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:phases
|
||||
(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
|
||||
compression formats through the use of the libav library.")
|
||||
(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)))))
|
||||
|
|
|
@ -433,6 +433,35 @@ in the GNOME project.")
|
|||
(license license:lgpl2.0+)
|
||||
(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
|
||||
(package
|
||||
(name "at-spi2-core")
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Christopher Allan Webber <cwebber@dustycloud.org>
|
||||
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
|
||||
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -255,7 +256,16 @@ without requiring the source code to be rewritten.")
|
|||
("flex" ,flex)
|
||||
("texinfo" ,texinfo)
|
||||
("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")))))))
|
||||
|
||||
|
||||
;;;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 Alex Kost <alezost@gmail.com>
|
||||
;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2015 Amirouche Boubekki <amirouche@hypermove.net>
|
||||
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -547,14 +548,15 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
|
|||
(define-public vigra
|
||||
(package
|
||||
(name "vigra")
|
||||
(version "1.10.0")
|
||||
(version "1.11.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hci.iwr.uni-heidelberg.de/vigra/vigra-"
|
||||
version "-src.tar.gz"))
|
||||
(sha256 (base32
|
||||
"16d0jvz3k49niljg9qvvlyxxl15yk0300xkymvyznlmvn1hs7m22"))))
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/ukoethe/vigra/releases/download/"
|
||||
"Version-1-11-0/vigra-"
|
||||
version "-src.tar.gz"))
|
||||
(sha256 (base32
|
||||
"1jzm79kqiiilvys3b8mlzy9cvmiirrcwsrlg19qd9rza8zipsqb8"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("boost" ,boost)
|
||||
|
@ -576,6 +578,7 @@ graphics image formats like PNG, BMP, JPEG, TIFF and others.")
|
|||
("python2-sphinx" ,python2-sphinx)))
|
||||
(arguments
|
||||
`(#:test-target "check"
|
||||
#:parallel-build? #f ; parallel builds trigger an ICE
|
||||
#:configure-flags
|
||||
(list "-Wno-dev" ; suppress developer mode with lots of warnings
|
||||
(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-8158.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)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
|
||||
;;; Copyright © 2014 Kevin Lemonnier <lemonnierk@ulrar.net>
|
||||
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -17,32 +19,117 @@
|
|||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;; TODO: Add ruby
|
||||
|
||||
(define-module (gnu packages weechat)
|
||||
(define-module (gnu packages irc)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#: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 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 curl)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages cyrus-sasl)
|
||||
#:use-module (gnu packages autogen)
|
||||
#: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 tls)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module ((guix licenses) #:select (gpl3)))
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tls))
|
||||
|
||||
(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
|
||||
(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
|
||||
and extensible with plugins and scripts.")
|
||||
(home-page "http://www.weechat.org/")
|
||||
(license gpl3)))
|
||||
(license license:gpl3)))
|
|
@ -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+)))
|
|
@ -139,9 +139,8 @@ is implemented.")
|
|||
(version "1.9.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://www.apache.org/dist/ant/source/apache-ant-"
|
||||
version "-src.tar.gz"))
|
||||
(uri (string-append "mirror://apache/ant/source/apache-ant-"
|
||||
version "-src.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1396wflczyxjxl603dhxjvd559f289lha9y2f04f71c7hapjl3am"))))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2014 Eric Bavier <address@hidden>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -27,7 +28,7 @@
|
|||
(define-public jrnl
|
||||
(package
|
||||
(name "jrnl")
|
||||
(version "1.8.4")
|
||||
(version "1.9.7")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -36,11 +37,10 @@
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"019ky09sj5i7frmca0imv4jm46mn3f4lzah2wmiwxh22cisj7ksn"))))
|
||||
"0mfq7hhw5np2dj9jlxpyyk2cg9i0xgz2brb894d928hczszy97bq"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("python-setuptools" ,python-setuptools)
|
||||
("behave" ,behave)))
|
||||
`(("behave" ,behave)))
|
||||
(inputs
|
||||
`(("python" ,python)
|
||||
("python-keyring" ,python-keyring)
|
||||
|
|
|
@ -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
|
||||
;; the lgpl2.1. Some source files are under non-copyleft licenses.
|
||||
(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+)))
|
||||
|
|
|
@ -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)))
|
|
@ -21,6 +21,7 @@
|
|||
#:use-module (guix utils)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages algebra)
|
||||
#:use-module (gnu packages audio)
|
||||
|
@ -68,18 +69,67 @@
|
|||
#:use-module (gnu packages yasm)
|
||||
#: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
|
||||
(package
|
||||
(name "kodi")
|
||||
(version "15.2")
|
||||
(version "16.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"043i0f1crx9glwxil4xm45z5kxpkrx316gi4ir4d3rbd5safp2nx"))
|
||||
"0iirspvv7czf785l2lqf232dvdaj87srbn9ni97ngvnd6w9yl884"))
|
||||
(snippet
|
||||
;; Delete bundled ffmpeg.
|
||||
;; TODO: Delete every other bundled library.
|
||||
|
@ -161,7 +211,9 @@
|
|||
("bluez" ,bluez)
|
||||
("boost" ,boost)
|
||||
("bzip2" ,bzip2)
|
||||
("crossguid" ,crossguid)
|
||||
("curl" ,curl)
|
||||
("dcadec" ,dcadec)
|
||||
("dbus" ,dbus)
|
||||
("enca" ,enca)
|
||||
("eudev" ,eudev)
|
||||
|
@ -213,6 +265,7 @@
|
|||
("taglib" ,taglib)
|
||||
("tinyxml" ,tinyxml)
|
||||
("unzip" ,unzip)
|
||||
("util-linux" ,util-linux)
|
||||
("zip" ,zip)
|
||||
("zlib" ,zlib)))
|
||||
(synopsis "Media center for home theater computers")
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; 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 Eric Dvorsak <eric@dvorsak.fr>
|
||||
;;;
|
||||
|
@ -32,16 +32,15 @@
|
|||
(define-public libevent
|
||||
(package
|
||||
(name "libevent")
|
||||
(version "2.0.21")
|
||||
(version "2.0.22")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/downloads/libevent/libevent/libevent-"
|
||||
version
|
||||
"-stable.tar.gz"))
|
||||
"https://github.com/libevent/libevent/releases/download/release-"
|
||||
version "-stable/libevent-" version "-stable.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xblymln9vihdmf1aqkp8chwvnhpdch3786bh30bj75slnl31992"))
|
||||
"18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki"))
|
||||
(patches (list (search-patch "libevent-dns-tests.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -21,7 +22,7 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#: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))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
|
@ -373,6 +374,33 @@ CorelDRAW documents of all versions.")
|
|||
Apple Keynote documents. It currently supports Keynote versions 2 to 5.")
|
||||
(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
|
||||
(package
|
||||
(name "libexttextcat")
|
||||
|
@ -681,7 +709,7 @@ and to return information on pronunciations, meanings and synonyms.")
|
|||
(define-public libreoffice
|
||||
(package
|
||||
(name "libreoffice")
|
||||
(version "5.0.3.2")
|
||||
(version "5.0.5.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -690,7 +718,7 @@ and to return information on pronunciations, meanings and synonyms.")
|
|||
"http://download.documentfoundation.org/libreoffice/src/"
|
||||
(version-prefix version 3) "/libreoffice-" version ".tar.xz"))
|
||||
(sha256 (base32
|
||||
"1gflcsnw7bx02jbb2x5darf56x0qgia03ylaycadk68ikibckybp"))))
|
||||
"120vcxpxzs0za76fyfry281ysv6d1ianb37d1yq8py8chkdjkrqy"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(;; 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)
|
||||
("zip" ,zip)))
|
||||
(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.
|
||||
#: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
|
@ -220,7 +220,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
|
|||
(search-path %load-path file)))
|
||||
|
||||
(define-public linux-libre
|
||||
(let* ((version "4.4.3")
|
||||
(let* ((version "4.5")
|
||||
(build-phase
|
||||
'(lambda* (#:key system inputs #:allow-other-keys #:rest args)
|
||||
;; 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))
|
||||
(sha256
|
||||
(base32
|
||||
"06wl6gvhds6j6aaryzpz4jngdf3v70spvp1xb7k2c03kvm9v5f4v"))))
|
||||
"0km863vwy557flpygkr869yshpjs1v11ni78p8k9p9nm31ai6yn3"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems '("x86_64-linux" "i686-linux"))
|
||||
(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)
|
||||
("patch/freedo+gnu" ,%boot-logo-patch)
|
||||
|
||||
,@(let ((conf (kernel-config (or (%current-target-system)
|
||||
(%current-system)))))
|
||||
,@(let ((conf (kernel-config
|
||||
(or (%current-target-system)
|
||||
(%current-system))
|
||||
#:variant (version-major+minor version))))
|
||||
(if conf
|
||||
`(("kconfig" ,conf))
|
||||
'()))))
|
||||
|
@ -326,16 +328,33 @@ It has been modified to remove all non-free binary blobs.")
|
|||
(license license:gpl2)
|
||||
(home-page "http://www.gnu.org/software/linux-libre/"))))
|
||||
|
||||
(define-public linux-libre-4.1
|
||||
(define-public linux-libre-4.4
|
||||
(package
|
||||
(inherit linux-libre)
|
||||
(version "4.1.18")
|
||||
(version "4.4.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (linux-libre-urls version))
|
||||
(sha256
|
||||
(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
|
||||
(let ((conf (kernel-config (or (%current-target-system)
|
||||
(%current-system))
|
||||
|
@ -2472,7 +2491,7 @@ and copy/paste text in the console and in xterm.")
|
|||
(define-public btrfs-progs
|
||||
(package
|
||||
(name "btrfs-progs")
|
||||
(version "4.4")
|
||||
(version "4.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jssv1ys4nw2jf7mkp58c19yspaa8ybf48fxsrhhp0683mzpr73p"))))
|
||||
"1z5882zx9jx02vyg067siws0irsl8pg37myx17hr4imn9ypf6r4r"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:test-target "test"
|
||||
|
@ -2505,3 +2524,35 @@ easy administration.")
|
|||
;; GPL2+: crc32.c, radix-tree.c, raid6.c, rbtree.c.
|
||||
;; GPL2: Everything else.
|
||||
(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)))
|
||||
|
|
|
@ -11,6 +11,8 @@
|
|||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.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.
|
||||
;;;
|
||||
|
@ -69,8 +71,8 @@
|
|||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module ((guix licenses)
|
||||
#:select (gpl2 gpl2+ gpl3+ lgpl2.1 lgpl2.1+ lgpl3+ non-copyleft
|
||||
(expat . license:expat)))
|
||||
#:select (gpl2 gpl2+ gpl3 gpl3+ lgpl2.1 lgpl2.1+ lgpl3+
|
||||
non-copyleft (expat . license:expat)))
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
|
@ -287,7 +289,7 @@ and corrections. It is based on a Bayesian filter.")
|
|||
(define-public offlineimap
|
||||
(package
|
||||
(name "offlineimap")
|
||||
(version "6.6.1")
|
||||
(version "6.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(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"))
|
||||
(sha256
|
||||
(base32
|
||||
"1c2b03856a78ripkpl9jjzj6yzyfb3rlrdnjx300s647l1xx8gxg"))))
|
||||
"0462mal2fxvavxhwjk1a6vsnspx07yniifa687dwg46aplqznin4"))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs `(("python" ,python-2)))
|
||||
(arguments
|
||||
|
@ -629,7 +631,19 @@ which can add many functionalities to the base client.")
|
|||
(arguments
|
||||
`(#:configure-flags (list "--with-libgsasl"
|
||||
"--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
|
||||
"Simple and easy to use SMTP client with decent sendmail compatibility")
|
||||
(description
|
||||
|
@ -641,7 +655,7 @@ delivery.")
|
|||
(define-public exim
|
||||
(package
|
||||
(name "exim")
|
||||
(version "4.86")
|
||||
(version "4.86.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -651,7 +665,7 @@ delivery.")
|
|||
version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
"0mn4bxih9slrmll5262ayhf41ji43pjf1rv0y6xpy6x55v7g5k7i"))))
|
||||
"1cvfcc1hi60lydv8h3a2rxlfc0v2nflwpvzjj7h7cdsqs2pxwmkp"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("bdb" ,bdb)
|
||||
|
@ -1085,4 +1099,97 @@ deliver it in various ways.")
|
|||
;; with that information.
|
||||
(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+)))
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
|
||||
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.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 Mathieu Lirzin <mathieu.lirzin@openmailbox.org>
|
||||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
|
@ -177,7 +177,7 @@ numbers.")
|
|||
(define-public glpk
|
||||
(package
|
||||
(name "glpk")
|
||||
(version "4.58")
|
||||
(version "4.59")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -185,7 +185,7 @@ numbers.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jmrya04hgwnrxrqqs40i6m9cqka3q601cx3nh9ijyvlg90zlq24"))))
|
||||
"1bpbp5z0378kaj5bqmc5m2j5h9c7553p0s2j6a28badqghpbx673"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gmp" ,gmp)))
|
||||
|
@ -354,9 +354,7 @@ singular value problems.")
|
|||
("pango" ,pango)
|
||||
("gd" ,gd)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
;; Need 'tex', 'latex', 'pdflatex', 'kpsexand', and
|
||||
;; 'texhash' binaries.
|
||||
("texlive" ,texlive-bin)))
|
||||
("texlive" ,texlive-minimal)))
|
||||
(home-page "http://www.gnuplot.info")
|
||||
(synopsis "Command-line driven graphing utility")
|
||||
(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
|
||||
;; Try to keep installed files from leaking build directory names.
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out"))
|
||||
(fortran (assoc-ref inputs "gfortran")))
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* (map (lambda (file)
|
||||
(string-append out "/lib/petsc/conf/" file))
|
||||
'("petscvariables" "PETScConfig.cmake"))
|
||||
(((getcwd)) out))
|
||||
;; Make compiler references point to the store
|
||||
(substitute* (string-append out "/lib/petsc/conf/petscvariables")
|
||||
(("= g(cc|\\+\\+|fortran)" _ suffix)
|
||||
(string-append "= " fortran "/bin/g" suffix)))
|
||||
(("= (gcc|g\\+\\+|gfortran)" _ compiler)
|
||||
(string-append "= " (which compiler))))
|
||||
;; PETSc installs some build logs, which aren't necessary.
|
||||
(for-each (lambda (file)
|
||||
(let ((f (string-append out "/lib/petsc/conf/" file)))
|
||||
|
@ -643,6 +640,7 @@ scientific applications modeled by partial differential equations.")
|
|||
(method url-fetch)
|
||||
(uri (string-append "http://slepc.upv.es/download/download.php?"
|
||||
"filename=slepc-" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1pv5iqz2kc8sj49zsabyz4arnfpana8mjrhq31vzgk16xldk3d1a"))))
|
||||
|
|
|
@ -63,17 +63,21 @@
|
|||
(define-public libotr
|
||||
(package
|
||||
(name "libotr")
|
||||
(version "4.1.0")
|
||||
(version "4.1.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://otr.cypherpunks.ca/libotr-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0c6rkh58s6wqzcrpccwdik5qs91qj6dgd60a340d72gc80cqknsg"))))
|
||||
(base32
|
||||
"1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb"))
|
||||
(patches
|
||||
(list (search-patch "libotr-test-auth-fix.patch")))))
|
||||
(build-system gnu-build-system)
|
||||
(propagated-inputs
|
||||
`(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h
|
||||
(inputs `(("libgpg-error" ,libgpg-error)))
|
||||
(native-inputs `(("perl" ,perl))) ; for the test suite
|
||||
(synopsis "Off-the-Record (OTR) Messaging Library and Toolkit")
|
||||
(description
|
||||
"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/")
|
||||
(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
|
||||
(package
|
||||
(name "bitlbee")
|
||||
(version "3.4")
|
||||
(version "3.4.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://get.bitlbee.org/src/bitlbee-"
|
||||
(uri (string-append "https://get.bitlbee.org/src/bitlbee-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0plx4dryf8i6hz7vghg84z5f6w6rkw1l8ckl4c4wh5zxpd3ddfnf"))
|
||||
(patches (list (search-patch "bitlbee-configure-doc-fix.patch")))))
|
||||
(base32 "1qf0ypa9ba5jvsnpg9slmaran16hcc5fnfzbb1sdch1hjhchn2jh"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)
|
||||
("check" ,check)))
|
||||
|
@ -327,14 +320,14 @@ chat protocols.")
|
|||
(define-public pidgin-otr
|
||||
(package
|
||||
(name "pidgin-otr")
|
||||
(version "4.0.1")
|
||||
(version "4.0.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://otr.cypherpunks.ca/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"02pkkf86fh5jvzsdn9y78impsgzj1n0p81kc2girvk3vq941yy0v"))))
|
||||
"1i5s9rrgbyss9rszq6c6y53hwqyw1k86s40cpsfx5ccl9bprxdgl"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system python)
|
||||
#:use-module (gnu packages avahi)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages icu4c)
|
||||
|
@ -40,6 +41,7 @@
|
|||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages databases)
|
||||
|
@ -240,3 +242,34 @@ information about tracks being played to a scrobbler, such as Libre.FM.")
|
|||
;; instead.
|
||||
(home-page "http://mpd.wikia.com/wiki/Client:Mpdscribble")
|
||||
(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))))))
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||
;;; Copyright © 2016 Al McElrath <hello@yrns.org>
|
||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -49,6 +50,7 @@
|
|||
#:use-module (gnu packages fltk)
|
||||
#:use-module (gnu packages fonts)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gettext)
|
||||
|
@ -64,6 +66,7 @@
|
|||
#:use-module (gnu packages linux) ; for alsa-utils
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages mp3)
|
||||
#:use-module (gnu packages mpd)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages netpbm)
|
||||
#:use-module (gnu packages pdf)
|
||||
|
@ -817,7 +820,7 @@ projects.")
|
|||
(define-public frescobaldi
|
||||
(package
|
||||
(name "frescobaldi")
|
||||
(version "2.18.1")
|
||||
(version "2.18.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -825,7 +828,7 @@ projects.")
|
|||
version "/frescobaldi-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hflc6gck6dn17czc2ldai5j0ynfg3df8lqcggdry06qxsdbnns7"))))
|
||||
"1yns7nq2a2hz5rv4xjp21bgcdi1xj6fq48lqjrld7ypqqi5nfjp5"))))
|
||||
(build-system python-build-system)
|
||||
(inputs
|
||||
`(("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
|
||||
event-based scripts for scrobbling, notifications, etc.")
|
||||
(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, Monkey’s 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)))
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
(define-public nano
|
||||
(package
|
||||
(name "nano")
|
||||
(version "2.5.2")
|
||||
(version "2.5.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -36,7 +36,7 @@
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hgbmqzjy1pashb1g3qby75pqb7r5g9bmn1iajlx50082b2nmgc9"))))
|
||||
"1vhjrcydcfxqq1719vcsvqqnbjbq2523m00dhzag5vwzkc961c5j"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("gettext" ,gnu-gettext)
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
|
||||
;;; Copyright © 2015 Stefan Reichör <stefan@xsteve.at>
|
||||
;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
|
||||
;;;
|
||||
;;; 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
|
||||
intended as a substitute for the PPPStatus and EthStatus projects.")
|
||||
(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+)))
|
||||
|
|
|
@ -195,7 +195,7 @@ the Nix package manager.")
|
|||
;;
|
||||
;; Note: use a short commit id; when using the long one, the limit on socket
|
||||
;; file names is exceeded while running the tests.
|
||||
(let ((commit "c3f29bc928d5900971f65965feaae59e1272a3f7"))
|
||||
(let ((commit "71e2065a38cf2641b7eb8c557b0f043f5a42a649"))
|
||||
(package (inherit guix-0.9.0)
|
||||
(version (string-append "0.9.0." (string-take commit 7)))
|
||||
(source (origin
|
||||
|
@ -205,7 +205,7 @@ the Nix package manager.")
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"1mbikn6awgx3h08bzk3nz8xrqvxdjsbvzrbn26d6m8nrz96ya53a"))
|
||||
"0wrrywfdc27yxjns55qdz5si49c8zcb9q5557g2kx48dbm7p0dzw"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments guix-0.9.0)
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
(define-public parallel
|
||||
(package
|
||||
(name "parallel")
|
||||
(version "20160122")
|
||||
(version "20160222")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -50,7 +50,7 @@
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1xs8y8jh7wyjs27079xz0ja7xfi4dywz8d6hbkl44mafdnnfjfiy"))))
|
||||
"1sjmvinwr9j2a0jdk9y9nf2x4hhzcbl529slkwpz0vva0cwybywd"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("perl" ,perl)))
|
||||
(home-page "http://www.gnu.org/software/parallel/")
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2015 Aljosha Papsch <misc@rpapsch.de>
|
||||
;;; 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.
|
||||
;;;
|
||||
|
@ -25,16 +27,20 @@
|
|||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages gtk)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (gnu packages man)
|
||||
#:use-module (gnu packages ncurses)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages qt)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xorg)
|
||||
#: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
|
||||
any X11 window.")
|
||||
(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+)))
|
||||
|
|
|
@ -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.'
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
@ -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
|
||||
|
|
@ -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!
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
@ -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());
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
@ -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()
|
||||
|
|
@ -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) {
|
||||
|
|
@ -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);
|
||||
|
||||
|
|
@ -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)
|
||||
|
|
@ -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);
|
||||
|
|
@ -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;
|
||||
|
|
@ -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 );
|
||||
|
|
@ -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) {
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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");
|
|
@ -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) {
|
|
@ -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
Loading…
Reference in New Issue