From aae03c484f21832bf48ac579f91d7fa01aad9f88 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 6 Apr 2016 01:26:23 +0200 Subject: gnu: Add singular. * gnu/packages/algebra.scm (singular): New variable. --- gnu/packages/algebra.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index a7455feb88..bbb708f749 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -22,11 +22,15 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) + #:use-module (gnu packages doxygen) + #:use-module (gnu packages graphviz) #:use-module (gnu packages multiprecision) + #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages perl) #:use-module (gnu packages readline) #:use-module (gnu packages flex) + #:use-module (gnu packages python) #:use-module (gnu packages texlive) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) @@ -322,6 +326,46 @@ matrices, and polynomials over the integers and over finite fields.") (license license:gpl2+) (home-page "http://shoup.net/ntl/"))) +(define-public singular + (package + (name "singular") + (version "4.0.3") + (source (origin + (method url-fetch) + (uri (string-append "http://www.mathematik.uni-kl.de/ftp/pub/" + "Math/Singular/SOURCES/" + (string-join (string-split version #\.) "-") + "/singular-" version ".tar.gz")) + (sha256 (base32 + "0lc76137072yyizdbmrjwan3gcgfsvp7p6hkvyn8a15la0qqkgg2")))) + (build-system gnu-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("perl" ,perl))) + (inputs + `(("cddlib" ,cddlib) + ("gmp" ,gmp) + ("flint" ,flint) + ("mpfr" ,mpfr) + ("ntl" ,ntl) + ("python" ,python-2) + ("readline" ,readline))) + (arguments + `(#:configure-flags + (list (string-append "--with-ntl=" + (assoc-ref %build-inputs "ntl"))))) + (synopsis "Computer algebra system for polynomial computations") + (description + "Singular is a computer algebra system for polynomial computations, +with special emphasis on commutative and non-commutative algebra, algebraic +geometry and singularity theory.") + ;; Singular itself is dual licensed gpl2 or gpl3, but some of the + ;; libraries with which it links are licensed under lgpl3+, so the + ;; combined work becomes gpl3. See COPYING in the source code. + (license license:gpl3) + (home-page "http://www.singular.uni-kl.de/index.php"))) + (define-public bc (package (name "bc") -- cgit 1.4.1 From 7407f7fef6b82adf89d28a4c7dc1e8ed1614f215 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Tue, 5 Apr 2016 16:34:48 -0400 Subject: gnu: Add wmnd. * gnu/packages/gnustep.scm (wmnd): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/gnustep.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index ae97eb7936..8ca32e47cf 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -127,3 +127,28 @@ of battery life remain, battery life remaining (with both a percentage and a graph), and battery status (high - green, low - yellow, or critical - red).") (license gpl2))) +(define-public wmnd + (package + (name "wmnd") + (version "0.4.17") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.thregr.org/~wavexx/software/wmnd/releases/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1amkbiwgr31gwkcp7wrjsr7aj1kns8bpmjpv70n86wb8v9mpm828")))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxpm" ,libxpm))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.thregr.org/~wavexx/software/wmnd/") + (synopsis "Network interface monitor") + (description + "WMND is a dockapp for monitoring network interfaces under WindowMaker and +other compatible window managers.") + (license gpl2+))) -- cgit 1.4.1 From 4971d5d0728bcdb79eacf070d6f3b8efb9018924 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sat, 2 Apr 2016 21:43:44 +0200 Subject: gnu: Add progress. * gnu/packages/admin.scm (progress): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/admin.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 9636ee939f..406aa0eece 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -100,6 +100,35 @@ usual file attributes can be checked for inconsistencies.") (home-page "http://aide.sourceforge.net/") (license license:gpl2+))) +(define-public progress + (package + (name "progress") + (version "0.13") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/Xfennec/" + name "/archive/v" version ".tar.gz")) + (sha256 + (base32 "133iar4vq5vlklydb4cyazjy6slmpbndrws474mg738bd8avc30n")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (inputs + `(("ncurses" ,ncurses))) + (arguments + `(#:tests? #f ; There is no test suite. + #:make-flags (list "CC=gcc" "LDFLAGS+=-lncurses" + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) ; There's no configure phase. + (home-page "https://github.com/Xfennec/progress") + (synopsis "Program to view the progress of the coreutils commands") + (description "A program that looks for coreutils basic commands (cp, mv, +dd, tar, gzip/gunzip, cat, etc.) currently running on your system and displays +the percentage of copied data. It can also show estimated time and throughput, +and provides a \"top-like\" mode (monitoring).") + (license license:gpl3+))) + (define-public dmd ;; Deprecated. Kept around "just in case." (let ((base-version "0.2") -- cgit 1.4.1 From 4323a5f0fd50ac247c835757546e3496b91300db Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 6 Apr 2016 13:02:04 +0200 Subject: gnu: Add python-pkgconfig. * gnu/packages/python.scm (python-pkgconfig, python2-pkgconfig): New variables. --- gnu/packages/python.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c1813e38b4..25bed2a641 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8614,3 +8614,49 @@ Service (S3) protocol, including S3 itself. It supports rsync-like backup, GnuPG encryption, and more. It also supports management of Amazon's CloudFront content delivery network.") (license gpl2+))) + +(define-public python-pkgconfig + (package + (name "python-pkgconfig") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pkgconfig" version)) + (sha256 + (base32 + "1pw0kmvc57sjmaxi6c54fqsnihqj6hvhc9y1vaz36axafzqam7bh")))) + (build-system python-build-system) + (native-inputs + `(("python-nose" ,python-nose) + ("python-setuptools" ,python-setuptools))) + (inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(;; Tests fail with "ValueError: _type_ 'v' not supported" on Python 3, + ;; and on Python 2 they need the dl module deprecated since Python 2.6. + #:tests? #f + ;; Prevent creation of the egg. This works around + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20765 . + #:configure-flags '("--single-version-externally-managed" "--root=/") + ;; Hard-code the path to pkg-config. + #:phases + (modify-phases %standard-phases + (add-before + 'build 'patch + (lambda _ + (substitute* "pkgconfig/pkgconfig.py" + (("cmd = 'pkg-config") + (string-append "cmd = '" (which "pkg-config")))) + #t))))) + (home-page "http://github.com/matze/pkgconfig") + (synopsis "Python interface for pkg-config") + (description "This module provides a Python interface to pkg-config. It +can be used to find all pkg-config packages, check if a package exists, +check if a package meets certain version requirements, query CFLAGS and +LDFLAGS and parse the output to build extensions with setup.py.") + (license expat))) + +(define-public python2-pkgconfig + (package-with-python2 python-pkgconfig)) + -- cgit 1.4.1 From bd688698b682dcec68ed004f262e71850ee7b528 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Wed, 6 Apr 2016 13:50:36 -0400 Subject: gnu: Add wmcpuload. * gnu/packages/gnustep.scm (wmcpuload): New variable. Signed-off-by: Leo Famulari --- gnu/packages/gnustep.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index 8ca32e47cf..8c43085eaf 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -152,3 +152,32 @@ graph), and battery status (high - green, low - yellow, or critical - red).") "WMND is a dockapp for monitoring network interfaces under WindowMaker and other compatible window managers.") (license gpl2+))) + +(define-public wmcpuload + (package + (name "wmcpuload") + (version "1.0.1") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://debian/pool/main/w/wmcpuload/" + name "_" version ".orig.tar.gz")) + (sha256 + (base32 + "0irlns4cvxy2mnicx75bya166hdxq7h8bphds3ligijcl9fzgs6n")))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxpm" ,libxpm))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://windowmaker.org/dockapps/?name=wmcpuload") + (synopsis "Monitor CPU usage") + (description + "Wmcpuload displays the current CPU usage, expressed as a percentile and a +chart, and has an LCD look-alike user interface. The back-light may be turned +on and off by clicking the mouse button over the application. If the CPU usage +hits a certain threshold, an alarm-mode will alert you by turning back-light +on.") + (license gpl2+))) -- cgit 1.4.1 From 17946534a4d49f375530f0af80b797172066b1fc Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 6 Apr 2016 16:11:57 -0400 Subject: gnu: hexchat: Update to 2.12.0. * gnu/packages/messaging.scm (hexchat): Update to 2.12.0. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 5dc4639bb4..1646d70b0e 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -138,14 +138,14 @@ identi.ca and status.net).") (define-public hexchat (package (name "hexchat") - (version "2.10.1") + (version "2.12.0") (source (origin (method url-fetch) (uri (string-append "https://dl.hexchat.net/hexchat/hexchat-" version ".tar.xz")) (sha256 (base32 - "1ag9rmfisv0hsbk05jq4f1rnap7kwg90vgbmkr9zklkh6imfxk7z")))) + "17fncwza5r80z9r6j1lrh7h375hp4w6pay08zgnfc3qca6bjy1y2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) -- cgit 1.4.1 From 0ea4079f345a3b1583ba5d55f83f1f947b9a12fd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 28 Mar 2016 19:59:53 +0300 Subject: gnu: abiword: Update to 3.0.1. * gnu/packages/abiword.scm (abiword): Update to 3.0.1. [source]: Remove 4 patches. [arguments]: Disable tests. [inputs]: Add libxslt, replace gtk+-2 with gtk+. [native-inputs]: Add libtool. * gnu/packages/patches/abiword-link-plugins-against-backend.patch, gnu/packages/patches/abiword-no-include-glib-internal-headers.patch, gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch, gnu/packages/patches/abiword-use-proper-png-api.patch: Remove files. * gnu-system.am (dist_patch_DATA): Remove them. --- gnu-system.am | 4 - gnu/packages/abiword.scm | 27 +- .../abiword-link-plugins-against-backend.patch | 639 --------------------- .../abiword-no-include-glib-internal-headers.patch | 13 - .../abiword-pass-no-undefined-to-linker.patch | 608 -------------------- .../patches/abiword-use-proper-png-api.patch | 175 ------ 6 files changed, 17 insertions(+), 1449 deletions(-) delete mode 100644 gnu/packages/patches/abiword-link-plugins-against-backend.patch delete mode 100644 gnu/packages/patches/abiword-no-include-glib-internal-headers.patch delete mode 100644 gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch delete mode 100644 gnu/packages/patches/abiword-use-proper-png-api.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index c8048b7750..824cd8ec13 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -397,10 +397,6 @@ GNU_SYSTEM_MODULES = \ patchdir = $(guilemoduledir)/gnu/packages/patches dist_patch_DATA = \ gnu/packages/patches/abiword-explictly-cast-bools.patch \ - gnu/packages/patches/abiword-link-plugins-against-backend.patch \ - gnu/packages/patches/abiword-no-include-glib-internal-headers.patch \ - gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch \ - gnu/packages/patches/abiword-use-proper-png-api.patch \ gnu/packages/patches/abiword-wmf-version-lookup-fix.patch \ gnu/packages/patches/acl-hurd-path-max.patch \ gnu/packages/patches/aegis-constness-error.patch \ diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index c6f259a2dd..cac4881f1f 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Marek Benc +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages enchant) @@ -41,7 +43,7 @@ (define-public abiword (package (name "abiword") - (version "2.8.6") + (version "3.0.1") (source (origin (method url-fetch) @@ -49,15 +51,11 @@ (string-append "http://abisource.org/downloads/" name "/" version "/source/" name "-" version ".tar.gz")) (sha256 - (base32 "059sd2apxdmcacc4pll880i7vm18h0kyjsq299m1mz3c7ak8k46r")) + (base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570")) (patches (list (search-patch "abiword-wmf-version-lookup-fix.patch") - (search-patch "abiword-no-include-glib-internal-headers.patch") - (search-patch "abiword-explictly-cast-bools.patch") - (search-patch "abiword-use-proper-png-api.patch") - (search-patch "abiword-pass-no-undefined-to-linker.patch") - (search-patch "abiword-link-plugins-against-backend.patch"))))) + (search-patch "abiword-explictly-cast-bools.patch"))))) (build-system gnu-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword @@ -65,7 +63,7 @@ (list "--enable-clipart" ;; TODO: The following plugins have unresolved "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda, - (string-append ;; wordperfect, psion, mathview, goffice. + (string-append ;; wordperfect, psion, mathview, goffice, epub. "--enable-plugins=" "applix " "babelfish " "bmp " "clarisworks " "collab " "command " "docbook " "eml " "freetranslation " "garble " "gdict " "gimp " @@ -73,14 +71,21 @@ "loadbindings " "mht " "mif " "mswrite " "opendocument " "openwriter " "openxml " "opml " "ots " "paint " "passepartout " "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict " - "wikipedia " "wmf " "wml " "xslfo")))) + "wikipedia " "wmf " "wml " "xslfo")) + ;; tests fail with: Gtk-CRITICAL **: gtk_settings_get_for_screen: + ;; assertion 'GDK_IS_SCREEN (screen)' failed + ;; GLib-GObject-CRITICAL **: g_object_get_qdata: + ;; assertion 'G_IS_OBJECT (object)' failed + ;; Manually starting the X server before the test phase did not help + ;; the tests to pass. + #:tests? #f)) (inputs `(("boost" ,boost) ("enchant" ,enchant) ("fontconfig" ,fontconfig) ("fribidi" ,fribidi) ("glib" ,glib) - ("gtk+" ,gtk+-2) + ("gtk+" ,gtk+) ("libglade" ,libglade) ("libgsf" ,libgsf) ("libjpeg" ,libjpeg) @@ -88,6 +93,7 @@ ("librsvg" ,librsvg) ("libwmf" ,libwmf) ("libxml2" ,libxml2) + ("libxslt" ,libxslt) ("ots" ,ots) ("popt" ,popt) ("readline" ,readline) @@ -96,6 +102,7 @@ (native-inputs `(("intltool" ,intltool) ("glib:bin" ,glib "bin") + ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (home-page "http://abisource.org/") (synopsis "Word processing program") diff --git a/gnu/packages/patches/abiword-link-plugins-against-backend.patch b/gnu/packages/patches/abiword-link-plugins-against-backend.patch deleted file mode 100644 index fb8fbfc98b..0000000000 --- a/gnu/packages/patches/abiword-link-plugins-against-backend.patch +++ /dev/null @@ -1,639 +0,0 @@ -Link plugins against libabiword. This is because --no-undefined is passed to -the linker when linking and without libabiword, it would fail. - ---- a/plugins/aiksaurus/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/aiksaurus/Makefile.in 2014-09-06 14:58:36.480413350 +0200 -@@ -422,7 +422,8 @@ - plugin_LTLIBRARIES = aiksaurus.la - aiksaurus_la_LIBADD = \ - $(platform_lib) \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - aiksaurus_la_LDFLAGS = \ - $(AIKSAURUS_LIBS) \ - ---- a/plugins/applix/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/applix/Makefile.in 2014-09-06 14:58:54.416413938 +0200 -@@ -425,7 +425,8 @@ - @APPLIX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @APPLIX_BUILTIN_FALSE@plugin_LTLIBRARIES = applix.la - applix_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - applix_la_LDFLAGS = \ - $(APPLIX_LIBS) \ - ---- a/plugins/babelfish/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/babelfish/Makefile.in 2014-09-06 14:59:09.220414422 +0200 -@@ -425,7 +425,8 @@ - @BABELFISH_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @BABELFISH_BUILTIN_FALSE@plugin_LTLIBRARIES = babelfish.la - babelfish_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - babelfish_la_LDFLAGS = \ - $(BABELFISH_LIBS) \ - ---- a/plugins/bmp/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/bmp/Makefile.in 2014-09-06 14:59:53.928415886 +0200 -@@ -425,7 +425,8 @@ - @BMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @BMP_BUILTIN_FALSE@plugin_LTLIBRARIES = bmp.la - bmp_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - bmp_la_LDFLAGS = \ - $(BMP_LIBS) \ - ---- a/plugins/clarisworks/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/clarisworks/Makefile.in 2014-09-06 15:00:06.148416286 +0200 -@@ -427,7 +427,8 @@ - @CLARISWORKS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @CLARISWORKS_BUILTIN_FALSE@plugin_LTLIBRARIES = clarisworks.la - clarisworks_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - clarisworks_la_LDFLAGS = \ - $(CLARISWORKS_LIBS) \ - ---- a/plugins/collab/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/collab/Makefile.in 2014-09-06 15:02:04.000420145 +0200 -@@ -428,7 +428,8 @@ - @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = collab.la - @TOOLKIT_COCOA_FALSE@collab_la_LIBADD = \ - @TOOLKIT_COCOA_FALSE@ backends/libbackends.la \ --@TOOLKIT_COCOA_FALSE@ core/libcore.la -+@TOOLKIT_COCOA_FALSE@ core/libcore.la \ -+@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la - - @TOOLKIT_COCOA_FALSE@collab_la_LDFLAGS = \ - @TOOLKIT_COCOA_FALSE@ $(COLLAB_LIBS) \ - ---- a/plugins/command/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/command/Makefile.in 2014-09-06 15:02:41.208421363 +0200 -@@ -420,7 +420,8 @@ - @TOOLKIT_COCOA_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = command.la - @TOOLKIT_COCOA_FALSE@command_la_LIBADD = \ --@TOOLKIT_COCOA_FALSE@ xp/libxp.la -+@TOOLKIT_COCOA_FALSE@ xp/libxp.la \ -+@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la - - @TOOLKIT_COCOA_FALSE@command_la_LDFLAGS = \ - @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \ - ---- a/plugins/docbook/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/docbook/Makefile.in 2014-09-06 15:02:52.128421720 +0200 -@@ -425,7 +425,8 @@ - @DOCBOOK_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @DOCBOOK_BUILTIN_FALSE@plugin_LTLIBRARIES = docbook.la - docbook_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - docbook_la_LDFLAGS = \ - $(DOCBOOK_LIBS) \ - ---- a/plugins/eml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/eml/Makefile.in 2014-09-06 15:03:02.760422068 +0200 -@@ -425,7 +425,8 @@ - @EML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @EML_BUILTIN_FALSE@plugin_LTLIBRARIES = eml.la - eml_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - eml_la_LDFLAGS = \ - $(EML_LIBS) \ - ---- a/plugins/freetranslation/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/freetranslation/Makefile.in 2014-09-06 15:03:17.656422556 +0200 -@@ -427,7 +427,8 @@ - @FREETRANSLATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @FREETRANSLATION_BUILTIN_FALSE@plugin_LTLIBRARIES = freetranslation.la - freetranslation_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - freetranslation_la_LDFLAGS = \ - $(FREETRANSLATION_LIBS) \ - ---- a/plugins/garble/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/garble/Makefile.in 2014-09-06 15:03:48.192423556 +0200 -@@ -427,7 +427,8 @@ - @TOOLKIT_COCOA_FALSE@plugin_LTLIBRARIES = garble.la - @TOOLKIT_COCOA_FALSE@garble_la_LIBADD = \ - @TOOLKIT_COCOA_FALSE@ xp/libxp.la \ --@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg -+@TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) $(PNG_LIBS) -ljpeg \ -+@TOOLKIT_COCOA_FALSE@ @top_builddir@/src/libabiword-2.8.la - - @TOOLKIT_COCOA_FALSE@garble_la_LDFLAGS = \ - @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \ - ---- a/plugins/gda/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/gda/Makefile.in 2014-09-06 15:04:08.012424205 +0200 -@@ -419,7 +419,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = gda.la - gda_la_LIBADD = \ -- unix/libunix.la -+ unix/libunix.la \ -+ @top_builddir@/src/libabiword-2.8.la - - gda_la_LDFLAGS = \ - $(GDA_LIBS) \ - ---- a/plugins/gdict/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/gdict/Makefile.in 2014-09-06 15:04:37.888425183 +0200 -@@ -423,7 +423,8 @@ - @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugindir = $(ABIWORD_PLUGINSDIR) - @GDICT_BUILTIN_FALSE@@TOOLKIT_GTK_TRUE@plugin_LTLIBRARIES = gdict.la - @TOOLKIT_GTK_TRUE@gdict_la_LIBADD = \ --@TOOLKIT_GTK_TRUE@ unix/libunix.la -+@TOOLKIT_GTK_TRUE@ unix/libunix.la \ -+@TOOLKIT_GTK_TRUE@ @top_builddir@/src/libabiword-2.8.la - - @TOOLKIT_GTK_TRUE@gdict_la_LDFLAGS = \ - @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \ - ---- a/plugins/gimp/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/gimp/Makefile.in 2014-09-06 15:04:47.380425494 +0200 -@@ -425,7 +425,8 @@ - @GIMP_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @GIMP_BUILTIN_FALSE@plugin_LTLIBRARIES = gimp.la - gimp_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - gimp_la_LDFLAGS = \ - $(GIMP_LIBS) \ - ---- a/plugins/goffice/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/goffice/Makefile.in 2014-09-06 15:04:57.660425830 +0200 -@@ -419,7 +419,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = goffice.la - goffice_la_LIBADD = \ -- unix/libunix.la -+ unix/libunix.la \ -+ @top_builddir@/src/libabiword-2.8.la - - goffice_la_LDFLAGS = \ - $(GOFFICE_LIBS) \ - ---- a/plugins/google/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/google/Makefile.in 2014-09-06 15:05:06.852426131 +0200 -@@ -425,7 +425,8 @@ - @GOOGLE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @GOOGLE_BUILTIN_FALSE@plugin_LTLIBRARIES = google.la - google_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - google_la_LDFLAGS = \ - $(GOOGLE_LIBS) \ - ---- a/plugins/grammar/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/grammar/Makefile.in 2014-09-06 15:05:19.840426556 +0200 -@@ -424,7 +424,8 @@ - plugin_LTLIBRARIES = grammar.la - grammar_la_LIBADD = \ - linkgrammarwrap/liblinkgrammarwrap.la \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - grammar_la_LDFLAGS = \ - $(GRAMMAR_LIBS) \ - ---- a/plugins/hancom/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/hancom/Makefile.in 2014-09-06 15:05:29.684426879 +0200 -@@ -425,7 +425,8 @@ - @HANCOM_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @HANCOM_BUILTIN_FALSE@plugin_LTLIBRARIES = hancom.la - hancom_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - hancom_la_LDFLAGS = \ - $(HANCOM_LIBS) \ - ---- a/plugins/hrtext/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/hrtext/Makefile.in 2014-09-06 15:05:41.244427257 +0200 -@@ -425,7 +425,8 @@ - @HRTEXT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @HRTEXT_BUILTIN_FALSE@plugin_LTLIBRARIES = hrtext.la - hrtext_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - hrtext_la_LDFLAGS = \ - $(HRTEXT_LIBS) \ - ---- a/plugins/iscii/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/iscii/Makefile.in 2014-09-06 15:05:52.660427631 +0200 -@@ -425,7 +425,8 @@ - @ISCII_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @ISCII_BUILTIN_FALSE@plugin_LTLIBRARIES = iscii.la - iscii_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - iscii_la_LDFLAGS = \ - $(ISCII_LIBS) \ - ---- a/plugins/kword/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/kword/Makefile.in 2014-09-06 15:06:01.260427912 +0200 -@@ -425,7 +425,8 @@ - @KWORD_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @KWORD_BUILTIN_FALSE@plugin_LTLIBRARIES = kword.la - kword_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - kword_la_LDFLAGS = \ - $(KWORD_LIBS) \ - ---- a/plugins/latex/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/latex/Makefile.in 2014-09-06 15:06:13.212428304 +0200 -@@ -426,7 +426,8 @@ - @LATEX_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @LATEX_BUILTIN_FALSE@plugin_LTLIBRARIES = latex.la - latex_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - latex_la_LDFLAGS = \ - $(LATEX_LIBS) \ - ---- a/plugins/loadbindings/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/loadbindings/Makefile.in 2014-09-06 15:06:27.340428766 +0200 -@@ -427,7 +427,8 @@ - @LOADBINDINGS_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @LOADBINDINGS_BUILTIN_FALSE@plugin_LTLIBRARIES = loadbindings.la - loadbindings_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - loadbindings_la_LDFLAGS = \ - $(LOADBINDINGS_LIBS) \ - ---- a/plugins/mathview/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/mathview/Makefile.in 2014-09-06 15:06:35.428429031 +0200 -@@ -423,7 +423,8 @@ - plugin_LTLIBRARIES = mathview.la - mathview_la_LIBADD = \ - itex2mml/libitex2mml.la \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - mathview_la_LDFLAGS = \ - $(MATHVIEW_LIBS) \ - ---- a/plugins/mht/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/mht/Makefile.in 2014-09-06 15:06:47.516429427 +0200 -@@ -422,7 +422,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = mht.la - mht_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - mht_la_LDFLAGS = \ - $(MHT_LIBS) \ - ---- a/plugins/mif/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/mif/Makefile.in 2014-09-06 15:07:03.496429950 +0200 -@@ -425,7 +425,8 @@ - @MIF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @MIF_BUILTIN_FALSE@plugin_LTLIBRARIES = mif.la - mif_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - mif_la_LDFLAGS = \ - $(MIF_LIBS) \ - ---- a/plugins/mswrite/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/mswrite/Makefile.in 2014-09-06 15:07:15.700430349 +0200 -@@ -425,7 +425,8 @@ - @MSWRITE_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @MSWRITE_BUILTIN_FALSE@plugin_LTLIBRARIES = mswrite.la - mswrite_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - mswrite_la_LDFLAGS = \ - $(MSWRITE_LIBS) \ - ---- a/plugins/opendocument/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/opendocument/Makefile.in 2014-09-06 15:07:26.668430709 +0200 -@@ -430,7 +430,8 @@ - opendocument_la_LIBADD = \ - common/libcommon.la \ - exp/libexp.la \ -- imp/libimp.la -+ imp/libimp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - opendocument_la_LDFLAGS = \ - $(OPENDOCUMENT_LIBS) \ - ---- a/plugins/openwriter/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/openwriter/Makefile.in 2014-09-06 15:07:40.272431154 +0200 -@@ -426,7 +426,8 @@ - @OPENWRITER_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @OPENWRITER_BUILTIN_FALSE@plugin_LTLIBRARIES = openwriter.la - openwriter_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - openwriter_la_LDFLAGS = \ - $(OPENWRITER_LIBS) \ - ---- a/plugins/openxml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/openxml/Makefile.in 2014-09-06 15:08:44.312433251 +0200 -@@ -428,7 +428,8 @@ - openxml_la_LIBADD = \ - common/libcommon.la \ - imp/libimp.la \ -- exp/libexp.la -+ exp/libexp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - openxml_la_LDFLAGS = \ - $(OPENXML_LIBS) \ - ---- a/plugins/opml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/opml/Makefile.in 2014-09-06 15:08:58.424433713 +0200 -@@ -425,7 +425,8 @@ - @OPML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @OPML_BUILTIN_FALSE@plugin_LTLIBRARIES = opml.la - opml_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - opml_la_LDFLAGS = \ - $(OPML_LIBS) \ - ---- a/plugins/ots/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/ots/Makefile.in 2014-09-06 15:09:08.164434031 +0200 -@@ -419,7 +419,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = ots.la - ots_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - ots_la_LDFLAGS = \ - $(OTS_LIBS) \ - ---- a/plugins/paint/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/paint/Makefile.in 2014-09-06 15:09:38.912435038 +0200 -@@ -426,7 +426,8 @@ - @PAINT_BUILTIN_FALSE@plugin_LTLIBRARIES = paint.la - paint_la_LIBADD = \ - @PLATFORM@/lib@PLATFORM@.la \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - paint_la_LDFLAGS = \ - $(PAINT_LIBS) \ - ---- a/plugins/passepartout/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/passepartout/Makefile.in 2014-09-06 15:09:46.744435295 +0200 -@@ -427,7 +427,8 @@ - @PASSEPARTOUT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @PASSEPARTOUT_BUILTIN_FALSE@plugin_LTLIBRARIES = passepartout.la - passepartout_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - passepartout_la_LDFLAGS = \ - $(PASSEPARTOUT_LIBS) \ - ---- a/plugins/pdb/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/pdb/Makefile.in 2014-09-06 15:09:54.484435548 +0200 -@@ -425,7 +425,8 @@ - @PDB_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @PDB_BUILTIN_FALSE@plugin_LTLIBRARIES = pdb.la - pdb_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - pdb_la_LDFLAGS = \ - $(PDB_LIBS) \ - ---- a/plugins/pdf/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/pdf/Makefile.in 2014-09-06 15:10:04.444435874 +0200 -@@ -425,7 +425,8 @@ - @PDF_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @PDF_BUILTIN_FALSE@plugin_LTLIBRARIES = pdf.la - pdf_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - pdf_la_LDFLAGS = \ - $(PDF_LIBS) \ - ---- a/plugins/presentation/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/presentation/Makefile.in 2014-09-06 15:10:13.112436158 +0200 -@@ -427,7 +427,8 @@ - @PRESENTATION_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @PRESENTATION_BUILTIN_FALSE@plugin_LTLIBRARIES = presentation.la - presentation_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - presentation_la_LDFLAGS = \ - $(PRESENTATION_LIBS) \ - ---- a/plugins/psion/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/psion/Makefile.in 2014-09-06 15:10:22.176436455 +0200 -@@ -421,7 +421,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = psion.la - psion_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - psion_la_LDFLAGS = \ - $(PSION_LIBS) \ - ---- a/plugins/rsvg/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/rsvg/Makefile.in 2014-09-06 15:10:37.632436961 +0200 -@@ -425,7 +425,8 @@ - plugin_LTLIBRARIES = rsvg.la - rsvg_la_LIBADD = \ - xp/libxp.la \ -- $(RSVG_LIBS) $(PNG_LIBS) -+ $(RSVG_LIBS) $(PNG_LIBS) \ -+ @top_builddir@/src/libabiword-2.8.la - - rsvg_la_LDFLAGS = \ - -avoid-version \ - ---- a/plugins/s5/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/s5/Makefile.in 2014-09-06 15:10:46.652437256 +0200 -@@ -425,7 +425,8 @@ - @S5_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @S5_BUILTIN_FALSE@plugin_LTLIBRARIES = s5.la - s5_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - s5_la_LDFLAGS = \ - $(S5_LIBS) \ - ---- a/plugins/sdw/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/sdw/Makefile.in 2014-09-06 15:10:58.072437630 +0200 -@@ -425,7 +425,8 @@ - @SDW_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @SDW_BUILTIN_FALSE@plugin_LTLIBRARIES = sdw.la - sdw_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - sdw_la_LDFLAGS = \ - $(SDW_LIBS) \ - ---- a/plugins/t602/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/t602/Makefile.in 2014-09-06 15:11:06.224437897 +0200 -@@ -425,7 +425,8 @@ - @T602_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @T602_BUILTIN_FALSE@plugin_LTLIBRARIES = t602.la - t602_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - t602_la_LDFLAGS = \ - $(T602_LIBS) \ - ---- a/plugins/urldict/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/urldict/Makefile.in 2014-09-06 15:11:14.404438165 +0200 -@@ -425,7 +425,8 @@ - @URLDICT_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @URLDICT_BUILTIN_FALSE@plugin_LTLIBRARIES = urldict.la - urldict_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - urldict_la_LDFLAGS = \ - $(URLDICT_LIBS) \ - ---- a/plugins/wikipedia/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/wikipedia/Makefile.in 2014-09-06 15:11:22.064438415 +0200 -@@ -425,7 +425,8 @@ - @WIKIPEDIA_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @WIKIPEDIA_BUILTIN_FALSE@plugin_LTLIBRARIES = wikipedia.la - wikipedia_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - wikipedia_la_LDFLAGS = \ - $(WIKIPEDIA_LIBS) \ - ---- a/plugins/wmf/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/wmf/Makefile.in 2014-09-06 15:11:31.348438719 +0200 -@@ -422,7 +422,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = wmf.la - wmf_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - wmf_la_LDFLAGS = \ - $(WMF_LIBS) \ - ---- a/plugins/wml/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/wml/Makefile.in 2014-09-06 15:11:40.168439008 +0200 -@@ -425,7 +425,8 @@ - @WML_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @WML_BUILTIN_FALSE@plugin_LTLIBRARIES = wml.la - wml_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - wml_la_LDFLAGS = \ - $(WML_LIBS) \ - ---- a/plugins/wordperfect/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/wordperfect/Makefile.in 2014-09-06 15:11:50.336439341 +0200 -@@ -423,7 +423,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = wordperfect.la - wordperfect_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - wordperfect_la_LDFLAGS = \ - $(WORDPERFECT_LIBS) \ - ---- a/plugins/wpg/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/wpg/Makefile.in 2014-09-06 15:12:11.328440028 +0200 -@@ -422,7 +422,8 @@ - plugindir = $(ABIWORD_PLUGINSDIR) - plugin_LTLIBRARIES = wpg.la - wpg_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - wpg_la_LDFLAGS = \ - $(WPG_LIBS) \ - ---- a/plugins/xslfo/Makefile.in 2014-09-06 11:25:35.000000000 +0200 -+++ b/plugins/xslfo/Makefile.in 2014-09-06 15:12:44.984441130 +0200 -@@ -425,7 +425,8 @@ - @XSLFO_BUILTIN_FALSE@plugindir = $(ABIWORD_PLUGINSDIR) - @XSLFO_BUILTIN_FALSE@plugin_LTLIBRARIES = xslfo.la - xslfo_la_LIBADD = \ -- xp/libxp.la -+ xp/libxp.la \ -+ @top_builddir@/src/libabiword-2.8.la - - xslfo_la_LDFLAGS = \ - $(XSLFO_LIBS) \ diff --git a/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch b/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch deleted file mode 100644 index 60a74920fb..0000000000 --- a/gnu/packages/patches/abiword-no-include-glib-internal-headers.patch +++ /dev/null @@ -1,13 +0,0 @@ -Include glib.h instead of an internal header. - ---- a/goffice-bits/goffice/app/goffice-app.h 2007-01-17 00:17:27.000000000 +0100 -+++ b/goffice-bits/goffice/app/goffice-app.h 2014-09-05 19:02:59.402064713 +0200 -@@ -22,7 +22,7 @@ - #ifndef GOFFICE_APP_H - #define GOFFICE_APP_H - --#include -+#include - - G_BEGIN_DECLS - diff --git a/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch b/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch deleted file mode 100644 index a17d465edb..0000000000 --- a/gnu/packages/patches/abiword-pass-no-undefined-to-linker.patch +++ /dev/null @@ -1,608 +0,0 @@ -gcc/g++ chokes on --no-undefined, so instead pass it directly to the linker. - ---- a/plugins/loadbindings/Makefile.in 2010-06-13 23:17:48.000000000 +0200 -+++ b/plugins/loadbindings/Makefile.in 2014-09-06 11:03:21.151951221 +0200 -@@ -433,7 +433,7 @@ - $(LOADBINDINGS_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - loadbindings_la_SOURCES = - nodist_EXTRA_loadbindings_la_SOURCES = dummy.cpp - ---- a/plugins/pdf/Makefile.in 2010-06-13 23:17:53.000000000 +0200 -+++ b/plugins/pdf/Makefile.in 2014-09-06 11:03:21.207951223 +0200 -@@ -431,7 +431,7 @@ - $(PDF_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - pdf_la_SOURCES = - nodist_EXTRA_pdf_la_SOURCES = dummy.cpp - ---- a/plugins/xslfo/Makefile.in 2010-06-13 23:17:55.000000000 +0200 -+++ b/plugins/xslfo/Makefile.in 2014-09-06 11:03:21.227951224 +0200 -@@ -431,7 +431,7 @@ - $(XSLFO_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - xslfo_la_SOURCES = - nodist_EXTRA_xslfo_la_SOURCES = dummy.cpp - ---- a/plugins/gda/Makefile.in 2010-06-13 23:17:45.000000000 +0200 -+++ b/plugins/gda/Makefile.in 2014-09-06 11:03:21.251951225 +0200 -@@ -425,7 +425,7 @@ - $(GDA_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - gda_la_SOURCES = - EXTRA_DIST = \ - ---- a/plugins/wikipedia/Makefile.in 2010-06-13 23:17:54.000000000 +0200 -+++ b/plugins/wikipedia/Makefile.in 2014-09-06 11:03:21.271951225 +0200 -@@ -431,7 +431,7 @@ - $(WIKIPEDIA_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - wikipedia_la_SOURCES = - nodist_EXTRA_wikipedia_la_SOURCES = dummy.cpp - ---- a/plugins/collab/Makefile.in 2010-06-13 23:17:41.000000000 +0200 -+++ b/plugins/collab/Makefile.in 2014-09-06 11:03:21.291951226 +0200 -@@ -435,7 +435,7 @@ - @TOOLKIT_COCOA_FALSE@ $(SYSTEM_LIBS) \ - @TOOLKIT_COCOA_FALSE@ -avoid-version \ - @TOOLKIT_COCOA_FALSE@ -module \ --@TOOLKIT_COCOA_FALSE@ -no-undefined -+@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined - - @TOOLKIT_COCOA_FALSE@collab_la_SOURCES = - @TOOLKIT_COCOA_FALSE@nodist_EXTRA_collab_la_SOURCES = dummy.cpp - ---- a/plugins/paint/Makefile.in 2010-06-13 23:17:52.000000000 +0200 -+++ b/plugins/paint/Makefile.in 2014-09-06 11:03:21.315951227 +0200 -@@ -432,7 +432,7 @@ - $(PAINT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - paint_la_SOURCES = - nodist_EXTRA_paint_la_SOURCES = dummy.cpp - ---- a/plugins/garble/Makefile.in 2010-06-13 23:17:45.000000000 +0200 -+++ b/plugins/garble/Makefile.in 2014-09-06 11:03:21.335951227 +0200 -@@ -433,7 +433,7 @@ - @TOOLKIT_COCOA_FALSE@ $(GARBLE_LIBS) \ - @TOOLKIT_COCOA_FALSE@ -avoid-version \ - @TOOLKIT_COCOA_FALSE@ -module \ --@TOOLKIT_COCOA_FALSE@ -no-undefined -+@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined - - @TOOLKIT_COCOA_FALSE@garble_la_SOURCES = - @TOOLKIT_COCOA_FALSE@nodist_EXTRA_garble_la_SOURCES = dummy.cpp - ---- a/plugins/latex/Makefile.in 2010-06-13 23:17:48.000000000 +0200 -+++ b/plugins/latex/Makefile.in 2014-09-06 11:03:21.359951228 +0200 -@@ -432,7 +432,7 @@ - $(LATEX_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - latex_la_SOURCES = - nodist_EXTRA_latex_la_SOURCES = dummy.cpp - ---- a/plugins/mht/Makefile.in 2010-06-13 23:17:49.000000000 +0200 -+++ b/plugins/mht/Makefile.in 2014-09-06 11:03:21.379951229 +0200 -@@ -428,7 +428,7 @@ - $(MHT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - mht_la_SOURCES = - nodist_EXTRA_mht_la_SOURCES = dummy.cpp - ---- a/plugins/google/Makefile.in 2010-06-13 23:17:46.000000000 +0200 -+++ b/plugins/google/Makefile.in 2014-09-06 11:03:21.399951230 +0200 -@@ -431,7 +431,7 @@ - $(GOOGLE_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - google_la_SOURCES = - nodist_EXTRA_google_la_SOURCES = dummy.cpp - ---- a/plugins/babelfish/Makefile.in 2010-06-13 23:17:40.000000000 +0200 -+++ b/plugins/babelfish/Makefile.in 2014-09-06 11:03:21.419951230 +0200 -@@ -431,7 +431,7 @@ - $(BABELFISH_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - babelfish_la_SOURCES = - nodist_EXTRA_babelfish_la_SOURCES = dummy.cpp - ---- a/plugins/opendocument/Makefile.in 2010-06-13 23:17:50.000000000 +0200 -+++ b/plugins/opendocument/Makefile.in 2014-09-06 11:03:21.443951231 +0200 -@@ -436,7 +436,7 @@ - $(OPENDOCUMENT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - opendocument_la_SOURCES = - ---- a/plugins/opml/Makefile.in 2010-06-13 23:17:51.000000000 +0200 -+++ b/plugins/opml/Makefile.in 2014-09-06 11:03:21.463951232 +0200 -@@ -431,7 +431,7 @@ - $(OPML_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - opml_la_SOURCES = - nodist_EXTRA_opml_la_SOURCES = dummy.cpp - ---- a/plugins/gimp/Makefile.in 2010-06-13 23:17:46.000000000 +0200 -+++ b/plugins/gimp/Makefile.in 2014-09-06 11:03:21.483951232 +0200 -@@ -431,7 +431,7 @@ - $(GIMP_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - gimp_la_SOURCES = - nodist_EXTRA_gimp_la_SOURCES = dummy.cpp - ---- a/plugins/mswrite/Makefile.in 2010-06-13 23:17:49.000000000 +0200 -+++ b/plugins/mswrite/Makefile.in 2014-09-06 11:03:21.507951233 +0200 -@@ -431,7 +431,7 @@ - $(MSWRITE_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - mswrite_la_SOURCES = - nodist_EXTRA_mswrite_la_SOURCES = dummy.cpp - ---- a/plugins/wordperfect/Makefile.in 2010-06-13 23:17:55.000000000 +0200 -+++ b/plugins/wordperfect/Makefile.in 2014-09-06 11:03:21.527951234 +0200 -@@ -429,7 +429,7 @@ - $(WORDPERFECT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - wordperfect_la_SOURCES = - nodist_EXTRA_wordperfect_la_SOURCES = dummy.cpp - ---- a/plugins/pdb/Makefile.in 2010-06-13 23:17:53.000000000 +0200 -+++ b/plugins/pdb/Makefile.in 2014-09-06 11:03:21.547951234 +0200 -@@ -431,7 +431,7 @@ - $(PDB_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - pdb_la_SOURCES = - nodist_EXTRA_pdb_la_SOURCES = dummy.cpp - ---- a/plugins/ots/Makefile.in 2010-06-13 23:17:52.000000000 +0200 -+++ b/plugins/ots/Makefile.in 2014-09-06 11:03:21.571951235 +0200 -@@ -425,7 +425,7 @@ - $(OTS_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - ots_la_SOURCES = - EXTRA_DIST = \ - ---- a/plugins/wml/Makefile.in 2010-06-13 23:17:55.000000000 +0200 -+++ b/plugins/wml/Makefile.in 2014-09-06 11:03:21.591951236 +0200 -@@ -431,7 +431,7 @@ - $(WML_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - wml_la_SOURCES = - nodist_EXTRA_wml_la_SOURCES = dummy.cpp - ---- a/plugins/bmp/Makefile.in 2010-06-13 23:17:40.000000000 +0200 -+++ b/plugins/bmp/Makefile.in 2014-09-06 11:03:21.615951237 +0200 -@@ -431,7 +431,7 @@ - $(BMP_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - bmp_la_SOURCES = - nodist_EXTRA_bmp_la_SOURCES = dummy.cpp - ---- a/plugins/applix/Makefile.in 2010-06-13 23:17:40.000000000 +0200 -+++ b/plugins/applix/Makefile.in 2014-09-06 11:03:21.635951237 +0200 -@@ -431,7 +431,7 @@ - $(APPLIX_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - applix_la_SOURCES = - ---- a/plugins/iscii/Makefile.in 2010-06-13 23:17:47.000000000 +0200 -+++ b/plugins/iscii/Makefile.in 2014-09-06 11:03:21.659951238 +0200 -@@ -431,7 +431,7 @@ - $(ISCII_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - iscii_la_SOURCES = - nodist_EXTRA_iscii_la_SOURCES = dummy.cpp - ---- a/plugins/gdict/Makefile.in 2010-06-13 23:17:46.000000000 +0200 -+++ b/plugins/gdict/Makefile.in 2014-09-06 11:03:21.679951239 +0200 -@@ -429,7 +429,7 @@ - @TOOLKIT_GTK_TRUE@ $(GDICT_LIBS) \ - @TOOLKIT_GTK_TRUE@ -avoid-version \ - @TOOLKIT_GTK_TRUE@ -module \ --@TOOLKIT_GTK_TRUE@ -no-undefined -+@TOOLKIT_GTK_TRUE@ -Wl,--no-undefined - - @TOOLKIT_GTK_TRUE@gdict_la_SOURCES = - @TOOLKIT_GTK_TRUE@EXTRA_DIST = \ - ---- a/plugins/openwriter/Makefile.in 2010-06-13 23:17:50.000000000 +0200 -+++ b/plugins/openwriter/Makefile.in 2014-09-06 11:03:21.699951239 +0200 -@@ -432,7 +432,7 @@ - $(OPENWRITER_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - openwriter_la_SOURCES = - nodist_EXTRA_openwriter_la_SOURCES = dummy.cpp - ---- a/plugins/sdw/Makefile.in 2010-06-13 23:17:54.000000000 +0200 -+++ b/plugins/sdw/Makefile.in 2014-09-06 11:03:21.723951240 +0200 -@@ -431,7 +431,7 @@ - $(SDW_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - sdw_la_SOURCES = - nodist_EXTRA_sdw_la_SOURCES = dummy.cpp - ---- a/plugins/grammar/Makefile.in 2010-06-13 23:17:47.000000000 +0200 -+++ b/plugins/grammar/Makefile.in 2014-09-06 11:03:21.747951241 +0200 -@@ -430,7 +430,7 @@ - $(GRAMMAR_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - nodist_EXTRA_grammar_la_SOURCES = dummy.cpp - grammar_la_SOURCES = - ---- a/plugins/urldict/Makefile.in 2010-06-13 23:17:54.000000000 +0200 -+++ b/plugins/urldict/Makefile.in 2014-09-06 11:03:21.779951242 +0200 -@@ -431,7 +431,7 @@ - $(URLDICT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - urldict_la_SOURCES = - nodist_EXTRA_urldict_la_SOURCES = dummy.cpp - ---- a/plugins/wmf/Makefile.in 2010-06-13 23:17:55.000000000 +0200 -+++ b/plugins/wmf/Makefile.in 2014-09-06 11:03:21.799951243 +0200 -@@ -428,7 +428,7 @@ - $(WMF_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - wmf_la_SOURCES = - nodist_EXTRA_wmf_la_SOURCES = dummy.cpp - ---- a/plugins/mif/Makefile.in 2010-06-13 23:17:49.000000000 +0200 -+++ b/plugins/mif/Makefile.in 2014-09-06 11:03:21.819951243 +0200 -@@ -431,7 +431,7 @@ - $(MIF_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - mif_la_SOURCES = - nodist_EXTRA_mif_la_SOURCES = dummy.cpp - ---- a/plugins/eml/Makefile.in 2010-06-13 23:17:45.000000000 +0200 -+++ b/plugins/eml/Makefile.in 2014-09-06 11:03:21.843951244 +0200 -@@ -431,7 +431,7 @@ - $(EML_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - eml_la_SOURCES = - nodist_EXTRA_eml_la_SOURCES = dummy.cpp - ---- a/plugins/openxml/Makefile.in 2010-06-13 23:17:51.000000000 +0200 -+++ b/plugins/openxml/Makefile.in 2014-09-06 11:03:21.863951245 +0200 -@@ -434,7 +434,7 @@ - $(OPENXML_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - openxml_la_SOURCES = - nodist_EXTRA_openxml_la_SOURCES = dummy.cpp - ---- a/plugins/goffice/Makefile.in 2010-06-13 23:17:46.000000000 +0200 -+++ b/plugins/goffice/Makefile.in 2014-09-06 11:03:21.883951245 +0200 -@@ -425,7 +425,7 @@ - $(GOFFICE_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - goffice_la_SOURCES = - EXTRA_DIST = \ - ---- a/plugins/passepartout/Makefile.in 2010-06-13 23:17:52.000000000 +0200 -+++ b/plugins/passepartout/Makefile.in 2014-09-06 11:03:21.907951246 +0200 -@@ -433,7 +433,7 @@ - $(PASSEPARTOUT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - passepartout_la_SOURCES = - nodist_EXTRA_passepartout_la_SOURCES = dummy.cpp - ---- a/plugins/clarisworks/Makefile.in 2010-06-13 23:17:41.000000000 +0200 -+++ b/plugins/clarisworks/Makefile.in 2014-09-06 11:03:21.927951247 +0200 -@@ -433,7 +433,7 @@ - $(CLARISWORKS_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - clarisworks_la_SOURCES = - nodist_EXTRA_clarisworks_la_SOURCES = dummy.cpp - ---- a/plugins/command/Makefile.in 2010-06-13 23:17:44.000000000 +0200 -+++ b/plugins/command/Makefile.in 2014-09-06 11:03:21.947951247 +0200 -@@ -426,7 +426,7 @@ - @TOOLKIT_COCOA_FALSE@ $(COMMAND_LIBS) \ - @TOOLKIT_COCOA_FALSE@ -avoid-version \ - @TOOLKIT_COCOA_FALSE@ -module \ --@TOOLKIT_COCOA_FALSE@ -no-undefined -+@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined - - @TOOLKIT_COCOA_FALSE@command_la_SOURCES = - all: all-recursive - ---- a/plugins/presentation/Makefile.in 2010-06-13 23:17:53.000000000 +0200 -+++ b/plugins/presentation/Makefile.in 2014-09-06 11:03:21.971951248 +0200 -@@ -433,7 +433,7 @@ - $(PRESENTATION_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - presentation_la_SOURCES = - nodist_EXTRA_presentation_la_SOURCES = dummy.cpp - ---- a/plugins/psion/Makefile.in 2010-06-13 23:17:53.000000000 +0200 -+++ b/plugins/psion/Makefile.in 2014-09-06 11:03:21.991951249 +0200 -@@ -427,7 +427,7 @@ - $(PSION_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - psion_la_SOURCES = - EXTRA_DIST = \ - ---- a/plugins/rsvg/Makefile.in 2010-06-13 23:17:53.000000000 +0200 -+++ b/plugins/rsvg/Makefile.in 2014-09-06 11:03:22.011951250 +0200 -@@ -430,7 +430,7 @@ - rsvg_la_LDFLAGS = \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - rsvg_la_SOURCES = - nodist_EXTRA_rsvg_la_SOURCES = dummy.cpp - ---- a/plugins/wpg/Makefile.in 2010-06-13 23:17:55.000000000 +0200 -+++ b/plugins/wpg/Makefile.in 2014-09-06 11:03:22.035951250 +0200 -@@ -428,7 +428,7 @@ - $(WPG_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - wpg_la_SOURCES = - nodist_EXTRA_wpg_la_SOURCES = dummy.cpp - ---- a/plugins/t602/Makefile.in 2010-06-13 23:17:54.000000000 +0200 -+++ b/plugins/t602/Makefile.in 2014-09-06 11:03:22.055951251 +0200 -@@ -431,7 +431,7 @@ - $(T602_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - t602_la_SOURCES = - nodist_EXTRA_t602_la_SOURCES = dummy.cpp - ---- a/plugins/docbook/Makefile.in 2010-06-13 23:17:44.000000000 +0200 -+++ b/plugins/docbook/Makefile.in 2014-09-06 11:03:22.075951252 +0200 -@@ -431,7 +431,7 @@ - $(DOCBOOK_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - docbook_la_SOURCES = - nodist_EXTRA_docbook_la_SOURCES = dummy.cpp - ---- a/plugins/hrtext/Makefile.in 2010-06-13 23:17:47.000000000 +0200 -+++ b/plugins/hrtext/Makefile.in 2014-09-06 11:03:22.099951252 +0200 -@@ -431,7 +431,7 @@ - $(HRTEXT_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - hrtext_la_SOURCES = - nodist_EXTRA_hrtext_la_SOURCES = dummy.cpp - ---- a/plugins/s5/Makefile.in 2010-06-13 23:17:54.000000000 +0200 -+++ b/plugins/s5/Makefile.in 2014-09-06 11:03:22.119951253 +0200 -@@ -431,7 +431,7 @@ - $(S5_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - s5_la_SOURCES = - nodist_EXTRA_s5_la_SOURCES = dummy.cpp - ---- a/plugins/hancom/Makefile.in 2010-06-13 23:17:47.000000000 +0200 -+++ b/plugins/hancom/Makefile.in 2014-09-06 11:03:22.143951254 +0200 -@@ -431,7 +431,7 @@ - $(HANCOM_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - hancom_la_SOURCES = - nodist_EXTRA_hancom_la_SOURCES = dummy.cpp - ---- a/plugins/aiksaurus/Makefile.in 2010-06-13 23:17:40.000000000 +0200 -+++ b/plugins/aiksaurus/Makefile.in 2014-09-06 11:03:22.163951255 +0200 -@@ -428,7 +428,7 @@ - $(AIKSAURUS_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - aiksaurus_la_SOURCES = - all: all-recursive - ---- a/plugins/kword/Makefile.in 2010-06-13 23:17:48.000000000 +0200 -+++ b/plugins/kword/Makefile.in 2014-09-06 11:03:22.183951255 +0200 -@@ -431,7 +431,7 @@ - $(KWORD_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - kword_la_SOURCES = - nodist_EXTRA_kword_la_SOURCES = dummy.cpp - ---- a/plugins/freetranslation/Makefile.in 2010-06-13 23:17:45.000000000 +0200 -+++ b/plugins/freetranslation/Makefile.in 2014-09-06 11:03:22.207951256 +0200 -@@ -433,7 +433,7 @@ - $(FREETRANSLATION_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - freetranslation_la_SOURCES = - nodist_EXTRA_freetranslation_la_SOURCES = dummy.cpp - ---- a/plugins/mathview/Makefile.in 2010-06-13 23:17:48.000000000 +0200 -+++ b/plugins/mathview/Makefile.in 2014-09-06 11:03:22.227951257 +0200 -@@ -429,7 +429,7 @@ - $(MATHVIEW_LIBS) \ - -avoid-version \ - -module \ -- -no-undefined -+ -Wl,--no-undefined - - nodist_EXTRA_mathview_la_SOURCES = dummy.cpp - mathview_la_SOURCES = - ---- a/src/Makefile.in 2014-09-06 08:42:45.000000000 +0200 -+++ b/src/Makefile.in 2014-09-06 11:17:48.287979611 +0200 -@@ -538,7 +538,7 @@ - - @TOOLKIT_COCOA_TRUE@AbiWord_LDFLAGS = \ - @TOOLKIT_COCOA_TRUE@ $(DEPS_LIBS) \ --@TOOLKIT_COCOA_TRUE@ --no-undefined \ -+@TOOLKIT_COCOA_TRUE@ -Wl,--no-undefined \ - @TOOLKIT_COCOA_TRUE@ -avoid-version \ - @TOOLKIT_COCOA_TRUE@ -export-dynamic \ - @TOOLKIT_COCOA_TRUE@ -headerpad_max_install_names -@@ -554,7 +554,7 @@ - - @TOOLKIT_COCOA_FALSE@abiword_LDFLAGS = \ - @TOOLKIT_COCOA_FALSE@ $(platform_ldflags) \ --@TOOLKIT_COCOA_FALSE@ --no-undefined \ -+@TOOLKIT_COCOA_FALSE@ -Wl,--no-undefined \ - @TOOLKIT_COCOA_FALSE@ -avoid-version \ - @TOOLKIT_COCOA_FALSE@ -export-dynamic - diff --git a/gnu/packages/patches/abiword-use-proper-png-api.patch b/gnu/packages/patches/abiword-use-proper-png-api.patch deleted file mode 100644 index e8ce02899d..0000000000 --- a/gnu/packages/patches/abiword-use-proper-png-api.patch +++ /dev/null @@ -1,175 +0,0 @@ -Do not directly access the fields of png_struct and png_info. - ---- a/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2010-05-30 21:20:53.000000000 +0200 -+++ b/plugins/mswrite/xp/ie_imp_MSWrite.cpp 2014-09-07 06:58:04.162298089 +0200 -@@ -891,7 +891,7 @@ - info_ptr = png_create_info_struct (png_ptr); - if (!info_ptr) goto err; - -- if (setjmp (png_ptr->jmpbuf) ) { -+ if (setjmp (png_jmpbuf(png_ptr)) ) { - png_destroy_write_struct (&png_ptr, &info_ptr); - goto err; - } - ---- a/src/af/gr/win/gr_Win32Image.cpp 2009-07-08 19:33:53.000000000 +0200 -+++ b/src/af/gr/win/gr_Win32Image.cpp 2014-09-07 06:58:04.198298090 +0200 -@@ -148,7 +148,7 @@ - info_ptr = png_create_info_struct(png_ptr); - - // libpng will longjmp back to here if a fatal error occurs -- if (setjmp(png_ptr->jmpbuf)) -+ if (setjmp(png_jmpbuf(png_ptr))) - { - /* If we get here, we had a problem reading the file */ - png_destroy_write_struct(&png_ptr, (png_infopp)NULL); -@@ -547,7 +547,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(png_ptr->jmpbuf)) -+ if (setjmp(png_jmpbuf(png_ptr))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - ---- a/src/af/util/xp/ut_png.cpp 2008-02-24 04:33:07.000000000 +0100 -+++ b/src/af/util/xp/ut_png.cpp 2014-09-07 06:58:04.230298091 +0200 -@@ -71,7 +71,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(png_ptr->jmpbuf)) -+ if (setjmp(png_jmpbuf(png_ptr))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_read_struct(&png_ptr, &info_ptr, static_cast(NULL)); - ---- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2009-06-25 06:02:06.000000000 +0200 -+++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 06:59:08.814300205 +0200 -@@ -313,7 +313,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); -@@ -332,7 +332,7 @@ - UT_Error IE_ImpGraphic_BMP::Convert_BMP_Pallet(UT_ByteBuf* pBB) - { - /* Reset error handling for libpng */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - return UT_ERROR; -@@ -372,7 +372,7 @@ - UT_Error IE_ImpGraphic_BMP::Convert_BMP(UT_ByteBuf* pBB) - { - /* Reset error handling for libpng */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - return UT_ERROR; - ---- a/plugins/rsvg/xp/AbiRSVG.cpp 2009-06-25 06:02:06.000000000 +0200 -+++ b/plugins/rsvg/xp/AbiRSVG.cpp 2014-09-07 06:59:08.914300209 +0200 -@@ -145,7 +145,7 @@ - return error; - } - -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - g_object_unref(G_OBJECT(pixbuf)); - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); -@@ -234,7 +234,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - ---- a/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2009-07-07 18:50:18.000000000 +0200 -+++ b/src/wp/impexp/win/ie_impGraphic_Win32Native.cpp 2014-09-07 06:59:09.018300212 +0200 -@@ -501,7 +501,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); -@@ -520,7 +520,7 @@ - UT_Error IE_ImpGraphic_Win32Native::Convert_BMP_Palette(UT_ByteBuf* pBB) - { - /* Reset error handling for libpng */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - return UT_ERROR; -@@ -560,7 +560,7 @@ - UT_Error IE_ImpGraphic_Win32Native::Convert_BMP(UT_ByteBuf* pBB) - { - /* Reset error handling for libpng */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - return UT_ERROR; - ---- a/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2009-07-01 06:02:04.000000000 +0200 -+++ b/src/wp/impexp/gtk/ie_impGraphic_GdkPixbuf.cpp 2014-09-07 06:59:09.138300216 +0200 -@@ -185,7 +185,7 @@ - /** needed for the stejmp context */ - UT_Error IE_ImpGraphic_GdkPixbuf::_png_write(GdkPixbuf * pixbuf) - { -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - DELETEP(m_pPngBB); - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); -@@ -446,7 +446,7 @@ - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ -- if (setjmp(m_pPNG->jmpbuf)) -+ if (setjmp(png_jmpbuf(m_pPNG))) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - ---- a/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 07:03:02.000000000 +0200 -+++ b/plugins/bmp/xp/ie_impGraphic_BMP.cpp 2014-09-07 12:35:33.306961036 +0200 -@@ -191,7 +191,11 @@ - - /* Clean Up Memory Used */ - -- FREEP(m_pPNGInfo->palette); -+ -+ png_colorp palette; -+ int ignored_placeholder; -+ png_get_PLTE(m_pPNG, m_pPNGInfo, &palette, &ignored_placeholder); -+ FREEP(palette); - DELETEP(pBB); - png_destroy_write_struct(&m_pPNG, &m_pPNGInfo); - ---- a/plugins/garble/xp/abiword-garble-png.cpp 2009-09-05 17:34:44.000000000 +0200 -+++ b/plugins/garble/xp/abiword-garble-png.cpp 2014-09-08 00:15:04.508335153 +0200 -@@ -79,7 +79,7 @@ - png_set_strip_alpha( png_ptr ); - png_set_interlace_handling( png_ptr ); - png_set_bgr( png_ptr ); -- rowbytes = info_ptr->rowbytes; -+ rowbytes = png_get_rowbytes( png_ptr, info_ptr ); - png_destroy_read_struct( &png_ptr, &info_ptr, NULL ); - } - -- cgit 1.4.1 From a7681d29dcb415593a06cf265aabc776bd3a02c0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 6 Apr 2016 23:27:10 +0200 Subject: gnu: pcre: Fix CVE-2016-3191. * gnu/packages/pcre.scm (pcre)[replacement]: New field. (pcre-fixed): New variable. * gnu/packages/patches/pcre-CVE-2016-3191.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/patches/pcre-CVE-2016-3191.patch | 151 ++++++++++++++++++++++++++ gnu/packages/pcre.scm | 9 ++ 3 files changed, 161 insertions(+) create mode 100644 gnu/packages/patches/pcre-CVE-2016-3191.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 824cd8ec13..7aac127164 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -655,6 +655,7 @@ dist_patch_DATA = \ gnu/packages/patches/patchelf-rework-for-arm.patch \ gnu/packages/patches/patchutils-xfail-gendiff-tests.patch \ gnu/packages/patches/patch-hurd-path-max.patch \ + gnu/packages/patches/pcre-CVE-2016-3191.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 \ diff --git a/gnu/packages/patches/pcre-CVE-2016-3191.patch b/gnu/packages/patches/pcre-CVE-2016-3191.patch new file mode 100644 index 0000000000..89cce2a36f --- /dev/null +++ b/gnu/packages/patches/pcre-CVE-2016-3191.patch @@ -0,0 +1,151 @@ +Fix for CVE-2016-3191. +See . +This is svn r1631 at . + +Index: trunk/testdata/testoutput11-16 +=================================================================== +--- trunk/testdata/testoutput11-16 (revision 1630) ++++ trunk/testdata/testoutput11-16 (revision 1631) +@@ -765,4 +765,7 @@ + 25 End + ------------------------------------------------------------------ + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: regular expression is too complicated at offset 490 ++ + /-- End of testinput11 --/ +Index: trunk/testdata/testinput11 +=================================================================== +--- trunk/testdata/testinput11 (revision 1630) ++++ trunk/testdata/testinput11 (revision 1631) +@@ -138,4 +138,6 @@ + + /.((?2)(?R)\1)()/B + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++ + /-- End of testinput11 --/ +Index: trunk/testdata/testoutput11-8 +=================================================================== +--- trunk/testdata/testoutput11-8 (revision 1630) ++++ trunk/testdata/testoutput11-8 (revision 1631) +@@ -765,4 +765,7 @@ + 38 End + ------------------------------------------------------------------ + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: missing ) at offset 509 ++ + /-- End of testinput11 --/ +Index: trunk/testdata/testoutput11-32 +=================================================================== +--- trunk/testdata/testoutput11-32 (revision 1630) ++++ trunk/testdata/testoutput11-32 (revision 1631) +@@ -765,4 +765,7 @@ + 25 End + ------------------------------------------------------------------ + ++/([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00]([00](*ACCEPT)/ ++Failed: missing ) at offset 509 ++ + /-- End of testinput11 --/ +Index: trunk/pcre_internal.h +=================================================================== +--- trunk/pcre_internal.h (revision 1630) ++++ trunk/pcre_internal.h (revision 1631) +@@ -7,7 +7,7 @@ + and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel +- Copyright (c) 1997-2014 University of Cambridge ++ Copyright (c) 1997-2016 University of Cambridge + + ----------------------------------------------------------------------------- + Redistribution and use in source and binary forms, with or without +@@ -2289,7 +2289,7 @@ + ERR50, ERR51, ERR52, ERR53, ERR54, ERR55, ERR56, ERR57, ERR58, ERR59, + ERR60, ERR61, ERR62, ERR63, ERR64, ERR65, ERR66, ERR67, ERR68, ERR69, + ERR70, ERR71, ERR72, ERR73, ERR74, ERR75, ERR76, ERR77, ERR78, ERR79, +- ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERRCOUNT }; ++ ERR80, ERR81, ERR82, ERR83, ERR84, ERR85, ERR86, ERR87, ERRCOUNT }; + + /* JIT compiling modes. The function list is indexed by them. */ + +Index: trunk/pcre_compile.c +=================================================================== +--- trunk/pcre_compile.c (revision 1630) ++++ trunk/pcre_compile.c (revision 1631) +@@ -6,7 +6,7 @@ + and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel +- Copyright (c) 1997-2014 University of Cambridge ++ Copyright (c) 1997-2016 University of Cambridge + + ----------------------------------------------------------------------------- + Redistribution and use in source and binary forms, with or without +@@ -560,6 +560,7 @@ + /* 85 */ + "parentheses are too deeply nested (stack check)\0" + "digits missing in \\x{} or \\o{}\0" ++ "regular expression is too complicated\0" + ; + + /* Table to identify digits and hex digits. This is used when compiling +@@ -4591,7 +4592,8 @@ + if (code > cd->start_workspace + cd->workspace_size - + WORK_SIZE_SAFETY_MARGIN) /* Check for overrun */ + { +- *errorcodeptr = ERR52; ++ *errorcodeptr = (code >= cd->start_workspace + cd->workspace_size)? ++ ERR52 : ERR87; + goto FAILED; + } + +@@ -6626,8 +6628,21 @@ + cd->had_accept = TRUE; + for (oc = cd->open_caps; oc != NULL; oc = oc->next) + { +- *code++ = OP_CLOSE; +- PUT2INC(code, 0, oc->number); ++ if (lengthptr != NULL) ++ { ++#ifdef COMPILE_PCRE8 ++ *lengthptr += 1 + IMM2_SIZE; ++#elif defined COMPILE_PCRE16 ++ *lengthptr += 2 + IMM2_SIZE; ++#elif defined COMPILE_PCRE32 ++ *lengthptr += 4 + IMM2_SIZE; ++#endif ++ } ++ else ++ { ++ *code++ = OP_CLOSE; ++ PUT2INC(code, 0, oc->number); ++ } + } + setverb = *code++ = + (cd->assert_depth > 0)? OP_ASSERT_ACCEPT : OP_ACCEPT; +Index: trunk/pcreposix.c +=================================================================== +--- trunk/pcreposix.c (revision 1630) ++++ trunk/pcreposix.c (revision 1631) +@@ -6,7 +6,7 @@ + and semantics are as close as possible to those of the Perl 5 language. + + Written by Philip Hazel +- Copyright (c) 1997-2014 University of Cambridge ++ Copyright (c) 1997-2016 University of Cambridge + + ----------------------------------------------------------------------------- + Redistribution and use in source and binary forms, with or without +@@ -173,7 +173,8 @@ + REG_BADPAT, /* group name must start with a non-digit */ + /* 85 */ + REG_BADPAT, /* parentheses too deeply nested (stack check) */ +- REG_BADPAT /* missing digits in \x{} or \o{} */ ++ REG_BADPAT, /* missing digits in \x{} or \o{} */ ++ REG_BADPAT /* pattern too complicated */ + }; + + /* Table of texts corresponding to POSIX error codes */ diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index d2933bbe38..9794def4c1 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -22,6 +22,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages compression) #:use-module (gnu packages readline) + #:use-module (gnu packages) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu)) @@ -30,6 +31,7 @@ (package (name "pcre") (version "8.38") + (replacement pcre-fixed) (source (origin (method url-fetch) (uri (list @@ -65,6 +67,13 @@ POSIX regular expression API.") (license license:bsd-3) (home-page "http://www.pcre.org/"))) +(define pcre-fixed ;for CVE-2016-3191 + (package + (inherit pcre) + (source (origin + (inherit (package-source pcre)) + (patches (list (search-patch "pcre-CVE-2016-3191.patch"))))))) + (define-public pcre2 (package (name "pcre2") -- cgit 1.4.1 From b669d9c4c8ee4158f6122e29d807e0f9b2cd73c5 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 30 Mar 2016 15:03:56 +0200 Subject: gnu: Add r-variantannotation. * gnu/packages/bioinformatics.scm (r-variantannotation): New variable. Signed-off-by: Leo Famulari --- gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 0afc0a6979..a2cd29b3e7 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4036,6 +4036,38 @@ translation between different chromosome sequence naming conventions (e.g., names in their natural, rather than lexicographic, order.") (license license:artistic2.0))) +(define-public r-variantannotation + (package + (name "r-variantannotation") + (version "1.16.4") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "VariantAnnotation" version)) + (sha256 + (base32 + "1z42j3p9b8h725inq8n0230llsdbav3gwcxy1nliypzfkxbzahsb")))) + (properties + `((upstream-name . "VariantAnnotation"))) + (inputs + `(("zlib" ,zlib))) + (propagated-inputs + `(("r-annotationdbi" ,r-annotationdbi) + ("r-biocgenerics" ,r-biocgenerics) + ("r-bsgenome" ,r-bsgenome) + ("r-dbi" ,r-dbi) + ("r-genomeinfodb" ,r-genomeinfodb) + ("r-genomicfeatures" ,r-genomicfeatures) + ("r-genomicranges" ,r-genomicranges) + ("r-summarizedexperiment" ,r-summarizedexperiment) + ("r-rsamtools" ,r-rsamtools) + ("r-zlibbioc" ,r-zlibbioc))) + (build-system r-build-system) + (home-page "https://bioconductor.org/packages/VariantAnnotation") + (synopsis "Package for annotation of genetic variants") + (description "This R package can annotate variants, compute amino acid +coding changes and predict coding outcomes.") + (license license:artistic2.0))) + (define-public r-xvector (package (name "r-xvector") -- cgit 1.4.1 From 9e3ba31c53756d8b91113574e2f340bfdc187827 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 30 Mar 2016 15:05:31 +0200 Subject: gnu: Add r-zlibbioc. * gnu/packages/bioinformatics.scm (r-zlibbioc): New variable. Signed-off-by: Leo Famulari --- gnu/packages/bioinformatics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index a2cd29b3e7..500a08b283 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4773,6 +4773,25 @@ identify genotyping errors, and to perform single-QTL and two-QTL, two-dimensional genome scans.") (license license:gpl3))) +(define-public r-zlibbioc + (package + (name "r-zlibbioc") + (version "1.16.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "zlibbioc" version)) + (sha256 + (base32 + "01wc26ndg4jsn1wyrl6zzq636gxaip5fci0xapym4lh9wryc4wnw")))) + (properties + `((upstream-name . "zlibbioc"))) + (build-system r-build-system) + (home-page "https://bioconductor.org/packages/zlibbioc") + (synopsis "Provider for zlib-1.2.5 to R packages") + (description "This package uses the source code of zlib-1.2.5 to create +libraries for systems that do not have these available via other means.") + (license license:artistic2.0))) + (define-public pepr (package (name "pepr") -- cgit 1.4.1 From 8e451885251c62198e8d20ae6c27ac34f9aceca7 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 6 Apr 2016 20:49:40 +0200 Subject: gnu: Add python-cysignals. * gnu/packages/python.scm (python-cysignals, python2-cysignals): New variables. --- gnu/packages/python.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 25bed2a641..58e32dbb9c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès -;;; Copyright © 2013, 2014, 2015 Andreas Enge +;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015 Federico Beffa @@ -42,6 +42,7 @@ zpl2.1)) #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages attr) #:use-module (gnu packages backup) #:use-module (gnu packages compression) @@ -8660,3 +8661,48 @@ LDFLAGS and parse the output to build extensions with setup.py.") (define-public python2-pkgconfig (package-with-python2 python-pkgconfig)) +(define-public python-cysignals + (package + (name "python-cysignals") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "cysignals" version ".tar.bz2")) + (sha256 + (base32 + "14cbyd9znlz6cxy1s3g6v6dv5jj45hn27pywkidd9b1zanaysqc6")))) + (build-system python-build-system) + (native-inputs + `(("python-cython" ,python-cython) + ("python-setuptools" ,python-setuptools) + ("python-sphinx" ,python-sphinx))) + (inputs + `(("pari-gp" ,pari-gp))) + (arguments + `(#:modules ((guix build python-build-system) + ((guix build gnu-build-system) #:prefix gnu:) + (guix build utils)) + ;; FIXME: Tests are executed after installation and currently fail + ;; when not installing into standard locations; the author is working + ;; on a fix. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before + 'build 'configure + (assoc-ref gnu:%standard-phases 'configure))))) + (home-page + "https://github.com/sagemath/cysignals") + (synopsis + "Handling of interrupts and signals for Cython") + (description + "The cysignals package provides mechanisms to handle interrupts (and +other signals and errors) in Cython code, using two related approaches, +for mixed Cython/Python code or external C libraries and pure Cython code, +respectively.") + (license lgpl3+))) + +(define-public python2-cysignals + (package-with-python2 python-cysignals)) + -- cgit 1.4.1 From 435a0462be7f3a5144b6eb89d6642490eb52f405 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Thu, 7 Apr 2016 00:44:35 +0200 Subject: gnu: python-cython: Update to 0.24. * gnu/packages/python.scm (python-cython): Update to 0.24. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 58e32dbb9c..63b21bd2ac 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2954,14 +2954,14 @@ is designed to have a low barrier to entry.") (define-public python-cython (package (name "python-cython") - (version "0.23.4") + (version "0.24") (source (origin (method url-fetch) (uri (pypi-uri "Cython" version)) (sha256 (base32 - "13hdffhd37mx3gjby018xl179jaj957fy7kzi01crmimxvn2zi7y")))) + "1wd3q97gia3zhsgcdlvxh26hkrf3m53i6r1l4g0yya119264vr3d")))) (build-system python-build-system) ;; we need the full python package and not just the python-wrapper ;; because we need libpython3.3m.so -- cgit 1.4.1 From 5eabbc3e9089caebf74e7ce3d924b3f239d8c010 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 7 Apr 2016 11:02:52 +0300 Subject: gnu: abiword: Add epub, goffice support. * gnu/packages/abiword.scm (abiword.scm)[arguments]: Add "epub" and "goffice" to "enable-plugins" configure flag. [inputs]: Add goffice, libchamplain, telepathy-glib. --- gnu/packages/abiword.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index cac4881f1f..eac06ee02e 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -63,12 +63,12 @@ (list "--enable-clipart" ;; TODO: The following plugins have unresolved "--enable-templates" ;; dependencies: aiksaurus, grammar, wpg, gda, - (string-append ;; wordperfect, psion, mathview, goffice, epub. + (string-append ;; wordperfect, psion, mathview. "--enable-plugins=" "applix " "babelfish " "bmp " "clarisworks " "collab " "command " - "docbook " "eml " "freetranslation " "garble " "gdict " "gimp " - "google " "hancom " "hrtext " "iscii " "kword " "latex " - "loadbindings " "mht " "mif " "mswrite " "opendocument " + "docbook " "eml " "epub " "freetranslation " "garble " "gdict " + "gimp " "goffice " "google " "hancom " "hrtext " "iscii " "kword " + "latex " "loadbindings " "mht " "mif " "mswrite " "opendocument " "openwriter " "openxml " "opml " "ots " "paint " "passepartout " "pdb " "pdf " "presentation " "s5 " "sdw " "t602 " "urldict " "wikipedia " "wmf " "wml " "xslfo")) @@ -85,7 +85,9 @@ ("fontconfig" ,fontconfig) ("fribidi" ,fribidi) ("glib" ,glib) + ("goffice" ,goffice) ("gtk+" ,gtk+) + ("libchamplain" ,libchamplain) ("libglade" ,libglade) ("libgsf" ,libgsf) ("libjpeg" ,libjpeg) @@ -97,6 +99,7 @@ ("ots" ,ots) ("popt" ,popt) ("readline" ,readline) + ("telepathy" ,telepathy-glib) ("wv" ,wv) ("zlib" ,zlib))) (native-inputs -- cgit 1.4.1 From 73b8714fb12f485323e5d749e5b941d5e7fe48a8 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 5 Apr 2016 12:11:23 -0400 Subject: gnu: libuv: Update to 1.8.0. * gnu/packages/libevent.scm (libuv): Update to 1.8.0. --- gnu/packages/libevent.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index b4c9c0ce5e..7b3ae6fadd 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Eric Dvorsak +;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,7 +89,7 @@ programs.") (define-public libuv (package (name "libuv") - (version "1.4.2") + (version "1.8.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/libuv/libuv/archive/v" @@ -96,7 +97,7 @@ programs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hdpysawz85zpmsfkcsd1b7bmx53szcir1szbh1w7ldhkpv29r5r")))) + "1plwz98ljdi161gxhl4wgj7llnx611rxpb6y38kcp59wcxf1lvlh")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after -- cgit 1.4.1 From c5b5e275a7766e07c39eba213be143db882d5193 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 5 Apr 2016 12:11:49 -0400 Subject: gnu: node: Update to 5.10.0. * gnu/packages/node.scm (node): Update to 5.10.0. --- gnu/packages/node.scm | 77 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 22 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index bde1e1e197..7a55ac5b8f 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Cyrill Schenkel ;;; Copyright © 2015 Andreas Enge -;;; Copyright © 2015 David Thompson +;;; Copyright © 2015, 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -36,41 +36,74 @@ (define-public node (package (name "node") - (version "0.12.7") + (version "5.10.0") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "17gk29zbw58l0sjjfw86acp39pkiblnq0gsq1jdrd70w0pgn8gdj")))) + "0avn25j04q172ri8mksrryyg4g95k7x2pqzsbmp1nr6ybfpvkblg")))) (build-system gnu-build-system) (arguments ;; TODO: Package http_parser and add --shared-http-parser. - '(#:configure-flags '("--shared-openssl" "--shared-zlib" "--shared-libuv") + '(#:configure-flags '("--shared-openssl" + "--shared-zlib" + "--shared-libuv" + "--without-snapshot") #:phases (modify-phases %standard-phases - (replace 'configure - ;; Node's configure script is actually a python script, so we can't - ;; run it with bash. - (lambda* (#:key outputs (configure-flags '()) inputs - #:allow-other-keys) - (let* ((prefix (assoc-ref outputs "out")) - (flags (cons (string-append "--prefix=" prefix) - configure-flags))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - ;; Node's configure script expects the CC environment variable to - ;; be set. - (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) - (zero? (apply system* - (string-append (assoc-ref inputs "python") - "/bin/python") - "./configure" flags)))))))) + (add-before 'configure 'patch-files + (lambda* (#:key inputs #:allow-other-keys) + ;; Fix hardcoded /bin/sh references. + (substitute* '("lib/child_process.js" + "lib/internal/v8_prof_polyfill.js" + "test/parallel/test-stdio-closed.js") + (("'/bin/sh'") + (string-append "'" (which "bash") "'"))) + + ;; Fix hardcoded /usr/bin/env references. + (substitute* '("test/parallel/test-child-process-default-options.js" + "test/parallel/test-child-process-env.js" + "test/parallel/test-child-process-exec-env.js") + (("'/usr/bin/env'") + (string-append "'" (which "env") "'"))) + + ;; Having the build fail because of linter errors is insane! + (substitute* '("Makefile") + ((" \\$\\(MAKE\\) jslint") "") + ((" \\$\\(MAKE\\) cpplint\n") "")) + + ;; FIXME: These tests fail in the build container, but they don't + ;; seem to be indicative of real problems in practice. + (for-each delete-file + '("test/parallel/test-cluster-master-error.js" + "test/parallel/test-cluster-master-kill.js" + "test/parallel/test-npm-install.js" + "test/parallel/test-stdout-close-unref.js" + "test/sequential/test-child-process-emfile.js")) + #t)) + (replace 'configure + ;; Node's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) inputs + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags (cons (string-append "--prefix=" prefix) + configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + ;; Node's configure script expects the CC environment variable to + ;; be set. + (setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) + (zero? (apply system* + (string-append (assoc-ref inputs "python") + "/bin/python") + "configure" flags)))))))) (native-inputs `(("python" ,python-2) ("perl" ,perl) - ("gcc" ,gcc-4.9) + ("procps" ,procps) ("util-linux" ,util-linux) ("which" ,which))) (inputs -- cgit 1.4.1 From c791efde74a98a2226bd26335b40815cbf2894c9 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 7 Apr 2016 12:59:35 +0200 Subject: gnu: Add macchanger. * gnu/packages/networking.scm (macchanger): New variable. --- gnu/packages/networking.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index a4f431a0b1..306a3a0218 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Stefan Reichör ;;; Copyright © 2016 Raimon Grau ;;; Copyright © 2016 Tobias Geerinckx-Rice +;;; Copyright 2016 John Darrington ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,26 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages compression)) +(define-public macchanger + (package + (name "macchanger") + (version "1.6.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/" + name "/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1xsiivjjyhqcs6dyjcshrnxlgypvyfzacjz7gcjgl88xiw9lylri")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/macchanger") + (synopsis "Display or change the MAC address of networking devices") + (description "GNU MAC Changer is a utility for viewing and changing MAC +addresses of networking devices. New addresses may be set explicitly or +randomly. They can include MAC addresses of the same or other hardware vendors +or, more generally, MAC addresses of the same category of hardware.") + (license license:gpl2+))) + (define-public miredo (package (name "miredo") -- cgit 1.4.1 From a0c6a36b28853dc3cd355dbe5222ea19f7f672f5 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 7 Apr 2016 20:12:14 +0200 Subject: gnu: python-pkgconfig: Add license prefix. * gnu/packages/python.scm (python-pkgconfig)[license]: Fix prefix. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 63b21bd2ac..785da66d51 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8656,7 +8656,7 @@ CloudFront content delivery network.") can be used to find all pkg-config packages, check if a package exists, check if a package meets certain version requirements, query CFLAGS and LDFLAGS and parse the output to build extensions with setup.py.") - (license expat))) + (license license:expat))) (define-public python2-pkgconfig (package-with-python2 python-pkgconfig)) -- cgit 1.4.1 From 4da5fe6f88d4b2a4ee59593b187c720fa6ce43f9 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 7 Apr 2016 16:43:44 -0400 Subject: gnu: redis: Update to 3.0.7. * gnu/packages/databases.scm (redis): Update to 3.0.7. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 10d777be22..a96b00399c 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -810,14 +810,14 @@ similar to BerkeleyDB, LevelDB, etc.") (define-public redis (package (name "redis") - (version "3.0.4") + (version "3.0.7") (source (origin (method url-fetch) (uri (string-append "http://download.redis.io/releases/redis-" version".tar.gz")) (sha256 (base32 - "1kqjc4qrasadgnl3cg71x3g5qpw2rilyk4pwl151698rb2nr0pm3")))) + "08vzfdr67gp3lvk770qpax2c5g2sx8hn6p64jn3jddrvxb2939xj")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; tests related to master/slave and replication fail -- cgit 1.4.1 From 1a9f5e9ff37de0a4f3025dc87924f9a7a6b78516 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 7 Apr 2016 21:13:40 -0400 Subject: gnu: linux-libre-4.1: Update to 4.1.21. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.21. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 3a4c9f114d..09886be0e5 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -353,13 +353,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.1 (package (inherit linux-libre) - (version "4.1.20") + (version "4.1.21") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0vwk6jh57djbwr29xvlgaf14409bq9vmwf6r6nq9jdl6dizfd110")))) + "1gfzwiinpxzhqb5xi7b1iv7ay96nrjlhia6bvcyq8ffkx7a2r715")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit 1.4.1 From 7d4c6ee878e1d7f253bd125067dde2994d3eacd5 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 8 Apr 2016 11:17:46 +0200 Subject: gnu: singular: Update hash. * gnu/packages/algebra.scm (singular)[source]: Update upstream hash. See http://www.singular.uni-kl.de:8002/trac/ticket/754 . --- gnu/packages/algebra.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index bbb708f749..abac961aaa 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -337,7 +337,7 @@ matrices, and polynomials over the integers and over finite fields.") (string-join (string-split version #\.) "-") "/singular-" version ".tar.gz")) (sha256 (base32 - "0lc76137072yyizdbmrjwan3gcgfsvp7p6hkvyn8a15la0qqkgg2")))) + "0viidy2fz62rln9p0s9qfs7fnm55c6fw1agydd1py26gxylp1ksc")))) (build-system gnu-build-system) (native-inputs `(("doxygen" ,doxygen) -- cgit 1.4.1 From 1ccc3da8d20fc1e36fbf3202ddf6714a2e488533 Mon Sep 17 00:00:00 2001 From: McKinley Olsen Date: Thu, 7 Apr 2016 16:12:24 -0600 Subject: gnu: pcre2: Update to 10.21. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gnu/packages/pcre.scm (pcre2): Update to 10.21. Signed-off-by: 宋文武 --- gnu/packages/pcre.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 9794def4c1..9215b38d91 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -77,7 +77,7 @@ POSIX regular expression API.") (define-public pcre2 (package (name "pcre2") - (version "10.20") + (version "10.21") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcre/pcre2/" @@ -85,7 +85,7 @@ POSIX regular expression API.") (sha256 (base32 - "0yj8mm9ll9zj3v47rvmmqmr1ybxk72rr2lym3rymdsf905qjhbik")))) + "1q6lrj9b08l1q39vxipb0fi88x6ybvkr6439h8bjb9r8jd81fsn6")))) (build-system gnu-build-system) (inputs `(("bzip2" ,bzip2) ("readline" ,readline) -- cgit 1.4.1 From 2331e5e86077957683d37ce7351ca827948ec723 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Fri, 8 Apr 2016 09:34:02 -0400 Subject: gnu: Add wmclock. * gnu/packages/gnustep.scm (wmclock): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/gnustep.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm index 8c43085eaf..f4a2b266a3 100644 --- a/gnu/packages/gnustep.scm +++ b/gnu/packages/gnustep.scm @@ -181,3 +181,38 @@ on and off by clicking the mouse button over the application. If the CPU usage hits a certain threshold, an alarm-mode will alert you by turning back-light on.") (license gpl2+))) + +(define-public wmclock + (package + (name "wmclock") + (version "1.0.16") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://debian/pool/main/w/wmclock/" + name "_" version ".orig.tar.gz")) + (sha256 + (base32 + "1lx276ba8r2yydhmwj1g586jdqg695ad89ng36fr3mb067gvb2rz")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autoconf + (lambda _ (zero? (system* "autoreconf" "-vfi"))))))) + ;; wmclock requires autoreconf to generate its configure script. + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxpm" ,libxpm))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (home-page "http://windowmaker.org/dockapps/?name=wmclock") + (synopsis "Display the date and time") + (description + "wmclock is an applet for Window Maker which displays the date and time in +a dockable tile. It features multiple language support, 24h or 12h time +display, and can run a user-specified program on mouse click.") + (license gpl2+))) -- cgit 1.4.1 From 4862910d0aeda17d4f5816d9681dad93255cf039 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 3 Apr 2016 16:29:56 -0700 Subject: gnu: Add anthy. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/anthy.scm: New file. * gnu-system.am: Add it. Signed-off-by: 宋文武 --- gnu-system.am | 2 ++ gnu/packages/anthy.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 gnu/packages/anthy.scm (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 7aac127164..e413235648 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -3,6 +3,7 @@ # Copyright © 2013, 2014, 2015, 2016 Andreas Enge # Copyright © 2016 Mathieu Lirzin # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver +# Copyright © 2016 Chris Marusich # # This file is part of GNU Guix. # @@ -35,6 +36,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/algebra.scm \ gnu/packages/aidc.scm \ gnu/packages/animation.scm \ + gnu/packages/anthy.scm \ gnu/packages/apl.scm \ gnu/packages/apr.scm \ gnu/packages/asciidoc.scm \ diff --git a/gnu/packages/anthy.scm b/gnu/packages/anthy.scm new file mode 100644 index 0000000000..7cd35b622d --- /dev/null +++ b/gnu/packages/anthy.scm @@ -0,0 +1,64 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Chris Marusich +;;; +;;; 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 . + +(define-module (gnu packages anthy) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public anthy + (package + (name "anthy") + (version "9100h") + (source (origin + (method url-fetch) + ;; The URI does not appear to be easily guessable. For + ;; example, you cannot download version "9100g" simply + ;; by replacing "9100h" in the URI. + (uri "http://tcpdiag.dl.osdn.jp/anthy/37536/anthy-9100h.tar.gz") + (sha256 + (base32 + "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj")))) + (build-system gnu-build-system) + ;; Anthy also contains elisp modules for using anthy within Emacs. + ;; However, these modules are incompatible with the latest version + ;; of Emacs. This is because they rely on the presence of + ;; last-command-char, which was removed in Emacs 24.3. So, we + ;; don't try to install them here at this time. + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (with-directory-excursion "test" + (zero? (system* "./anthy" "--all")))))))) + (home-page "http://anthy.osdn.jp/") + (synopsis "Japanese input method") + (description "Anthy is a Japanese input method for converting +hiragana text to mixed kana and kanji. It is written in the C +programming language. Anthy stores personal customizations (words it +has learned from the user's input, words the user has explicitly +added, etc.) in the ~/.anthy/ directory. This package contains the +anthy C libraries, the cannadic and alt-cannadic kana dictionaries, as +well as command-line tools for using anthy and managing +dictionaries.") + ;; Most of anthy is lgpl2.1+. However, some files (e.g., from + ;; alt-cannadic) use gpl2. See the file "COPYING" in the anthy + ;; source for details. + (license (list lgpl2.1+ gpl2)))) -- cgit 1.4.1 From 1c6ae41875b8531155e29df2f60851d161cc04b9 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 3 Apr 2016 16:31:08 -0700 Subject: gnu: Add ibus-anthy. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/ibus.scm (ibus-anthy): New variable. Co-authored-by: 宋文武 . --- gnu/packages/ibus.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/ibus.scm b/gnu/packages/ibus.scm index 770d7ff067..db7d084fc7 100644 --- a/gnu/packages/ibus.scm +++ b/gnu/packages/ibus.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2016 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,10 +25,12 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) + #:use-module (gnu packages anthy) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages databases) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) @@ -205,3 +208,54 @@ ZhuYin (Bopomofo) input method based on libpinyin for IBus.") Chinese pinyin input methods.") (home-page "https://github.com/libpinyin/libpinyin") (license gpl2+))) + +(define-public ibus-anthy + (package + (name "ibus-anthy") + (version "1.5.8") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/ibus/ibus-anthy/releases/download/" + version "/ibus-anthy-" version ".tar.gz")) + (sha256 + (base32 + "1aj7vnfky7izl23xyjky78z3qas3q72l3kr8dnql2lnivsrb8q1y")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + ;; Use absolute exec path in the anthy.xml. + (list (string-append "--libexecdir=" %output "/libexec")) + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-programs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each + (lambda (prog) + (wrap-program (string-append out "/libexec/" prog) + `("PYTHONPATH" ":" prefix + (,(getenv "PYTHONPATH"))) + `("GI_TYPELIB_PATH" ":" prefix + (,(getenv "GI_TYPELIB_PATH") + ,(string-append out "/lib/girepository-1.0"))))) + '("ibus-engine-anthy" "ibus-setup-anthy")) + #t)))))) + (native-inputs + `(("gettext" ,gnu-gettext) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("python" ,python))) + (inputs + `(("anthy" ,anthy) + ("gtk+" ,gtk+) + ("ibus" ,ibus) + ("gobject-introspection" ,gobject-introspection) + ("python-pygobject" ,python-pygobject))) + (synopsis "Anthy Japanese language input method for IBus") + (description "IBus-Anthy is an engine for the input bus \"IBus\"). It +adds the Anthy Japanese language input method to IBus. Because most graphical +applications allow text input via IBus, installing this package will enable +Japanese language input in most graphical applications.") + (home-page "https://github.com/fujiwarat/ibus-anthy") + (license gpl2+))) -- cgit 1.4.1 From 9c45c51992bbb499c5f03cd1c9285937e8b2a00f Mon Sep 17 00:00:00 2001 From: John Darrington Date: Fri, 8 Apr 2016 21:33:59 +0200 Subject: gnu: Add c-graph. * gnu/packages/maths.scm (c-graph): New variable. --- gnu/packages/maths.scm | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index adebf09a32..6f61a637a0 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov -;;; Copyright © 2014 John Darrington +;;; Copyright © 2014, 2016 John Darrington ;;; Copyright © 2014, 2015, 2016 Eric Bavier ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014 Mathieu Lirzin @@ -78,6 +78,26 @@ #:use-module (gnu packages zip) #:use-module (srfi srfi-1)) +(define-public c-graph + (package + (name "c-graph") + (version "2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/c-graph/c-graph-" version + ".tar.gz")) + (sha256 (base32 + "1hlvpzrh7hzzf533diyfiabzskddi8zx92av9hwkjw3l46z7qv01")))) + (build-system gnu-build-system) + (inputs + `(("fortran" ,gfortran))) + (synopsis "Visualize and analyze convolution operations") + (description + "GNU C-Graph demonstrates the theory of convolution underlying +engineering systems and signal analysis.") + (license license:gpl3+) + (home-page "http://www.gnu.org/software/c-graph/"))) + (define-public units (package (name "units") -- cgit 1.4.1 From 58e87f66ceb619c44d486361ebf0f608abe63f5d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 08:40:31 +0300 Subject: gnu: icecat: Update to 38.7.1-gnu1. * gnu/packages/gnuzilla.scm (icecat): Update to 38.7.1-gnu1. [sources]: Remove numerous patches. * 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-icecatbug-1248851.patch, gnu/packages/patches/icecat-update-graphite2.patch, gnu/packages/patches/icecat-update-graphite2-pt2.patch: Remove files. * gnu-system.am (dist_patch_DATA): Remove them. --- gnu-system.am | 19 - gnu/packages/gnuzilla.scm | 26 +- gnu/packages/patches/icecat-CVE-2015-4477.patch | 37 - gnu/packages/patches/icecat-CVE-2015-7207.patch | 1140 --- .../patches/icecat-CVE-2016-1952-pt01.patch | 356 - .../patches/icecat-CVE-2016-1952-pt02.patch | 58 - .../patches/icecat-CVE-2016-1952-pt03.patch | 60 - .../patches/icecat-CVE-2016-1952-pt04.patch | 53 - .../patches/icecat-CVE-2016-1952-pt05.patch | 32 - .../patches/icecat-CVE-2016-1952-pt06.patch | 103 - gnu/packages/patches/icecat-CVE-2016-1954.patch | 32 - gnu/packages/patches/icecat-CVE-2016-1960.patch | 55 - gnu/packages/patches/icecat-CVE-2016-1961.patch | 33 - gnu/packages/patches/icecat-CVE-2016-1962.patch | 107 - gnu/packages/patches/icecat-CVE-2016-1964.patch | 54 - gnu/packages/patches/icecat-CVE-2016-1965.patch | 44 - gnu/packages/patches/icecat-CVE-2016-1966.patch | 36 - gnu/packages/patches/icecat-CVE-2016-1974.patch | 530 -- gnu/packages/patches/icecat-bug-1248851.patch | 37 - .../patches/icecat-update-graphite2-pt2.patch | 861 -- gnu/packages/patches/icecat-update-graphite2.patch | 9988 -------------------- 21 files changed, 4 insertions(+), 13657 deletions(-) delete mode 100644 gnu/packages/patches/icecat-CVE-2015-4477.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2015-7207.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1954.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1960.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1961.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1962.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1964.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1965.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1966.patch delete mode 100644 gnu/packages/patches/icecat-CVE-2016-1974.patch delete mode 100644 gnu/packages/patches/icecat-bug-1248851.patch delete mode 100644 gnu/packages/patches/icecat-update-graphite2-pt2.patch delete mode 100644 gnu/packages/patches/icecat-update-graphite2.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index e413235648..8822d0bdc0 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -522,26 +522,7 @@ dist_patch_DATA = \ gnu/packages/patches/hydra-automake-1.15.patch \ 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 \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index b4892d77cd..1ae97b256b 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu +;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -277,7 +278,7 @@ standards.") (define-public icecat (package (name "icecat") - (version "38.6.0-gnu1") + (version "38.7.1-gnu1") (source (origin (method url-fetch) @@ -286,29 +287,10 @@ standards.") name "-" version ".tar.bz2")) (sha256 (base32 - "0bd4k5cwr8ynscaxffvj2x3kgky3dmjq0qhpcb931l98bh0103lx")) + "1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g")) (patches (map search-patch '("icecat-avoid-bundled-includes.patch" - "icecat-re-enable-DHE-cipher-suites.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"))) + "icecat-re-enable-DHE-cipher-suites.patch"))) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2015-4477.patch b/gnu/packages/patches/icecat-CVE-2015-4477.patch deleted file mode 100644 index c010c5ecec..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-4477.patch +++ /dev/null @@ -1,37 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/beae8783b8c2 - -# HG changeset patch -# User Paul Adenot -# 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(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()); - } - diff --git a/gnu/packages/patches/icecat-CVE-2015-7207.patch b/gnu/packages/patches/icecat-CVE-2015-7207.patch deleted file mode 100644 index db5fc6ce66..0000000000 --- a/gnu/packages/patches/icecat-CVE-2015-7207.patch +++ /dev/null @@ -1,1140 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/532544c91db7 - -# HG changeset patch -# User Dragana Damjanovic -# Date 1456962626 28800 -# Node ID 532544c91db7f13c39be1b7b7c4461cd03126e9c -# Parent f4220254d5bd0851a439467da39ba431e0ce2804 -Bug 1185256 - Save originURI to the history. r=bz ba=ritu - -MozReview-Commit-ID: Lvh9C84RQUc - -diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp ---- a/docshell/base/nsDocShell.cpp -+++ b/docshell/base/nsDocShell.cpp -@@ -1020,16 +1020,17 @@ nsDocShell::DestroyChildren() - //***************************************************************************** - // nsDocShell::nsISupports - //***************************************************************************** - - NS_IMPL_ADDREF_INHERITED(nsDocShell, nsDocLoader) - NS_IMPL_RELEASE_INHERITED(nsDocShell, nsDocLoader) - - NS_INTERFACE_MAP_BEGIN(nsDocShell) -+ NS_INTERFACE_MAP_ENTRY(nsIDocShell_ESR38_2) - NS_INTERFACE_MAP_ENTRY(nsIDocShell_ESR38) - NS_INTERFACE_MAP_ENTRY(nsIDocShell) - NS_INTERFACE_MAP_ENTRY(nsIDocShellTreeItem) - NS_INTERFACE_MAP_ENTRY(nsIWebNavigation) - NS_INTERFACE_MAP_ENTRY(nsIBaseWindow) - NS_INTERFACE_MAP_ENTRY(nsIScrollable) - NS_INTERFACE_MAP_ENTRY(nsITextScroll) - NS_INTERFACE_MAP_ENTRY(nsIDocCharset) -@@ -1372,16 +1373,17 @@ nsDocShell::LoadURI(nsIURI* aURI, - return NS_OK; // JS may not handle returning of an error code - } - - if (DoAppRedirectIfNeeded(aURI, aLoadInfo, aFirstParty)) { - return NS_OK; - } - - nsCOMPtr referrer; -+ nsCOMPtr originalURI; - nsCOMPtr postStream; - nsCOMPtr headersStream; - nsCOMPtr owner; - bool inheritOwner = false; - bool ownerIsExplicit = false; - bool sendReferrer = true; - uint32_t referrerPolicy = mozilla::net::RP_Default; - bool isSrcdoc = false; -@@ -1398,16 +1400,20 @@ nsDocShell::LoadURI(nsIURI* aURI, - if (!StartupTimeline::HasRecord(StartupTimeline::FIRST_LOAD_URI) && - mItemType == typeContent && !NS_IsAboutBlank(aURI)) { - StartupTimeline::RecordOnce(StartupTimeline::FIRST_LOAD_URI); - } - - // Extract the info from the DocShellLoadInfo struct... - if (aLoadInfo) { - aLoadInfo->GetReferrer(getter_AddRefs(referrer)); -+ nsCOMPtr liESR38 = do_QueryInterface(aLoadInfo); -+ if (liESR38) { -+ liESR38->GetOriginalURI(getter_AddRefs(originalURI)); -+ } - - nsDocShellInfoLoadType lt = nsIDocShellLoadInfo::loadNormal; - aLoadInfo->GetLoadType(<); - // Get the appropriate loadType from nsIDocShellLoadInfo type - loadType = ConvertDocShellLoadInfoToLoadType(lt); - - aLoadInfo->GetOwner(getter_AddRefs(owner)); - aLoadInfo->GetInheritOwner(&inheritOwner); -@@ -1652,34 +1658,35 @@ nsDocShell::LoadURI(nsIURI* aURI, - if (aLoadFlags & LOAD_FLAGS_FORCE_ALLOW_COOKIES) { - flags |= INTERNAL_LOAD_FLAGS_FORCE_ALLOW_COOKIES; - } - - if (isSrcdoc) { - flags |= INTERNAL_LOAD_FLAGS_IS_SRCDOC; - } - -- return InternalLoad(aURI, -- referrer, -- referrerPolicy, -- owner, -- flags, -- target.get(), -- nullptr, // No type hint -- NullString(), // No forced download -- postStream, -- headersStream, -- loadType, -- nullptr, // No SHEntry -- aFirstParty, -- srcdoc, -- sourceDocShell, -- baseURI, -- nullptr, // No nsIDocShell -- nullptr); // No nsIRequest -+ return InternalLoad2(aURI, -+ originalURI, -+ referrer, -+ referrerPolicy, -+ owner, -+ flags, -+ target.get(), -+ nullptr, // No type hint -+ NullString(), // No forced download -+ postStream, -+ headersStream, -+ loadType, -+ nullptr, // No SHEntry -+ aFirstParty, -+ srcdoc, -+ sourceDocShell, -+ baseURI, -+ nullptr, // No nsIDocShell -+ nullptr); // No nsIRequest - } - - NS_IMETHODIMP - nsDocShell::LoadStream(nsIInputStream* aStream, nsIURI* aURI, - const nsACString& aContentType, - const nsACString& aContentCharset, - nsIDocShellLoadInfo* aLoadInfo) - { -@@ -5398,21 +5405,21 @@ nsDocShell::LoadErrorPage(nsIURI* aURI, - // end of the URL, so append it last. - errorPageUrl.AppendLiteral("&d="); - errorPageUrl.AppendASCII(escapedDescription.get()); - - nsCOMPtr errorPageURI; - rv = NS_NewURI(getter_AddRefs(errorPageURI), errorPageUrl); - NS_ENSURE_SUCCESS(rv, rv); - -- return InternalLoad(errorPageURI, nullptr, mozilla::net::RP_Default, -- nullptr, INTERNAL_LOAD_FLAGS_INHERIT_OWNER, nullptr, -- nullptr, NullString(), nullptr, nullptr, LOAD_ERROR_PAGE, -- nullptr, true, NullString(), this, nullptr, nullptr, -- nullptr); -+ return InternalLoad2(errorPageURI, nullptr, nullptr, mozilla::net::RP_Default, -+ nullptr, INTERNAL_LOAD_FLAGS_INHERIT_OWNER, nullptr, -+ nullptr, NullString(), nullptr, nullptr, LOAD_ERROR_PAGE, -+ nullptr, true, NullString(), this, nullptr, nullptr, -+ nullptr); - } - - NS_IMETHODIMP - nsDocShell::Reload(uint32_t aReloadFlags) - { - if (!IsNavigationAllowed()) { - return NS_OK; // JS may not handle returning of an error code - } -@@ -5448,44 +5455,54 @@ nsDocShell::Reload(uint32_t aReloadFlags - nsCOMPtr doc(GetDocument()); - - // Do not inherit owner from document - uint32_t flags = INTERNAL_LOAD_FLAGS_NONE; - nsAutoString srcdoc; - nsIPrincipal* principal = nullptr; - nsAutoString contentTypeHint; - nsCOMPtr baseURI; -+ nsCOMPtr originalURI; - if (doc) { - principal = doc->NodePrincipal(); - doc->GetContentType(contentTypeHint); - - if (doc->IsSrcdocDocument()) { - doc->GetSrcdocData(srcdoc); - flags |= INTERNAL_LOAD_FLAGS_IS_SRCDOC; - baseURI = doc->GetBaseURI(); - } -- } -- rv = InternalLoad(mCurrentURI, -- mReferrerURI, -- mReferrerPolicy, -- principal, -- flags, -- nullptr, // No window target -- NS_LossyConvertUTF16toASCII(contentTypeHint).get(), -- NullString(), // No forced download -- nullptr, // No post data -- nullptr, // No headers data -- loadType, // Load type -- nullptr, // No SHEntry -- true, -- srcdoc, // srcdoc argument for iframe -- this, // For reloads we are the source -- baseURI, -- nullptr, // No nsIDocShell -- nullptr); // No nsIRequest -+ nsCOMPtr chan = doc->GetChannel(); -+ if (chan) { -+ nsCOMPtr httpChan(do_QueryInterface(chan)); -+ if (httpChan) { -+ httpChan->GetOriginalURI(getter_AddRefs(originalURI)); -+ } -+ } -+ } -+ -+ rv = InternalLoad2(mCurrentURI, -+ originalURI, -+ mReferrerURI, -+ mReferrerPolicy, -+ principal, -+ flags, -+ nullptr, // No window target -+ NS_LossyConvertUTF16toASCII(contentTypeHint).get(), -+ NullString(), // No forced download -+ nullptr, // No post data -+ nullptr, // No headers data -+ loadType, // Load type -+ nullptr, // No SHEntry -+ true, -+ srcdoc, // srcdoc argument for iframe -+ this, // For reloads we are the source -+ baseURI, -+ nullptr, // No nsIDocShell -+ nullptr); // No nsIRequest - } - - return rv; - } - - NS_IMETHODIMP - nsDocShell::Stop(uint32_t aStopFlags) - { -@@ -9463,27 +9480,28 @@ CopyFavicon(nsIURI* aOldURI, nsIURI* aNe - #endif - } - - } // anonymous namespace - - class InternalLoadEvent : public nsRunnable - { - public: -- InternalLoadEvent(nsDocShell* aDocShell, nsIURI* aURI, -+ InternalLoadEvent(nsDocShell* aDocShell, nsIURI* aURI, nsIURI* aOriginalURI, - nsIURI* aReferrer, uint32_t aReferrerPolicy, - nsISupports* aOwner, uint32_t aFlags, - const char* aTypeHint, nsIInputStream* aPostData, - nsIInputStream* aHeadersData, uint32_t aLoadType, - nsISHEntry* aSHEntry, bool aFirstParty, - const nsAString& aSrcdoc, nsIDocShell* aSourceDocShell, - nsIURI* aBaseURI) - : mSrcdoc(aSrcdoc) - , mDocShell(aDocShell) - , mURI(aURI) -+ , mOriginalURI(aOriginalURI) - , mReferrer(aReferrer) - , mReferrerPolicy(aReferrerPolicy) - , mOwner(aOwner) - , mPostData(aPostData) - , mHeadersData(aHeadersData) - , mSHEntry(aSHEntry) - , mFlags(aFlags) - , mLoadType(aLoadType) -@@ -9494,34 +9512,36 @@ public: - // Make sure to keep null things null as needed - if (aTypeHint) { - mTypeHint = aTypeHint; - } - } - - NS_IMETHOD Run() - { -- return mDocShell->InternalLoad(mURI, mReferrer, -- mReferrerPolicy, -- mOwner, mFlags, -- nullptr, mTypeHint.get(), -- NullString(), mPostData, mHeadersData, -- mLoadType, mSHEntry, mFirstParty, -- mSrcdoc, mSourceDocShell, mBaseURI, -- nullptr, nullptr); -+ return mDocShell->InternalLoad2(mURI, mOriginalURI, -+ mReferrer, -+ mReferrerPolicy, -+ mOwner, mFlags, -+ nullptr, mTypeHint.get(), -+ NullString(), mPostData, mHeadersData, -+ mLoadType, mSHEntry, mFirstParty, -+ mSrcdoc, mSourceDocShell, mBaseURI, -+ nullptr, nullptr); - } - - private: - // Use IDL strings so .get() returns null by default - nsXPIDLString mWindowTarget; - nsXPIDLCString mTypeHint; - nsString mSrcdoc; - - nsRefPtr mDocShell; - nsCOMPtr mURI; -+ nsCOMPtr mOriginalURI; - nsCOMPtr mReferrer; - uint32_t mReferrerPolicy; - nsCOMPtr mOwner; - nsCOMPtr mPostData; - nsCOMPtr mHeadersData; - nsCOMPtr mSHEntry; - uint32_t mFlags; - uint32_t mLoadType; -@@ -9584,16 +9604,43 @@ nsDocShell::InternalLoad(nsIURI* aURI, - nsISHEntry* aSHEntry, - bool aFirstParty, - const nsAString& aSrcdoc, - nsIDocShell* aSourceDocShell, - nsIURI* aBaseURI, - nsIDocShell** aDocShell, - nsIRequest** aRequest) - { -+ return InternalLoad2(aURI, nullptr, aReferrer, aReferrerPolicy, aOwner, -+ aFlags, aWindowTarget, aTypeHint, aFileName, aPostData, -+ aHeadersData, aLoadType, aSHEntry, aFirstParty, aSrcdoc, -+ aSourceDocShell, aBaseURI, aDocShell, aRequest); -+} -+ -+NS_IMETHODIMP -+nsDocShell::InternalLoad2(nsIURI* aURI, -+ nsIURI* aOriginalURI, -+ nsIURI* aReferrer, -+ uint32_t aReferrerPolicy, -+ nsISupports* aOwner, -+ uint32_t aFlags, -+ const char16_t* aWindowTarget, -+ const char* aTypeHint, -+ const nsAString& aFileName, -+ nsIInputStream* aPostData, -+ nsIInputStream* aHeadersData, -+ uint32_t aLoadType, -+ nsISHEntry* aSHEntry, -+ bool aFirstParty, -+ const nsAString& aSrcdoc, -+ nsIDocShell* aSourceDocShell, -+ nsIURI* aBaseURI, -+ nsIDocShell** aDocShell, -+ nsIRequest** aRequest) -+{ - nsresult rv = NS_OK; - mOriginalUriString.Truncate(); - - #ifdef PR_LOGGING - if (gDocShellLeakLog && PR_LOG_TEST(gDocShellLeakLog, PR_LOG_DEBUG)) { - nsAutoCString spec; - if (aURI) { - aURI->GetSpec(spec); -@@ -9831,34 +9878,58 @@ nsDocShell::InternalLoad(nsIURI* aURI, - targetDocShell = do_QueryInterface(webNav); - } - - // - // Transfer the load to the target DocShell... Pass nullptr as the - // window target name from to prevent recursive retargeting! - // - if (NS_SUCCEEDED(rv) && targetDocShell) { -- rv = targetDocShell->InternalLoad(aURI, -- aReferrer, -- aReferrerPolicy, -- owner, -- aFlags, -- nullptr, // No window target -- aTypeHint, -- NullString(), // No forced download -- aPostData, -- aHeadersData, -- aLoadType, -- aSHEntry, -- aFirstParty, -- aSrcdoc, -- aSourceDocShell, -- aBaseURI, -- aDocShell, -- aRequest); -+ nsCOMPtr dsESR38 = do_QueryInterface(targetDocShell); -+ if (dsESR38) { -+ rv = dsESR38->InternalLoad2(aURI, -+ aOriginalURI, -+ aReferrer, -+ aReferrerPolicy, -+ owner, -+ aFlags, -+ nullptr, // No window target -+ aTypeHint, -+ NullString(), // No forced download -+ aPostData, -+ aHeadersData, -+ aLoadType, -+ aSHEntry, -+ aFirstParty, -+ aSrcdoc, -+ aSourceDocShell, -+ aBaseURI, -+ aDocShell, -+ aRequest); -+ } else { -+ rv = targetDocShell->InternalLoad(aURI, -+ aReferrer, -+ aReferrerPolicy, -+ owner, -+ aFlags, -+ nullptr, // No window target -+ aTypeHint, -+ NullString(), // No forced download -+ aPostData, -+ aHeadersData, -+ aLoadType, -+ aSHEntry, -+ aFirstParty, -+ aSrcdoc, -+ aSourceDocShell, -+ aBaseURI, -+ aDocShell, -+ aRequest); -+ } -+ - if (rv == NS_ERROR_NO_CONTENT) { - // XXXbz except we never reach this code! - if (isNewWindow) { - // - // At this point, a new window has been created, but the - // URI did not have any data associated with it... - // - // So, the best we can do, is to tear down the new window -@@ -9913,17 +9984,17 @@ nsDocShell::InternalLoad(nsIURI* aURI, - // the unload event also a replace load, so we don't - // create extra history entries. - if (LOAD_TYPE_HAS_FLAGS(aLoadType, LOAD_FLAGS_REPLACE_HISTORY)) { - mLoadType = LOAD_NORMAL_REPLACE; - } - - // Do this asynchronously - nsCOMPtr ev = -- new InternalLoadEvent(this, aURI, aReferrer, -+ new InternalLoadEvent(this, aURI, aOriginalURI, aReferrer, - aReferrerPolicy, aOwner, aFlags, - aTypeHint, aPostData, aHeadersData, - aLoadType, aSHEntry, aFirstParty, aSrcdoc, - aSourceDocShell, aBaseURI); - return NS_DispatchToCurrentThread(ev); - } - - // Just ignore this load attempt -@@ -10371,17 +10442,17 @@ nsDocShell::InternalLoad(nsIURI* aURI, - } - - net::PredictorLearn(aURI, nullptr, - nsINetworkPredictor::LEARN_LOAD_TOPLEVEL, this); - net::PredictorPredict(aURI, nullptr, - nsINetworkPredictor::PREDICT_LOAD, this, nullptr); - - nsCOMPtr req; -- rv = DoURILoad(aURI, aReferrer, -+ rv = DoURILoad(aURI, aOriginalURI, aReferrer, - !(aFlags & INTERNAL_LOAD_FLAGS_DONT_SEND_REFERRER), - aReferrerPolicy, - owner, aTypeHint, aFileName, aPostData, aHeadersData, - aFirstParty, aDocShell, getter_AddRefs(req), - (aFlags & INTERNAL_LOAD_FLAGS_FIRST_LOAD) != 0, - (aFlags & INTERNAL_LOAD_FLAGS_BYPASS_CLASSIFIER) != 0, - (aFlags & INTERNAL_LOAD_FLAGS_FORCE_ALLOW_COOKIES) != 0, - srcdoc, aBaseURI, contentType); -@@ -10445,16 +10516,17 @@ nsDocShell::GetInheritedPrincipal(bool a - return docPrincipal; - } - - return nullptr; - } - - nsresult - nsDocShell::DoURILoad(nsIURI* aURI, -+ nsIURI* aOriginalURI, - nsIURI* aReferrerURI, - bool aSendReferrer, - uint32_t aReferrerPolicy, - nsISupports* aOwner, - const char* aTypeHint, - const nsAString& aFileName, - nsIInputStream* aPostData, - nsIInputStream* aHeadersData, -@@ -10652,17 +10724,22 @@ nsDocShell::DoURILoad(nsIURI* aURI, - } - - // Make sure to give the caller a channel if we managed to create one - // This is important for correct error page/session history interaction - if (aRequest) { - NS_ADDREF(*aRequest = channel); - } - -- channel->SetOriginalURI(aURI); -+ if (aOriginalURI) { -+ channel->SetOriginalURI(aOriginalURI); -+ } else { -+ channel->SetOriginalURI(aURI); -+ } -+ - if (aTypeHint && *aTypeHint) { - channel->SetContentType(nsDependentCString(aTypeHint)); - mContentTypeHint = aTypeHint; - } else { - mContentTypeHint.Truncate(); - } - - if (!aFileName.IsVoid()) { -@@ -11624,16 +11701,20 @@ nsDocShell::AddState(JS::HandleSetURI(newURI); -+ nsCOMPtr entryESR38 = do_QueryInterface(newSHEntry); -+ if (entryESR38) { -+ entryESR38->SetOriginalURI(newURI); -+ } - } - - // Step 4: Modify new/original session history entry and clear its POST - // data, if there is any. - newSHEntry->SetStateData(scContainer); - newSHEntry->SetPostData(nullptr); - - // If this push/replaceState changed the document's current URI and the new -@@ -11816,16 +11897,17 @@ nsDocShell::AddToSessionHistory(nsIURI* - - if (!entry) { - return NS_ERROR_OUT_OF_MEMORY; - } - } - - // Get the post data & referrer - nsCOMPtr inputStream; -+ nsCOMPtr originalURI; - nsCOMPtr referrerURI; - uint32_t referrerPolicy = mozilla::net::RP_Default; - nsCOMPtr cacheKey; - nsCOMPtr owner = aOwner; - bool expired = false; - bool discardLayoutState = false; - nsCOMPtr cacheChannel; - if (aChannel) { -@@ -11843,16 +11925,17 @@ nsDocShell::AddToSessionHistory(nsIURI* - if (!httpChannel) { - GetHttpChannel(aChannel, getter_AddRefs(httpChannel)); - } - if (httpChannel) { - nsCOMPtr uploadChannel(do_QueryInterface(httpChannel)); - if (uploadChannel) { - uploadChannel->GetUploadStream(getter_AddRefs(inputStream)); - } -+ httpChannel->GetOriginalURI(getter_AddRefs(originalURI)); - httpChannel->GetReferrer(getter_AddRefs(referrerURI)); - httpChannel->GetReferrerPolicy(&referrerPolicy); - - discardLayoutState = ShouldDiscardLayoutState(httpChannel); - } - aChannel->GetOwner(getter_AddRefs(owner)); - if (!owner) { - nsCOMPtr loadInfo; -@@ -11875,16 +11958,21 @@ nsDocShell::AddToSessionHistory(nsIURI* - EmptyString(), // Title - inputStream, // Post data stream - nullptr, // LayoutHistory state - cacheKey, // CacheKey - mContentTypeHint, // Content-type - owner, // Channel or provided owner - mHistoryID, - mDynamicallyCreated); -+ -+ nsCOMPtr entryESR38 = do_QueryInterface(entry); -+ if (entryESR38) { -+ entryESR38->SetOriginalURI(originalURI); -+ } - entry->SetReferrerURI(referrerURI); - entry->SetReferrerPolicy(referrerPolicy); - nsCOMPtr inStrmChan = do_QueryInterface(aChannel); - if (inStrmChan) { - bool isSrcdocChannel; - inStrmChan->GetIsSrcdocChannel(&isSrcdocChannel); - if (isSrcdocChannel) { - nsAutoString srcdoc; -@@ -11976,25 +12064,32 @@ nsDocShell::AddToSessionHistory(nsIURI* - nsresult - nsDocShell::LoadHistoryEntry(nsISHEntry* aEntry, uint32_t aLoadType) - { - if (!IsNavigationAllowed()) { - return NS_OK; - } - - nsCOMPtr uri; -+ nsCOMPtr originalURI; - nsCOMPtr postData; - nsCOMPtr referrerURI; - uint32_t referrerPolicy; - nsAutoCString contentType; - nsCOMPtr owner; - - NS_ENSURE_TRUE(aEntry, NS_ERROR_FAILURE); - - NS_ENSURE_SUCCESS(aEntry->GetURI(getter_AddRefs(uri)), NS_ERROR_FAILURE); -+ -+ nsCOMPtr entryESR38 = do_QueryInterface(aEntry); -+ if (entryESR38) { -+ NS_ENSURE_SUCCESS(entryESR38->GetOriginalURI(getter_AddRefs(originalURI)), -+ NS_ERROR_FAILURE); -+ } - NS_ENSURE_SUCCESS(aEntry->GetReferrerURI(getter_AddRefs(referrerURI)), - NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(aEntry->GetReferrerPolicy(&referrerPolicy), - NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(aEntry->GetPostData(getter_AddRefs(postData)), - NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(aEntry->GetContentType(contentType), NS_ERROR_FAILURE); - NS_ENSURE_SUCCESS(aEntry->GetOwner(getter_AddRefs(owner)), NS_ERROR_FAILURE); -@@ -12064,34 +12159,35 @@ nsDocShell::LoadHistoryEntry(nsISHEntry* - } else { - srcdoc = NullString(); - } - - // Passing nullptr as aSourceDocShell gives the same behaviour as before - // aSourceDocShell was introduced. According to spec we should be passing - // the source browsing context that was used when the history entry was - // first created. bug 947716 has been created to address this issue. -- rv = InternalLoad(uri, -- referrerURI, -- referrerPolicy, -- owner, -- flags, -- nullptr, // No window target -- contentType.get(), // Type hint -- NullString(), // No forced file download -- postData, // Post data stream -- nullptr, // No headers stream -- aLoadType, // Load type -- aEntry, // SHEntry -- true, -- srcdoc, -- nullptr, // Source docshell, see comment above -- baseURI, -- nullptr, // No nsIDocShell -- nullptr); // No nsIRequest -+ rv = InternalLoad2(uri, -+ originalURI, -+ referrerURI, -+ referrerPolicy, -+ owner, -+ flags, -+ nullptr, // No window target -+ contentType.get(), // Type hint -+ NullString(), // No forced file download -+ postData, // Post data stream -+ nullptr, // No headers stream -+ aLoadType, // Load type -+ aEntry, // SHEntry -+ true, -+ srcdoc, -+ nullptr, // Source docshell, see comment above -+ baseURI, -+ nullptr, // No nsIDocShell -+ nullptr); // No nsIRequest - return rv; - } - - NS_IMETHODIMP - nsDocShell::GetShouldSaveLayoutState(bool* aShould) - { - *aShould = false; - if (mOSHE) { -@@ -13527,35 +13623,36 @@ nsDocShell::OnLinkClickSync(nsIContent* - // with it under InternalLoad; we do _not_ want to change the URI - // our caller passed in. - nsCOMPtr clonedURI; - aURI->Clone(getter_AddRefs(clonedURI)); - if (!clonedURI) { - return NS_ERROR_OUT_OF_MEMORY; - } - -- nsresult rv = InternalLoad(clonedURI, // New URI -- referer, // Referer URI -- refererPolicy, // Referer policy -- aContent->NodePrincipal(), // Owner is our node's -- // principal -- flags, -- target.get(), // Window target -- NS_LossyConvertUTF16toASCII(typeHint).get(), -- aFileName, // Download as file -- aPostDataStream, // Post data stream -- aHeadersDataStream, // Headers stream -- LOAD_LINK, // Load type -- nullptr, // No SHEntry -- true, // first party site -- NullString(), // No srcdoc -- this, // We are the source -- nullptr, // baseURI not needed -- aDocShell, // DocShell out-param -- aRequest); // Request out-param -+ nsresult rv = InternalLoad2(clonedURI, // New URI -+ nullptr, // Original URI -+ referer, // Referer URI -+ refererPolicy, // Referer policy -+ aContent->NodePrincipal(), // Owner is our node's -+ // principal -+ flags, -+ target.get(), // Window target -+ NS_LossyConvertUTF16toASCII(typeHint).get(), -+ aFileName, // Download as file -+ aPostDataStream, // Post data stream -+ aHeadersDataStream, // Headers stream -+ LOAD_LINK, // Load type -+ nullptr, // No SHEntry -+ true, // first party site -+ NullString(), // No srcdoc -+ this, // We are the source -+ nullptr, // baseURI not needed -+ aDocShell, // DocShell out-param -+ aRequest); // Request out-param - if (NS_SUCCEEDED(rv)) { - DispatchPings(aContent, aURI, referer, refererPolicy); - } - return rv; - } - - NS_IMETHODIMP - nsDocShell::OnOverLink(nsIContent* aContent, -diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h ---- a/docshell/base/nsDocShell.h -+++ b/docshell/base/nsDocShell.h -@@ -132,17 +132,17 @@ enum eCharsetReloadState - }; - - //***************************************************************************** - //*** nsDocShell - //***************************************************************************** - - class nsDocShell final - : public nsDocLoader -- , public nsIDocShell_ESR38 -+ , public nsIDocShell_ESR38_2 - , public nsIWebNavigation - , public nsIBaseWindow - , public nsIScrollable - , public nsITextScroll - , public nsIDocCharset - , public nsIContentViewerContainer - , public nsIRefreshURI - , public nsIWebProgressListener -@@ -164,16 +164,17 @@ public: - nsDocShell(); - - NS_DECL_AND_IMPL_ZEROING_OPERATOR_NEW - - virtual nsresult Init() override; - - NS_DECL_ISUPPORTS_INHERITED - -+ NS_DECL_NSIDOCSHELL_ESR38_2 - NS_DECL_NSIDOCSHELL_ESR38 - NS_DECL_NSIDOCSHELL - NS_DECL_NSIDOCSHELLTREEITEM - NS_DECL_NSIWEBNAVIGATION - NS_DECL_NSIBASEWINDOW - NS_DECL_NSISCROLLABLE - NS_DECL_NSITEXTSCROLL - NS_DECL_NSIDOCCHARSET -@@ -312,17 +313,20 @@ protected: - // at the parent. - nsIPrincipal* GetInheritedPrincipal(bool aConsiderCurrentDocument); - - // Actually open a channel and perform a URI load. Note: whatever owner is - // passed to this function will be set on the channel. Callers who wish to - // not have an owner on the channel should just pass null. - // If aSrcdoc is not void, the load will be considered as a srcdoc load, - // and the contents of aSrcdoc will be loaded instead of aURI. -+ // aOriginalURI will be set as the originalURI on the channel that does the -+ // load. If aOriginalURI is null, aURI will be set as the originalURI. - nsresult DoURILoad(nsIURI* aURI, -+ nsIURI* aOriginalURI, - nsIURI* aReferrer, - bool aSendReferrer, - uint32_t aReferrerPolicy, - nsISupports* aOwner, - const char* aTypeHint, - const nsAString& aFileName, - nsIInputStream* aPostData, - nsIInputStream* aHeadersData, -diff --git a/docshell/base/nsDocShellLoadInfo.cpp b/docshell/base/nsDocShellLoadInfo.cpp ---- a/docshell/base/nsDocShellLoadInfo.cpp -+++ b/docshell/base/nsDocShellLoadInfo.cpp -@@ -34,16 +34,17 @@ nsDocShellLoadInfo::~nsDocShellLoadInfo( - // nsDocShellLoadInfo::nsISupports - //***************************************************************************** - - NS_IMPL_ADDREF(nsDocShellLoadInfo) - NS_IMPL_RELEASE(nsDocShellLoadInfo) - - NS_INTERFACE_MAP_BEGIN(nsDocShellLoadInfo) - NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIDocShellLoadInfo) -+ NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo_ESR38) - NS_INTERFACE_MAP_ENTRY(nsIDocShellLoadInfo) - NS_INTERFACE_MAP_END - - //***************************************************************************** - // nsDocShellLoadInfo::nsIDocShellLoadInfo - //***************************************************************************** - - NS_IMETHODIMP -@@ -59,16 +60,33 @@ nsDocShellLoadInfo::GetReferrer(nsIURI** - NS_IMETHODIMP - nsDocShellLoadInfo::SetReferrer(nsIURI* aReferrer) - { - mReferrer = aReferrer; - return NS_OK; - } - - NS_IMETHODIMP -+nsDocShellLoadInfo::GetOriginalURI(nsIURI** aOriginalURI) -+{ -+ NS_ENSURE_ARG_POINTER(aOriginalURI); -+ -+ *aOriginalURI = mOriginalURI; -+ NS_IF_ADDREF(*aOriginalURI); -+ return NS_OK; -+} -+ -+NS_IMETHODIMP -+nsDocShellLoadInfo::SetOriginalURI(nsIURI* aOriginalURI) -+{ -+ mOriginalURI = aOriginalURI; -+ return NS_OK; -+} -+ -+NS_IMETHODIMP - nsDocShellLoadInfo::GetOwner(nsISupports** aOwner) - { - NS_ENSURE_ARG_POINTER(aOwner); - - *aOwner = mOwner; - NS_IF_ADDREF(*aOwner); - return NS_OK; - } -diff --git a/docshell/base/nsDocShellLoadInfo.h b/docshell/base/nsDocShellLoadInfo.h ---- a/docshell/base/nsDocShellLoadInfo.h -+++ b/docshell/base/nsDocShellLoadInfo.h -@@ -14,29 +14,31 @@ - // Interfaces Needed - #include "nsIDocShellLoadInfo.h" - - class nsIInputStream; - class nsISHEntry; - class nsIURI; - class nsIDocShell; - --class nsDocShellLoadInfo : public nsIDocShellLoadInfo -+class nsDocShellLoadInfo : public nsIDocShellLoadInfo_ESR38 - { - public: - nsDocShellLoadInfo(); - - NS_DECL_ISUPPORTS -+ NS_DECL_NSIDOCSHELLLOADINFO_ESR38 - NS_DECL_NSIDOCSHELLLOADINFO - - protected: - virtual ~nsDocShellLoadInfo(); - - protected: - nsCOMPtr mReferrer; -+ nsCOMPtr mOriginalURI; - nsCOMPtr mOwner; - bool mInheritOwner; - bool mOwnerIsExplicit; - bool mSendReferrer; - nsDocShellInfoReferrerPolicy mReferrerPolicy; - nsDocShellInfoLoadType mLoadType; - nsCOMPtr mSHEntry; - nsString mTarget; -diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl ---- a/docshell/base/nsIDocShell.idl -+++ b/docshell/base/nsIDocShell.idl -@@ -1059,8 +1059,66 @@ interface nsIDocShell : nsIDocShellTreeI - interface nsIDocShell_ESR38 : nsIDocShell - { - /** - * True if new child docshells should allow content retargeting. - * Setting allowContentRetargeting also overwrites this value. - */ - [infallible] attribute boolean allowContentRetargetingOnChildren; - }; -+ -+[scriptable, builtinclass, uuid(607604b6-8fe0-4d2c-8a6c-44f5f31a6e02)] -+interface nsIDocShell_ESR38_2 : nsIDocShell_ESR38 -+{ -+ /** -+ * Loads the given URI. This method is identical to loadURI(...) except -+ * that its parameter list is broken out instead of being packaged inside -+ * of an nsIDocShellLoadInfo object... -+ * -+ * @param aURI - The URI to load. -+ * @param aOriginalURI - The URI to set as the originalURI on the channel -+ * that does the load. If null, aURI will be set as -+ * the originalURI. -+ * @param aReferrer - Referring URI -+ * @param aReferrerPolicy - Referrer policy -+ * @param aOwner - Owner (security principal) -+ * @param aInheritOwner - Flag indicating whether the owner of the current -+ * document should be inherited if aOwner is null. -+ * @param aStopActiveDoc - Flag indicating whether loading the current -+ * document should be stopped. -+ * @param aWindowTarget - Window target for the load. -+ * @param aTypeHint - A hint as to the content-type of the resulting -+ * data. May be null or empty if no hint. -+ * @param aFileName - Non-null when the link should be downloaded as -+ the given filename. -+ * @param aPostDataStream - Post data stream (if POSTing) -+ * @param aHeadersStream - Stream containing "extra" request headers... -+ * @param aLoadFlags - Flags to modify load behaviour. Flags are defined -+ * in nsIWebNavigation. -+ * @param aSHEntry - Active Session History entry (if loading from SH) -+ * @param aSrcdoc When INTERNAL_LOAD_FLAGS_IS_SRCDOC is set, the -+ * contents of this parameter will be loaded instead -+ * of aURI. -+ * @param aSourceDocShell - The source browsing context for the navigation. -+ * @param aBaseURI - The base URI to be used for the load. Set in -+ * srcdoc loads as it cannot otherwise be inferred -+ * in certain situations such as view-source. -+ */ -+ [noscript]void internalLoad2(in nsIURI aURI, -+ in nsIURI aOriginalURI, -+ in nsIURI aReferrer, -+ in unsigned long aReferrerPolicy, -+ in nsISupports aOwner, -+ in uint32_t aFlags, -+ in wstring aWindowTarget, -+ in string aTypeHint, -+ in AString aFileName, -+ in nsIInputStream aPostDataStream, -+ in nsIInputStream aHeadersStream, -+ in unsigned long aLoadFlags, -+ in nsISHEntry aSHEntry, -+ in boolean firstParty, -+ in AString aSrcdoc, -+ in nsIDocShell aSourceDocShell, -+ in nsIURI aBaseURI, -+ out nsIDocShell aDocShell, -+ out nsIRequest aRequest); -+}; -diff --git a/docshell/base/nsIDocShellLoadInfo.idl b/docshell/base/nsIDocShellLoadInfo.idl ---- a/docshell/base/nsIDocShellLoadInfo.idl -+++ b/docshell/base/nsIDocShellLoadInfo.idl -@@ -106,8 +106,17 @@ interface nsIDocShellLoadInfo : nsISuppo - attribute nsIDocShell sourceDocShell; - - /** - * Used for srcdoc loads to give view-source knowledge of the load's base - * URI as this information isn't embedded in the load's URI. - */ - attribute nsIURI baseURI; - }; -+ -+[scriptable, uuid(9d3bc466-5efe-414d-ae8b-3830b45877bb)] -+interface nsIDocShellLoadInfo_ESR38 : nsIDocShellLoadInfo -+{ -+ /** -+ * The originalURI to be passed to nsIDocShell.internalLoad. May be null. -+ */ -+ attribute nsIURI originalURI; -+}; -diff --git a/docshell/shistory/public/nsISHEntry.idl b/docshell/shistory/public/nsISHEntry.idl ---- a/docshell/shistory/public/nsISHEntry.idl -+++ b/docshell/shistory/public/nsISHEntry.idl -@@ -319,8 +319,18 @@ interface nsISHEntryInternal : nsISuppor - #define NS_SHENTRY_CID \ - {0xbfd1a791, 0xad9f, 0x11d3, {0xbd, 0xc7, 0x0, 0x50, 0x4, 0xa, 0x9b, 0x44}} - - #define NS_SHENTRY_CONTRACTID \ - "@mozilla.org/browser/session-history-entry;1" - - %} - -+[scriptable, uuid(e45ab6ef-3485-449c-b91c-0846b2bf6faf)] -+interface nsISHEntry_ESR38 : nsISHEntry -+{ -+ /** -+ * A readonly property that returns the original URI of the current entry. -+ * If an entry is the result of a redirect this attribute holds original -+ * URI. The object returned is of type nsIURI -+ */ -+ attribute nsIURI originalURI; -+}; -diff --git a/docshell/shistory/src/nsSHEntry.cpp b/docshell/shistory/src/nsSHEntry.cpp ---- a/docshell/shistory/src/nsSHEntry.cpp -+++ b/docshell/shistory/src/nsSHEntry.cpp -@@ -38,16 +38,17 @@ nsSHEntry::nsSHEntry() - , mIsSrcdocEntry(false) - { - mShared = new nsSHEntryShared(); - } - - nsSHEntry::nsSHEntry(const nsSHEntry &other) - : mShared(other.mShared) - , mURI(other.mURI) -+ , mOriginalURI(other.mOriginalURI) - , mReferrerURI(other.mReferrerURI) - , mReferrerPolicy(other.mReferrerPolicy) - , mTitle(other.mTitle) - , mPostData(other.mPostData) - , mLoadType(0) // XXX why not copy? - , mID(other.mID) - , mScrollPositionX(0) // XXX why not copy? - , mScrollPositionY(0) // XXX why not copy? -@@ -74,17 +75,17 @@ nsSHEntry::~nsSHEntry() - // Null out the mParent pointers on all our kids. - mChildren.EnumerateForwards(ClearParentPtr, nullptr); - } - - //***************************************************************************** - // nsSHEntry: nsISupports - //***************************************************************************** - --NS_IMPL_ISUPPORTS(nsSHEntry, nsISHContainer, nsISHEntry, nsISHEntryInternal) -+NS_IMPL_ISUPPORTS(nsSHEntry, nsISHContainer, nsISHEntry_ESR38, nsISHEntry, nsISHEntryInternal) - - //***************************************************************************** - // nsSHEntry: nsISHEntry - //***************************************************************************** - - NS_IMETHODIMP nsSHEntry::SetScrollPosition(int32_t x, int32_t y) - { - mScrollPositionX = x; -@@ -119,16 +120,29 @@ NS_IMETHODIMP nsSHEntry::GetURI(nsIURI** - } - - NS_IMETHODIMP nsSHEntry::SetURI(nsIURI* aURI) - { - mURI = aURI; - return NS_OK; - } - -+NS_IMETHODIMP nsSHEntry::GetOriginalURI(nsIURI** aOriginalURI) -+{ -+ *aOriginalURI = mOriginalURI; -+ NS_IF_ADDREF(*aOriginalURI); -+ return NS_OK; -+} -+ -+NS_IMETHODIMP nsSHEntry::SetOriginalURI(nsIURI* aOriginalURI) -+{ -+ mOriginalURI = aOriginalURI; -+ return NS_OK; -+} -+ - NS_IMETHODIMP nsSHEntry::GetReferrerURI(nsIURI **aReferrerURI) - { - *aReferrerURI = mReferrerURI; - NS_IF_ADDREF(*aReferrerURI); - return NS_OK; - } - - NS_IMETHODIMP nsSHEntry::SetReferrerURI(nsIURI *aReferrerURI) -diff --git a/docshell/shistory/src/nsSHEntry.h b/docshell/shistory/src/nsSHEntry.h ---- a/docshell/shistory/src/nsSHEntry.h -+++ b/docshell/shistory/src/nsSHEntry.h -@@ -17,25 +17,26 @@ - // Interfaces needed - #include "nsISHEntry.h" - #include "nsISHContainer.h" - - class nsSHEntryShared; - class nsIInputStream; - class nsIURI; - --class nsSHEntry final : public nsISHEntry, -+class nsSHEntry final : public nsISHEntry_ESR38, - public nsISHContainer, - public nsISHEntryInternal - { - public: - nsSHEntry(); - nsSHEntry(const nsSHEntry &other); - - NS_DECL_ISUPPORTS -+ NS_DECL_NSISHENTRY_ESR38 - NS_DECL_NSISHENTRY - NS_DECL_NSISHENTRYINTERNAL - NS_DECL_NSISHCONTAINER - - void DropPresentationState(); - - static nsresult Startup(); - static void Shutdown(); -@@ -44,16 +45,17 @@ private: - ~nsSHEntry(); - - // We share the state in here with other SHEntries which correspond to the - // same document. - nsRefPtr mShared; - - // See nsSHEntry.idl for comments on these members. - nsCOMPtr mURI; -+ nsCOMPtr mOriginalURI; - nsCOMPtr mReferrerURI; - uint32_t mReferrerPolicy; - nsString mTitle; - nsCOMPtr mPostData; - uint32_t mLoadType; - uint32_t mID; - int32_t mScrollPositionX; - int32_t mScrollPositionY; -diff --git a/docshell/shistory/src/nsSHistory.cpp b/docshell/shistory/src/nsSHistory.cpp ---- a/docshell/shistory/src/nsSHistory.cpp -+++ b/docshell/shistory/src/nsSHistory.cpp -@@ -1779,16 +1779,26 @@ nsSHistory::InitiateLoad(nsISHEntry * aF - * so that proper loadType is maintained through out a frameset - */ - aFrameEntry->SetLoadType(aLoadType); - aFrameDS->CreateLoadInfo (getter_AddRefs(loadInfo)); - - loadInfo->SetLoadType(aLoadType); - loadInfo->SetSHEntry(aFrameEntry); - -+ nsCOMPtr originalURI; -+ nsCOMPtr feESR38 = do_QueryInterface(aFrameEntry); -+ if (feESR38) { -+ feESR38->GetOriginalURI(getter_AddRefs(originalURI)); -+ } -+ nsCOMPtr liESR38 = do_QueryInterface(loadInfo); -+ if (liESR38) { -+ liESR38->SetOriginalURI(originalURI); -+ } -+ - nsCOMPtr nextURI; - aFrameEntry->GetURI(getter_AddRefs(nextURI)); - // Time to initiate a document load - return aFrameDS->LoadURI(nextURI, loadInfo, nsIWebNavigation::LOAD_FLAGS_NONE, false); - - } - - - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch deleted file mode 100644 index 2b711b1761..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt01.patch +++ /dev/null @@ -1,356 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/c1d67bd4c993 - -# HG changeset patch -# User Timothy Nikkel -# 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 -+#include -+#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()) -+ , mYFilter(MakeUnique()) -+ , 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& 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& 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(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 - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch deleted file mode 100644 index e01b5eaf2f..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt02.patch +++ /dev/null @@ -1,58 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/9719b71d72dd - -# HG changeset patch -# User Byron Campen [:bwc] -# 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 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& stun_servers, - const std::vector& turn_servers); - // WARNING: This destroys the object! - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch deleted file mode 100644 index 96b83c118c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt03.patch +++ /dev/null @@ -1,60 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/2839062f84fb - -# HG changeset patch -# User Jan de Mooij -# 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; - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch deleted file mode 100644 index 4eeb2377b0..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt04.patch +++ /dev/null @@ -1,53 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/9dd60e798819 - -# HG changeset patch -# User Olli Pettay -# 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 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 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; - } - } - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch deleted file mode 100644 index d222feff2a..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt05.patch +++ /dev/null @@ -1,32 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/1dd0ca8e70bd - -# HG changeset patch -# User Nicolas B. Pierron -# 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); - diff --git a/gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch b/gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch deleted file mode 100644 index 3de568493b..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1952-pt06.patch +++ /dev/null @@ -1,103 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/6f4d51302387 - -# HG changeset patch -# User Andrew McCreight -# 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 node = nodeToResult; -- nsINode* parent = node->GetParentNode(); -+ nsCOMPtr 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 next = node->GetNextNode(aRoot); -+ nsCOMPtr parent = node->GetParent(); - nsCOMPtr 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 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 (rowCountItem(refIndex); -- nsINode* parent = refRow->GetParentNode(); -+ RefPtr refRow = rows->Item(refIndex); -+ nsCOMPtr parent = refRow->GetParentNode(); - - // create the row - nsRefPtr nodeInfo; - nsContentUtils::NameChanged(mNodeInfo, nsGkAtoms::tr, - getter_AddRefs(nodeInfo)); - - newRow = NS_NewHTMLTableRowElement(nodeInfo.forget()); - - diff --git a/gnu/packages/patches/icecat-CVE-2016-1954.patch b/gnu/packages/patches/icecat-CVE-2016-1954.patch deleted file mode 100644 index bbb4b3217c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1954.patch +++ /dev/null @@ -1,32 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/a5c4c18849b4 - -# HG changeset patch -# User Christoph Kerschbaumer -# 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; - diff --git a/gnu/packages/patches/icecat-CVE-2016-1960.patch b/gnu/packages/patches/icecat-CVE-2016-1960.patch deleted file mode 100644 index 6c5c885e8b..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1960.patch +++ /dev/null @@ -1,55 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/185b233ea03f - -# HG changeset patch -# User Henri Sivonen -# 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 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 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() - diff --git a/gnu/packages/patches/icecat-CVE-2016-1961.patch b/gnu/packages/patches/icecat-CVE-2016-1961.patch deleted file mode 100644 index 10162be24b..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1961.patch +++ /dev/null @@ -1,33 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e93aeb25e2a4 - -# HG changeset patch -# User Andrew McCreight -# 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(newBody.get()), rv); - return rv.ErrorCode(); - } - - void - nsHTMLDocument::SetBody(nsGenericHTMLElement* newBody, ErrorResult& rv) - { -- Element* root = GetRootElement(); -+ nsCOMPtr 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) { - diff --git a/gnu/packages/patches/icecat-CVE-2016-1962.patch b/gnu/packages/patches/icecat-CVE-2016-1962.patch deleted file mode 100644 index 7eb4e072a1..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1962.patch +++ /dev/null @@ -1,107 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/221de852fda3 - -# HG changeset patch -# User Randell Jesup -# 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 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); - - diff --git a/gnu/packages/patches/icecat-CVE-2016-1964.patch b/gnu/packages/patches/icecat-CVE-2016-1964.patch deleted file mode 100644 index e53fc749b5..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1964.patch +++ /dev/null @@ -1,54 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/a653013e7b50 - -# HG changeset patch -# User Peter Van der Beken -# 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 - txNamespaceMap* aMappings) - : mName(Move(aName)), mNamespace(Move(aNamespace)), mMappings(aMappings) - { - } - - nsresult - txAttribute::execute(txExecutionState& aEs) - { -+ nsAutoPtr handler( -+ static_cast(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 handler( -- static_cast(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) - diff --git a/gnu/packages/patches/icecat-CVE-2016-1965.patch b/gnu/packages/patches/icecat-CVE-2016-1965.patch deleted file mode 100644 index 8a37d4975c..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1965.patch +++ /dev/null @@ -1,44 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/b4467681abd6 - -# HG changeset patch -# User Gijs Kruitbosch -# 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); - diff --git a/gnu/packages/patches/icecat-CVE-2016-1966.patch b/gnu/packages/patches/icecat-CVE-2016-1966.patch deleted file mode 100644 index 6bf5f9f95e..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1966.patch +++ /dev/null @@ -1,36 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/291c2f31c48c - -# HG changeset patch -# User Nicholas Nethercote -# 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 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 -+ (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; - diff --git a/gnu/packages/patches/icecat-CVE-2016-1974.patch b/gnu/packages/patches/icecat-CVE-2016-1974.patch deleted file mode 100644 index 70fc23b8f3..0000000000 --- a/gnu/packages/patches/icecat-CVE-2016-1974.patch +++ /dev/null @@ -1,530 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/271e3a5a53d9 - -# HG changeset patch -# User Henri Sivonen -# 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 ); - diff --git a/gnu/packages/patches/icecat-bug-1248851.patch b/gnu/packages/patches/icecat-bug-1248851.patch deleted file mode 100644 index ea4d6831b5..0000000000 --- a/gnu/packages/patches/icecat-bug-1248851.patch +++ /dev/null @@ -1,37 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/8c1d40e45a72 - -# HG changeset patch -# User Xidorn Quan -# 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(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 fileDirectory; - nsCOMPtr journalDirectory; - - if (mFileManager) { - diff --git a/gnu/packages/patches/icecat-update-graphite2-pt2.patch b/gnu/packages/patches/icecat-update-graphite2-pt2.patch deleted file mode 100644 index 8acde75d6c..0000000000 --- a/gnu/packages/patches/icecat-update-graphite2-pt2.patch +++ /dev/null @@ -1,861 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/ec9cff7bb543 - -# HG changeset patch -# User Jonathan Kew -# 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 - 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(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(p); - const uint16 flags = be::read(p); - _num_attrs = be::read(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(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(--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(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(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(pStartCode + iRange) > nUnicodePrev) - iRange--; -- while (be::peek(pTable->end_code + iRange) < nUnicodePrev) -+ while (iRange < nRange - 1 && be::peek(pTable->end_code + iRange) < nUnicodePrev) - iRange++; - - // Now iRange is the range containing nUnicodePrev. - unsigned int nStartCode = be::peek(pStartCode + iRange); - unsigned int nEndCode = be::peek(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(pStartCode + iRange + 1); -+ return (iRange + 1 >= nRange) ? 0xFFFF : be::peek(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(pCmapSubtable12); - if (be::swap(pTable->format) != 12) - return false; - const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast(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))(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(direct_run(true, 0, 0, 0, dummy, 0)); -+ Machine::status_t dumstat = Machine::finished; -+ return static_cast(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( -- 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); - } - diff --git a/gnu/packages/patches/icecat-update-graphite2.patch b/gnu/packages/patches/icecat-update-graphite2.patch deleted file mode 100644 index af2c47bef7..0000000000 --- a/gnu/packages/patches/icecat-update-graphite2.patch +++ /dev/null @@ -1,9988 +0,0 @@ -Copied from upstream: -https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/ed4d2ce6046b - -# HG changeset patch -# User Jonathan Kew -# Date 1455126706 0 -# Node ID ed4d2ce6046b20287fd13c548dd3982fe1a24875 -# Parent 78d3632feb7b6f6046025352630bd4f5365f3106 -Bug 1246093 - Update graphite2 library to latest release on esr38. r=me,a=sledru+lizzard - -diff --git a/gfx/graphite2/COPYING b/gfx/graphite2/COPYING -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/COPYING -@@ -0,0 +1,26 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+ Alternatively, you may use this library under the terms of the Mozilla -+ Public License (http://mozilla.org/MPL) or under the GNU General Public -+ License, as published by the Free Sofware Foundation; either version -+ 2 of the license or (at your option) any later version. -+*/ -diff --git a/gfx/graphite2/LICENSE b/gfx/graphite2/LICENSE -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/LICENSE -@@ -0,0 +1,510 @@ -+ -+ GNU LESSER GENERAL PUBLIC LICENSE -+ Version 2.1, February 1999 -+ -+ Copyright (C) 1991, 1999 Free Software Foundation, Inc. -+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ Everyone is permitted to copy and distribute verbatim copies -+ of this license document, but changing it is not allowed. -+ -+[This is the first released version of the Lesser GPL. It also counts -+ as the successor of the GNU Library Public License, version 2, hence -+ the version number 2.1.] -+ -+ Preamble -+ -+ The licenses for most software are designed to take away your -+freedom to share and change it. By contrast, the GNU General Public -+Licenses are intended to guarantee your freedom to share and change -+free software--to make sure the software is free for all its users. -+ -+ This license, the Lesser General Public License, applies to some -+specially designated software packages--typically libraries--of the -+Free Software Foundation and other authors who decide to use it. You -+can use it too, but we suggest you first think carefully about whether -+this license or the ordinary General Public License is the better -+strategy to use in any particular case, based on the explanations -+below. -+ -+ When we speak of free software, we are referring to freedom of use, -+not price. Our General Public Licenses are designed to make sure that -+you have the freedom to distribute copies of free software (and charge -+for this service if you wish); that you receive source code or can get -+it if you want it; that you can change the software and use pieces of -+it in new free programs; and that you are informed that you can do -+these things. -+ -+ To protect your rights, we need to make restrictions that forbid -+distributors to deny you these rights or to ask you to surrender these -+rights. These restrictions translate to certain responsibilities for -+you if you distribute copies of the library or if you modify it. -+ -+ For example, if you distribute copies of the library, whether gratis -+or for a fee, you must give the recipients all the rights that we gave -+you. You must make sure that they, too, receive or can get the source -+code. If you link other code with the library, you must provide -+complete object files to the recipients, so that they can relink them -+with the library after making changes to the library and recompiling -+it. And you must show them these terms so they know their rights. -+ -+ We protect your rights with a two-step method: (1) we copyright the -+library, and (2) we offer you this license, which gives you legal -+permission to copy, distribute and/or modify the library. -+ -+ To protect each distributor, we want to make it very clear that -+there is no warranty for the free library. Also, if the library is -+modified by someone else and passed on, the recipients should know -+that what they have is not the original version, so that the original -+author's reputation will not be affected by problems that might be -+introduced by others. -+ -+ Finally, software patents pose a constant threat to the existence of -+any free program. We wish to make sure that a company cannot -+effectively restrict the users of a free program by obtaining a -+restrictive license from a patent holder. Therefore, we insist that -+any patent license obtained for a version of the library must be -+consistent with the full freedom of use specified in this license. -+ -+ Most GNU software, including some libraries, is covered by the -+ordinary GNU General Public License. This license, the GNU Lesser -+General Public License, applies to certain designated libraries, and -+is quite different from the ordinary General Public License. We use -+this license for certain libraries in order to permit linking those -+libraries into non-free programs. -+ -+ When a program is linked with a library, whether statically or using -+a shared library, the combination of the two is legally speaking a -+combined work, a derivative of the original library. The ordinary -+General Public License therefore permits such linking only if the -+entire combination fits its criteria of freedom. The Lesser General -+Public License permits more lax criteria for linking other code with -+the library. -+ -+ We call this license the "Lesser" General Public License because it -+does Less to protect the user's freedom than the ordinary General -+Public License. It also provides other free software developers Less -+of an advantage over competing non-free programs. These disadvantages -+are the reason we use the ordinary General Public License for many -+libraries. However, the Lesser license provides advantages in certain -+special circumstances. -+ -+ For example, on rare occasions, there may be a special need to -+encourage the widest possible use of a certain library, so that it -+becomes a de-facto standard. To achieve this, non-free programs must -+be allowed to use the library. A more frequent case is that a free -+library does the same job as widely used non-free libraries. In this -+case, there is little to gain by limiting the free library to free -+software only, so we use the Lesser General Public License. -+ -+ In other cases, permission to use a particular library in non-free -+programs enables a greater number of people to use a large body of -+free software. For example, permission to use the GNU C Library in -+non-free programs enables many more people to use the whole GNU -+operating system, as well as its variant, the GNU/Linux operating -+system. -+ -+ Although the Lesser General Public License is Less protective of the -+users' freedom, it does ensure that the user of a program that is -+linked with the Library has the freedom and the wherewithal to run -+that program using a modified version of the Library. -+ -+ The precise terms and conditions for copying, distribution and -+modification follow. Pay close attention to the difference between a -+"work based on the library" and a "work that uses the library". The -+former contains code derived from the library, whereas the latter must -+be combined with the library in order to run. -+ -+ GNU LESSER GENERAL PUBLIC LICENSE -+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION -+ -+ 0. This License Agreement applies to any software library or other -+program which contains a notice placed by the copyright holder or -+other authorized party saying it may be distributed under the terms of -+this Lesser General Public License (also called "this License"). -+Each licensee is addressed as "you". -+ -+ A "library" means a collection of software functions and/or data -+prepared so as to be conveniently linked with application programs -+(which use some of those functions and data) to form executables. -+ -+ The "Library", below, refers to any such software library or work -+which has been distributed under these terms. A "work based on the -+Library" means either the Library or any derivative work under -+copyright law: that is to say, a work containing the Library or a -+portion of it, either verbatim or with modifications and/or translated -+straightforwardly into another language. (Hereinafter, translation is -+included without limitation in the term "modification".) -+ -+ "Source code" for a work means the preferred form of the work for -+making modifications to it. For a library, complete source code means -+all the source code for all modules it contains, plus any associated -+interface definition files, plus the scripts used to control -+compilation and installation of the library. -+ -+ Activities other than copying, distribution and modification are not -+covered by this License; they are outside its scope. The act of -+running a program using the Library is not restricted, and output from -+such a program is covered only if its contents constitute a work based -+on the Library (independent of the use of the Library in a tool for -+writing it). Whether that is true depends on what the Library does -+and what the program that uses the Library does. -+ -+ 1. You may copy and distribute verbatim copies of the Library's -+complete source code as you receive it, in any medium, provided that -+you conspicuously and appropriately publish on each copy an -+appropriate copyright notice and disclaimer of warranty; keep intact -+all the notices that refer to this License and to the absence of any -+warranty; and distribute a copy of this License along with the -+Library. -+ -+ You may charge a fee for the physical act of transferring a copy, -+and you may at your option offer warranty protection in exchange for a -+fee. -+ -+ 2. You may modify your copy or copies of the Library or any portion -+of it, thus forming a work based on the Library, and copy and -+distribute such modifications or work under the terms of Section 1 -+above, provided that you also meet all of these conditions: -+ -+ a) The modified work must itself be a software library. -+ -+ b) You must cause the files modified to carry prominent notices -+ stating that you changed the files and the date of any change. -+ -+ c) You must cause the whole of the work to be licensed at no -+ charge to all third parties under the terms of this License. -+ -+ d) If a facility in the modified Library refers to a function or a -+ table of data to be supplied by an application program that uses -+ the facility, other than as an argument passed when the facility -+ is invoked, then you must make a good faith effort to ensure that, -+ in the event an application does not supply such function or -+ table, the facility still operates, and performs whatever part of -+ its purpose remains meaningful. -+ -+ (For example, a function in a library to compute square roots has -+ a purpose that is entirely well-defined independent of the -+ application. Therefore, Subsection 2d requires that any -+ application-supplied function or table used by this function must -+ be optional: if the application does not supply it, the square -+ root function must still compute square roots.) -+ -+These requirements apply to the modified work as a whole. If -+identifiable sections of that work are not derived from the Library, -+and can be reasonably considered independent and separate works in -+themselves, then this License, and its terms, do not apply to those -+sections when you distribute them as separate works. But when you -+distribute the same sections as part of a whole which is a work based -+on the Library, the distribution of the whole must be on the terms of -+this License, whose permissions for other licensees extend to the -+entire whole, and thus to each and every part regardless of who wrote -+it. -+ -+Thus, it is not the intent of this section to claim rights or contest -+your rights to work written entirely by you; rather, the intent is to -+exercise the right to control the distribution of derivative or -+collective works based on the Library. -+ -+In addition, mere aggregation of another work not based on the Library -+with the Library (or with a work based on the Library) on a volume of -+a storage or distribution medium does not bring the other work under -+the scope of this License. -+ -+ 3. You may opt to apply the terms of the ordinary GNU General Public -+License instead of this License to a given copy of the Library. To do -+this, you must alter all the notices that refer to this License, so -+that they refer to the ordinary GNU General Public License, version 2, -+instead of to this License. (If a newer version than version 2 of the -+ordinary GNU General Public License has appeared, then you can specify -+that version instead if you wish.) Do not make any other change in -+these notices. -+ -+ Once this change is made in a given copy, it is irreversible for -+that copy, so the ordinary GNU General Public License applies to all -+subsequent copies and derivative works made from that copy. -+ -+ This option is useful when you wish to copy part of the code of -+the Library into a program that is not a library. -+ -+ 4. You may copy and distribute the Library (or a portion or -+derivative of it, under Section 2) in object code or executable form -+under the terms of Sections 1 and 2 above provided that you accompany -+it with the complete corresponding machine-readable source code, which -+must be distributed under the terms of Sections 1 and 2 above on a -+medium customarily used for software interchange. -+ -+ If distribution of object code is made by offering access to copy -+from a designated place, then offering equivalent access to copy the -+source code from the same place satisfies the requirement to -+distribute the source code, even though third parties are not -+compelled to copy the source along with the object code. -+ -+ 5. A program that contains no derivative of any portion of the -+Library, but is designed to work with the Library by being compiled or -+linked with it, is called a "work that uses the Library". Such a -+work, in isolation, is not a derivative work of the Library, and -+therefore falls outside the scope of this License. -+ -+ However, linking a "work that uses the Library" with the Library -+creates an executable that is a derivative of the Library (because it -+contains portions of the Library), rather than a "work that uses the -+library". The executable is therefore covered by this License. -+Section 6 states terms for distribution of such executables. -+ -+ When a "work that uses the Library" uses material from a header file -+that is part of the Library, the object code for the work may be a -+derivative work of the Library even though the source code is not. -+Whether this is true is especially significant if the work can be -+linked without the Library, or if the work is itself a library. The -+threshold for this to be true is not precisely defined by law. -+ -+ If such an object file uses only numerical parameters, data -+structure layouts and accessors, and small macros and small inline -+functions (ten lines or less in length), then the use of the object -+file is unrestricted, regardless of whether it is legally a derivative -+work. (Executables containing this object code plus portions of the -+Library will still fall under Section 6.) -+ -+ Otherwise, if the work is a derivative of the Library, you may -+distribute the object code for the work under the terms of Section 6. -+Any executables containing that work also fall under Section 6, -+whether or not they are linked directly with the Library itself. -+ -+ 6. As an exception to the Sections above, you may also combine or -+link a "work that uses the Library" with the Library to produce a -+work containing portions of the Library, and distribute that work -+under terms of your choice, provided that the terms permit -+modification of the work for the customer's own use and reverse -+engineering for debugging such modifications. -+ -+ You must give prominent notice with each copy of the work that the -+Library is used in it and that the Library and its use are covered by -+this License. You must supply a copy of this License. If the work -+during execution displays copyright notices, you must include the -+copyright notice for the Library among them, as well as a reference -+directing the user to the copy of this License. Also, you must do one -+of these things: -+ -+ a) Accompany the work with the complete corresponding -+ machine-readable source code for the Library including whatever -+ changes were used in the work (which must be distributed under -+ Sections 1 and 2 above); and, if the work is an executable linked -+ with the Library, with the complete machine-readable "work that -+ uses the Library", as object code and/or source code, so that the -+ user can modify the Library and then relink to produce a modified -+ executable containing the modified Library. (It is understood -+ that the user who changes the contents of definitions files in the -+ Library will not necessarily be able to recompile the application -+ to use the modified definitions.) -+ -+ b) Use a suitable shared library mechanism for linking with the -+ Library. A suitable mechanism is one that (1) uses at run time a -+ copy of the library already present on the user's computer system, -+ rather than copying library functions into the executable, and (2) -+ will operate properly with a modified version of the library, if -+ the user installs one, as long as the modified version is -+ interface-compatible with the version that the work was made with. -+ -+ c) Accompany the work with a written offer, valid for at least -+ three years, to give the same user the materials specified in -+ Subsection 6a, above, for a charge no more than the cost of -+ performing this distribution. -+ -+ d) If distribution of the work is made by offering access to copy -+ from a designated place, offer equivalent access to copy the above -+ specified materials from the same place. -+ -+ e) Verify that the user has already received a copy of these -+ materials or that you have already sent this user a copy. -+ -+ For an executable, the required form of the "work that uses the -+Library" must include any data and utility programs needed for -+reproducing the executable from it. However, as a special exception, -+the materials to be distributed need not include anything that is -+normally distributed (in either source or binary form) with the major -+components (compiler, kernel, and so on) of the operating system on -+which the executable runs, unless that component itself accompanies -+the executable. -+ -+ It may happen that this requirement contradicts the license -+restrictions of other proprietary libraries that do not normally -+accompany the operating system. Such a contradiction means you cannot -+use both them and the Library together in an executable that you -+distribute. -+ -+ 7. You may place library facilities that are a work based on the -+Library side-by-side in a single library together with other library -+facilities not covered by this License, and distribute such a combined -+library, provided that the separate distribution of the work based on -+the Library and of the other library facilities is otherwise -+permitted, and provided that you do these two things: -+ -+ a) Accompany the combined library with a copy of the same work -+ based on the Library, uncombined with any other library -+ facilities. This must be distributed under the terms of the -+ Sections above. -+ -+ b) Give prominent notice with the combined library of the fact -+ that part of it is a work based on the Library, and explaining -+ where to find the accompanying uncombined form of the same work. -+ -+ 8. You may not copy, modify, sublicense, link with, or distribute -+the Library except as expressly provided under this License. Any -+attempt otherwise to copy, modify, sublicense, link with, or -+distribute the Library is void, and will automatically terminate your -+rights under this License. However, parties who have received copies, -+or rights, from you under this License will not have their licenses -+terminated so long as such parties remain in full compliance. -+ -+ 9. You are not required to accept this License, since you have not -+signed it. However, nothing else grants you permission to modify or -+distribute the Library or its derivative works. These actions are -+prohibited by law if you do not accept this License. Therefore, by -+modifying or distributing the Library (or any work based on the -+Library), you indicate your acceptance of this License to do so, and -+all its terms and conditions for copying, distributing or modifying -+the Library or works based on it. -+ -+ 10. Each time you redistribute the Library (or any work based on the -+Library), the recipient automatically receives a license from the -+original licensor to copy, distribute, link with or modify the Library -+subject to these terms and conditions. You may not impose any further -+restrictions on the recipients' exercise of the rights granted herein. -+You are not responsible for enforcing compliance by third parties with -+this License. -+ -+ 11. If, as a consequence of a court judgment or allegation of patent -+infringement or for any other reason (not limited to patent issues), -+conditions are imposed on you (whether by court order, agreement or -+otherwise) that contradict the conditions of this License, they do not -+excuse you from the conditions of this License. If you cannot -+distribute so as to satisfy simultaneously your obligations under this -+License and any other pertinent obligations, then as a consequence you -+may not distribute the Library at all. For example, if a patent -+license would not permit royalty-free redistribution of the Library by -+all those who receive copies directly or indirectly through you, then -+the only way you could satisfy both it and this License would be to -+refrain entirely from distribution of the Library. -+ -+If any portion of this section is held invalid or unenforceable under -+any particular circumstance, the balance of the section is intended to -+apply, and the section as a whole is intended to apply in other -+circumstances. -+ -+It is not the purpose of this section to induce you to infringe any -+patents or other property right claims or to contest validity of any -+such claims; this section has the sole purpose of protecting the -+integrity of the free software distribution system which is -+implemented by public license practices. Many people have made -+generous contributions to the wide range of software distributed -+through that system in reliance on consistent application of that -+system; it is up to the author/donor to decide if he or she is willing -+to distribute software through any other system and a licensee cannot -+impose that choice. -+ -+This section is intended to make thoroughly clear what is believed to -+be a consequence of the rest of this License. -+ -+ 12. If the distribution and/or use of the Library is restricted in -+certain countries either by patents or by copyrighted interfaces, the -+original copyright holder who places the Library under this License -+may add an explicit geographical distribution limitation excluding those -+countries, so that distribution is permitted only in or among -+countries not thus excluded. In such case, this License incorporates -+the limitation as if written in the body of this License. -+ -+ 13. The Free Software Foundation may publish revised and/or new -+versions of the Lesser General Public License from time to time. -+Such new versions will be similar in spirit to the present version, -+but may differ in detail to address new problems or concerns. -+ -+Each version is given a distinguishing version number. If the Library -+specifies a version number of this License which applies to it and -+"any later version", you have the option of following the terms and -+conditions either of that version or of any later version published by -+the Free Software Foundation. If the Library does not specify a -+license version number, you may choose any version ever published by -+the Free Software Foundation. -+ -+ 14. If you wish to incorporate parts of the Library into other free -+programs whose distribution conditions are incompatible with these, -+write to the author to ask for permission. For software which is -+copyrighted by the Free Software Foundation, write to the Free -+Software Foundation; we sometimes make exceptions for this. Our -+decision will be guided by the two goals of preserving the free status -+of all derivatives of our free software and of promoting the sharing -+and reuse of software generally. -+ -+ NO WARRANTY -+ -+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO -+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. -+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR -+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY -+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE -+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE -+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME -+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. -+ -+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU -+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR -+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE -+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING -+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A -+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF -+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH -+DAMAGES. -+ -+ END OF TERMS AND CONDITIONS -+ -+ How to Apply These Terms to Your New Libraries -+ -+ If you develop a new library, and you want it to be of the greatest -+possible use to the public, we recommend making it free software that -+everyone can redistribute and change. You can do so by permitting -+redistribution under these terms (or, alternatively, under the terms -+of the ordinary General Public License). -+ -+ To apply these terms, attach the following notices to the library. -+It is safest to attach them to the start of each source file to most -+effectively convey the exclusion of warranty; and each file should -+have at least the "copyright" line and a pointer to where the full -+notice is found. -+ -+ -+ -+ Copyright (C) -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ This library 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 -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with this library; if not, write to the Free Software -+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -+ -+Also add information on how to contact you by electronic and paper mail. -+ -+You should also get your employer (if you work as a programmer) or -+your school, if any, to sign a "copyright disclaimer" for the library, -+if necessary. Here is a sample; alter the names: -+ -+ Yoyodyne, Inc., hereby disclaims all copyright interest in the -+ library `Frob' (a library for tweaking knobs) written by James -+ Random Hacker. -+ -+ , 1 April 1990 -+ Ty Coon, President of Vice -+ -+That's all there is to it! -+ -+ -diff --git a/gfx/graphite2/README.md b/gfx/graphite2/README.md -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/README.md -@@ -0,0 +1,32 @@ -+# Graphite engine -+ -+## What is Graphite? -+ -+Graphite is a system that can be used to create “smart fonts” capable of displaying writing systems with various complex behaviors. A smart font contains not only letter shapes but also additional instructions indicating how to combine and position the letters in complex ways. -+ -+Graphite was primarily developed to provide the flexibility needed for minority languages which often need to be written according to slightly different rules than well-known languages that use the same script. -+ -+Examples of complex script behaviors Graphite can handle include: -+ -+* contextual shaping -+* ligatures -+* reordering -+* split glyphs -+* bidirectionality -+* stacking diacritics -+* complex positioning -+* shape aware kerning -+* automatic diacritic collision avoidance -+ -+See [examples of scripts with complex rendering](http://scripts.sil.org/CmplxRndExamples). -+ -+## Graphite system overview -+The Graphite system consists of: -+ -+* A rule-based programming language [Graphite Description Language](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_devFont#gdl) (GDL) that can be used to describe the behavior of a writing system -+* A compiler for that language -+* A rendering engine that can serve as the layout component of a text-processing application -+ -+Graphite renders TrueType fonts that have been extended by means of compiling a GDL program. -+ -+Further technical information is available on the [Graphite technical overview](http://scripts.sil.org/cms/scripts/page.php?site_id=projects&item_id=graphite_techAbout) page. -diff --git a/gfx/graphite2/README.mozilla b/gfx/graphite2/README.mozilla ---- a/gfx/graphite2/README.mozilla -+++ b/gfx/graphite2/README.mozilla -@@ -1,6 +1,7 @@ --This directory contains the Graphite2 library from http://hg.palaso.org/graphitedev -- --Current version derived from upstream changeset 1efd96aeade9 -- -+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 - 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 -@@ -24,18 +24,18 @@ - General Public License, as published by the Free Software Foundation, - 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 2 --#define GR2_VERSION_BUGFIX 4 -+#define GR2_VERSION_MINOR 3 -+#define GR2_VERSION_BUGFIX 5 - - #ifdef __cplusplus - extern "C" - { - #endif - - typedef struct gr_face gr_face; - typedef struct gr_font gr_font; -diff --git a/gfx/graphite2/include/graphite2/Segment.h b/gfx/graphite2/include/graphite2/Segment.h ---- a/gfx/graphite2/include/graphite2/Segment.h -+++ b/gfx/graphite2/include/graphite2/Segment.h -@@ -115,35 +115,68 @@ enum gr_attrCode { - gr_slatJStretch, - /// Amount this slot can shrink (not implemented) - gr_slatJShrink, - /// Granularity by which this slot can stretch or shrink (not implemented) - gr_slatJStep, - /// Justification weight for this glyph (not implemented) - gr_slatJWeight, - /// Amount this slot mush shrink or stretch in design units -- gr_slatJWidth, -+ gr_slatJWidth = 29, - /// SubSegment split point - gr_slatSegSplit = gr_slatJStretch + 29, - /// User defined attribute, see subattr for user attr number - gr_slatUserDefn, - /// Bidi level -- gr_slatBidiLevel, -+ gr_slatBidiLevel = 56, -+ /// Collision flags -+ gr_slatColFlags, -+ /// Collision constraint rectangle left (bl.x) -+ gr_slatColLimitblx, -+ /// Collision constraint rectangle lower (bl.y) -+ gr_slatColLimitbly, -+ /// Collision constraint rectangle right (tr.x) -+ gr_slatColLimittrx, -+ /// Collision constraint rectangle upper (tr.y) -+ gr_slatColLimittry, -+ /// Collision shift x -+ gr_slatColShiftx, -+ /// Collision shift y -+ gr_slatColShifty, -+ /// Collision margin -+ gr_slatColMargin, -+ /// Margin cost weight -+ gr_slatColMarginWt, -+ // Additional glyph that excludes movement near this one: -+ gr_slatColExclGlyph, -+ gr_slatColExclOffx, -+ gr_slatColExclOffy, -+ // Collision sequence enforcing attributes: -+ gr_slatSeqClass, -+ gr_slatSeqProxClass, -+ gr_slatSeqOrder, -+ gr_slatSeqAboveXoff, -+ gr_slatSeqAboveWt, -+ gr_slatSeqBelowXlim, -+ gr_slatSeqBelowWt, -+ gr_slatSeqValignHt, -+ gr_slatSeqValignWt, - - /// not implemented - gr_slatMax, - /// not implemented - gr_slatNoEffect = gr_slatMax + 1 - }; - - enum gr_bidirtl { - /// Underlying paragraph direction is RTL - gr_rtl = 1, - /// Set this to not run the bidi pass internally, even if the font asks for it. -- /// This presumes that the segment is in a single direction. -+ /// This presumes that the segment is in a single direction. Most of the time -+ /// this bit should be set unless you know you are passing full paragraphs of text. - gr_nobidi = 2, - /// Disable auto mirroring for rtl text - gr_nomirror = 4 - }; - - typedef struct gr_char_info gr_char_info; - typedef struct gr_segment gr_segment; - typedef struct gr_slot gr_slot; -diff --git a/gfx/graphite2/include/graphite2/Types.h b/gfx/graphite2/include/graphite2/Types.h ---- a/gfx/graphite2/include/graphite2/Types.h -+++ b/gfx/graphite2/include/graphite2/Types.h -@@ -53,17 +53,20 @@ enum gr_encform { - #else - #if defined __GNUC__ - #define GR2_API __attribute__((dllimport)) - #else - #define GR2_API __declspec(dllimport) - #endif - #endif - #define GR2_LOCAL -+#elif __GNUC__ >= 4 -+ #if defined GRAPHITE2_STATIC -+ #define GR2_API __attribute__ ((visibility("hidden"))) -+ #else -+ #define GR2_API __attribute__ ((visibility("default"))) -+ #endif -+ #define GR2_LOCAL __attribute__ ((visibility("hidden"))) - #else -- #if __GNUC__ >= 4 -- #define GR2_API __attribute__ ((visibility("default"))) -- #define GR2_LOCAL __attribute__ ((visibility("hidden"))) -- #else -- #define GR2_API -- #define GR2_LOCAL -- #endif -+ #define GR2_API -+ #define GR2_LOCAL - #endif -+ -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 -@@ -1,35 +1,49 @@ - #!/bin/bash - - # Script used to update the Graphite2 library in the mozilla source tree - - # This script lives in gfx/graphite2, along with the library source, - # but must be run from the top level of the mozilla-central tree. - --# It expects to find a checkout of the graphite2 tree in a directory "graphitedev" --# alongside the current mozilla tree that is to be updated. --# Expect error messages from the copy commands if this is not found! -+# Run as -+# -+# ./gfx/graphite2/moz-gr-update.sh RELEASE -+# -+# where RELEASE is the graphite2 release to be used, e.g. "1.3.4". - --# copy the source and headers --cp -R ../graphitedev/src/* gfx/graphite2/src --cp ../graphitedev/include/graphite2/* gfx/graphite2/include/graphite2 -+RELEASE=$1 - --# record the upstream changeset that was used --CHANGESET=$(cd ../graphitedev/ && hg log | head -n 1 | cut -d : -f 1,3 | sed -e 's/:/ /') --echo "This directory contains the Graphite2 library from http://hg.palaso.org/graphitedev\n" > gfx/graphite2/README.mozilla --echo "Current version derived from upstream" $CHANGESET >> gfx/graphite2/README.mozilla --echo "\nSee" $0 "for update procedure.\n" >> gfx/graphite2/README.mozilla -+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" -+ -+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" -+ -+echo "This directory contains the Graphite2 library release $RELEASE from" > gfx/graphite2/README.mozilla -+echo "$TARBALL" >> gfx/graphite2/README.mozilla -+echo "" -+echo "See" $0 "for update procedure." >> gfx/graphite2/README.mozilla - - # fix up includes because of bug 721839 (cstdio) and bug 803066 (Windows.h) --find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; --find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; -+#find gfx/graphite2/ -name "*.cpp" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; -+#find gfx/graphite2/ -name "*.h" -exec perl -p -i -e "s///;s/Windows.h/windows.h/;" {} \; - - # summarize what's been touched --echo Updated to $CHANGESET. -+echo Updated to $RELEASE. - echo Here is what changed in the gfx/graphite2 directory: - echo - - hg stat gfx/graphite2 - - echo - echo If gfx/graphite2/src/files.mk has changed, please make corresponding - echo changes to gfx/graphite2/src/moz.build -diff --git a/gfx/graphite2/src/CMakeLists.txt b/gfx/graphite2/src/CMakeLists.txt ---- a/gfx/graphite2/src/CMakeLists.txt -+++ b/gfx/graphite2/src/CMakeLists.txt -@@ -69,29 +69,31 @@ add_library(graphite2 SHARED - ${GRAPHITE2_VM_TYPE}_machine.cpp - gr_char_info.cpp - gr_features.cpp - gr_face.cpp - gr_font.cpp - gr_logging.cpp - gr_segment.cpp - gr_slot.cpp -- Bidi.cpp - CachedFace.cpp - CmapCache.cpp - Code.cpp -+ Collider.cpp -+ Decompressor.cpp - Face.cpp - FeatureMap.cpp - Font.cpp - GlyphFace.cpp - GlyphCache.cpp -+ Intervals.cpp - Justifier.cpp - NameTable.cpp - Pass.cpp -- Rule.cpp -+ Position.cpp - Segment.cpp - Silf.cpp - Slot.cpp - Sparse.cpp - TtfUtil.cpp - UtfCodec.cpp - ${FILEFACE} - ${SEGCACHE} -@@ -99,27 +101,28 @@ add_library(graphite2 SHARED - - set_target_properties(graphite2 PROPERTIES PUBLIC_HEADER "${GRAPHITE_HEADERS}" - SOVERSION ${GRAPHITE_SO_VERSION} - VERSION ${GRAPHITE_VERSION} - LT_VERSION_CURRENT ${GRAPHITE_API_CURRENT} - LT_VERSION_REVISION ${GRAPHITE_API_REVISION} - LT_VERSION_AGE ${GRAPHITE_API_AGE}) - --if (${CMAKE_BUILD_TYPE} STREQUAL "ClangASN") -- set(GRAPHITE_LINK_FLAGS "-fsanitize=address") --else (${CMAKE_BUILD_TYPE} STREQUAL "ClangASN") -- set(GRAPHITE_LINK_FLAGS "") --endif (${CMAKE_BUILD_TYPE} STREQUAL "ClangASN") -- - if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - set_target_properties(graphite2 PROPERTIES - COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wctor-dtor-privacy -Wnon-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector" - LINK_FLAGS "-nodefaultlibs ${GRAPHITE_LINK_FLAGS}" - LINKER_LANGUAGE C) -+ if (CMAKE_COMPILER_IS_GNUCXX) -+ add_definitions(-Wdouble-promotion) -+ endif (CMAKE_COMPILER_IS_GNUCXX) -+ message(STATUS "Compiler ID is: ${CMAKE_CXX_COMPILER_ID}") -+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") -+ add_definitions(-Wimplicit-fallthrough) -+ endif (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") - if (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") - target_link_libraries(graphite2 kernel32 msvcr90 mingw32 gcc user32) - else (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") - if (GRAPHITE2_ASAN) - target_link_libraries(graphite2 c gcc_s) - else (GRAPHITE2_ASAN) - target_link_libraries(graphite2 c gcc) - endif (GRAPHITE2_ASAN) -@@ -127,17 +130,17 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linu - nolib_test(stdc++ $) - endif (${CMAKE_CXX_COMPILER} MATCHES ".*mingw.*") - set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") - CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") - endif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - - if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") - set_target_properties(graphite2 PROPERTIES -- COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector" -+ COMPILE_FLAGS "-Wall -Wextra -Wno-unknown-pragmas -Wimplicit-fallthrough -Wendif-labels -Wshadow -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -fno-rtti -fno-exceptions -fvisibility=hidden -fvisibility-inlines-hidden -fno-stack-protector" - LINK_FLAGS "-nodefaultlibs" - LINKER_LANGUAGE C) - target_link_libraries(graphite2 c) - include(Graphite) - nolib_test(stdc++ $) - set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "") - CREATE_LIBTOOL_FILE(graphite2 "/lib${LIB_SUFFIX}") - endif (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") -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,31 +33,31 @@ 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())) -- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 3, cmap.size())) -- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 2, cmap.size())) -- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 1, cmap.size())) -- || TtfUtil::CheckCmapSubtable4(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 0, cmap.size()))) -+ 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())) - 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())) -- || TtfUtil::CheckCmapSubtable12(stbl = TtfUtil::FindCmapSubtable(cmap, 0, 4, cmap.size()))) -+ 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())) - return stbl; - return 0; - } - - template - bool cache_subtable(uint16 * blocks[], const void * cst, const unsigned int limit) - { -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 -@@ -37,17 +37,17 @@ of the License or (at your option) any l - #include "inc/Code.h" - #include "inc/Face.h" - #include "inc/GlyphFace.h" - #include "inc/GlyphCache.h" - #include "inc/Machine.h" - #include "inc/Rule.h" - #include "inc/Silf.h" - --#include -+#include - - #ifdef NDEBUG - #ifdef __GNUC__ - #pragma GCC diagnostic ignored "-Wunused-parameter" - #endif - #endif - - -@@ -84,112 +84,119 @@ public: - struct limits; - struct analysis - { - uint8 slotref; - context contexts[256]; - byte max_ref; - - analysis() : slotref(0), max_ref(0) {}; -- void set_ref(int index) throw(); -+ void set_ref(int index, bool incinsert=false) throw(); -+ void set_noref(int index) throw(); - void set_changed(int index) throw(); - - }; - -- decoder(const limits & lims, Code &code) throw(); -+ decoder(limits & lims, Code &code, enum passtype pt) throw(); - - bool load(const byte * bc_begin, const byte * bc_end); - void apply_analysis(instr * const code, instr * code_end); - byte max_ref() { return _analysis.max_ref; } - int pre_context() const { return _pre_context; } - - private: - opcode fetch_opcode(const byte * bc); - void analyse_opcode(const opcode, const int8 * const dp) throw(); - bool emit_opcode(opcode opc, const byte * & bc); - bool validate_opcode(const opcode opc, const byte * const bc); - bool valid_upto(const uint16 limit, const uint16 x) const throw(); -+ bool test_context() const throw(); - void failure(const status_t s) const throw() { _code.failure(s); } - - Code & _code; - int _pre_context; - uint16 _rule_length; - instr * _instr; - byte * _data; -- const limits & _max; -+ limits & _max; - analysis _analysis; -+ enum passtype _passtype; -+ int _stack_depth; -+ bool _in_ctxt_item; - }; - - - struct Machine::Code::decoder::limits - { -- const byte * const bytecode; -+ const byte * bytecode; - const uint8 pre_context; - const uint16 rule_length, - classes, - glyf_attrs, - features; - const byte attrid[gr_slatMax]; - }; - --inline Machine::Code::decoder::decoder(const limits & lims, Code &code) throw() -+inline Machine::Code::decoder::decoder(limits & lims, Code &code, enum passtype pt) throw() - : _code(code), - _pre_context(code._constraint ? 0 : lims.pre_context), - _rule_length(code._constraint ? 1 : lims.rule_length), -- _instr(code._code), _data(code._data), _max(lims) -+ _instr(code._code), _data(code._data), _max(lims), _passtype(pt), -+ _stack_depth(0), -+ _in_ctxt_item(false) - { } - - - - Machine::Code::Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, -- uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face) -+ uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face, -+ enum passtype pt, byte * * const _out) - : _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0), _status(loaded), -- _constraint(is_constraint), _modify(false), _delete(false), _own(true) -+ _constraint(is_constraint), _modify(false), _delete(false), _own(_out==0) - { - #ifdef GRAPHITE2_TELEMETRY - telemetry::category _code_cat(face.tele.code); - #endif - assert(bytecode_begin != 0); - if (bytecode_begin == bytecode_end) - { -- ::new (this) Code(); -+ // ::new (this) Code(); - return; - } - assert(bytecode_end > bytecode_begin); - const opcode_t * op_to_fn = Machine::getOpcodeTable(); - -- // Allocate code and dat target buffers, these sizes are a worst case -+ // Allocate code and data target buffers, these sizes are a worst case - // estimate. Once we know their real sizes the we'll shrink them. -- _code = static_cast(malloc((bytecode_end - bytecode_begin) -- * sizeof(instr))); -- _data = static_cast(malloc((bytecode_end - bytecode_begin) -- * sizeof(byte))); -+ if (_out) _code = reinterpret_cast(*_out); -+ else _code = static_cast(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin))); -+ _data = reinterpret_cast(_code + (bytecode_end - bytecode_begin)); - - if (!_code || !_data) { - failure(alloc_failed); - return; - } - -- const decoder::limits lims = { -+ decoder::limits lims = { - bytecode_end, - pre_context, - rule_length, - silf.numClasses(), - face.glyphs().numAttrs(), - face.numFeatures(), - {1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,1,255, - 1,1,1,1,1,1,1,1, - 1,1,1,1,1,1,0,0, - 0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0, silf.numUser()} - }; - -- decoder dec(lims, *this); -+ decoder dec(lims, *this, pt); - if(!dec.load(bytecode_begin, bytecode_end)) - return; - - // Is this an empty program? - if (_instr_count == 0) - { - release_buffers(); - ::new (this) Code(); -@@ -204,20 +211,25 @@ Machine::Code::Code(bool is_constraint, - - assert((_constraint && immutable()) || !_constraint); - dec.apply_analysis(_code, _code + _instr_count); - _max_ref = dec.max_ref(); - - // Now we know exactly how much code and data the program really needs - // realloc the buffers to exactly the right size so we don't waste any - // memory. -- assert((bytecode_end - bytecode_begin) >= std::ptrdiff_t(_instr_count)); -- assert((bytecode_end - bytecode_begin) >= std::ptrdiff_t(_data_size)); -- _code = static_cast(realloc(_code, (_instr_count+1)*sizeof(instr))); -- _data = static_cast(realloc(_data, _data_size*sizeof(byte))); -+ assert((bytecode_end - bytecode_begin) >= ptrdiff_t(_instr_count)); -+ assert((bytecode_end - bytecode_begin) >= ptrdiff_t(_data_size)); -+ memmove(_code + (_instr_count+1), _data, _data_size*sizeof(byte)); -+ size_t const total_sz = ((_instr_count+1) + (_data_size + sizeof(instr)-1)/sizeof(instr))*sizeof(instr); -+ if (_out) -+ *_out += total_sz; -+ else -+ _code = static_cast(realloc(_code, total_sz)); -+ _data = reinterpret_cast(_code + (_instr_count+1)); - - if (!_code) - { - failure(alloc_failed); - return; - } - - // Make this RET_ZERO, we should never reach this but just in case ... -@@ -232,16 +244,17 @@ Machine::Code::~Code() throw () - { - if (_own) - release_buffers(); - } - - - bool Machine::Code::decoder::load(const byte * bc, const byte * bc_end) - { -+ _max.bytecode = bc_end; - while (bc < bc_end) - { - const opcode opc = fetch_opcode(bc++); - if (opc == vm::MAX_OPCODE) - return false; - - analyse_opcode(opc, reinterpret_cast(bc)); - -@@ -261,141 +274,194 @@ opcode Machine::Code::decoder::fetch_opc - - // Do some basic sanity checks based on what we know about the opcode - if (!validate_opcode(opc, bc)) return MAX_OPCODE; - - // And check it's arguments as far as possible - switch (opc) - { - case NOP : -+ break; - case PUSH_BYTE : - case PUSH_BYTEU : - case PUSH_SHORT : - case PUSH_SHORTU : - case PUSH_LONG : -+ ++_stack_depth; -+ break; - case ADD : - case SUB : - case MUL : - case DIV : - case MIN_ : - case MAX_ : -- case NEG : -- case TRUNC8 : -- case TRUNC16 : -- case COND : - case AND : - case OR : -- case NOT : - case EQUAL : - case NOT_EQ : - case LESS : - case GTR : - case LESS_EQ : - case GTR_EQ : -+ case BITOR : -+ case BITAND : -+ if (--_stack_depth <= 0) -+ failure(underfull_stack); -+ break; -+ case NEG : -+ case TRUNC8 : -+ case TRUNC16 : -+ case NOT : -+ case BITNOT : -+ case BITSET : -+ if (_stack_depth <= 0) -+ failure(underfull_stack); -+ break; -+ case COND : -+ _stack_depth -= 2; -+ if (_stack_depth <= 0) -+ failure(underfull_stack); - break; - case NEXT : - case NEXT_N : // runtime checked - case COPY_NEXT : -+ test_context(); - ++_pre_context; - break; - case PUT_GLYPH_8BIT_OBS : - valid_upto(_max.classes, bc[0]); -+ test_context(); - break; - case PUT_SUBS_8BIT_OBS : - valid_upto(_rule_length, _pre_context + int8(bc[0])); - valid_upto(_max.classes, bc[1]); - valid_upto(_max.classes, bc[2]); -+ test_context(); - break; - case PUT_COPY : - valid_upto(_rule_length, _pre_context + int8(bc[0])); -+ test_context(); - break; - case INSERT : -- --_pre_context; -+ if (_passtype >= PASS_TYPE_POSITIONING) -+ failure(invalid_opcode); -+ else -+ --_pre_context; - break; - case DELETE : -+ if (_passtype >= PASS_TYPE_POSITIONING) -+ failure(invalid_opcode); -+ test_context(); - break; - case ASSOC : - for (uint8 num = bc[0]; num; --num) - valid_upto(_rule_length, _pre_context + int8(bc[num])); -+ test_context(); - break; - case CNTXT_ITEM : - valid_upto(_max.rule_length, _max.pre_context + int8(bc[0])); -- if (bc + 2 + bc[1] >= _max.bytecode) failure(jump_past_end); -- if (_pre_context != 0) failure(nested_context_item); -+ if (bc + 2 + bc[1] >= _max.bytecode) failure(jump_past_end); -+ if (_in_ctxt_item) failure(nested_context_item); - 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]); -+ 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])); - 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; - valid_upto(kgmetDescent, bc[0]); - valid_upto(_rule_length, _pre_context + int8(bc[1])); - // level: dp[2] no check necessary - break; - case PUSH_FEAT : -+ ++_stack_depth; - valid_upto(_max.features, bc[0]); - valid_upto(_rule_length, _pre_context + int8(bc[1])); - break; - case PUSH_ATT_TO_GATTR_OBS : -+ ++_stack_depth; - valid_upto(_max.glyf_attrs, bc[0]); - valid_upto(_rule_length, _pre_context + int8(bc[1])); - break; - case PUSH_ATT_TO_GLYPH_METRIC : -+ ++_stack_depth; - valid_upto(kgmetDescent, bc[0]); - valid_upto(_rule_length, _pre_context + int8(bc[1])); - // level: dp[2] no check necessary - break; - case PUSH_ISLOT_ATTR : -+ ++_stack_depth; - if (valid_upto(gr_slatMax, bc[0])) - { - valid_upto(_rule_length, _pre_context + int8(bc[1])); - valid_upto(_max.attrid[bc[0]], bc[2]); - } - break; - case PUSH_IGLYPH_ATTR :// not implemented -+ ++_stack_depth; -+ break; - case POP_RET : -+ if (--_stack_depth < 0) -+ failure(underfull_stack); -+ GR_FALLTHROUGH; -+ // no break - case RET_ZERO : - case RET_TRUE : - break; - case IATTR_SET : - case IATTR_ADD : - case IATTR_SUB : -+ 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_PROC_STATE : // dummy: dp[0] no check necessary - case PUSH_VERSION : -+ ++_stack_depth; - break; - case PUT_SUBS : - valid_upto(_rule_length, _pre_context + int8(bc[0])); - valid_upto(_max.classes, uint16(bc[1]<< 8) | bc[2]); - valid_upto(_max.classes, uint16(bc[3]<< 8) | bc[4]); -+ test_context(); - break; - case PUT_SUBS2 : // not implemented - case PUT_SUBS3 : // not implemented - break; - case PUT_GLYPH : - valid_upto(_max.classes, uint16(bc[0]<< 8) | bc[1]); -+ test_context(); - break; - case PUSH_GLYPH_ATTR : - case PUSH_ATT_TO_GLYPH_ATTR : -+ ++_stack_depth; - valid_upto(_max.glyf_attrs, uint16(bc[0]<< 8) | bc[1]); - valid_upto(_rule_length, _pre_context + int8(bc[2])); - break; - default: - failure(invalid_opcode); - break; - } - -@@ -410,62 +476,77 @@ void Machine::Code::decoder::analyse_opc - switch (opc) - { - case DELETE : - _code._delete = true; - break; - case PUT_GLYPH_8BIT_OBS : - case PUT_GLYPH : - _code._modify = true; -- _analysis.set_changed(_analysis.slotref); -+ _analysis.set_changed(0); -+ break; -+ case ATTR_SET : -+ case ATTR_ADD : -+ case ATTR_SET_SLOT : -+ case IATTR_SET_SLOT : -+ case IATTR_SET : -+ case IATTR_ADD : -+ case IATTR_SUB : -+ _analysis.set_noref(0); - break; - case NEXT : - case COPY_NEXT : - if (!_analysis.contexts[_analysis.slotref].flags.inserted) - ++_analysis.slotref; - _analysis.contexts[_analysis.slotref] = context(_code._instr_count+1); -- if (_analysis.slotref > _analysis.max_ref) _analysis.max_ref = _analysis.slotref; -+ // if (_analysis.slotref > _analysis.max_ref) _analysis.max_ref = _analysis.slotref; - break; - case INSERT : - _analysis.contexts[_analysis.slotref].flags.inserted = true; - _code._modify = true; - break; - case PUT_SUBS_8BIT_OBS : // slotref on 1st parameter - case PUT_SUBS : - _code._modify = true; -- _analysis.set_changed(_analysis.slotref); -+ _analysis.set_changed(0); -+ GR_FALLTHROUGH; - // no break - case PUT_COPY : - { -- if (arg[0] != 0) { _analysis.set_changed(_analysis.slotref); _code._modify = true; } -+ if (arg[0] != 0) { _analysis.set_changed(0); _code._modify = true; } - if (arg[0] <= 0 && -arg[0] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(_analysis.slotref + arg[0] - _analysis.contexts[_analysis.slotref].flags.inserted); -- else if (_analysis.slotref + arg[0] > _analysis.max_ref) _analysis.max_ref = _analysis.slotref + arg[0]; -+ _analysis.set_ref(arg[0], true); -+ else if (arg[0] > 0) -+ _analysis.set_ref(arg[0], true); - break; - } - case PUSH_ATT_TO_GATTR_OBS : // slotref on 2nd parameter - if (_code._constraint) return; -+ GR_FALLTHROUGH; - // no break - case PUSH_GLYPH_ATTR_OBS : - case PUSH_SLOT_ATTR : - case PUSH_GLYPH_METRIC : - case PUSH_ATT_TO_GLYPH_METRIC : - case PUSH_ISLOT_ATTR : - case PUSH_FEAT : - if (arg[1] <= 0 && -arg[1] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(_analysis.slotref + arg[1] - _analysis.contexts[_analysis.slotref].flags.inserted); -- else if (_analysis.slotref + arg[1] > _analysis.max_ref) _analysis.max_ref = _analysis.slotref + arg[1]; -+ _analysis.set_ref(arg[1], true); -+ else if (arg[1] > 0) -+ _analysis.set_ref(arg[1], true); - break; - case PUSH_ATT_TO_GLYPH_ATTR : - if (_code._constraint) return; -+ GR_FALLTHROUGH; - // no break - case PUSH_GLYPH_ATTR : - if (arg[2] <= 0 && -arg[2] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) -- _analysis.set_ref(_analysis.slotref + arg[2] - _analysis.contexts[_analysis.slotref].flags.inserted); -- else if (_analysis.slotref + arg[2] > _analysis.max_ref) _analysis.max_ref = _analysis.slotref + arg[2]; -+ _analysis.set_ref(arg[2], true); -+ else if (arg[2] > 0) -+ _analysis.set_ref(arg[2], true); - break; - case ASSOC : // slotrefs in varargs - break; - default: - break; - } - } - -@@ -494,32 +575,41 @@ bool Machine::Code::decoder::emit_opcode - _code._data_size += param_sz; - } - - // recursively decode a context item so we can split the skip into - // instruction and data portions. - if (opc == CNTXT_ITEM) - { - assert(_pre_context == 0); -+ _in_ctxt_item = true; - _pre_context = _max.pre_context + int8(_data[-2]); - _rule_length = _max.rule_length; - - const size_t ctxt_start = _code._instr_count; - byte & instr_skip = _data[-1]; - byte & data_skip = *_data++; - ++_code._data_size; -+ const byte *curr_end = _max.bytecode; - - if (load(bc, bc + instr_skip)) - { - bc += instr_skip; - data_skip = instr_skip - (_code._instr_count - ctxt_start); - instr_skip = _code._instr_count - ctxt_start; -+ _max.bytecode = curr_end; - - _rule_length = 1; - _pre_context = 0; -+ _in_ctxt_item = false; -+ } -+ else -+ { -+ _pre_context = 0; -+ return false; - } - } - - return bool(_code); - } - - - void Machine::Code::decoder::apply_analysis(instr * const code, instr * code_end) -@@ -533,87 +623,115 @@ void Machine::Code::decoder::apply_analy - { - if (!c->flags.referenced || !c->flags.changed) continue; - - instr * const tip = code + c->codeRef + tempcount; - memmove(tip+1, tip, (code_end - tip) * sizeof(instr)); - *tip = temp_copy; - ++code_end; - ++tempcount; -+ _code._delete = true; - } - - _code._instr_count = code_end - code; - } - - - inline - bool Machine::Code::decoder::validate_opcode(const opcode opc, const byte * const bc) - { - if (opc >= MAX_OPCODE) - { - failure(invalid_opcode); - return false; - } - const opcode_t & op = Machine::getOpcodeTable()[opc]; -+ if (op.param_sz == VARARGS && bc >= _max.bytecode) -+ { -+ failure(arguments_exhausted); -+ return false; -+ } - const size_t param_sz = op.param_sz == VARARGS ? bc[0] + 1 : op.param_sz; -- if (bc + param_sz > _max.bytecode) -+ if (bc - 1 + param_sz >= _max.bytecode) - { - failure(arguments_exhausted); - return false; - } - return true; - } - - - bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw() - { - const bool t = x < limit; - if (!t) failure(out_of_range_data); - return t; - } - -+bool Machine::Code::decoder::test_context() const throw() -+{ -+ if (_pre_context >= _rule_length) -+ { -+ failure(out_of_range_data); -+ return false; -+ } -+ return true; -+} - - inline - void Machine::Code::failure(const status_t s) throw() { - release_buffers(); - _status = s; - } - - - inline --void Machine::Code::decoder::analysis::set_ref(const int index) throw() { -- contexts[index].flags.referenced = true; -- if (index > max_ref) max_ref = index; -+void Machine::Code::decoder::analysis::set_ref(int index, bool incinsert) throw() { -+ if (incinsert && contexts[slotref].flags.inserted) --index; -+ if (index + slotref < 0) 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_changed(const int index) throw() { -- contexts[index].flags.changed = true; -- if (index > max_ref) max_ref = index; -+void Machine::Code::decoder::analysis::set_noref(int index) throw() { -+ if (contexts[slotref].flags.inserted) --index; -+ if (index + slotref < 0) 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; -+ 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() - { -- free(_code); -- free(_data); -+ if (_own) -+ free(_code); - _code = 0; - _data = 0; - _own = false; - } - - - int32 Machine::Code::run(Machine & m, slotref * & map) const - { -- assert(_own); -+// assert(_own); - assert(*this); // Check we are actually runnable - -- if (m.slotMap().size() <= size_t(_max_ref + m.slotMap().context())) -+ if (m.slotMap().size() <= size_t(_max_ref + m.slotMap().context()) -+ || m.slotMap()[_max_ref + m.slotMap().context()] == 0) - { - m._status = Machine::slot_offset_out_bounds; --// return (m.slotMap().end() - map); - return 1; -+// return m.run(_code, _data, map); - } - - return m.run(_code, _data, map); - } - -diff --git a/gfx/graphite2/src/Collider.cpp b/gfx/graphite2/src/Collider.cpp -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/Collider.cpp -@@ -0,0 +1,1088 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#include -+#include -+#include -+#include -+#include -+#include "inc/Collider.h" -+#include "inc/Segment.h" -+#include "inc/Slot.h" -+#include "inc/GlyphCache.h" -+#include "inc/Sparse.h" -+ -+#define ISQRT2 0.707106781f -+ -+// Possible rounding error for subbox boundaries: 0.016 = 1/64 = 1/256 * 4 -+// (values in font range from 0..256) -+// #define SUBBOX_RND_ERR 0.016 -+ -+using namespace graphite2; -+ -+//// SHIFT-COLLIDER //// -+ -+// Initialize the Collider to hold the basic movement limits for the -+// target slot, the one we are focusing on fixing. -+bool ShiftCollider::initSlot(Segment *seg, Slot *aSlot, const Rect &limit, float margin, float marginWeight, -+ const Position &currShift, const Position &currOffset, int dir, GR_MAYBE_UNUSED json * const dbgout) -+{ -+ int i; -+ float mx, mn; -+ float a, shift; -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ unsigned short gid = aSlot->gid(); -+ if (!gc.check(gid)) -+ return false; -+ const BBox &bb = gc.getBoundingBBox(gid); -+ const SlantBox &sb = gc.getBoundingSlantBox(gid); -+ //float sx = aSlot->origin().x + currShift.x; -+ //float sy = aSlot->origin().y + currShift.y; -+ if (currOffset.x != 0.f || currOffset.y != 0.f) -+ _limit = Rect(limit.bl - currOffset, limit.tr - currOffset); -+ else -+ _limit = limit; -+ // For a ShiftCollider, these indices indicate which vector we are moving by: -+ // each _ranges represents absolute space with respect to the origin of the slot. Thus take into account true origins but subtract the vmin for the slot -+ for (i = 0; i < 4; ++i) -+ { -+ switch (i) { -+ case 0 : // x direction -+ mn = _limit.bl.x + currOffset.x; -+ mx = _limit.tr.x + currOffset.x; -+ _len[i] = bb.xa - bb.xi; -+ a = currOffset.y + currShift.y; -+ _ranges[i].initialise(mn, mx, margin, marginWeight, a); -+ break; -+ case 1 : // y direction -+ mn = _limit.bl.y + currOffset.y; -+ mx = _limit.tr.y + currOffset.y; -+ _len[i] = bb.ya - bb.yi; -+ a = currOffset.x + currShift.x; -+ _ranges[i].initialise(mn, mx, margin, marginWeight, a); -+ break; -+ case 2 : // sum (negatively sloped diagonal boundaries) -+ // pick closest x,y limit boundaries in s direction -+ shift = currOffset.x + currOffset.y + currShift.x + currShift.y; -+ mn = -2 * min(currShift.x - _limit.bl.x, currShift.y - _limit.bl.y) + shift; -+ mx = 2 * min(_limit.tr.x - currShift.x, _limit.tr.y - currShift.y) + shift; -+ _len[i] = sb.sa - sb.si; -+ a = currOffset.x - currOffset.y + currShift.x - currShift.y; -+ _ranges[i].initialise(mn, mx, margin / ISQRT2, marginWeight, a); -+ break; -+ case 3 : // diff (positively sloped diagonal boundaries) -+ // pick closest x,y limit boundaries in d direction -+ shift = currOffset.x - currOffset.y + currShift.x - currShift.y; -+ mn = -2 * min(currShift.x - _limit.bl.x, _limit.tr.y - currShift.y) + shift; -+ mx = 2 * min(_limit.tr.x - currShift.x, currShift.y - _limit.bl.y) + shift; -+ _len[i] = sb.da - sb.di; -+ a = currOffset.x + currOffset.y + currShift.x + currShift.y; -+ _ranges[i].initialise(mn, mx, margin / ISQRT2, marginWeight, a); -+ break; -+ } -+ } -+ -+ _target = aSlot; -+ if ((dir & 1) == 0) -+ { -+ // For LTR, switch and negate x limits. -+ _limit.bl.x = -1 * limit.tr.x; -+ //_limit.tr.x = -1 * limit.bl.x; -+ } -+ _currOffset = currOffset; -+ _currShift = currShift; -+ _origin = aSlot->origin() - currOffset; // the original anchor position of the glyph -+ -+ _margin = margin; -+ _marginWt = marginWeight; -+ -+ SlotCollision *c = seg->collisionInfo(aSlot); -+ _seqClass = c->seqClass(); -+ _seqProxClass = c->seqProxClass(); -+ _seqOrder = c->seqOrder(); -+ return true; -+} -+ -+template -+float sdm(float vi, float va, float mx, float my, O op) -+{ -+ float res = 2 * mx - vi; -+ if (op(res, vi + 2 * my)) -+ { -+ res = va + 2 * my; -+ if (op(res, 2 * mx - va)) -+ res = mx + my; -+ } -+ return res; -+} -+ -+// Mark an area with a cost that can vary along the x or y axis. The region is expressed in terms of the centre of the target glyph in each axis -+void ShiftCollider::addBox_slope(bool isx, const Rect &box, const BBox &bb, const SlantBox &sb, const Position &org, float weight, float m, bool minright, int axis) -+{ -+ float a, c; -+ switch (axis) { -+ case 0 : -+ if (box.bl.y < org.y + bb.ya && box.tr.y > org.y + bb.yi && box.width() > 0) -+ { -+ a = org.y + 0.5f * (bb.yi + bb.ya); -+ c = 0.5f * (bb.xi + bb.xa); -+ if (isx) -+ _ranges[axis].weighted(box.bl.x - c, box.tr.x - c, weight, a, m, -+ (minright ? box.tr.x : box.bl.x) - c, a, 0, false); -+ else -+ _ranges[axis].weighted(box.bl.x - c, box.tr.x - c, weight, a, 0, 0, org.y, -+ m * (a * a + sqr((minright ? box.tr.y : box.bl.y) - 0.5f * (bb.yi + bb.ya))), false); -+ } -+ break; -+ case 1 : -+ if (box.bl.x < org.x + bb.xa && box.tr.x > org.x + bb.xi && box.height() > 0) -+ { -+ a = org.x + 0.5f * (bb.xi + bb.xa); -+ c = 0.5f * (bb.yi + bb.ya); -+ if (isx) -+ _ranges[axis].weighted(box.bl.y - c, box.tr.y - c, weight, a, 0, 0, org.x, -+ m * (a * a + sqr((minright ? box.tr.x : box.bl.x) - 0.5f * (bb.xi + bb.xa))), false); -+ else -+ _ranges[axis].weighted(box.bl.y - c, box.tr.y - c, weight, a, m, -+ (minright ? box.tr.y : box.bl.y) - c, a, 0, false); -+ } -+ break; -+ case 2 : -+ if (box.bl.x - box.tr.y < org.x - org.y + sb.da && box.tr.x - box.bl.y > org.x - org.y + sb.di) -+ { -+ float d = org.x - org.y + 0.5f * (sb.di + sb.da); -+ c = 0.5f * (sb.si + sb.sa); -+ float smax = min(2 * box.tr.x - d, 2 * box.tr.y + d); -+ float smin = max(2 * box.bl.x - d, 2 * box.bl.y + d); -+ if (smin > smax) return; -+ float si; -+ a = d; -+ if (isx) -+ si = 2 * (minright ? box.tr.x : box.bl.x) - a; -+ else -+ si = 2 * (minright ? box.tr.y : box.bl.y) + a; -+ _ranges[axis].weighted(smin - c, smax - c, weight / 2, a, m / 2, si, 0, 0, isx); -+ } -+ break; -+ case 3 : -+ if (box.bl.x + box.bl.y < org.x + org.y + sb.sa && box.tr.x + box.tr.y > org.x + org.y + sb.si) -+ { -+ float s = org.x + org.y + 0.5f * (sb.si + sb.sa); -+ c = 0.5f * (sb.di + sb.da); -+ float dmax = min(2 * box.tr.x - s, s - 2 * box.bl.y); -+ float dmin = max(2 * box.bl.x - s, s - 2 * box.tr.y); -+ if (dmin > dmax) return; -+ float di; -+ a = s; -+ if (isx) -+ di = 2 * (minright ? box.tr.x : box.bl.x) - a; -+ else -+ di = 2 * (minright ? box.tr.y : box.bl.y) + a; -+ _ranges[axis].weighted(dmin - c, dmax - c, weight / 2, a, m / 2, di, 0, 0, !isx); -+ } -+ break; -+ default : -+ break; -+ } -+ return; -+} -+ -+// Mark an area with an absolute cost, making it completely inaccessible. -+inline void ShiftCollider::removeBox(const Rect &box, const BBox &bb, const SlantBox &sb, const Position &org, int axis) -+{ -+ float c; -+ switch (axis) { -+ case 0 : -+ if (box.bl.y < org.y + bb.ya && box.tr.y > org.y + bb.yi && box.width() > 0) -+ { -+ c = 0.5f * (bb.xi + bb.xa); -+ _ranges[axis].exclude(box.bl.x - c, box.tr.x - c); -+ } -+ break; -+ case 1 : -+ if (box.bl.x < org.x + bb.xa && box.tr.x > org.x + bb.xi && box.height() > 0) -+ { -+ c = 0.5f * (bb.yi + bb.ya); -+ _ranges[axis].exclude(box.bl.y - c, box.tr.y - c); -+ } -+ break; -+ case 2 : -+ if (box.bl.x - box.tr.y < org.x - org.y + sb.da && box.tr.x - box.bl.y > org.x - org.y + sb.di -+ && box.width() > 0 && box.height() > 0) -+ { -+ float di = org.x - org.y + sb.di; -+ float da = org.x - org.y + sb.da; -+ float smax = sdm(di, da, box.tr.x, box.tr.y, std::greater()); -+ float smin = sdm(da, di, box.bl.x, box.bl.y, std::less()); -+ c = 0.5f * (sb.si + sb.sa); -+ _ranges[axis].exclude(smin - c, smax - c); -+ } -+ break; -+ case 3 : -+ if (box.bl.x + box.bl.y < org.x + org.y + sb.sa && box.tr.x + box.tr.y > org.x + org.y + sb.si -+ && box.width() > 0 && box.height() > 0) -+ { -+ float si = org.x + org.y + sb.si; -+ float sa = org.x + org.y + sb.sa; -+ float dmax = sdm(si, sa, box.tr.x, -box.bl.y, std::greater()); -+ float dmin = sdm(sa, si, box.bl.x, -box.tr.y, std::less()); -+ c = 0.5f * (sb.di + sb.da); -+ _ranges[axis].exclude(dmin - c, dmax - c); -+ } -+ break; -+ default : -+ break; -+ } -+ return; -+} -+ -+// Adjust the movement limits for the target to avoid having it collide -+// with the given neighbor slot. Also determine if there is in fact a collision -+// between the target and the given slot. -+bool ShiftCollider::mergeSlot(Segment *seg, Slot *slot, const Position &currShift, -+ bool isAfter, // slot is logically after _target -+ bool sameCluster, bool &hasCol, bool isExclusion, -+ GR_MAYBE_UNUSED json * const dbgout ) -+{ -+ bool isCol = false; -+ const float sx = slot->origin().x - _origin.x + currShift.x; -+ const float sy = slot->origin().y - _origin.y + currShift.y; -+ const float sd = sx - sy; -+ const float ss = sx + sy; -+ float vmin, vmax; -+ float omin, omax, otmin, otmax; -+ float cmin, cmax; // target limits -+ float torg; -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ const unsigned short gid = slot->gid(); -+ if (!gc.check(gid)) -+ return false; -+ const BBox &bb = gc.getBoundingBBox(gid); -+ -+ SlotCollision * cslot = seg->collisionInfo(slot); -+ int orderFlags = 0; -+ bool sameClass = _seqProxClass == 0 && cslot->seqClass() == _seqClass; -+ if (sameCluster && _seqClass -+ && (sameClass || (_seqProxClass != 0 && cslot->seqClass() == _seqProxClass))) -+ // Force the target glyph to be in the specified direction from the slot we're testing. -+ orderFlags = _seqOrder; -+ -+ // short circuit if only interested in direct collision and we are out of range -+ if (orderFlags || (sx + bb.xa + _margin >= _limit.bl.x && sx + bb.xi - _margin <= _limit.tr.x) -+ || (sy + bb.ya + _margin >= _limit.bl.y && sy + bb.yi - _margin <= _limit.tr.y)) -+ -+ { -+ const float tx = _currOffset.x + _currShift.x; -+ const float ty = _currOffset.y + _currShift.y; -+ const float td = tx - ty; -+ const float ts = tx + ty; -+ const SlantBox &sb = gc.getBoundingSlantBox(gid); -+ const unsigned short tgid = _target->gid(); -+ const BBox &tbb = gc.getBoundingBBox(tgid); -+ const SlantBox &tsb = gc.getBoundingSlantBox(tgid); -+ float seq_above_wt = cslot->seqAboveWt(); -+ float seq_below_wt = cslot->seqBelowWt(); -+ float seq_valign_wt = cslot->seqValignWt(); -+ // if isAfter, invert orderFlags for diagonal orders. -+ if (isAfter) -+ { -+ // invert appropriate bits -+ orderFlags ^= (sameClass ? 0x3F : 0x3); -+ // consider 2 bits at a time, non overlapping. If both bits set, clear them -+ orderFlags = orderFlags ^ ((((orderFlags >> 1) & orderFlags) & 0x15) * 3); -+ } -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ dbgout->setenv(0, slot); -+#endif -+ -+ // Process main bounding octabox. -+ for (int i = 0; i < 4; ++i) -+ { -+ switch (i) { -+ case 0 : // x direction -+ vmin = max(max(bb.xi - tbb.xa + sx, sb.di - tsb.da + ty + sd), sb.si - tsb.sa - ty + ss); -+ vmax = min(min(bb.xa - tbb.xi + sx, sb.da - tsb.di + ty + sd), sb.sa - tsb.si - ty + ss); -+ otmin = tbb.yi + ty; -+ otmax = tbb.ya + ty; -+ omin = bb.yi + sy; -+ omax = bb.ya + sy; -+ torg = _currOffset.x; -+ cmin = _limit.bl.x + torg; -+ cmax = _limit.tr.x - tbb.xi + tbb.xa + torg; -+ break; -+ case 1 : // y direction -+ vmin = max(max(bb.yi - tbb.ya + sy, tsb.di - sb.da + tx - sd), sb.si - tsb.sa - tx + ss); -+ vmax = min(min(bb.ya - tbb.yi + sy, tsb.da - sb.di + tx - sd), sb.sa - tsb.si - tx + ss); -+ otmin = tbb.xi + tx; -+ otmax = tbb.xa + tx; -+ omin = bb.xi + sx; -+ omax = bb.xa + sx; -+ torg = _currOffset.y; -+ cmin = _limit.bl.y + torg; -+ cmax = _limit.tr.y - tbb.yi + tbb.ya + torg; -+ break; -+ case 2 : // sum - moving along the positively-sloped vector, so the boundaries are the -+ // negatively-sloped boundaries. -+ vmin = max(max(sb.si - tsb.sa + ss, 2 * (bb.yi - tbb.ya + sy) + td), 2 * (bb.xi - tbb.xa + sx) - td); -+ vmax = min(min(sb.sa - tsb.si + ss, 2 * (bb.ya - tbb.yi + sy) + td), 2 * (bb.xa - tbb.xi + sx) - td); -+ otmin = tsb.di + td; -+ otmax = tsb.da + td; -+ omin = sb.di + sd; -+ omax = sb.da + sd; -+ torg = _currOffset.x + _currOffset.y; -+ cmin = _limit.bl.x + _limit.bl.y + torg; -+ cmax = _limit.tr.x + _limit.tr.y - tsb.si + tsb.sa + torg; -+ break; -+ case 3 : // diff - moving along the negatively-sloped vector, so the boundaries are the -+ // positively-sloped boundaries. -+ vmin = max(max(sb.di - tsb.da + sd, 2 * (bb.xi - tbb.xa + sx) - ts), -2 * (bb.ya - tbb.yi + sy) + ts); -+ vmax = min(min(sb.da - tsb.di + sd, 2 * (bb.xa - tbb.xi + sx) - ts), -2 * (bb.yi - tbb.ya + sy) + ts); -+ otmin = tsb.si + ts; -+ otmax = tsb.sa + ts; -+ omin = sb.si + ss; -+ omax = sb.sa + ss; -+ torg = _currOffset.x - _currOffset.y; -+ cmin = _limit.bl.x - _limit.tr.y + torg; -+ cmax = _limit.tr.x - _limit.bl.y - tsb.di + tsb.da + torg; -+ break; -+ default : -+ continue; -+ } -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ dbgout->setenv(1, reinterpret_cast(-1)); -+#define DBGTAG(x) if (dbgout) dbgout->setenv(1, reinterpret_cast(-x)); -+#else -+#define DBGTAG(x) -+#endif -+ -+ if (orderFlags) -+ { -+ Position org(tx, ty); -+ float xminf = _limit.bl.x + _currOffset.x + tbb.xi; -+ float xpinf = _limit.tr.x + _currOffset.x + tbb.xa; -+ float ypinf = _limit.tr.y + _currOffset.y + tbb.ya; -+ float yminf = _limit.bl.y + _currOffset.y + tbb.yi; -+ switch (orderFlags) { -+ case SlotCollision::SEQ_ORDER_RIGHTUP : -+ { -+ float r1Xedge = cslot->seqAboveXoff() + 0.5f * (bb.xi + bb.xa) + sx; -+ float r3Xedge = cslot->seqBelowXlim() + bb.xa + sx + 0.5f * (tbb.xa - tbb.xi); -+ float r2Yedge = 0.5f * (bb.yi + bb.ya) + sy; -+ -+ // DBGTAG(1x) means the regions are up and right -+ // region 1 -+ DBGTAG(11) -+ addBox_slope(true, Rect(Position(xminf, r2Yedge), Position(r1Xedge, ypinf)), -+ tbb, tsb, org, 0, seq_above_wt, true, i); -+ // region 2 -+ DBGTAG(12) -+ removeBox(Rect(Position(xminf, yminf), Position(r3Xedge, r2Yedge)), tbb, tsb, org, i); -+ // region 3, which end is zero is irrelevant since m weight is 0 -+ DBGTAG(13) -+ addBox_slope(true, Rect(Position(r3Xedge, yminf), Position(xpinf, r2Yedge - cslot->seqValignHt())), -+ tbb, tsb, org, seq_below_wt, 0, true, i); -+ // region 4 -+ DBGTAG(14) -+ addBox_slope(false, Rect(Position(sx + bb.xi, r2Yedge), Position(xpinf, r2Yedge + cslot->seqValignHt())), -+ tbb, tsb, org, 0, seq_valign_wt, true, i); -+ // region 5 -+ DBGTAG(15) -+ addBox_slope(false, Rect(Position(sx + bb.xi, r2Yedge - cslot->seqValignHt()), Position(xpinf, r2Yedge)), -+ tbb, tsb, org, seq_below_wt, seq_valign_wt, false, i); -+ break; -+ } -+ case SlotCollision::SEQ_ORDER_LEFTDOWN : -+ { -+ float r1Xedge = 0.5f * (bb.xi + bb.xa) + cslot->seqAboveXoff() + sx; -+ float r3Xedge = bb.xi - cslot->seqBelowXlim() + sx - 0.5f * (tbb.xa - tbb.xi); -+ float r2Yedge = 0.5f * (bb.yi + bb.ya) + sy; -+ // DBGTAG(2x) means the regions are up and right -+ // region 1 -+ DBGTAG(21) -+ addBox_slope(true, Rect(Position(r1Xedge, yminf), Position(xpinf, r2Yedge)), -+ tbb, tsb, org, 0, seq_above_wt, false, i); -+ // region 2 -+ DBGTAG(22) -+ removeBox(Rect(Position(r3Xedge, r2Yedge), Position(xpinf, ypinf)), tbb, tsb, org, i); -+ // region 3 -+ DBGTAG(23) -+ addBox_slope(true, Rect(Position(xminf, r2Yedge - cslot->seqValignHt()), Position(r3Xedge, ypinf)), -+ tbb, tsb, org, seq_below_wt, 0, false, i); -+ // region 4 -+ DBGTAG(24) -+ addBox_slope(false, Rect(Position(xminf, r2Yedge), Position(sx + bb.xa, r2Yedge + cslot->seqValignHt())), -+ tbb, tsb, org, 0, seq_valign_wt, true, i); -+ // region 5 -+ DBGTAG(25) -+ addBox_slope(false, Rect(Position(xminf, r2Yedge - cslot->seqValignHt()), -+ Position(sx + bb.xa, r2Yedge)), tbb, tsb, org, seq_below_wt, seq_valign_wt, false, i); -+ break; -+ } -+ case SlotCollision::SEQ_ORDER_NOABOVE : // enforce neighboring glyph being above -+ DBGTAG(31); -+ removeBox(Rect(Position(bb.xi - tbb.xa + sx, sy + bb.ya), -+ Position(bb.xa - tbb.xi + sx, ypinf)), tbb, tsb, org, i); -+ break; -+ case SlotCollision::SEQ_ORDER_NOBELOW : // enforce neighboring glyph being below -+ DBGTAG(32); -+ removeBox(Rect(Position(bb.xi - tbb.xa + sx, yminf), -+ Position(bb.xa - tbb.xi + sx, sy + bb.yi)), tbb, tsb, org, i); -+ break; -+ case SlotCollision::SEQ_ORDER_NOLEFT : // enforce neighboring glyph being to the left -+ DBGTAG(33) -+ removeBox(Rect(Position(xminf, bb.yi - tbb.ya + sy), -+ Position(bb.xi - tbb.xa + sx, bb.ya - tbb.yi + sy)), tbb, tsb, org, i); -+ break; -+ case SlotCollision::SEQ_ORDER_NORIGHT : // enforce neighboring glyph being to the right -+ DBGTAG(34) -+ removeBox(Rect(Position(bb.xa - tbb.xi + sx, bb.yi - tbb.ya + sy), -+ Position(xpinf, bb.ya - tbb.yi + sy)), tbb, tsb, org, i); -+ break; -+ default : -+ break; -+ } -+ } -+ -+ if (vmax < cmin - _margin || vmin > cmax + _margin || omax < otmin - _margin || omin > otmax + _margin) -+ continue; -+ -+ // Process sub-boxes that are defined for this glyph. -+ // We only need to do this if there was in fact a collision with the main octabox. -+ uint8 numsub = gc.numSubBounds(gid); -+ if (numsub > 0) -+ { -+ bool anyhits = false; -+ for (int j = 0; j < numsub; ++j) -+ { -+ const BBox &sbb = gc.getSubBoundingBBox(gid, j); -+ const SlantBox &ssb = gc.getSubBoundingSlantBox(gid, j); -+ switch (i) { -+ case 0 : // x -+ vmin = max(max(sbb.xi-tbb.xa+sx, ssb.di-tsb.da+sd+ty), ssb.si-tsb.sa+ss-ty); -+ vmax = min(min(sbb.xa-tbb.xi+sx, ssb.da-tsb.di+sd+ty), ssb.sa-tsb.si+ss-ty); -+ omin = sbb.yi + sy; -+ omax = sbb.ya + sy; -+ break; -+ case 1 : // y -+ vmin = max(max(sbb.yi-tbb.ya+sy, tsb.di-ssb.da-sd+tx), ssb.si-tsb.sa+ss-tx); -+ vmax = min(min(sbb.ya-tbb.yi+sy, tsb.da-ssb.di-sd+tx), ssb.sa-tsb.si+ss-tx); -+ omin = sbb.xi + sx; -+ omax = sbb.xa + sx; -+ break; -+ case 2 : // sum -+ vmin = max(max(ssb.si-tsb.sa+ss, 2*(sbb.yi-tbb.ya+sy)+td), 2*(sbb.xi-tbb.xa+sx)-td); -+ vmax = min(min(ssb.sa-tsb.si+ss, 2*(sbb.ya-tbb.yi+sy)+td), 2*(sbb.xa-tbb.xi+sx)-td); -+ omin = ssb.di + sd; -+ omax = ssb.da + sd; -+ break; -+ case 3 : // diff -+ vmin = max(max(ssb.di-tsb.da+sd, 2*(sbb.xi-tbb.xa+sx)-ts), -2*(sbb.ya-tbb.yi+sy)+ts); -+ vmax = min(min(ssb.da-tsb.di+sd, 2*(sbb.xa-tbb.xi+sx)-ts), -2*(sbb.yi-tbb.ya+sy)+ts); -+ omin = ssb.si + ss; -+ omax = ssb.sa + ss; -+ break; -+ } -+ if (vmax < cmin - _margin || vmin > cmax + _margin || omax < otmin - _margin || omin > otmax + _margin) -+ continue; -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ dbgout->setenv(1, reinterpret_cast(j)); -+#endif -+ if (omin > otmax) -+ _ranges[i].weightedAxis(i, vmin - _margin, vmax + _margin, 0, 0, 0, 0, 0, -+ sqr(_margin - omin + otmax) * _marginWt, false); -+ else if (omax < otmin) -+ _ranges[i].weightedAxis(i, vmin - _margin, vmax + _margin, 0, 0, 0, 0, 0, -+ sqr(_margin - otmin + omax) * _marginWt, false); -+ else -+ _ranges[i].exclude_with_margins(vmin, vmax, i); -+ anyhits = true; -+ } -+ if (anyhits) -+ isCol = true; -+ } -+ else // no sub-boxes -+ { -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ dbgout->setenv(1, reinterpret_cast(-1)); -+#endif -+ isCol = true; -+ if (omin > otmax) -+ _ranges[i].weightedAxis(i, vmin - _margin, vmax + _margin, 0, 0, 0, 0, 0, -+ sqr(_margin - omin + otmax) * _marginWt, false); -+ else if (omax < otmin) -+ _ranges[i].weightedAxis(i, vmin - _margin, vmax + _margin, 0, 0, 0, 0, 0, -+ sqr(_margin - otmin + omax) * _marginWt, false); -+ else -+ _ranges[i].exclude_with_margins(vmin, vmax, i); -+ -+ } -+ } -+ } -+ bool res = true; -+ if (cslot->exclGlyph() > 0 && gc.check(cslot->exclGlyph()) && !isExclusion) -+ { -+ // Set up the bogus slot representing the exclusion glyph. -+ Slot *exclSlot = seg->newSlot(); -+ exclSlot->setGlyph(seg, cslot->exclGlyph()); -+ Position exclOrigin(slot->origin() + cslot->exclOffset()); -+ exclSlot->origin(exclOrigin); -+ res &= mergeSlot(seg, exclSlot, currShift, isAfter, sameCluster, isCol, true, dbgout ); -+ seg->freeSlot(exclSlot); -+ } -+ hasCol |= isCol; -+ return res; -+ -+} // end of ShiftCollider::mergeSlot -+ -+ -+// Figure out where to move the target glyph to, and return the amount to shift by. -+Position ShiftCollider::resolve(GR_MAYBE_UNUSED Segment *seg, bool &isCol, GR_MAYBE_UNUSED json * const dbgout) -+{ -+ float tbase; -+ float totalCost = (float)(std::numeric_limits::max() / 2); -+ Position resultPos = Position(0, 0); -+#if !defined GRAPHITE2_NTRACING -+ int bestAxis = -1; -+ if (dbgout) -+ { -+ outputJsonDbgStartSlot(dbgout, seg); -+ *dbgout << "vectors" << json::array; -+ } -+#endif -+ isCol = true; -+ for (int i = 0; i < 4; ++i) -+ { -+ float bestCost = -1; -+ float bestPos; -+ // Calculate the margin depending on whether we are moving diagonally or not: -+ switch (i) { -+ case 0 : // x direction -+ tbase = _currOffset.x; -+ break; -+ case 1 : // y direction -+ tbase = _currOffset.y; -+ break; -+ case 2 : // sum (negatively-sloped diagonals) -+ tbase = _currOffset.x + _currOffset.y; -+ break; -+ case 3 : // diff (positively-sloped diagonals) -+ tbase = _currOffset.x - _currOffset.y; -+ break; -+ } -+ Position testp; -+ bestPos = _ranges[i].closest(0, bestCost) - tbase; // Get the best relative position -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ outputJsonDbgOneVector(dbgout, seg, i, tbase, bestCost, bestPos) ; -+#endif -+ if (bestCost >= 0.0f) -+ { -+ isCol = false; -+ switch (i) { -+ case 0 : testp = Position(bestPos, _currShift.y); break; -+ case 1 : testp = Position(_currShift.x, bestPos); break; -+ case 2 : testp = Position(0.5f * (_currShift.x - _currShift.y + bestPos), 0.5f * (_currShift.y - _currShift.x + bestPos)); break; -+ case 3 : testp = Position(0.5f * (_currShift.x + _currShift.y + bestPos), 0.5f * (_currShift.x + _currShift.y - bestPos)); break; -+ } -+ if (bestCost < totalCost - 0.01f) -+ { -+ totalCost = bestCost; -+ resultPos = testp; -+#if !defined GRAPHITE2_NTRACING -+ bestAxis = i; -+#endif -+ } -+ } -+ } // end of loop over 4 directions -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ outputJsonDbgEndSlot(dbgout, resultPos, bestAxis, isCol); -+#endif -+ -+ return resultPos; -+ -+} // end of ShiftCollider::resolve -+ -+ -+#if !defined GRAPHITE2_NTRACING -+ -+void ShiftCollider::outputJsonDbg(json * const dbgout, Segment *seg, int axis) -+{ -+ int axisMax = axis; -+ if (axis < 0) // output all axes -+ { -+ *dbgout << "gid" << _target->gid() -+ << "limit" << _limit -+ << "target" << json::object -+ << "origin" << _target->origin() -+ << "margin" << _margin -+ << "bbox" << seg->theGlyphBBoxTemporary(_target->gid()) -+ << "slantbox" << seg->getFace()->glyphs().slant(_target->gid()) -+ << json::close; // target object -+ *dbgout << "ranges" << json::array; -+ axis = 0; -+ axisMax = 3; -+ } -+ for (int iAxis = axis; iAxis <= axisMax; ++iAxis) -+ { -+ *dbgout << json::flat << json::array << _ranges[iAxis].position(); -+ for (Zones::const_iterator s = _ranges[iAxis].begin(), e = _ranges[iAxis].end(); s != e; ++s) -+ *dbgout << json::flat << json::array -+ << Position(s->x, s->xm) << s->sm << s->smx << s->c -+ << json::close; -+ *dbgout << json::close; -+ } -+ if (axis < axisMax) // looped through the _ranges array for all axes -+ *dbgout << json::close; // ranges array -+} -+ -+void ShiftCollider::outputJsonDbgStartSlot(json * const dbgout, Segment *seg) -+{ -+ *dbgout << json::object // slot - not closed till the end of the caller method -+ << "slot" << objectid(dslot(seg, _target)) -+ << "gid" << _target->gid() -+ << "limit" << _limit -+ << "target" << json::object -+ << "origin" << _origin -+ << "currShift" << _currShift -+ << "currOffset" << seg->collisionInfo(_target)->offset() -+ << "bbox" << seg->theGlyphBBoxTemporary(_target->gid()) -+ << "slantBox" << seg->getFace()->glyphs().slant(_target->gid()) -+ << "fix" << "shift"; -+ *dbgout << json::close; // target object -+} -+ -+void ShiftCollider::outputJsonDbgEndSlot(GR_MAYBE_UNUSED json * const dbgout, -+ Position resultPos, int bestAxis, bool isCol) -+{ -+ *dbgout << json::close // vectors array -+ << "result" << resultPos -+ //<< "scraping" << _scraping[bestAxis] -+ << "bestAxis" << bestAxis -+ << "stillBad" << isCol -+ << json::close; // slot object -+} -+ -+void ShiftCollider::outputJsonDbgOneVector(json * const dbgout, Segment *seg, int axis, -+ float tleft, float bestCost, float bestVal) -+{ -+ const char * label; -+ switch (axis) -+ { -+ case 0: label = "x"; break; -+ case 1: label = "y"; break; -+ case 2: label = "sum (NE-SW)"; break; -+ case 3: label = "diff (NW-SE)"; break; -+ default: label = "???"; break; -+ } -+ -+ *dbgout << json::object // vector -+ << "direction" << label -+ << "targetMin" << tleft; -+ -+ outputJsonDbgRemovals(dbgout, axis, seg); -+ -+ *dbgout << "ranges"; -+ outputJsonDbg(dbgout, seg, axis); -+ -+ *dbgout << "bestCost" << bestCost -+ << "bestVal" << bestVal + tleft -+ << json::close; // vectors object -+} -+ -+void ShiftCollider::outputJsonDbgRemovals(json * const dbgout, int axis, Segment *seg) -+{ -+ *dbgout << "removals" << json::array; -+ _ranges[axis].jsonDbgOut(seg); -+ *dbgout << json::close; // removals array -+} -+ -+#endif // !defined GRAPHITE2_NTRACING -+ -+ -+//// KERN-COLLIDER //// -+ -+inline -+static float localmax (float al, float au, float bl, float bu, float x) -+{ -+ if (al < bl) -+ { if (au < bu) return au < x ? au : x; } -+ else if (au > bu) return bl < x ? bl : x; -+ return x; -+} -+ -+inline -+static float localmin(float al, float au, float bl, float bu, float x) -+{ -+ if (bl > al) -+ { if (bu > au) return bl > x ? bl : x; } -+ else if (au > bu) return al > x ? al : x; -+ return x; -+} -+ -+// Return the given edge of the glyph at height y, taking any slant box into account. -+static float get_edge(Segment *seg, const Slot *s, const Position &shift, float y, float width, bool isRight) -+{ -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ unsigned short gid = s->gid(); -+ float sx = s->origin().x + shift.x; -+ float sy = s->origin().y + shift.y; -+ uint8 numsub = gc.numSubBounds(gid); -+ float res = isRight ? (float)-1e38 : (float)1e38; -+ -+ if (numsub > 0) -+ { -+ for (int i = 0; i < numsub; ++i) -+ { -+ const BBox &sbb = gc.getSubBoundingBBox(gid, i); -+ const SlantBox &ssb = gc.getSubBoundingSlantBox(gid, i); -+ if (sy + sbb.yi > y + width / 2 || sy + sbb.ya < y - width / 2) -+ continue; -+ if (isRight) -+ { -+ float x = sx + sbb.xa; -+ if (x > res) -+ { -+ float td = sx - sy + ssb.da + y; -+ float ts = sx + sy + ssb.sa - y; -+ x = localmax(td - width / 2, td + width / 2, ts - width / 2, ts + width / 2, x); -+ if (x > res) -+ res = x; -+ } -+ } -+ else -+ { -+ float x = sx + sbb.xi; -+ if (x < res) -+ { -+ float td = sx - sy + ssb.di + y; -+ float ts = sx + sy + ssb.si - y; -+ x = localmin(td - width / 2, td + width / 2, ts - width / 2, ts + width / 2, x); -+ if (x < res) -+ res = x; -+ } -+ } -+ } -+ } -+ else -+ { -+ const BBox &bb = gc.getBoundingBBox(gid); -+ const SlantBox &sb = gc.getBoundingSlantBox(gid); -+ float td = sx - sy + y; -+ float ts = sx + sy - y; -+ if (isRight) -+ res = localmax(td + sb.da - width / 2, td + sb.da + width / 2, ts + sb.sa - width / 2, ts + sb.sa + width / 2, sx + bb.xa); -+ else -+ res = localmin(td + sb.di - width / 2, td + sb.di + width / 2, ts + sb.si - width / 2, ts + sb.si + width / 2, sx + bb.xi); -+ } -+ return res; -+} -+ -+ -+bool KernCollider::initSlot(Segment *seg, Slot *aSlot, const Rect &limit, float margin, -+ const Position &currShift, const Position &offsetPrev, int dir, -+ float ymin, float ymax, GR_MAYBE_UNUSED json * const dbgout) -+{ -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ const Slot *base = aSlot; -+ // const Slot *last = aSlot; -+ const Slot *s; -+ int numSlices; -+ while (base->attachedTo()) -+ base = base->attachedTo(); -+ if (margin < 10) margin = 10; -+ -+ _limit = limit; -+ _offsetPrev = offsetPrev; // kern from a previous pass -+ -+ // Calculate the height of the glyph and how many horizontal slices to use. -+ if (_maxy >= 1e37f) -+ { -+ _maxy = ymax; -+ _miny = ymin; -+ _sliceWidth = margin / 1.5f; -+ numSlices = int((_maxy - _miny + 2) / (_sliceWidth / 1.5f) + 1.f); // +2 helps with rounding errors -+ _edges.clear(); -+ _edges.insert(_edges.begin(), numSlices, (dir & 1) ? 1e38f : -1e38f); -+ _xbound = (dir & 1) ? (float)1e38f : (float)-1e38f; -+ } -+ else if (_maxy != ymax || _miny != ymin) -+ { -+ if (_miny != ymin) -+ { -+ numSlices = int((ymin - _miny) / _sliceWidth - 1); -+ _miny += numSlices * _sliceWidth; -+ if (numSlices < 0) -+ _edges.insert(_edges.begin(), -numSlices, (dir & 1) ? 1e38f : -1e38f); -+ else if ((unsigned)numSlices < _edges.size()) // this shouldn't fire since we always grow the range -+ { -+ Vector::iterator e = _edges.begin(); -+ while (numSlices--) -+ ++e; -+ _edges.erase(_edges.begin(), e); -+ } -+ } -+ if (_maxy != ymax) -+ { -+ numSlices = int((ymax - _miny) / _sliceWidth + 1); -+ _maxy = numSlices * _sliceWidth + _miny; -+ if (numSlices > (int)_edges.size()) -+ _edges.insert(_edges.end(), numSlices - _edges.size(), (dir & 1) ? 1e38f : -1e38f); -+ else if (numSlices < (int)_edges.size()) // this shouldn't fire since we always grow the range -+ { -+ while ((int)_edges.size() > numSlices) -+ _edges.pop_back(); -+ } -+ } -+ } -+ numSlices = _edges.size(); -+ -+#if !defined GRAPHITE2_NTRACING -+ // Debugging -+ _seg = seg; -+ _slotNear.clear(); -+ _slotNear.insert(_slotNear.begin(), numSlices, NULL); -+ _nearEdges.clear(); -+ _nearEdges.insert(_nearEdges.begin(), numSlices, (dir & 1) ? -1e38f : +1e38f); -+#endif -+ -+ // Determine the trailing edge of each slice (ie, left edge for a RTL glyph). -+ for (s = base; s; s = s->nextInCluster(s)) -+ { -+ SlotCollision *c = seg->collisionInfo(s); -+ if (!gc.check(s->gid())) -+ return false; -+ const BBox &bs = gc.getBoundingBBox(s->gid()); -+ float x = s->origin().x + c->shift().x + ((dir & 1) ? bs.xi : bs.xa); -+ // Loop over slices. -+ // Note smin might not be zero if glyph s is not at the bottom of the cluster; similarly for smax. -+ float toffset = c->shift().y - _miny + 1 + s->origin().y; -+ int smin = max(0, int((bs.yi + toffset) / _sliceWidth)); -+ int smax = min(numSlices - 1, int((bs.ya + toffset) / _sliceWidth + 1)); -+ for (int i = smin; i <= smax; ++i) -+ { -+ float t; -+ float y = _miny - 1 + (i + .5f) * _sliceWidth; // vertical center of slice -+ if ((dir & 1) && x < _edges[i]) -+ { -+ t = get_edge(seg, s, c->shift(), y, _sliceWidth, false); -+ if (t < _edges[i]) -+ { -+ _edges[i] = t; -+ if (t < _xbound) -+ _xbound = t; -+ } -+ } -+ else if (!(dir & 1) && x > _edges[i]) -+ { -+ t = get_edge(seg, s, c->shift(), y, _sliceWidth, true); -+ if (t > _edges[i]) -+ { -+ _edges[i] = t; -+ if (t > _xbound) -+ _xbound = t; -+ } -+ } -+ } -+ } -+ _mingap = (float)1e38; -+ _target = aSlot; -+ _margin = margin; -+ _currShift = currShift; -+ return true; -+} // end of KernCollider::initSlot -+ -+ -+// Determine how much the target slot needs to kern away from the given slot. -+// In other words, merge information from given slot's position with what the target slot knows -+// about how it can kern. -+// Return false if we know there is no collision, true if we think there might be one. -+bool KernCollider::mergeSlot(Segment *seg, Slot *slot, const Position &currShift, float currSpace, int dir, GR_MAYBE_UNUSED json * const dbgout) -+{ -+ int rtl = (dir & 1) * 2 - 1; -+ if (!seg->getFace()->glyphs().check(slot->gid())) -+ return false; -+ const Rect &bb = seg->theGlyphBBoxTemporary(slot->gid()); -+ const float sx = slot->origin().x + currShift.x; -+ float x = sx + (rtl > 0 ? bb.tr.x : bb.bl.x); -+ // this isn't going to reduce _mingap so skip -+ if ((rtl > 0 && x < _xbound - _mingap - currSpace) || (rtl <= 0 && x > _xbound + _mingap + currSpace)) -+ return false; -+ -+ const float sy = slot->origin().y + currShift.y; -+ int smin = max(0, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)); -+ int smax = min((int)_edges.size() - 1, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)); -+ bool collides = false; -+ -+ for (int i = smin; i <= smax; ++i) -+ { -+ float t; -+ float y = (float)(_miny - 1 + (i + .5f) * _sliceWidth); // vertical center of slice -+ if (x * rtl > _edges[i] * rtl - _mingap - currSpace) -+ { -+ // 2 * currSpace to account for the space that is already separating them and the space we want to add -+ float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) + 2 * rtl * currSpace; -+ t = rtl * (_edges[i] - m); -+ // Check slices above and below (if any). -+ if (i < (int)_edges.size() - 1) t = min(t, rtl * (_edges[i+1] - m)); -+ if (i > 0) t = min(t, rtl * (_edges[i-1] - m)); -+ // _mingap is positive to shrink -+ if (t < _mingap) -+ { -+ _mingap = t; -+ collides = true; -+ } -+#if !defined GRAPHITE2_NTRACING -+ // Debugging - remember the closest neighboring edge for this slice. -+ if (rtl * m > rtl * _nearEdges[i]) -+ { -+ _slotNear[i] = slot; -+ _nearEdges[i] = m; -+ } -+#endif -+ } -+ } -+ return collides; // note that true is not a necessarily reliable value -+ -+} // end of KernCollider::mergeSlot -+ -+ -+// Return the amount to kern by. -+Position KernCollider::resolve(GR_MAYBE_UNUSED Segment *seg, GR_MAYBE_UNUSED Slot *slot, -+ int dir, float margin, GR_MAYBE_UNUSED json * const dbgout) -+{ -+ float resultNeeded = (1 - 2 * (dir & 1)) * (_mingap - margin); -+ float result = min(_limit.tr.x - _offsetPrev.x, max(resultNeeded, _limit.bl.x - _offsetPrev.x)); -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ { -+ *dbgout << json::object // slot -+ << "slot" << objectid(dslot(seg, _target)) -+ << "gid" << _target->gid() -+ << "margin" << _margin -+ << "limit" << _limit -+ << "miny" << _miny -+ << "maxy" << _maxy -+ << "slicewidth" << _sliceWidth -+ << "target" << json::object -+ << "origin" << _target->origin() -+ //<< "currShift" << _currShift -+ << "offsetPrev" << _offsetPrev -+ << "bbox" << seg->theGlyphBBoxTemporary(_target->gid()) -+ << "slantBox" << seg->getFace()->glyphs().slant(_target->gid()) -+ << "fix" << "kern" -+ << json::close; // target object -+ -+ *dbgout << "slices" << json::array; -+ for (int is = 0; is < (int)_edges.size(); is++) -+ { -+ *dbgout << json::flat << json::object -+ << "i" << is -+ << "targetEdge" << _edges[is] -+ << "neighbor" << objectid(dslot(seg, _slotNear[is])) -+ << "nearEdge" << _nearEdges[is] -+ << json::close; -+ } -+ *dbgout << json::close; // slices array -+ -+ *dbgout -+ << "xbound" << _xbound -+ << "minGap" << _mingap -+ << "needed" << resultNeeded -+ << "result" << result -+ << "stillBad" << (result != resultNeeded) -+ << json::close; // slot object -+ } -+#endif -+ -+ return Position(result, 0.); -+ -+} // end of KernCollider::resolve -+ -+void KernCollider::shift(const Position &mv, int dir) -+{ -+ for (Vector::iterator e = _edges.begin(); e != _edges.end(); ++e) -+ *e += mv.x; -+ _xbound += (1 - 2 * (dir & 1)) * mv.x; -+} -+ -+//// SLOT-COLLISION //// -+ -+// Initialize the collision attributes for the given slot. -+SlotCollision::SlotCollision(Segment *seg, Slot *slot) -+{ -+ initFromSlot(seg, slot); -+} -+ -+void SlotCollision::initFromSlot(Segment *seg, Slot *slot) -+{ -+ // Initialize slot attributes from glyph attributes. -+ // The order here must match the order in the grcompiler code, -+ // GrcSymbolTable::AssignInternalGlyphAttrIDs. -+ uint16 gid = slot->gid(); -+ uint16 aCol = seg->silf()->aCollision(); // flags attr ID -+ const GlyphFace * glyphFace = seg->getFace()->glyphs().glyphSafe(gid); -+ if (!glyphFace) -+ return; -+ const sparse &p = glyphFace->attrs(); -+ _flags = p[aCol]; -+ _limit = Rect(Position(p[aCol+1], p[aCol+2]), -+ Position(p[aCol+3], p[aCol+4])); -+ _margin = p[aCol+5]; -+ _marginWt = p[aCol+6]; -+ -+ _seqClass = p[aCol+7]; -+ _seqProxClass = p[aCol+8]; -+ _seqOrder = p[aCol+9]; -+ _seqAboveXoff = p[aCol+10]; -+ _seqAboveWt = p[aCol+11]; -+ _seqBelowXlim = p[aCol+12]; -+ _seqBelowWt = p[aCol+13]; -+ _seqValignHt = p[aCol+14]; -+ _seqValignWt = p[aCol+15]; -+ -+ // These attributes do not have corresponding glyph attribute: -+ _exclGlyph = 0; -+ _exclOffset = Position(0, 0); -+} -+ -+float SlotCollision::getKern(int dir) const -+{ -+ if ((_flags & SlotCollision::COLL_KERN) != 0) -+ return float(_shift.x * ((dir & 1) ? -1 : 1)); -+ else -+ return 0; -+} -+ -diff --git a/gfx/graphite2/src/Decompressor.cpp b/gfx/graphite2/src/Decompressor.cpp -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/Decompressor.cpp -@@ -0,0 +1,113 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2015, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#include -+ -+#include "inc/Decompressor.h" -+#include "inc/Compression.h" -+ -+using namespace lz4; -+ -+namespace { -+ -+inline -+u32 read_literal(u8 const * &s, u8 const * const e, u32 l) { -+ if (l == 15 && s != e) -+ { -+ u8 b = 0; -+ do { l += b = *s++; } while(b==0xff && s != e); -+ } -+ return l; -+} -+ -+bool read_sequence(u8 const * &src, u8 const * const end, u8 const * &literal, u32 & literal_len, u32 & match_len, u32 & match_dist) -+{ -+ u8 const token = *src++; -+ -+ literal_len = read_literal(src, end, token >> 4); -+ literal = src; -+ src += literal_len; -+ -+ if (src > end - 2) -+ return false; -+ -+ match_dist = *src++; -+ match_dist |= *src++ << 8; -+ match_len = read_literal(src, end, token & 0xf); -+ -+ return src <= end-5; -+} -+ -+} -+ -+int lz4::decompress(void const *in, size_t in_size, void *out, size_t out_size) -+{ -+ if (out_size <= in_size || in_size < sizeof(unsigned long)+1) -+ return -1; -+ -+ u8 const * src = static_cast(in), -+ * literal = 0, -+ * const src_end = src + in_size; -+ -+ u8 * dst = static_cast(out), -+ * const dst_end = dst + out_size; -+ -+ u32 literal_len = 0, -+ match_len = 0, -+ match_dist = 0; -+ -+ while (read_sequence(src, src_end, literal, literal_len, match_len, match_dist)) -+ { -+ if (literal_len != 0) -+ { -+ // Copy in literal. At this point the last full sequence must be at -+ // least MINMATCH + 5 from the end of the output buffer. -+ if (dst + align(literal_len) > dst_end - (MINMATCH+5)) -+ return -1; -+ dst = overrun_copy(dst, literal, literal_len); -+ } -+ -+ // Copy, possibly repeating, match from earlier in the -+ // decoded output. -+ u8 const * const pcpy = dst - match_dist; -+ if (pcpy < static_cast(out) -+ || dst + match_len + MINMATCH > dst_end - 5) -+ return -1; -+ if (dst > pcpy+sizeof(unsigned long) -+ && dst + align(match_len + MINMATCH) <= dst_end) -+ dst = overrun_copy(dst, pcpy, match_len + MINMATCH); -+ else -+ dst = safe_copy(dst, pcpy, match_len + MINMATCH); -+ } -+ -+ if (literal + literal_len > src_end -+ || dst + literal_len > dst_end) -+ return -1; -+ dst = fast_copy(dst, literal, literal_len); -+ -+ return dst - (u8*)out; -+} -+ -diff --git a/gfx/graphite2/src/Face.cpp b/gfx/graphite2/src/Face.cpp ---- a/gfx/graphite2/src/Face.cpp -+++ b/gfx/graphite2/src/Face.cpp -@@ -23,28 +23,39 @@ Alternatively, the contents of this file - Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #include - #include "graphite2/Segment.h" - #include "inc/CmapCache.h" - #include "inc/debug.h" -+#include "inc/Decompressor.h" - #include "inc/Endian.h" - #include "inc/Face.h" - #include "inc/FileFace.h" - #include "inc/GlyphFace.h" - #include "inc/json.h" - #include "inc/SegCacheStore.h" - #include "inc/Segment.h" - #include "inc/NameTable.h" - #include "inc/Error.h" - - using namespace graphite2; - -+namespace -+{ -+enum compression -+{ -+ NONE, -+ LZ4 -+}; -+ -+} -+ - Face::Face(const void* appFaceHandle/*non-NULL*/, const gr_face_ops & ops) - : m_appFaceHandle(appFaceHandle), - m_pFileFace(NULL), - m_pGlyphFaceCache(NULL), - m_cmap(NULL), - m_pNames(NULL), - m_logger(NULL), - m_error(0), m_errcntxt(0), -@@ -79,55 +90,59 @@ float Face::default_glyph_advance(const - - bool Face::readGlyphs(uint32 faceOptions) - { - Error e; - #ifdef GRAPHITE2_TELEMETRY - telemetry::category _glyph_cat(tele.glyph); - #endif - error_context(EC_READGLYPHS); -+ m_pGlyphFaceCache = new GlyphCache(*this, faceOptions); -+ -+ if (e.test(!m_pGlyphFaceCache, E_OUTOFMEM) -+ || e.test(m_pGlyphFaceCache->numGlyphs() == 0, E_NOGLYPHS) -+ || e.test(m_pGlyphFaceCache->unitsPerEm() == 0, E_BADUPEM)) -+ { -+ return error(e); -+ } -+ - if (faceOptions & gr_face_cacheCmap) - m_cmap = new CachedCmap(*this); - else - m_cmap = new DirectCmap(*this); -- -- m_pGlyphFaceCache = new GlyphCache(*this, faceOptions); -- if (e.test(!m_pGlyphFaceCache, E_OUTOFMEM) -- || e.test(m_pGlyphFaceCache->numGlyphs() == 0, E_NOGLYPHS) -- || e.test(m_pGlyphFaceCache->unitsPerEm() == 0, E_BADUPEM) -- || e.test(!m_cmap, E_OUTOFMEM) || e.test(!*m_cmap, E_BADCMAP)) -- { -+ if (e.test(!m_cmap, E_OUTOFMEM) || e.test(!*m_cmap, E_BADCMAP)) - return error(e); -- } - - if (faceOptions & gr_face_preloadGlyphs) - nameTable(); // preload the name table along with the glyphs. - - return true; - } - - bool Face::readGraphite(const Table & silf) - { - #ifdef GRAPHITE2_TELEMETRY - telemetry::category _silf_cat(tele.silf); - #endif - Error e; - error_context(EC_READSILF); - const byte * p = silf; -- if (e.test(!p, E_NOSILF)) return error(e); -+ if (e.test(!p, E_NOSILF) || e.test(silf.size() < 20, E_BADSIZE)) return error(e); - - const uint32 version = be::read(p); - if (e.test(version < 0x00020000, E_TOOOLD)) return error(e); - if (version >= 0x00030000) - be::skip(p); // compilerVersion - m_numSilf = be::read(p); -+ - be::skip(p); // reserved - - bool havePasses = false; - m_silfs = new Silf[m_numSilf]; -+ if (e.test(!m_silfs, E_OUTOFMEM)) return error(e); - for (int i = 0; i < m_numSilf; i++) - { - error_context(EC_ASILF + (i << 8)); - const uint32 offset = be::read(p), - next = i == m_numSilf - 1 ? silf.size() : be::peek(p); - if (e.test(next > silf.size() || offset >= next, E_BADSIZE)) - return error(e); - -@@ -153,29 +168,38 @@ bool Face::runGraphite(Segment *seg, con - if (dbgout) - { - *dbgout << json::object - << "id" << objectid(seg) - << "passes" << json::array; - } - #endif - -- bool res = aSilf->runGraphite(seg, 0, aSilf->justificationPass(), true); -+// if ((seg->dir() & 1) != aSilf->dir()) -+// seg->reverseSlots(); -+ if ((seg->dir() & 3) == 3 && aSilf->bidiPass() == 0xFF) -+ seg->doMirror(aSilf->aMirror()); -+ bool res = aSilf->runGraphite(seg, 0, aSilf->positionPass(), true); - if (res) -- res = aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); -+ { -+ seg->associateChars(0, seg->charInfoCount()); -+ if (aSilf->flags() & 0x20) -+ res &= seg->initCollisions(); -+ res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); -+ } - - #if !defined GRAPHITE2_NTRACING - if (dbgout) - { -+ seg->positionSlots(0, 0, 0, aSilf->dir()); - *dbgout << json::item - << json::close // Close up the passes array - << "output" << json::array; - for(Slot * s = seg->first(); s; s = s->next()) - *dbgout << dslot(seg, s); -- seg->finalise(0); // Call this here to fix up charinfo back indexes. - *dbgout << json::close - << "advance" << seg->advance() - << "chars" << json::array; - for(size_t i = 0, n = seg->charInfoCount(); i != n; ++i) - *dbgout << json::flat << *seg->charinfo(i); - *dbgout << json::close // Close up the chars array - << json::close; // Close up the segment object - } -@@ -208,17 +232,19 @@ uint16 Face::findPseudo(uint32 uid) cons - } - - uint16 Face::getGlyphMetric(uint16 gid, uint8 metric) const - { - switch (metrics(metric)) - { - case kgmetAscent : return m_ascent; - case kgmetDescent : return m_descent; -- default: return glyphs().glyph(gid)->getMetric(metric); -+ default: -+ if (gid >= glyphs().numGlyphs()) return 0; -+ return glyphs().glyph(gid)->getMetric(metric); - } - } - - void Face::takeFileFace(FileFace* pFileFace GR_MAYBE_UNUSED/*takes ownership*/) - { - #ifndef GRAPHITE2_NFILEFACE - if (m_pFileFace==pFileFace) - return; -@@ -240,30 +266,100 @@ NameTable * Face::nameTable() const - uint16 Face::languageForLocale(const char * locale) const - { - nameTable(); - if (m_pNames) - return m_pNames->getLanguageId(locale); - return 0; - } - --Face::Table::Table(const Face & face, const Tag n) throw() --: _f(&face) -+ -+ -+Face::Table::Table(const Face & face, const Tag n, uint32 version) throw() -+: _f(&face), _compressed(false) - { - size_t sz = 0; -- _p = reinterpret_cast((*_f->m_ops.get_table)(_f->m_appFaceHandle, n, &sz)); -+ _p = static_cast((*_f->m_ops.get_table)(_f->m_appFaceHandle, n, &sz)); - _sz = uint32(sz); -+ - if (!TtfUtil::CheckTable(n, _p, _sz)) - { - this->~Table(); // Make sure we release the table buffer even if the table filed it's checks -- _p = 0; _sz = 0; -+ return; - } -+ -+ if (be::peek(_p) >= version) -+ decompress(); -+} -+ -+void Face::Table::releaseBuffers() -+{ -+ if (_compressed) -+ free(const_cast(_p)); -+ else if (_p && _f->m_ops.release_table) -+ (*_f->m_ops.release_table)(_f->m_appFaceHandle, _p); -+ _p = 0; _sz = 0; - } - - Face::Table & Face::Table::operator = (const Table & rhs) throw() - { - if (_p == rhs._p) return *this; - - this->~Table(); - new (this) Table(rhs); - return *this; - } - -+Error Face::Table::decompress() -+{ -+ Error e; -+ if (e.test(_sz < 5 * sizeof(uint32), E_BADSIZE)) -+ return e; -+ byte * uncompressed_table = 0; -+ size_t uncompressed_size = 0; -+ -+ const byte * p = _p; -+ const uint32 version = be::read(p); // Table version number. -+ -+ // The scheme is in the top 5 bits of the 1st uint32. -+ const uint32 hdr = be::read(p); -+ switch(compression(hdr >> 27)) -+ { -+ case NONE: return e; -+ -+ case LZ4: -+ { -+ uncompressed_size = hdr & 0x07ffffff; -+ uncompressed_table = gralloc(uncompressed_size); -+ if (!e.test(!uncompressed_table, E_OUTOFMEM)) -+ // coverity[forward_null : FALSE] - uncompressed_table has been checked so can't be null -+ // coverity[checked_return : FALSE] - we test e later -+ e.test(lz4::decompress(p, _sz - 2*sizeof(uint32), uncompressed_table, uncompressed_size) != signed(uncompressed_size), E_SHRINKERFAILED); -+ break; -+ } -+ -+ default: -+ e.error(E_BADSCHEME); -+ }; -+ -+ // Check the uncompressed version number against the original. -+ if (!e) -+ // coverity[forward_null : FALSE] - uncompressed_table has already been tested so can't be null -+ // coverity[checked_return : FALSE] - we test e later -+ e.test(be::peek(uncompressed_table) != version, E_SHRINKERFAILED); -+ -+ // Tell the provider to release the compressed form since were replacing -+ // it anyway. -+ releaseBuffers(); -+ -+ if (e) -+ { -+ free(uncompressed_table); -+ uncompressed_table = 0; -+ uncompressed_size = 0; -+ } -+ -+ _p = uncompressed_table; -+ _sz = uncompressed_size; -+ _compressed = true; -+ -+ return e; -+} -diff --git a/gfx/graphite2/src/FeatureMap.cpp b/gfx/graphite2/src/FeatureMap.cpp ---- a/gfx/graphite2/src/FeatureMap.cpp -+++ b/gfx/graphite2/src/FeatureMap.cpp -@@ -126,60 +126,61 @@ bool FeatureMap::readFeats(const Face & - unsigned short bits = 0; //to cause overflow on first Feature - - for (int i = 0, ie = m_numFeats; i != ie; i++) - { - const uint32 label = version < 0x00020000 ? be::read(p) : be::read(p); - const uint16 num_settings = be::read(p); - if (version >= 0x00020000) - be::skip(p); -- const byte * const feat_setts = feat_start + be::read(p); -+ const uint32 settings_offset = be::read(p); - const uint16 flags = be::read(p), - uiName = be::read(p); - -- if (feat_setts + num_settings * FEATURE_SETTING_SIZE > feat_end) -+ if (settings_offset > size_t(feat_end - feat_start) -+ || settings_offset + num_settings * FEATURE_SETTING_SIZE > size_t(feat_end - feat_start)) - { - free(defVals); - return false; - } - - FeatureSetting *uiSet; - uint32 maxVal; - if (num_settings != 0) - { - uiSet = gralloc(num_settings); - if (!uiSet) - { - free(defVals); - return false; - } -- maxVal = readFeatureSettings(feat_setts, uiSet, num_settings); -+ maxVal = readFeatureSettings(feat_start + settings_offset, uiSet, num_settings); - defVals[i] = uiSet[0].value(); - } - else - { - uiSet = 0; - maxVal = 0xffffffff; - defVals[i] = 0; - } - - ::new (m_feats + i) FeatureRef (face, bits, maxVal, - label, uiName, flags, - uiSet, num_settings); - } -- m_defaultFeatures = new Features(bits/(sizeof(uint32)*8) + 1, *this); -+ new (&m_defaultFeatures) Features(bits/(sizeof(uint32)*8) + 1, *this); - m_pNamedFeats = new NameAndFeatureRef[m_numFeats]; -- if (!m_defaultFeatures || !m_pNamedFeats) -+ if (!m_pNamedFeats) - { - free(defVals); - return false; - } - for (int i = 0; i < m_numFeats; ++i) - { -- m_feats[i].applyValToFeature(defVals[i], *m_defaultFeatures); -+ m_feats[i].applyValToFeature(defVals[i], m_defaultFeatures); - m_pNamedFeats[i] = m_feats+i; - } - - free(defVals); - - qsort(m_pNamedFeats, m_numFeats, sizeof(NameAndFeatureRef), &cmpNameAndFeatures); - - return true; -@@ -209,17 +210,17 @@ bool SillMap::readSill(const Face & face - if (sill.size() < m_numLanguages * 8U + 12) return false; - - for (int i = 0; i < m_numLanguages; i++) - { - uint32 langid = be::read(p); - uint16 numSettings = be::read(p); - uint16 offset = be::read(p); - if (offset + 8U * numSettings > sill.size() && numSettings > 0) return false; -- Features* feats = new Features(*m_FeatureMap.m_defaultFeatures); -+ Features* feats = new Features(m_FeatureMap.m_defaultFeatures); - if (!feats) return false; - const byte *pLSet = sill + offset; - - // Apply langauge specific settings - for (int j = 0; j < numSettings; j++) - { - uint32 name = be::read(pLSet); - uint16 val = be::read(pLSet); -@@ -245,17 +246,17 @@ Features* SillMap::cloneFeatures(uint32 - // the number of languages in a font is usually small e.g. 8 in Doulos - // so this loop is not very expensive - for (uint16 i = 0; i < m_numLanguages; i++) - { - if (m_langFeats[i].m_lang == langname) - return new Features(*m_langFeats[i].m_pFeatures); - } - } -- return new Features (*m_FeatureMap.m_defaultFeatures); -+ return new Features (m_FeatureMap.m_defaultFeatures); - } - - - - const FeatureRef *FeatureMap::findFeatureRef(uint32 name) const - { - NameAndFeatureRef *it; - -diff --git a/gfx/graphite2/src/FileFace.cpp b/gfx/graphite2/src/FileFace.cpp ---- a/gfx/graphite2/src/FileFace.cpp -+++ b/gfx/graphite2/src/FileFace.cpp -@@ -55,18 +55,22 @@ FileFace::FileFace(const char *filename) - if (fread(_header_tbl, 1, tbl_len, _file) != tbl_len) return; - if (!TtfUtil::CheckHeader(_header_tbl)) return; - } - - // Get the table directory - if (!TtfUtil::GetTableDirInfo(_header_tbl, tbl_offset, tbl_len)) return; - _table_dir = (TtfUtil::Sfnt::OffsetSubTable::Entry*)gralloc(tbl_len); - if (fseek(_file, tbl_offset, SEEK_SET)) return; -- if (_table_dir) -- if (fread(_table_dir, 1, tbl_len, _file) != tbl_len) return; -+ if (_table_dir && fread(_table_dir, 1, tbl_len, _file) != tbl_len) -+ { -+ free(_table_dir); -+ _table_dir = NULL; -+ } -+ return; - } - - FileFace::~FileFace() - { - free(_table_dir); - free(_header_tbl); - if (_file) - fclose(_file); -@@ -78,17 +82,17 @@ const void *FileFace::get_table_fn(const - if (appFaceHandle == 0) return 0; - const FileFace & file_face = *static_cast(appFaceHandle); - - void *tbl; - size_t tbl_offset, tbl_len; - if (!TtfUtil::GetTableInfo(name, file_face._header_tbl, file_face._table_dir, tbl_offset, tbl_len)) - return 0; - -- if (tbl_offset + tbl_len > file_face._file_len -+ if (tbl_offset > file_face._file_len || tbl_len > file_face._file_len - tbl_offset - || fseek(file_face._file, tbl_offset, SEEK_SET) != 0) - return 0; - - tbl = malloc(tbl_len); - if (fread(tbl, 1, tbl_len, file_face._file) != tbl_len) - { - free(tbl); - return 0; -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 -@@ -26,16 +26,17 @@ of the License or (at your option) any l - */ - #include "graphite2/Font.h" - - #include "inc/Main.h" - #include "inc/Face.h" //for the tags - #include "inc/GlyphCache.h" - #include "inc/GlyphFace.h" - #include "inc/Endian.h" -+#include "inc/bits.h" - - using namespace graphite2; - - namespace - { - // Iterator over version 1 or 2 glat entries which consist of a series of - // +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ - // v1 |k|n|v1 |v2 |...|vN | or v2 | k | n |v1 |v2 |...|vN | -@@ -56,99 +57,127 @@ namespace - if (_n == run()) advance_entry(); - return *this; - } - _glat_iterator operator ++ (int) { _glat_iterator tmp(*this); operator++(); return tmp; } - - // This is strictly a >= operator. A true == operator could be - // implemented that test for overlap but it would be more expensive a - // test. -- bool operator == (const _glat_iterator & rhs) { return _v >= rhs._e; } -+ bool operator == (const _glat_iterator & rhs) { return _v >= rhs._e - 1; } - bool operator != (const _glat_iterator & rhs) { return !operator==(rhs); } - - value_type operator * () const { - return value_type(key(), be::peek(_v)); - } - - protected: - const byte * _e, * _v; -- ptrdiff_t _n; -+ size_t _n; - }; - - typedef _glat_iterator glat_iterator; - typedef _glat_iterator glat2_iterator; - } - -+const SlantBox SlantBox::empty = {0,0,0,0}; -+ - - class GlyphCache::Loader - { - public: - Loader(const Face & face, const bool dumb_font); //return result indicates success. Do not use if failed. - - operator bool () const throw(); - unsigned short int units_per_em() const throw(); - unsigned short int num_glyphs() const throw(); - unsigned short int num_attrs() const throw(); -+ bool has_boxes() const throw(); - -- const GlyphFace * read_glyph(unsigned short gid, GlyphFace &) const throw(); -+ const GlyphFace * read_glyph(unsigned short gid, GlyphFace &, int *numsubs) const throw(); -+ GlyphBox * read_box(uint16 gid, GlyphBox *curr, const GlyphFace & face) const throw(); - - CLASS_NEW_DELETE; - private: - Face::Table _head, - _hhea, - _hmtx, - _glyf, - _loca, - m_pGlat, - m_pGloc; - - bool _long_fmt; -+ bool _has_boxes; - unsigned short _num_glyphs_graphics, //i.e. boundary box and advance - _num_glyphs_attributes, - _num_attrs; // number of glyph attributes per glyph - }; - - - - GlyphCache::GlyphCache(const Face & face, const uint32 face_options) - : _glyph_loader(new Loader(face, bool(face_options & gr_face_dumbRendering))), - _glyphs(_glyph_loader && *_glyph_loader ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), -+ _boxes(_glyph_loader && _glyph_loader->has_boxes() ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), - _num_glyphs(_glyphs ? _glyph_loader->num_glyphs() : 0), - _num_attrs(_glyphs ? _glyph_loader->num_attrs() : 0), - _upem(_glyphs ? _glyph_loader->units_per_em() : 0) - { - if ((face_options & gr_face_preloadGlyphs) && _glyph_loader && _glyphs) - { -+ int numsubs = 0; - GlyphFace * const glyphs = new GlyphFace [_num_glyphs]; - if (!glyphs) - return; - - // The 0 glyph is definately required. -- _glyphs[0] = _glyph_loader->read_glyph(0, glyphs[0]); -+ _glyphs[0] = _glyph_loader->read_glyph(0, glyphs[0], &numsubs); - - // glyphs[0] has the same address as the glyphs array just allocated, - // thus assigning the &glyphs[0] to _glyphs[0] means _glyphs[0] points - // to the entire array. - const GlyphFace * loaded = _glyphs[0]; - for (uint16 gid = 1; loaded && gid != _num_glyphs; ++gid) -- _glyphs[gid] = loaded = _glyph_loader->read_glyph(gid, glyphs[gid]); -+ _glyphs[gid] = loaded = _glyph_loader->read_glyph(gid, glyphs[gid], &numsubs); - - if (!loaded) - { - _glyphs[0] = 0; - delete [] glyphs; - } -+ else if (numsubs > 0) -+ { -+ GlyphBox * boxes = (GlyphBox *)gralloc(_num_glyphs * sizeof(GlyphBox) + numsubs * 8 * sizeof(float)); -+ GlyphBox * currbox = boxes; -+ -+ for (uint16 gid = 0; currbox && gid != _num_glyphs; ++gid) -+ { -+ _boxes[gid] = currbox; -+ currbox = _glyph_loader->read_box(gid, currbox, *_glyphs[gid]); -+ } -+ if (!currbox) -+ { -+ free(boxes); -+ _boxes[0] = 0; -+ } -+ } - delete _glyph_loader; - _glyph_loader = 0; - } - - if (_glyphs && glyph(0) == 0) - { - free(_glyphs); - _glyphs = 0; -+ if (_boxes) -+ { -+ free(_boxes); -+ _boxes = 0; -+ } - _num_glyphs = _num_attrs = _upem = 0; - } - } - - - GlyphCache::~GlyphCache() - { - if (_glyphs) -@@ -158,91 +187,130 @@ GlyphCache::~GlyphCache() - const GlyphFace * * g = _glyphs; - for(unsigned short n = _num_glyphs; n; --n, ++g) - delete *g; - } - else - delete [] _glyphs[0]; - free(_glyphs); - } -+ if (_boxes) -+ { -+ if (_glyph_loader) -+ { -+ GlyphBox * * g = _boxes; -+ for (uint16 n = _num_glyphs; n; --n, ++g) -+ free(*g); -+ } -+ else -+ free(_boxes[0]); -+ free(_boxes); -+ } - delete _glyph_loader; - } - - const GlyphFace *GlyphCache::glyph(unsigned short glyphid) const //result may be changed by subsequent call with a different glyphid - { - const GlyphFace * & p = _glyphs[glyphid]; - if (p == 0 && _glyph_loader) - { -+ int numsubs = 0; - GlyphFace * g = new GlyphFace(); -- if (g) p = _glyph_loader->read_glyph(glyphid, *g); -+ if (g) p = _glyph_loader->read_glyph(glyphid, *g, &numsubs); - if (!p) - { - delete g; - return *_glyphs; - } -+ if (_boxes) -+ { -+ _boxes[glyphid] = (GlyphBox *)gralloc(sizeof(GlyphBox) + 8 * numsubs * sizeof(float)); -+ if (!_glyph_loader->read_box(glyphid, _boxes[glyphid], *_glyphs[glyphid])) -+ { -+ free(_boxes[glyphid]); -+ _boxes[glyphid] = 0; -+ } -+ } - } - return p; - } - - - - GlyphCache::Loader::Loader(const Face & face, const bool dumb_font) - : _head(face, Tag::head), - _hhea(face, Tag::hhea), - _hmtx(face, Tag::hmtx), - _glyf(face, Tag::glyf), - _loca(face, Tag::loca), - _long_fmt(false), -+ _has_boxes(false), - _num_glyphs_graphics(0), - _num_glyphs_attributes(0), - _num_attrs(0) - { - if (!operator bool()) - return; - - const Face::Table maxp = Face::Table(face, Tag::maxp); - if (!maxp) { _head = Face::Table(); return; } - - _num_glyphs_graphics = TtfUtil::GlyphCount(maxp); - // This will fail if the number of glyphs is wildly out of range. -- if (_glyf && TtfUtil::LocaLookup(_num_glyphs_graphics-1, _loca, _loca.size(), _head) == size_t(-1)) -+ if (_glyf && TtfUtil::LocaLookup(_num_glyphs_graphics-1, _loca, _loca.size(), _head) == size_t(-2)) - { - _head = Face::Table(); - return; - } - - if (!dumb_font) - { -- if ((m_pGlat = Face::Table(face, Tag::Glat)) == NULL -+ if ((m_pGlat = Face::Table(face, Tag::Glat, 0x00030000)) == NULL - || (m_pGloc = Face::Table(face, Tag::Gloc)) == NULL - || m_pGloc.size() < 6) - { - _head = Face::Table(); - return; - } - const byte * p = m_pGloc; -- const int version = be::read(p); -+ int version = be::read(p); - const uint16 flags = be::read(p); - _num_attrs = be::read(p); - // We can accurately calculate the number of attributed glyphs by - // subtracting the length of the attribids array (numAttribs long if present) - // and dividing by either 2 or 4 depending on shor or lonf format - _long_fmt = flags & 1; -- _num_glyphs_attributes = (m_pGloc.size() -+ int tmpnumgattrs = (m_pGloc.size() - - (p - m_pGloc) - - sizeof(uint16)*(flags & 0x2 ? _num_attrs : 0)) - / (_long_fmt ? sizeof(uint32) : sizeof(uint16)) - 1; - -- if (version != 0x00010000 -+ if (version >= 0x00020000 || tmpnumgattrs < 0 || tmpnumgattrs > 65535 - || _num_attrs == 0 || _num_attrs > 0x3000 // is this hard limit appropriate? -- || _num_glyphs_graphics > _num_glyphs_attributes) -+ || _num_glyphs_graphics > tmpnumgattrs) - { - _head = Face::Table(); - return; - } -+ -+ _num_glyphs_attributes = static_cast(tmpnumgattrs); -+ p = m_pGlat; -+ version = be::read(p); -+ if (version >= 0x00040000) // reject Glat tables that are too new -+ { -+ _head = Face::Table(); -+ return; -+ } -+ else if (version >= 0x00030000) -+ { -+ unsigned int glatflags = be::read(p); -+ _has_boxes = glatflags & 1; -+ // delete this once the compiler is fixed -+ _has_boxes = true; -+ } - } - } - - inline - GlyphCache::Loader::operator bool () const throw() - { - return _head && _hhea && _hmtx && !(bool(_glyf) != bool(_loca)); - } -@@ -260,34 +328,44 @@ unsigned short int GlyphCache::Loader::n - } - - inline - unsigned short int GlyphCache::Loader::num_attrs() const throw() - { - return _num_attrs; - } - --const GlyphFace * GlyphCache::Loader::read_glyph(unsigned short glyphid, GlyphFace & glyph) const throw() -+inline -+bool GlyphCache::Loader::has_boxes () const throw() -+{ -+ return _has_boxes; -+} -+ -+const GlyphFace * GlyphCache::Loader::read_glyph(unsigned short glyphid, GlyphFace & glyph, int *numsubs) const throw() - { - Rect bbox; - Position advance; - - if (glyphid < _num_glyphs_graphics) - { - int nLsb; - unsigned int nAdvWid; - if (_glyf) - { - int xMin, yMin, xMax, yMax; - size_t locidx = TtfUtil::LocaLookup(glyphid, _loca, _loca.size(), _head); - void *pGlyph = TtfUtil::GlyfLookup(_glyf, locidx, _glyf.size()); - - if (pGlyph && TtfUtil::GlyfBox(pGlyph, xMin, yMin, xMax, yMax)) -+ { -+ if ((xMin > xMax) || (yMin > yMax)) -+ return 0; - bbox = Rect(Position(static_cast(xMin), static_cast(yMin)), - Position(static_cast(xMax), static_cast(yMax))); -+ } - } - if (TtfUtil::HorMetrics(glyphid, _hmtx, _hmtx.size(), _hhea, nLsb, nAdvWid)) - advance = Position(static_cast(nAdvWid), 0); - } - - if (glyphid < _num_glyphs_attributes) - { - const byte * gloc = m_pGloc; -@@ -307,35 +385,95 @@ const GlyphFace * GlyphCache::Loader::re - glocs = be::read(gloc); - gloce = be::peek(gloc); - } - - if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) - return 0; - - const uint32 glat_version = be::peek(m_pGlat); -+ if (glat_version == 0x00030000) -+ { -+ const byte * p = m_pGlat + glocs; -+ uint16 bmap = be::read(p); -+ int num = bit_set_count((uint32)bmap); -+ if (numsubs) *numsubs += num; -+ glocs += 6 + 8 * num; -+ if (glocs > gloce) -+ return 0; -+ } - if (glat_version < 0x00020000) - { - if (gloce - glocs < 2*sizeof(byte)+sizeof(uint16) - || gloce - glocs > _num_attrs*(2*sizeof(byte)+sizeof(uint16))) -- { -- return 0; -- } -- -+ return 0; - new (&glyph) GlyphFace(bbox, advance, glat_iterator(m_pGlat + glocs), glat_iterator(m_pGlat + gloce)); - } - else - { -- if (gloce - glocs < 3*sizeof(uint16) -- || gloce - glocs > _num_attrs*3*sizeof(uint16)) -- { -- return 0; -- } -- -+ if (gloce - glocs < 3*sizeof(uint16) // can a glyph have no attributes? why not? -+ || gloce - glocs > _num_attrs*3*sizeof(uint16) -+ || glocs > m_pGlat.size() - 2*sizeof(uint16)) -+ return 0; - new (&glyph) GlyphFace(bbox, advance, glat2_iterator(m_pGlat + glocs), glat2_iterator(m_pGlat + gloce)); - } -- - if (!glyph.attrs() || glyph.attrs().capacity() > _num_attrs) - return 0; - } -- - return &glyph; - } -+ -+inline float scale_to(uint8 t, float zmin, float zmax) -+{ -+ return (zmin + t * (zmax - zmin) / 255); -+} -+ -+Rect readbox(Rect &b, uint8 zxmin, uint8 zymin, uint8 zxmax, uint8 zymax) -+{ -+ return Rect(Position(scale_to(zxmin, b.bl.x, b.tr.x), scale_to(zymin, b.bl.y, b.tr.y)), -+ Position(scale_to(zxmax, b.bl.x, b.tr.x), scale_to(zymax, b.bl.y, b.tr.y))); -+} -+ -+GlyphBox * GlyphCache::Loader::read_box(uint16 gid, GlyphBox *curr, const GlyphFace & glyph) const throw() -+{ -+ if (gid >= _num_glyphs_attributes) return 0; -+ -+ const byte * gloc = m_pGloc; -+ size_t glocs = 0, gloce = 0; -+ -+ be::skip(gloc); -+ be::skip(gloc,2); -+ if (_long_fmt) -+ { -+ be::skip(gloc, gid); -+ glocs = be::read(gloc); -+ gloce = be::peek(gloc); -+ } -+ else -+ { -+ be::skip(gloc, gid); -+ glocs = be::read(gloc); -+ gloce = be::peek(gloc); -+ } -+ -+ if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) -+ return 0; -+ -+ const byte * p = m_pGlat + glocs; -+ uint16 bmap = be::read(p); -+ int num = bit_set_count((uint32)bmap); -+ -+ Rect bbox = glyph.theBBox(); -+ Rect diamax(Position(bbox.bl.x + bbox.bl.y, bbox.bl.x - bbox.tr.y), -+ Position(bbox.tr.x + bbox.tr.y, bbox.tr.x - bbox.bl.y)); -+ Rect diabound = readbox(diamax, p[0], p[2], p[1], p[3]); -+ ::new (curr) GlyphBox(num, bmap, &diabound); -+ be::skip(p, 4); -+ -+ for (int i = 0; i < num * 2; ++i) -+ { -+ Rect box = readbox((i & 1) ? diamax : bbox, p[0], p[2], p[1], p[3]); -+ curr->addSubBox(i >> 1, i & 1, &box); -+ be::skip(p, 4); -+ } -+ return (GlyphBox *)((char *)(curr) + sizeof(GlyphBox) + 2 * num * sizeof(Rect)); -+} -+ -diff --git a/gfx/graphite2/src/Intervals.cpp b/gfx/graphite2/src/Intervals.cpp -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/Intervals.cpp -@@ -0,0 +1,294 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#include -+#include -+#include -+ -+#include "inc/Intervals.h" -+#include "inc/Segment.h" -+#include "inc/Slot.h" -+#include "inc/debug.h" -+#include "inc/bits.h" -+ -+using namespace graphite2; -+ -+#include -+ -+inline -+Zones::Exclusion Zones::Exclusion::split_at(float p) { -+ Exclusion r(*this); -+ r.xm = x = p; -+ return r; -+} -+ -+inline -+void Zones::Exclusion::left_trim(float p) { -+ x = p; -+} -+ -+inline -+Zones::Exclusion & Zones::Exclusion::operator += (Exclusion const & rhs) { -+ c += rhs.c; sm += rhs.sm; smx += rhs.smx; open = false; -+ return *this; -+} -+ -+inline -+uint8 Zones::Exclusion::outcode(float val) const { -+ float p = val; -+ return ((p >= xm) << 1) | (p < x); -+} -+ -+void Zones::exclude_with_margins(float xmin, float xmax, int axis) { -+ remove(xmin, xmax); -+ weightedAxis(axis, xmin-_margin_len, xmin, 0, 0, _margin_weight, xmin-_margin_len, 0, 0, false); -+ weightedAxis(axis, xmax, xmax+_margin_len, 0, 0, _margin_weight, xmax+_margin_len, 0, 0, false); -+} -+ -+namespace -+{ -+ -+inline -+bool separated(float a, float b) { -+ return a != b; -+ //return std::fabs(a-b) > std::numeric_limits::epsilon(); // std::epsilon may not work. but 0.5 fails exising 64 bit tests -+ //return std::fabs(a-b) > 0.5f; -+} -+ -+} -+ -+void Zones::insert(Exclusion e) -+{ -+#if !defined GRAPHITE2_NTRACING -+ addDebug(&e); -+#endif -+ e.x = max(e.x, _pos); -+ e.xm = min(e.xm, _posm); -+ if (e.x >= e.xm) return; -+ -+ for (iterator i = _exclusions.begin(), ie = _exclusions.end(); i != ie && e.x < e.xm; ++i) -+ { -+ const uint8 oca = e.outcode(i->x), -+ ocb = e.outcode(i->xm); -+ if ((oca & ocb) != 0) continue; -+ -+ switch (oca ^ ocb) // What kind of overlap? -+ { -+ case 0: // e completely covers i -+ // split e at i.x into e1,e2 -+ // split e2 at i.mx into e2,e3 -+ // drop e1 ,i+e2, e=e3 -+ *i += e; -+ e.left_trim(i->xm); -+ break; -+ case 1: // e overlaps on the rhs of i -+ // split i at e->x into i1,i2 -+ // split e at i.mx into e1,e2 -+ // trim i1, insert i2+e1, e=e2 -+ if (!separated(i->xm, e.x)) break; -+ if (separated(i->x,e.x)) { i = _exclusions.insert(i,i->split_at(e.x)); ++i; } -+ *i += e; -+ e.left_trim(i->xm); -+ break; -+ case 2: // e overlaps on the lhs of i -+ // split e at i->x into e1,e2 -+ // split i at e.mx into i1,i2 -+ // drop e1, insert e2+i1, trim i2 -+ if (!separated(e.xm, i->x)) return; -+ if (separated(e.xm, i->xm)) i = _exclusions.insert(i,i->split_at(e.xm)); -+ *i += e; -+ return; -+ case 3: // i completely covers e -+ // split i at e.x into i1,i2 -+ // split i2 at e.mx into i2,i3 -+ // insert i1, insert e+i2 -+ if (separated(e.xm, i->xm)) i = _exclusions.insert(i,i->split_at(e.xm)); -+ i = _exclusions.insert(i, i->split_at(e.x)); -+ *++i += e; -+ return; -+ } -+ -+ ie = _exclusions.end(); -+ } -+} -+ -+ -+void Zones::remove(float x, float xm) -+{ -+#if !defined GRAPHITE2_NTRACING -+ removeDebug(x, xm); -+#endif -+ x = max(x, _pos); -+ xm = min(xm, _posm); -+ if (x >= xm) return; -+ -+ for (iterator i = _exclusions.begin(), ie = _exclusions.end(); i != ie; ++i) -+ { -+ const uint8 oca = i->outcode(x), -+ ocb = i->outcode(xm); -+ if ((oca & ocb) != 0) continue; -+ -+ switch (oca ^ ocb) // What kind of overlap? -+ { -+ case 0: // i completely covers e -+ if (separated(i->x, x)) { i = _exclusions.insert(i,i->split_at(x)); ++i; } -+ GR_FALLTHROUGH; -+ // no break -+ case 1: // i overlaps on the rhs of e -+ i->left_trim(xm); -+ return; -+ case 2: // i overlaps on the lhs of e -+ i->xm = x; -+ if (separated(i->x, i->xm)) break; -+ GR_FALLTHROUGH; -+ // no break -+ case 3: // e completely covers i -+ i = _exclusions.erase(i); -+ --i; -+ break; -+ } -+ -+ ie = _exclusions.end(); -+ } -+} -+ -+ -+Zones::const_iterator Zones::find_exclusion_under(float x) const -+{ -+ int l = 0, h = _exclusions.size(); -+ -+ while (l < h) -+ { -+ int const p = (l+h) >> 1; -+ switch (_exclusions[p].outcode(x)) -+ { -+ case 0 : return _exclusions.begin()+p; -+ case 1 : h = p; break; -+ case 2 : -+ case 3 : l = p+1; break; -+ } -+ } -+ -+ return _exclusions.begin()+l; -+} -+ -+ -+float Zones::closest(float origin, float & cost) const -+{ -+ float best_c = std::numeric_limits::max(), -+ best_x = 0; -+ -+ const const_iterator start = find_exclusion_under(origin); -+ -+ // Forward scan looking for lowest cost -+ for (const_iterator i = start, ie = _exclusions.end(); i != ie; ++i) -+ if (i->track_cost(best_c, best_x, origin)) break; -+ -+ // Backward scan looking for lowest cost -+ // We start from the exclusion to the immediate left of start since we've -+ // already tested start with the right most scan above. -+ for (const_iterator i = start-1, ie = _exclusions.begin()-1; i != ie; --i) -+ if (i->track_cost(best_c, best_x, origin)) break; -+ -+ cost = (best_c == std::numeric_limits::max() ? -1 : best_c); -+ return best_x; -+} -+ -+ -+// Cost and test position functions -+ -+bool Zones::Exclusion::track_cost(float & best_cost, float & best_pos, float origin) const { -+ const float p = test_position(origin), -+ localc = cost(p - origin); -+ if (open && localc > best_cost) return true; -+ -+ if (localc < best_cost) -+ { -+ best_cost = localc; -+ best_pos = p; -+ } -+ return false; -+} -+ -+inline -+float Zones::Exclusion::cost(float p) const { -+ return (sm * p - 2 * smx) * p + c; -+} -+ -+ -+float Zones::Exclusion::test_position(float origin) const { -+ if (sm < 0) -+ { -+ // sigh, test both ends and perhaps the middle too! -+ float res = x; -+ float cl = cost(x); -+ if (x < origin && xm > origin) -+ { -+ float co = cost(origin); -+ if (co < cl) -+ { -+ cl = co; -+ res = origin; -+ } -+ } -+ float cr = cost(xm); -+ return cl > cr ? xm : res; -+ } -+ else -+ { -+ float zerox = smx / sm + origin; -+ if (zerox < x) return x; -+ else if (zerox > xm) return xm; -+ else return zerox; -+ } -+} -+ -+ -+#if !defined GRAPHITE2_NTRACING -+ -+void Zones::jsonDbgOut(Segment *seg) const { -+ -+ if (_dbg) -+ { -+ for (Zones::idebugs s = dbgs_begin(), e = dbgs_end(); s != e; ++s) -+ { -+ *_dbg << json::flat << json::array -+ << objectid(dslot(seg, (Slot *)(s->_env[0]))) -+ << reinterpret_cast(s->_env[1]); -+ if (s->_isdel) -+ *_dbg << "remove" << Position(s->_excl.x, s->_excl.xm); -+ else -+ *_dbg << "exclude" << json::flat << json::array -+ << s->_excl.x << s->_excl.xm -+ << s->_excl.sm << s->_excl.smx << s->_excl.c -+ << json::close; -+ *_dbg << json::close; -+ } -+ } -+} -+ -+#endif -+ -diff --git a/gfx/graphite2/src/Justifier.cpp b/gfx/graphite2/src/Justifier.cpp ---- a/gfx/graphite2/src/Justifier.cpp -+++ b/gfx/graphite2/src/Justifier.cpp -@@ -26,17 +26,17 @@ of the License or (at your option) any l - */ - - #include "inc/Segment.h" - #include "graphite2/Font.h" - #include "inc/debug.h" - #include "inc/CharInfo.h" - #include "inc/Slot.h" - #include "inc/Main.h" --#include -+#include - - using namespace graphite2; - - class JustifyTotal { - public: - JustifyTotal() : m_numGlyphs(0), m_tStretch(0), m_tShrink(0), m_tStep(0), m_tWeight(0) {} - void accumulate(Slot *s, Segment *seg, int level); - int weight() const { return m_tWeight; } -@@ -55,37 +55,44 @@ void JustifyTotal::accumulate(Slot *s, S - { - ++m_numGlyphs; - m_tStretch += s->getJustify(seg, level, 0); - m_tShrink += s->getJustify(seg, level, 1); - m_tStep += s->getJustify(seg, level, 2); - m_tWeight += s->getJustify(seg, level, 3); - } - --float Segment::justify(Slot *pSlot, const Font *font, float width, GR_MAYBE_UNUSED justFlags flags, Slot *pFirst, Slot *pLast) -+float Segment::justify(Slot *pSlot, const Font *font, float width, GR_MAYBE_UNUSED justFlags jflags, Slot *pFirst, Slot *pLast) - { - Slot *s, *end; - float currWidth = 0.0; - const float scale = font ? font->scale() : 1.0f; - Position res; - - if (width < 0 && !(silf()->flags())) - return width; - -+ if ((m_dir & 1) != m_silf->dir() && m_silf->bidiPass() != m_silf->numPasses()) -+ { -+ reverseSlots(); -+ s = pFirst; -+ pFirst = pLast; -+ pLast = s; -+ } - if (!pFirst) pFirst = pSlot; - while (!pFirst->isBase()) pFirst = pFirst->attachedTo(); - if (!pLast) pLast = last(); - while (!pLast->isBase()) pLast = pLast->attachedTo(); - const float base = pFirst->origin().x / scale; - width = width / scale; -- if ((flags & gr_justEndInline) == 0) -+ if ((jflags & gr_justEndInline) == 0) - { - do { - Rect bbox = theGlyphBBoxTemporary(pLast->glyph()); -- if (bbox.bl.x != 0. || bbox.bl.y != 0. || bbox.tr.x != 0. || bbox.tr.y == 0.) -+ if (bbox.bl.x != 0.f || bbox.bl.y != 0.f || bbox.tr.x != 0.f || bbox.tr.y == 0.f) - break; - pLast = pLast->prev(); - } while (pLast != pFirst); - } - - end = pLast->nextSibling(); - pFirst = pFirst->nextSibling(); - -@@ -111,28 +118,27 @@ float Segment::justify(Slot *pSlot, cons - s->setJustify(this, 0, 3, 1); - s->setJustify(this, 0, 2, 1); - s->setJustify(this, 0, 0, -1); - } - } - ++numLevels; - } - -- JustifyTotal *stats = new JustifyTotal[numLevels]; -- if (!stats) return -1.0; -+ Vector stats(numLevels); - for (s = pFirst; s != end; s = s->nextSibling()) - { - float w = s->origin().x / scale + s->advance() - base; - if (w > currWidth) currWidth = w; - for (int j = 0; j < numLevels; ++j) - stats[j].accumulate(s, this, j); - s->just(0); - } - -- for (int i = (width < 0.0) ? -1 : numLevels - 1; i >= 0; --i) -+ for (int i = (width < 0.0f) ? -1 : numLevels - 1; i >= 0; --i) - { - float diff; - float error = 0.; - float diffpw; - int tWeight = stats[i].weight(); - - do { - error = 0.; -@@ -154,29 +160,29 @@ float Segment::justify(Slot *pSlot, cons - } - else - { - float max = uint16(s->getJustify(this, i, 1)); - if (i == 0) max += s->just(); - if (-pref > max) pref = -max; - else tWeight += w; - } -- int actual = step ? int(pref / step) * step : int(pref); -+ int actual = int(pref / step) * step; - - if (actual) - { - error += diffpw * w - actual; - if (i == 0) - s->just(s->just() + actual); - else - s->setJustify(this, i, 4, actual); - } - } - currWidth += diff - error; -- } while (i == 0 && int(abs(error)) > 0 && tWeight); -+ } while (i == 0 && int(std::abs(error)) > 0 && tWeight); - } - - Slot *oldFirst = m_first; - Slot *oldLast = m_last; - if (silf()->flags() & 1) - { - m_first = pSlot = addLineEnd(pSlot); - m_last = pLast = addLineEnd(end); -@@ -192,41 +198,44 @@ float Segment::justify(Slot *pSlot, cons - #if !defined GRAPHITE2_NTRACING - json * const dbgout = m_face->logger(); - if (dbgout) - *dbgout << json::object - << "justifies" << objectid(this) - << "passes" << json::array; - #endif - -- if (m_silf->justificationPass() != m_silf->positionPass() && (width >= 0. || (silf()->flags() & 1))) -+ if (m_silf->justificationPass() != m_silf->positionPass() && (width >= 0.f || (silf()->flags() & 1))) - m_silf->runGraphite(this, m_silf->justificationPass(), m_silf->positionPass()); - - #if !defined GRAPHITE2_NTRACING - if (dbgout) - { - *dbgout << json::item << json::close; // Close up the passes array -- positionSlots(NULL, pSlot, pLast); -+ positionSlots(NULL, pSlot, pLast, m_dir); - Slot *lEnd = pLast->nextSibling(); - *dbgout << "output" << json::array; - for(Slot * t = pSlot; t != lEnd; t = t->next()) - *dbgout << dslot(this, t); - *dbgout << json::close << json::close; - } - #endif - -- res = positionSlots(font, pSlot, pLast); -+ res = positionSlots(font, pSlot, pLast, m_dir); - - if (silf()->flags() & 1) - { - delLineEnd(m_first); - delLineEnd(m_last); - } - m_first = oldFirst; - m_last = oldLast; -+ -+ if ((m_dir & 1) != m_silf->dir() && m_silf->bidiPass() != m_silf->numPasses()) -+ reverseSlots(); - return res.x; - } - - Slot *Segment::addLineEnd(Slot *nSlot) - { - Slot *eSlot = newSlot(); - if (!eSlot) return NULL; - const uint16 gid = silf()->endLineGlyphid(); -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 -@@ -26,91 +26,120 @@ of the License or (at your option) any l - */ - #include "inc/Main.h" - #include "inc/debug.h" - #include "inc/Endian.h" - #include "inc/Pass.h" - #include - #include - #include -+#include - #include "inc/Segment.h" - #include "inc/Code.h" - #include "inc/Rule.h" - #include "inc/Error.h" -+#include "inc/Collider.h" - - using namespace graphite2; - using vm::Machine; - typedef Machine::Code Code; - -+enum KernCollison -+{ -+ None = 0, -+ CrossSpace = 1, -+ InWord = 2, -+ reserved = 3 -+}; - - Pass::Pass() - : m_silf(0), - m_cols(0), - m_rules(0), - m_ruleMap(0), - m_startStates(0), - m_transitions(0), - m_states(0), -- m_flags(0), -+ m_codes(0), -+ m_progs(0), -+ m_numCollRuns(0), -+ m_kernColls(0), - m_iMaxLoop(0), - m_numGlyphs(0), - m_numRules(0), - m_numStates(0), - m_numTransition(0), - m_numSuccess(0), -+ m_successStart(0), - m_numColumns(0), - m_minPreCtxt(0), -- m_maxPreCtxt(0) -+ m_maxPreCtxt(0), -+ m_colThreshold(0), -+ m_isReverseDir(false) - { - } - - Pass::~Pass() - { - free(m_cols); - free(m_startStates); - free(m_transitions); - free(m_states); - free(m_ruleMap); - -- delete [] m_rules; -+ if (m_rules) delete [] m_rules; -+ if (m_codes) delete [] m_codes; -+ free(m_progs); - } - --bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t subtable_base, GR_MAYBE_UNUSED Face & face, Error &e) -+bool Pass::readPass(const byte * const pass_start, size_t pass_length, size_t subtable_base, -+ GR_MAYBE_UNUSED Face & face, passtype pt, GR_MAYBE_UNUSED uint32 version, Error &e) - { -- const byte * p = pass_start, -- * const pass_end = p + pass_length; -+ const byte * p = pass_start, -+ * const pass_end = p + pass_length; - size_t numRanges; - - if (e.test(pass_length < 40, E_BADPASSLENGTH)) return face.error(e); - // Read in basic values -- m_flags = be::read(p); -+ const byte flags = be::read(p); -+ if (e.test((flags & 0x1f) && -+ (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes()), -+ E_BADCOLLISIONPASS)) -+ return face.error(e); -+ m_numCollRuns = flags & 0x7; -+ m_kernColls = (flags >> 3) & 0x3; -+ m_isReverseDir = (flags >> 5) & 0x1; - m_iMaxLoop = be::read(p); -+ if (m_iMaxLoop < 1) m_iMaxLoop = 1; - be::skip(p,2); // skip maxContext & maxBackup - m_numRules = be::read(p); -+ if (e.test(!m_numRules && m_numCollRuns == 0, E_BADEMPTYPASS)) return face.error(e); - be::skip(p); // fsmOffset - not sure why we would want this - const byte * const pcCode = pass_start + be::read(p) - subtable_base, - * const rcCode = pass_start + be::read(p) - subtable_base, - * const aCode = pass_start + be::read(p) - subtable_base; - be::skip(p); - m_numStates = be::read(p); - m_numTransition = be::read(p); - m_numSuccess = be::read(p); - m_numColumns = be::read(p); - numRanges = be::read(p); - be::skip(p, 3); // skip searchRange, entrySelector & rangeShift. - assert(p - pass_start == 40); - // Perform some sanity checks. - if ( e.test(m_numTransition > m_numStates, E_BADNUMTRANS) - || e.test(m_numSuccess > m_numStates, E_BADNUMSUCCESS) - || e.test(m_numSuccess + m_numTransition < m_numStates, E_BADNUMSTATES) -- || e.test(numRanges == 0, E_NORANGES)) -+ || e.test(m_numRules && numRanges == 0, E_NORANGES) -+ || e.test(m_numColumns > 0x7FFF, E_BADNUMCOLUMNS)) - return face.error(e); - - m_successStart = m_numStates - m_numSuccess; -- if (e.test(p + numRanges * 6 - 4 > pass_end, E_BADPASSLENGTH)) return face.error(e); -+ // test for beyond end - 1 to account for reading uint16 -+ if (e.test(p + numRanges * 6 - 2 > pass_end, E_BADPASSLENGTH)) return face.error(e); - m_numGlyphs = be::peek(p + numRanges * 6 - 4) + 1; - // Calculate the start of various arrays. - const byte * const ranges = p; - be::skip(p, numRanges*3); - const byte * const o_rule_map = p; - be::skip(p, m_numSuccess + 1); - - // More sanity checks -@@ -126,108 +155,141 @@ bool Pass::readPass(const byte * const p - m_maxPreCtxt = be::read(p); - if (e.test(m_minPreCtxt > m_maxPreCtxt, E_BADCTXTLENBOUNDS)) return face.error(e); - const byte * const start_states = p; - be::skip(p, m_maxPreCtxt - m_minPreCtxt + 1); - const uint16 * const sort_keys = reinterpret_cast(p); - be::skip(p, m_numRules); - const byte * const precontext = p; - be::skip(p, m_numRules); -- be::skip(p); // skip reserved byte - -- if (e.test(p + sizeof(uint16) > pass_end, E_BADCTXTLENS)) return face.error(e); -+ if (e.test(p + sizeof(uint16) + sizeof(uint8) > pass_end, E_BADCTXTLENS)) return face.error(e); -+ m_colThreshold = be::read(p); -+ if (m_colThreshold == 0) m_colThreshold = 10; // A default - const size_t pass_constraint_len = be::read(p); -+ - const uint16 * const o_constraint = reinterpret_cast(p); - be::skip(p, m_numRules + 1); - const uint16 * const o_actions = reinterpret_cast(p); - be::skip(p, m_numRules + 1); - const byte * const states = p; -+ if (e.test(p + 2u*m_numTransition*m_numColumns >= pass_end, E_BADPASSLENGTH)) return face.error(e); - be::skip(p, m_numTransition*m_numColumns); -- be::skip(p); // skip reserved byte -- if (e.test(p != pcCode, E_BADPASSCCODEPTR) || e.test(p >= pass_end, E_BADPASSLENGTH)) return face.error(e); -+ be::skip(p); -+ if (e.test(p != pcCode, E_BADPASSCCODEPTR)) return face.error(e); - be::skip(p, pass_constraint_len); -- if (e.test(p != rcCode, E_BADRULECCODEPTR) || e.test(p >= pass_end, E_BADPASSLENGTH) -+ if (e.test(p != rcCode, E_BADRULECCODEPTR) - || e.test(size_t(rcCode - pcCode) != pass_constraint_len, E_BADCCODELEN)) return face.error(e); - be::skip(p, be::peek(o_constraint + m_numRules)); -- if (e.test(p != aCode, E_BADACTIONCODEPTR) || e.test(p >= pass_end, E_BADPASSLENGTH)) return face.error(e); -+ if (e.test(p != aCode, E_BADACTIONCODEPTR)) return face.error(e); - be::skip(p, be::peek(o_actions + m_numRules)); - - // We should be at the end or within the pass - if (e.test(p > pass_end, E_BADPASSLENGTH)) return face.error(e); - - // Load the pass constraint if there is one. - if (pass_constraint_len) - { - face.error_context(face.error_context() + 1); - m_cPConstraint = vm::Machine::Code(true, pcCode, pcCode + pass_constraint_len, -- precontext[0], be::peek(sort_keys), *m_silf, face); -+ precontext[0], be::peek(sort_keys), *m_silf, face, PASS_TYPE_UNKNOWN); - if (e.test(!m_cPConstraint, E_OUTOFMEM) -- || e.test(m_cPConstraint.status(), m_cPConstraint.status() + E_CODEFAILURE)) -+ || e.test(!m_cPConstraint, m_cPConstraint.status() + E_CODEFAILURE)) - return face.error(e); - face.error_context(face.error_context() - 1); - } -- if (!readRanges(ranges, numRanges, e)) return face.error(e); -- if (!readRules(rule_map, numEntries, precontext, sort_keys, -- o_constraint, rcCode, o_actions, aCode, face, e)) return false; -+ if (m_numRules) -+ { -+ if (!readRanges(ranges, numRanges, e)) return face.error(e); -+ if (!readRules(rule_map, numEntries, precontext, sort_keys, -+ o_constraint, rcCode, o_actions, aCode, face, pt, e)) return false; -+ } - #ifdef GRAPHITE2_TELEMETRY - telemetry::category _states_cat(face.tele.states); - #endif -- return readStates(start_states, states, o_rule_map, face, e); -+ return m_numRules ? readStates(start_states, states, o_rule_map, face, e) : true; - } - - - bool Pass::readRules(const byte * rule_map, const size_t num_entries, - const byte *precontext, const uint16 * sort_key, - const uint16 * o_constraint, const byte *rc_data, - const uint16 * o_action, const byte * ac_data, -- Face & face, Error &e) -+ Face & face, passtype pt, Error &e) - { - const byte * const ac_data_end = ac_data + be::peek(o_action + m_numRules); - const byte * const rc_data_end = rc_data + be::peek(o_constraint + m_numRules); - -- if (e.test(!(m_rules = new Rule [m_numRules]), E_OUTOFMEM)) return face.error(e); - precontext += m_numRules; - sort_key += m_numRules; - o_constraint += m_numRules; - o_action += m_numRules; - - // Load rules. - const byte * ac_begin = 0, * rc_begin = 0, - * ac_end = ac_data + be::peek(o_action), - * rc_end = rc_data + be::peek(o_constraint); -+ -+ // Allocate pools -+ m_rules = new Rule [m_numRules]; -+ 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(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) - { - face.error_context((face.error_context() & 0xFFFF00) + EC_ARULE + ((n - 1) << 24)); - r->preContext = *--precontext; - r->sort = be::peek(--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) - return false; - ac_begin = ac_data + be::peek(--o_action); - --o_constraint; - rc_begin = be::peek(o_constraint) ? rc_data + be::peek(o_constraint) : rc_end; - - if (ac_begin > ac_end || ac_begin > ac_data_end || ac_end > ac_data_end -- || rc_begin > rc_end || rc_begin > rc_data_end || rc_end > rc_data_end) -+ || rc_begin > rc_end || rc_begin > rc_data_end || rc_end > rc_data_end -+ || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin) > size_t(prog_pool_end - prog_pool_free)) - return false; -- r->action = new vm::Machine::Code(false, ac_begin, ac_end, r->preContext, r->sort, *m_silf, face); -- r->constraint = new vm::Machine::Code(true, rc_begin, rc_end, r->preContext, r->sort, *m_silf, face); -+ r->action = new (m_codes+n*2-2) vm::Machine::Code(false, ac_begin, ac_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); -+ r->constraint = new (m_codes+n*2-1) vm::Machine::Code(true, rc_begin, rc_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); - - if (e.test(!r->action || !r->constraint, E_OUTOFMEM) - || e.test(r->action->status() != Code::loaded, r->action->status() + E_CODEFAILURE) - || e.test(r->constraint->status() != Code::loaded, r->constraint->status() + E_CODEFAILURE) - || e.test(!r->constraint->immutable(), E_MUTABLECCODE)) - return face.error(e); - } - -+ byte * moved_progs = static_cast(realloc(m_progs, prog_pool_free - m_progs)); -+ if (e.test(!moved_progs, E_OUTOFMEM)) -+ { -+ if (prog_pool_free - m_progs == 0) m_progs = 0; -+ return face.error(e); -+ } -+ -+ if (moved_progs != m_progs) -+ { -+ for (Code * c = m_codes, * const ce = c + m_numRules*2; c != ce; ++c) -+ { -+ c->externalProgramMoved(moved_progs - m_progs); -+ } -+ m_progs = moved_progs; -+ } -+ - // Load the rule entries map - face.error_context((face.error_context() & 0xFFFF00) + EC_APASS); -+ //TODO: Coverty: 1315804: FORWARD_NULL - RuleEntry * re = m_ruleMap = gralloc(num_entries); - if (e.test(!re, E_OUTOFMEM)) return face.error(e); - for (size_t n = num_entries; n; --n, ++re) - { - const ptrdiff_t rn = be::read(rule_map); - if (e.test(rn >= m_numRules, E_BADRULENUM)) return face.error(e); - re->rule = m_rules + rn; - } -@@ -320,43 +382,69 @@ bool Pass::readRanges(const byte * range - - if (e.test(ci != ci_end, E_BADRANGE)) - return false; - } - return true; - } - - --void Pass::runGraphite(Machine & m, FiniteStateMachine & fsm) const -+bool Pass::runGraphite(vm::Machine & m, FiniteStateMachine & fsm, bool reverse) const - { - Slot *s = m.slotMap().segment.first(); -- if (!s || !testPassConstraint(m)) return; -- Slot *currHigh = s->next(); -+ if (!s || !testPassConstraint(m)) return true; -+ if (reverse) -+ { -+ m.slotMap().segment.reverseSlots(); -+ s = m.slotMap().segment.first(); -+ } -+ if (m_numRules) -+ { -+ Slot *currHigh = s->next(); - - #if !defined GRAPHITE2_NTRACING -- if (fsm.dbgout) *fsm.dbgout << "rules" << json::array; -- json::closer rules_array_closer(fsm.dbgout); -+ if (fsm.dbgout) *fsm.dbgout << "rules" << json::array; -+ json::closer rules_array_closer(fsm.dbgout); - #endif - -- m.slotMap().highwater(currHigh); -- int lc = m_iMaxLoop; -- do -+ m.slotMap().highwater(currHigh); -+ int lc = m_iMaxLoop; -+ do -+ { -+ findNDoRule(s, m, fsm); -+ 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); -+ } -+ //TODO: Use enums for flags -+ const bool collisions = m_numCollRuns || m_kernColls; -+ -+ if (!collisions || !m.slotMap().segment.hasCollisionInfo()) -+ return true; -+ -+ if (m_numCollRuns) - { -- findNDoRule(s, m, fsm); -- if (s && (m.slotMap().highpassed() || s == m.slotMap().highwater() || --lc == 0)) { -- if (!lc) -- { --// if (dbgout) *dbgout << json::item << json::flat << rule_event(-1, s, 1); -- s = m.slotMap().highwater(); -- } -- lc = m_iMaxLoop; -- if (s) -- m.slotMap().highwater(s->next()); -+ if (!(m.slotMap().segment.flags() & Segment::SEG_INITCOLLISIONS)) -+ { -+ m.slotMap().segment.positionSlots(0, 0, 0, m.slotMap().dir(), true); -+// m.slotMap().segment.flags(m.slotMap().segment.flags() | Segment::SEG_INITCOLLISIONS); - } -- } while (s); -+ if (!collisionShift(&m.slotMap().segment, m.slotMap().dir(), fsm.dbgout)) -+ return false; -+ } -+ if ((m_kernColls) && !collisionKern(&m.slotMap().segment, m.slotMap().dir(), fsm.dbgout)) -+ return false; -+ if (collisions && !collisionFinish(&m.slotMap().segment, fsm.dbgout)) -+ return false; -+ return true; - } - - bool Pass::runFSM(FiniteStateMachine& fsm, Slot * slot) const - { - fsm.reset(slot, m_maxPreCtxt); - if (fsm.slots.context() < m_minPreCtxt) - return false; - -@@ -419,18 +507,18 @@ void Pass::findNDoRule(Slot * & slot, Ma - { - if (fsm.rules.size() != 0) - { - *fsm.dbgout << json::item << json::object; - dumpRuleEventConsidered(fsm, *r); - if (r != re) - { - const int adv = doAction(r->rule->action, slot, m); -- dumpRuleEventOutput(fsm, *r->rule, slot); -- if (r->rule->action->deletes()) fsm.slots.collectGarbage(); -+ dumpRuleEventOutput(fsm, m, *r->rule, slot); -+ if (r->rule->action->deletes()) fsm.slots.collectGarbage(slot); - adjustSlot(adv, slot, fsm.slots); - *fsm.dbgout << "cursor" << objectid(dslot(&fsm.slots.segment, slot)) - << json::close; // Close RuelEvent object - - return; - } - else - { -@@ -442,47 +530,49 @@ void Pass::findNDoRule(Slot * & slot, Ma - } - } - else - #endif - { - if (r != re) - { - const int adv = doAction(r->rule->action, slot, m); -- if (r->rule->action->deletes()) fsm.slots.collectGarbage(); -+ if (r->rule->action->deletes()) fsm.slots.collectGarbage(slot); - adjustSlot(adv, slot, fsm.slots); - return; - } - } - } - - slot = slot->next(); -+ return; - } - - #if !defined GRAPHITE2_NTRACING - - void Pass::dumpRuleEventConsidered(const FiniteStateMachine & fsm, const RuleEntry & re) const - { - *fsm.dbgout << "considered" << json::array; - for (const RuleEntry *r = fsm.rules.begin(); r != &re; ++r) - { -- if (r->rule->preContext > fsm.slots.context()) continue; -- *fsm.dbgout << json::flat << json::object -- << "id" << r->rule - m_rules -+ if (r->rule->preContext > fsm.slots.context()) -+ continue; -+ *fsm.dbgout << json::flat << json::object -+ << "id" << r->rule - m_rules - << "failed" << true - << "input" << json::flat << json::object - << "start" << objectid(dslot(&fsm.slots.segment, input_slot(fsm.slots, -r->rule->preContext))) - << "length" << r->rule->sort - << json::close // close "input" - << json::close; // close Rule object - } - } - - --void Pass::dumpRuleEventOutput(const FiniteStateMachine & fsm, const Rule & r, Slot * const last_slot) const -+void Pass::dumpRuleEventOutput(const FiniteStateMachine & fsm, Machine & m, const Rule & r, Slot * const last_slot) const - { - *fsm.dbgout << json::item << json::flat << json::object - << "id" << &r - m_rules - << "failed" << false - << "input" << json::flat << json::object - << "start" << objectid(dslot(&fsm.slots.segment, input_slot(fsm.slots, 0))) - << "length" << r.sort - r.preContext - << json::close // close "input" -@@ -490,17 +580,17 @@ void Pass::dumpRuleEventOutput(const Fin - << json::close // close considered array - << "output" << json::object - << "range" << json::flat << json::object - << "start" << objectid(dslot(&fsm.slots.segment, input_slot(fsm.slots, 0))) - << "end" << objectid(dslot(&fsm.slots.segment, last_slot)) - << json::close // close "input" - << "slots" << json::array; - const Position rsb_prepos = last_slot ? last_slot->origin() : fsm.slots.segment.advance(); -- fsm.slots.segment.positionSlots(0); -+ fsm.slots.segment.positionSlots(0, 0, 0, m.slotMap().dir()); - - for(Slot * slot = output_slot(fsm.slots, 0); slot != last_slot; slot = slot->next()) - *fsm.dbgout << dslot(&fsm.slots.segment, slot); - *fsm.dbgout << json::close // close "slots" - << "postshift" << (last_slot ? last_slot->origin() : fsm.slots.segment.advance()) - rsb_prepos - << json::close; // close "output" object - - } -@@ -546,22 +636,26 @@ bool Pass::testConstraint(const Rule & r - if (!ret || m.status() != Machine::finished) - return false; - } - - return true; - } - - --void SlotMap::collectGarbage() -+void SlotMap::collectGarbage(Slot * &aSlot) - { - for(Slot **s = begin(), *const *const se = end() - 1; s != se; ++s) { - Slot *& slot = *s; - if(slot->isDeleted() || slot->isCopied()) -+ { -+ if (slot == aSlot) -+ aSlot = slot->prev() ? slot->prev() : slot->next(); - segment.freeSlot(slot); -+ } - } - } - - - - int Pass::doAction(const Code *codeptr, Slot * & slot_out, vm::Machine & m) const - { - assert(codeptr); -@@ -581,40 +675,412 @@ int Pass::doAction(const Code *codeptr, - - slot_out = *map; - return ret; - } - - - void Pass::adjustSlot(int delta, Slot * & slot_out, SlotMap & smap) const - { -- if (delta < 0) -+ if (!slot_out) - { -- if (!slot_out) -+ if (smap.highpassed() || slot_out == smap.highwater()) - { - slot_out = smap.segment.last(); - ++delta; -- if (smap.highpassed() && !smap.highwater()) -+ if (!smap.highwater()) - smap.highpassed(false); - } -+ else -+ { -+ slot_out = smap.segment.first(); -+ --delta; -+ } -+ } -+ if (delta < 0) -+ { - while (++delta <= 0 && slot_out) - { - if (smap.highpassed() && smap.highwater() == slot_out) - smap.highpassed(false); - slot_out = slot_out->prev(); - } - } - else if (delta > 0) - { -- if (!slot_out) -- { -- slot_out = smap.segment.first(); -- --delta; -- } - while (--delta >= 0 && slot_out) - { - slot_out = slot_out->next(); - if (slot_out == smap.highwater() && slot_out) - smap.highpassed(true); - } - } - } - -+bool Pass::collisionShift(Segment *seg, int dir, json * const dbgout) const -+{ -+ ShiftCollider shiftcoll(dbgout); -+ // bool isfirst = true; -+ bool hasCollisions = false; -+ Slot *start = seg->first(); // turn on collision fixing for the first slot -+ Slot *end = NULL; -+ bool moved = false; -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << "collisions" << json::array -+ << json::flat << json::object << "num-loops" << m_numCollRuns << json::close; -+#endif -+ -+ while (start) -+ { -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) *dbgout << json::object << "phase" << "1" << "moves" << json::array; -+#endif -+ hasCollisions = false; -+ end = NULL; -+ // phase 1 : position shiftable glyphs, ignoring kernable glyphs -+ for (Slot *s = start; s; s = s->next()) -+ { -+ const SlotCollision * c = seg->collisionInfo(s); -+ if (start && (c->flags() & (SlotCollision::COLL_FIX | SlotCollision::COLL_KERN)) == SlotCollision::COLL_FIX -+ && !resolveCollisions(seg, s, start, shiftcoll, false, dir, moved, hasCollisions, dbgout)) -+ return false; -+ if (s != start && (c->flags() & SlotCollision::COLL_END)) -+ { -+ end = s->next(); -+ break; -+ } -+ } -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::close << json::close; // phase-1 -+#endif -+ -+ // phase 2 : loop until happy. -+ for (int i = 0; i < m_numCollRuns - 1; ++i) -+ { -+ if (hasCollisions || moved) -+ { -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::object << "phase" << "2a" << "loop" << i << "moves" << json::array; -+#endif -+ // phase 2a : if any shiftable glyphs are in collision, iterate backwards, -+ // fixing them and ignoring other non-collided glyphs. Note that this handles ONLY -+ // glyphs that are actually in collision from phases 1 or 2b, and working backwards -+ // has the intended effect of breaking logjams. -+ if (hasCollisions) -+ { -+ hasCollisions = false; -+ #if 0 -+ moved = true; -+ for (Slot *s = start; s != end; s = s->next()) -+ { -+ SlotCollision * c = seg->collisionInfo(s); -+ c->setShift(Position(0, 0)); -+ } -+ #endif -+ Slot *lend = end ? end->prev() : seg->last(); -+ Slot *lstart = start->prev(); -+ for (Slot *s = lend; s != lstart; s = s->prev()) -+ { -+ SlotCollision * c = seg->collisionInfo(s); -+ if (start && (c->flags() & (SlotCollision::COLL_FIX | SlotCollision::COLL_KERN | SlotCollision::COLL_ISCOL)) -+ == (SlotCollision::COLL_FIX | SlotCollision::COLL_ISCOL)) // ONLY if this glyph is still colliding -+ { -+ if (!resolveCollisions(seg, s, lend, shiftcoll, true, dir, moved, hasCollisions, dbgout)) -+ return false; -+ c->setFlags(c->flags() | SlotCollision::COLL_TEMPLOCK); -+ } -+ } -+ } -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::close << json::close // phase 2a -+ << json::object << "phase" << "2b" << "loop" << i << "moves" << json::array; -+#endif -+ -+ // phase 2b : redo basic diacritic positioning pass for ALL glyphs. Each successive loop adjusts -+ // glyphs from their current adjusted position, which has the effect of gradually minimizing the -+ // resulting adjustment; ie, the final result will be gradually closer to the original location. -+ // Also it allows more flexibility in the final adjustment, since it is moving along the -+ // possible 8 vectors from successively different starting locations. -+ if (moved) -+ { -+ moved = false; -+ for (Slot *s = start; s != end; s = s->next()) -+ { -+ SlotCollision * c = seg->collisionInfo(s); -+ if (start && (c->flags() & (SlotCollision::COLL_FIX | SlotCollision::COLL_TEMPLOCK -+ | SlotCollision::COLL_KERN)) == SlotCollision::COLL_FIX -+ && !resolveCollisions(seg, s, start, shiftcoll, false, dir, moved, hasCollisions, dbgout)) -+ return false; -+ else if (c->flags() & SlotCollision::COLL_TEMPLOCK) -+ c->setFlags(c->flags() & ~SlotCollision::COLL_TEMPLOCK); -+ } -+ } -+ // if (!hasCollisions) // no, don't leave yet because phase 2b will continue to improve things -+ // break; -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::close << json::close; // phase 2 -+#endif -+ } -+ } -+ if (!end) -+ break; -+ start = NULL; -+ for (Slot *s = end->prev(); s; s = s->next()) -+ { -+ if (seg->collisionInfo(s)->flags() & SlotCollision::COLL_START) -+ { -+ start = s; -+ break; -+ } -+ } -+ } -+ return true; -+} -+ -+bool Pass::collisionKern(Segment *seg, int dir, json * const dbgout) const -+{ -+ KernCollider kerncoll(dbgout); -+ Slot *start = seg->first(); -+ float ymin = 1e38f; -+ float ymax = -1e38f; -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ -+ // phase 3 : handle kerning of clusters -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::object << "phase" << "3" << "moves" << json::array; -+#endif -+ -+ for (Slot *s = seg->first(); s; s = s->next()) -+ { -+ if (!gc.check(s->gid())) -+ return false; -+ const SlotCollision * c = seg->collisionInfo(s); -+ const Rect &bbox = seg->theGlyphBBoxTemporary(s->gid()); -+ float y = s->origin().y + c->shift().y; -+ ymax = max(y + bbox.tr.y, ymax); -+ ymin = min(y + bbox.bl.y, ymin); -+ if (start && (c->flags() & (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) -+ == (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) -+ resolveKern(seg, s, start, kerncoll, dir, ymin, ymax, dbgout); -+ if (c->flags() & SlotCollision::COLL_END) -+ start = NULL; -+ if (c->flags() & SlotCollision::COLL_START) -+ start = s; -+ } -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::close << json::close; // phase 3 -+#endif -+ return true; -+} -+ -+bool Pass::collisionFinish(Segment *seg, GR_MAYBE_UNUSED json * const dbgout) const -+{ -+ for (Slot *s = seg->first(); s; s = s->next()) -+ { -+ SlotCollision *c = seg->collisionInfo(s); -+ if (c->shift().x != 0 || c->shift().y != 0) -+ { -+ const Position newOffset = c->shift(); -+ const Position nullPosition(0, 0); -+ c->setOffset(newOffset + c->offset()); -+ c->setShift(nullPosition); -+ } -+ } -+// seg->positionSlots(); -+ -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ *dbgout << json::close; -+#endif -+ return true; -+} -+ -+// Can slot s be kerned, or is it attached to something that can be kerned? -+static bool inKernCluster(Segment *seg, Slot *s) -+{ -+ SlotCollision *c = seg->collisionInfo(s); -+ if (c->flags() & SlotCollision::COLL_KERN /** && c->flags() & SlotCollision::COLL_FIX **/ ) -+ return true; -+ while (s->attachedTo()) -+ { -+ s = s->attachedTo(); -+ c = seg->collisionInfo(s); -+ if (c->flags() & SlotCollision::COLL_KERN /** && c->flags() & SlotCollision::COLL_FIX **/ ) -+ return true; -+ } -+ return false; -+} -+ -+// Fix collisions for the given slot. -+// Return true if everything was fixed, false if there are still collisions remaining. -+// isRev means be we are processing backwards. -+bool Pass::resolveCollisions(Segment *seg, Slot *slotFix, Slot *start, -+ ShiftCollider &coll, GR_MAYBE_UNUSED bool isRev, int dir, bool &moved, bool &hasCol, -+ json * const dbgout) const -+{ -+ Slot * nbor; // neighboring slot -+ SlotCollision *cFix = seg->collisionInfo(slotFix); -+ if (!coll.initSlot(seg, slotFix, cFix->limit(), cFix->margin(), cFix->marginWt(), -+ cFix->shift(), cFix->offset(), dir, dbgout)) -+ return false; -+ bool collides = false; -+ // When we're processing forward, ignore kernable glyphs that preceed the target glyph. -+ // When processing backward, don't ignore these until we pass slotFix. -+ bool ignoreForKern = !isRev; -+ bool rtl = dir & 1; -+ Slot *base = slotFix; -+ while (base->attachedTo()) -+ base = base->attachedTo(); -+ Position zero(0., 0.); -+ -+ // Look for collisions with the neighboring glyphs. -+ for (nbor = start; nbor; nbor = isRev ? nbor->prev() : nbor->next()) -+ { -+ SlotCollision *cNbor = seg->collisionInfo(nbor); -+ bool sameCluster = nbor->isChildOf(base); -+ if (nbor != slotFix // don't process if this is the slot of interest -+ && !(cNbor->flags() & SlotCollision::COLL_IGNORE) // don't process if ignoring -+ && (nbor == base || sameCluster // process if in the same cluster as slotFix -+ || !inKernCluster(seg, nbor) // or this cluster is not to be kerned -+ || (rtl ^ ignoreForKern)) // or it comes before(ltr) or after(rtl) -+ && (!isRev // if processing forwards then good to merge otherwise only: -+ || !(cNbor->flags() & SlotCollision::COLL_FIX) // merge in immovable stuff -+ || ((cNbor->flags() & SlotCollision::COLL_KERN) && !sameCluster) // ignore other kernable clusters -+ || (cNbor->flags() & SlotCollision::COLL_ISCOL)) // test against other collided glyphs -+ && !coll.mergeSlot(seg, nbor, cNbor->shift(), !ignoreForKern, sameCluster, collides, false, dbgout)) -+ return false; -+ else if (nbor == slotFix) -+ // Switching sides of this glyph - if we were ignoring kernable stuff before, don't anymore. -+ ignoreForKern = !ignoreForKern; -+ -+ if (nbor != start && (cNbor->flags() & (isRev ? SlotCollision::COLL_START : SlotCollision::COLL_END))) -+ break; -+ } -+ bool isCol = false; -+ if (collides || cFix->shift().x != 0.f || cFix->shift().y != 0.f) -+ { -+ Position shift = coll.resolve(seg, isCol, dbgout); -+ // isCol has been set to true if a collision remains. -+ if (std::fabs(shift.x) < 1e38f && std::fabs(shift.y) < 1e38f) -+ { -+ if (sqr(shift.x-cFix->shift().x) + sqr(shift.y-cFix->shift().y) >= m_colThreshold * m_colThreshold) -+ moved = true; -+ cFix->setShift(shift); -+ if (slotFix->firstChild()) -+ { -+ Rect bbox; -+ Position here = slotFix->origin() + shift; -+ float clusterMin = here.x; -+ slotFix->firstChild()->finalise(seg, NULL, here, bbox, 0, clusterMin, rtl, false); -+ } -+ } -+ } -+ else -+ { -+ // This glyph is not colliding with anything. -+#if !defined GRAPHITE2_NTRACING -+ if (dbgout) -+ { -+ *dbgout << json::object -+ << "missed" << objectid(dslot(seg, slotFix)); -+ coll.outputJsonDbg(dbgout, seg, -1); -+ *dbgout << json::close; -+ } -+#endif -+ } -+ -+ // Set the is-collision flag bit. -+ if (isCol) -+ { cFix->setFlags(cFix->flags() | SlotCollision::COLL_ISCOL | SlotCollision::COLL_KNOWN); } -+ else -+ { cFix->setFlags((cFix->flags() & ~SlotCollision::COLL_ISCOL) | SlotCollision::COLL_KNOWN); } -+ hasCol |= isCol; -+ return true; -+} -+ -+float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, KernCollider &coll, int dir, -+ float &ymin, float &ymax, json *const dbgout) const -+{ -+ Slot *nbor; // neighboring slot -+ float currSpace = 0.; -+ bool collides = false; -+ unsigned int space_count = 0; -+ Slot *base = slotFix; -+ while (base->attachedTo()) -+ base = base->attachedTo(); -+ SlotCollision *cFix = seg->collisionInfo(base); -+ const GlyphCache &gc = seg->getFace()->glyphs(); -+ -+ if (base != slotFix) -+ { -+ cFix->setFlags(cFix->flags() | SlotCollision::COLL_KERN | SlotCollision::COLL_FIX); -+ return 0; -+ } -+ bool seenEnd = (cFix->flags() & SlotCollision::COLL_END) != 0; -+ bool isInit = false; -+ -+ for (nbor = slotFix->next(); nbor; nbor = nbor->next()) -+ { -+ if (nbor->isChildOf(base)) -+ continue; -+ if (!gc.check(nbor->gid())) -+ return 0.; -+ const Rect &bb = seg->theGlyphBBoxTemporary(nbor->gid()); -+ SlotCollision *cNbor = seg->collisionInfo(nbor); -+ if (bb.bl.y == 0.f && bb.tr.y == 0.f) -+ { -+ if (m_kernColls == InWord) -+ break; -+ // Add space for a space glyph. -+ currSpace += nbor->advance(); -+ ++space_count; -+ } -+ else -+ { -+ space_count = 0; -+ float y = nbor->origin().y + cNbor->shift().y; -+ ymax = max(y + bb.tr.y, ymax); -+ ymin = min(y + bb.bl.y, ymin); -+ if (nbor != slotFix && !(cNbor->flags() & SlotCollision::COLL_IGNORE)) -+ { -+ seenEnd = true; -+ if (!isInit) -+ { -+ if (!coll.initSlot(seg, slotFix, cFix->limit(), cFix->margin(), -+ cFix->shift(), cFix->offset(), dir, ymin, ymax, dbgout)) -+ return 0.; -+ isInit = true; -+ } -+ collides |= coll.mergeSlot(seg, nbor, cNbor->shift(), currSpace, dir, dbgout); -+ } -+ } -+ if (cNbor->flags() & SlotCollision::COLL_END) -+ { -+ if (seenEnd && space_count < 2) -+ break; -+ else -+ seenEnd = true; -+ } -+ } -+ if (collides) -+ { -+ Position mv = coll.resolve(seg, slotFix, dir, cFix->margin(), dbgout); -+ coll.shift(mv, dir); -+ Position delta = slotFix->advancePos() + mv - cFix->shift(); -+ slotFix->advance(delta); -+ cFix->setShift(mv); -+ return mv.x; -+ } -+ return 0.; -+} -+ -diff --git a/gfx/graphite2/src/Position.cpp b/gfx/graphite2/src/Position.cpp -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/Position.cpp -@@ -0,0 +1,98 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#include "inc/Position.h" -+#include -+ -+using namespace graphite2; -+ -+bool Rect::hitTest(Rect &other) -+{ -+ if (bl.x > other.tr.x) return false; -+ if (tr.x < other.bl.x) return false; -+ if (bl.y > other.tr.y) return false; -+ if (tr.y < other.bl.y) return false; -+ return true; -+} -+ -+Position Rect::overlap(Position &offset, Rect &other, Position &othero) -+{ -+ float ax = (bl.x + offset.x) - (other.tr.x + othero.x); -+ float ay = (bl.y + offset.y) - (other.tr.y + othero.y); -+ float bx = (other.bl.x + othero.x) - (tr.x + offset.x); -+ float by = (other.bl.y + othero.y) - (tr.y + offset.y); -+ return Position((ax > bx ? ax : bx), (ay > by ? ay : by)); -+} -+ -+float boundmin(float move, float lim1, float lim2, float &error) -+{ -+ // error is always positive for easy comparison -+ if (move < lim1 && move < lim2) -+ { error = 0.; return move; } -+ else if (lim1 < lim2) -+ { error = std::fabs(move - lim1); return lim1; } -+ else -+ { error = std::fabs(move - lim2); return lim2; } -+} -+ -+#if 0 -+Position Rect::constrainedAvoid(Position &offset, Rect &box, Rect &sdbox, Position &other, Rect &obox, Rect &osdbox) -+{ -+ // a = max, i = min, s = sum, d = diff -+ float eax, eay, eix, eiy, eas, eis, ead, eid; -+ float beste = INF; -+ Position res; -+ // calculate the movements in each direction and the error (amount of remaining overlap) -+ // first param is movement, second and third are movement over the constraining box -+ float ax = boundmin(obox.tr.x + other.x - box.bl.x - offset.x + 1, tr.x - offset.x, INF, &eax); -+ float ay = boundmin(obox.tr.y + other.y - box.bl.y - offset.y + 1, tr.y - offset.y, INF, &eay); -+ float ix = boundmin(obox.bl.x + other.x - box.tr.x - offset.x + 1, bl.x - offset.x, INF, &eix); -+ float iy = boundmin(obox.bl.y + other.y - box.tr.y - offset.y + 1, bl.y - offset.y, INF, &eiy); -+ float as = boundmin(ISQRT2 * (osdbox.tr.x + other.x + other.y - sdbox.bl.x - offset.x - offset.y) + 1, tr.x - offset.x, tr.y - offset.y, &eas); -+ float is = boundmin(ISQRT2 * (osdbox.bl.x + other.x + other.y - sdbox.tr.x - offset.x - offset.y) + 1, bl.x - offset.x, bl.y - offset.y, &eis); -+ float ad = boundmin(ISQRT2 * (osdbox.tr.y + other.x - other.y - sdbox.bl.y - offset.x + offset.y) + 1, tr.y - offset.y, tr.x - offset.x, &ead); -+ float id = boundmin(ISQRT2 * (osdbox.bl.y + other.x - other.y - sdbox.tr.y - offset.x + offset.y) + 1, bl.y - offset.y, bl.x - offset.x, &eid); -+ -+ if (eax < beste) -+ { res = Position(ax, 0); beste = eax; } -+ if (eay < beste) -+ { res = Position(0, ay); beste = eay; } -+ if (eix < beste) -+ { res = Position(ix, 0); beste = eix; } -+ if (eiy < beste) -+ { res = Position(0, iy); beste = eiy; } -+ if (SQRT2 * (eas) < beste) -+ { res = Position(as, ad); beste = SQRT2 * (eas); } -+ if (SQRT2 * (eis) < beste) -+ { res = Position(is, is); beste = SQRT2 * (eis); } -+ if (SQRT2 * (ead) < beste) -+ { res = Position(ad, ad); beste = SQRT2 * (ead); } -+ if (SQRT2 * (eid) < beste) -+ { res = Position(id, id); beste = SQRT2 * (eid); } -+ return res; -+} -+#endif -+ -diff --git a/gfx/graphite2/src/SegCache.cpp b/gfx/graphite2/src/SegCache.cpp ---- a/gfx/graphite2/src/SegCache.cpp -+++ b/gfx/graphite2/src/SegCache.cpp -@@ -35,17 +35,17 @@ of the License or (at your option) any l - - - using namespace graphite2; - - #ifndef GRAPHITE2_NSEGCACHE - - SegCache::SegCache(const SegCacheStore * store, const Features & feats) - : m_prefixLength(ePrefixLength), -- m_maxCachedSegLength(eMaxSpliceSize), -+// m_maxCachedSegLength(eMaxSpliceSize), - m_segmentCount(0), - m_features(feats), - m_totalAccessCount(0l), m_totalMisses(0l), - m_purgeFactor(1.0f / (ePurgeFactor * store->maxSegmentCount())) - { - m_prefixes.raw = grzeroalloc(store->maxCmapGid() + 2); - m_prefixes.range[SEG_CACHE_MIN_INDEX] = SEG_CACHE_UNSET_INDEX; - m_prefixes.range[SEG_CACHE_MAX_INDEX] = SEG_CACHE_UNSET_INDEX; -@@ -79,17 +79,17 @@ SegCache::~SegCache() - { - assert(m_prefixes.raw == NULL); - } - - SegCacheEntry* SegCache::cache(SegCacheStore * store, const uint16* cmapGlyphs, size_t length, Segment * seg, size_t charOffset) - { - uint16 pos = 0; - if (!length) return NULL; -- assert(length < m_maxCachedSegLength); -+// assert(length < m_maxCachedSegLength); - SegCachePrefixArray pArray = m_prefixes; - while (pos + 1 < m_prefixLength) - { - uint16 gid = (pos < length)? cmapGlyphs[pos] : 0; - if (!pArray.array[gid].raw) - { - pArray.array[gid].raw = grzeroalloc(store->maxCmapGid() + 2); - if (!pArray.array[gid].raw) -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 -@@ -31,48 +31,53 @@ of the License or (at your option) any l - #include "inc/bits.h" - #include "inc/Segment.h" - #include "graphite2/Font.h" - #include "inc/CharInfo.h" - #include "inc/debug.h" - #include "inc/Slot.h" - #include "inc/Main.h" - #include "inc/CmapCache.h" --#include "inc/Bidi.h" -+#include "inc/Collider.h" - #include "graphite2/Segment.h" - - - using namespace graphite2; - - Segment::Segment(unsigned int numchars, const Face* face, uint32 script, int textDir) - : m_freeSlots(NULL), - m_freeJustifies(NULL), - m_charinfo(new CharInfo[numchars]), -+ m_collisions(NULL), - m_face(face), - m_silf(face->chooseSilf(script)), - m_first(NULL), - m_last(NULL), - m_bufSize(numchars + 10), - m_numGlyphs(numchars), - m_numCharinfo(numchars), - m_passBits(m_silf->aPassBits() ? -1 : 0), - m_defaultOriginal(0), -- m_dir(textDir) -+ m_dir(textDir), -+ m_flags(((m_silf->flags() & 0x20) != 0) << 1) - { - freeSlot(newSlot()); - m_bufSize = log_binary(numchars)+1; - } - - Segment::~Segment() - { - for (SlotRope::iterator i = m_slots.begin(); i != m_slots.end(); ++i) - free(*i); -- for (AttributeRope::iterator j = m_userAttrs.begin(); j != m_userAttrs.end(); ++j) -- free(*j); -+ for (AttributeRope::iterator i = m_userAttrs.begin(); i != m_userAttrs.end(); ++i) -+ free(*i); -+ for (JustifyRope::iterator i = m_justifies.begin(); i != m_justifies.end(); ++i) -+ free(*i); - delete[] m_charinfo; -+ free(m_collisions); - } - - #ifndef GRAPHITE2_NSEGCACHE - SegmentScopeState Segment::setScope(Slot * firstSlot, Slot * lastSlot, size_t subLength) - { - SegmentScopeState state; - state.numGlyphsOutsideScope = m_numGlyphs - subLength; - state.realFirstSlot = m_first; -@@ -159,28 +164,35 @@ void Segment::appendSlot(int id, int cid - m_passBits &= theGlyph->attrs()[m_silf->aPassBits()] - | (m_silf->numPasses() > 16 ? (theGlyph->attrs()[m_silf->aPassBits() + 1] << 16) : 0); - } - - Slot *Segment::newSlot() - { - if (!m_freeSlots) - { -+ // check that the segment doesn't grow indefinintely -+ if (m_numGlyphs > m_numCharinfo * MAX_SEG_GROWTH_FACTOR) -+ return NULL; - int numUser = m_silf->numUser(); - #if !defined GRAPHITE2_NTRACING - if (m_face->logger()) ++numUser; - #endif - Slot *newSlots = grzeroalloc(m_bufSize); -- int16 *newAttrs = grzeroalloc(numUser * m_bufSize); -- if (!newSlots || !newAttrs) return NULL; -+ int16 *newAttrs = grzeroalloc(m_bufSize * numUser); -+ if (!newSlots || !newAttrs) -+ { -+ free(newSlots); -+ free(newAttrs); -+ return NULL; -+ } - for (size_t i = 0; i < m_bufSize; i++) - { -+ ::new (newSlots + i) Slot(newAttrs + i * numUser); - newSlots[i].next(newSlots + i + 1); -- newSlots[i].userAttrs(newAttrs + i * numUser); -- newSlots[i].setBidiClass(-1); - } - newSlots[m_bufSize - 1].next(NULL); - newSlots[0].next(NULL); - m_slots.push_back(newSlots); - m_userAttrs.push_back(newAttrs); - m_freeSlots = (m_bufSize > 1)? newSlots + 1 : NULL; - return newSlots; - } -@@ -197,17 +209,17 @@ void Segment::freeSlot(Slot *aSlot) - if (aSlot->attachedTo()) - aSlot->attachedTo()->removeChild(aSlot); - while (aSlot->firstChild()) - { - aSlot->firstChild()->attachTo(NULL); - aSlot->removeChild(aSlot->firstChild()); - } - // reset the slot incase it is reused -- ::new (aSlot) Slot; -+ ::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()]; - #endif - // update next pointer - if (!m_freeSlots) -@@ -301,16 +313,71 @@ void Segment::splice(size_t offset, size - slot->set(*srcSlot, offset, m_silf->numUser(), m_silf->numJustLevels(), numChars); - if (srcSlot->attachedTo()) slot->attachTo(indexmap[srcSlot->attachedTo()->index()]); - if (srcSlot->nextSibling()) slot->m_sibling = indexmap[srcSlot->nextSibling()->index()]; - if (srcSlot->firstChild()) slot->m_child = indexmap[srcSlot->firstChild()->index()]; - } - } - #endif // GRAPHITE2_NSEGCACHE - -+// reverse the slots but keep diacritics in their same position after their bases -+void Segment::reverseSlots() -+{ -+ m_dir = m_dir ^ 64; // invert the reverse flag -+ if (m_first == m_last) return; // skip 0 or 1 glyph runs -+ -+ Slot *t = 0; -+ Slot *curr = m_first; -+ Slot *tlast; -+ Slot *tfirst; -+ Slot *out = 0; -+ -+ while (curr && getSlotBidiClass(curr) == 16) -+ curr = curr->next(); -+ if (!curr) return; -+ tfirst = curr->prev(); -+ tlast = curr; -+ -+ while (curr) -+ { -+ if (getSlotBidiClass(curr) == 16) -+ { -+ Slot *d = curr->next(); -+ while (d && getSlotBidiClass(d) == 16) -+ d = d->next(); -+ -+ d = d ? d->prev() : m_last; -+ Slot *p = out->next(); // one after the diacritics. out can't be null -+ if (p) -+ p->prev(d); -+ else -+ tlast = d; -+ t = d->next(); -+ d->next(p); -+ curr->prev(out); -+ out->next(curr); -+ } -+ else // will always fire first time round the loop -+ { -+ if (out) -+ out->prev(curr); -+ t = curr->next(); -+ curr->next(out); -+ out = curr; -+ } -+ curr = t; -+ } -+ out->prev(tfirst); -+ if (tfirst) -+ tfirst->next(out); -+ else -+ m_first = out; -+ m_last = tlast; -+} -+ - void Segment::linkClusters(Slot *s, Slot * end) - { - end = end->next(); - - for (; s != end && !s->isBase(); s = s->next()); - Slot * ls = s; - - if (m_dir & 1) -@@ -330,39 +397,47 @@ void Segment::linkClusters(Slot *s, Slot - if (!s->isBase()) continue; - - ls->sibling(s); - ls = s; - } - } - } - --Position Segment::positionSlots(const Font *font, Slot * iStart, Slot * iEnd) -+Position Segment::positionSlots(const Font *font, Slot * iStart, Slot * iEnd, bool isRtl, bool isFinal) - { - Position currpos(0., 0.); - float clusterMin = 0.; - Rect bbox; - -+ if (currdir() != isRtl) -+ { -+ Slot *temp; -+ reverseSlots(); -+ temp = iStart; -+ iStart = iEnd; -+ iEnd = temp; -+ } - if (!iStart) iStart = m_first; - if (!iEnd) iEnd = m_last; - -- if (m_dir & 1) -+ if (isRtl) - { - for (Slot * s = iEnd, * const end = iStart->prev(); s && s != end; s = s->prev()) - { - if (s->isBase()) -- currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x); -+ currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x, isRtl, isFinal); - } - } - else - { - for (Slot * s = iStart, * const end = iEnd->next(); s && s != end; s = s->next()) - { - if (s->isBase()) -- currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x); -+ currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x, isRtl, isFinal); - } - } - return currpos; - } - - - void Segment::associateChars(int offset, int numChars) - { -@@ -429,66 +504,28 @@ bool Segment::read_text(const Face *face - { - case gr_utf8: process_utf_data(*this, *face, addFeatures(*pFeats), utf8::const_iterator(pStart), nChars); break; - case gr_utf16: process_utf_data(*this, *face, addFeatures(*pFeats), utf16::const_iterator(pStart), nChars); break; - case gr_utf32: process_utf_data(*this, *face, addFeatures(*pFeats), utf32::const_iterator(pStart), nChars); break; - } - return true; - } - --void Segment::prepare_pos(const Font * /*font*/) -+void Segment::doMirror(uint16 aMirror) - { -- // copy key changeable metrics into slot (if any); --} -- --Slot *process_bidi(Slot *start, int level, int prelevel, int &nextLevel, int dirover, int isol, int &cisol, int &isolerr, int &embederr, int init, Segment *seg, uint8 aMirror, BracketPairStack &stack); --void resolveImplicit(Slot *s, Segment *seg, uint8 aMirror); --void resolveWhitespace(int baseLevel, Slot *s); --Slot *resolveOrder(Slot * & s, const bool reordered, const int level = 0); -- --void Segment::bidiPass(uint8 aBidi, int paradir, uint8 aMirror) --{ -- if (slotCount() == 0) -- return; -- -- Slot *s; -- int baseLevel = paradir ? 1 : 0; -- unsigned int bmask = 0; -- unsigned int ssize = 0; -- for (s = first(); s; s = s->next()) -+ Slot * s; -+ for (s = m_first; s; s = s->next()) - { -- if (s->getBidiClass() == -1) -- { -- unsigned int bAttr = glyphAttr(s->gid(), aBidi); -- s->setBidiClass((bAttr <= 22) * bAttr); -- } -- bmask |= (1 << s->getBidiClass()); -- s->setBidiLevel(baseLevel); -- if (glyphAttr(s->gid(), aMirror) && s->getBidiClass() == 21) -- ++ssize; -- } -- -- BracketPairStack bstack(ssize); -- if (bmask & (paradir ? 0x2E7892 : 0x2E789C)) -- { -- // O(8N) algorithm, with no working data beyond what is needed for processParens -- int nextLevel = paradir; -- int e, i, c; -- process_bidi(first(), baseLevel, paradir, nextLevel, 0, 0, c = 0, i = 0, e = 0, 1, this, aMirror, bstack); -- resolveImplicit(first(), this, aMirror); -- resolveWhitespace(baseLevel, last()); -- s = resolveOrder(s = first(), baseLevel != 0); -- if (s) -- { -- first(s); last(s->prev()); -- s->prev()->next(0); s->prev(0); -- } -- } -- else if (!(dir() & 4) && baseLevel && aMirror) -- { -- for (s = first(); s; s = s->next()) -- { -- unsigned short g = glyphAttr(s->gid(), aMirror); -- if (g) s->setGlyph(this, g); -- } -+ unsigned short g = glyphAttr(s->gid(), aMirror); -+ if (g && (!(dir() & 4) || !glyphAttr(s->gid(), aMirror + 1))) -+ s->setGlyph(this, g); - } - } - -+bool Segment::initCollisions() -+{ -+ m_collisions = grzeroalloc(slotCount()); -+ if (!m_collisions) return false; -+ -+ for (Slot *p = m_first; p; p = p->next()) -+ ::new (collisionInfo(p)) SlotCollision(this, p); -+ return true; -+} -diff --git a/gfx/graphite2/src/Silf.cpp b/gfx/graphite2/src/Silf.cpp ---- a/gfx/graphite2/src/Silf.cpp -+++ b/gfx/graphite2/src/Silf.cpp -@@ -46,23 +46,25 @@ Silf::Silf() throw() - m_justs(0), - m_numPasses(0), - m_numJusts(0), - m_sPass(0), - m_pPass(0), - m_jPass(0), - m_bPass(0), - m_flags(0), -+ m_dir(0), - m_aPseudo(0), - m_aBreak(0), - m_aUser(0), - m_aBidi(0), - m_aMirror(0), - m_aPassBits(0), - m_iMaxComp(0), -+ m_aCollision(0), - m_aLig(0), - m_numPseudo(0), - m_nClass(0), - m_nLinear(0), - m_gEndLine(0) - { - memset(&m_silfinfo, 0, sizeof m_silfinfo); - } -@@ -88,16 +90,20 @@ void Silf::releaseBuffers() throw() - - - bool Silf::readGraphite(const byte * const silf_start, size_t lSilf, Face& face, uint32 version) - { - const byte * p = silf_start, - * const silf_end = p + lSilf; - Error e; - -+ if (e.test(version >= 0x00060000, E_BADSILFVERSION)) -+ { -+ releaseBuffers(); return face.error(e); -+ } - if (version >= 0x00030000) - { - if (e.test(lSilf < 28, E_BADSIZE)) { releaseBuffers(); return face.error(e); } - be::skip(p); // ruleVersion - be::skip(p,2); // passOffset & pseudosOffset - } - else if (e.test(lSilf < 20, E_BADSIZE)) { releaseBuffers(); return face.error(e); } - const uint16 maxGlyph = be::read(p); -@@ -132,73 +138,88 @@ bool Silf::readGraphite(const byte * con - for (uint8 i = 0; i < m_numJusts; i++) - { - ::new(m_justs + i) Justinfo(p[0], p[1], p[2], p[3]); - be::skip(p,8); - } - } - - if (e.test(p + sizeof(uint16) + sizeof(uint8)*8 >= silf_end, E_BADENDJUSTS)) { releaseBuffers(); return face.error(e); } -- m_aLig = be::read(p); -- m_aUser = be::read(p); -- m_iMaxComp = be::read(p); -- be::skip(p,5); // direction and 4 reserved bytes -+ m_aLig = be::read(p); -+ m_aUser = be::read(p); -+ m_iMaxComp = be::read(p); -+ m_dir = be::read(p) - 1; -+ m_aCollision = be::read(p); -+ be::skip(p,3); - be::skip(p, be::read(p)); // don't need critical features yet - be::skip(p); // reserved - if (e.test(p >= silf_end, E_BADCRITFEATURES)) { releaseBuffers(); return face.error(e); } - be::skip(p, be::read(p)); // don't use scriptTag array. - if (e.test(p + sizeof(uint16) + sizeof(uint32) >= silf_end, E_BADSCRIPTTAGS)) { releaseBuffers(); return face.error(e); } - m_gEndLine = be::read(p); // lbGID - const byte * o_passes = p, - * const passes_start = silf_start + be::read(p); - - const size_t num_attrs = face.glyphs().numAttrs(); - if (e.test(m_aPseudo >= num_attrs, E_BADAPSEUDO) - || e.test(m_aBreak >= num_attrs, E_BADABREAK) - || e.test(m_aBidi >= num_attrs, E_BADABIDI) - || e.test(m_aMirror>= num_attrs, E_BADAMIRROR) -+ || e.test(m_aCollision && m_aCollision >= num_attrs - 5, E_BADACOLLISION) - || e.test(m_numPasses > 128, E_BADNUMPASSES) || e.test(passes_start >= silf_end, E_BADPASSESSTART) - || e.test(m_pPass < m_sPass, E_BADPASSBOUND) || e.test(m_pPass > m_numPasses, E_BADPPASS) || e.test(m_sPass > m_numPasses, E_BADSPASS) - || e.test(m_jPass < m_pPass, E_BADJPASSBOUND) || e.test(m_jPass > m_numPasses, E_BADJPASS) - || e.test((m_bPass != 0xFF && (m_bPass < m_jPass || m_bPass > m_numPasses)), E_BADBPASS) - || e.test(m_aLig > 127, E_BADALIG)) - { - releaseBuffers(); - return face.error(e); - } - be::skip(p, m_numPasses); - if (e.test(p + sizeof(uint16) >= passes_start, E_BADPASSESSTART)) { releaseBuffers(); return face.error(e); } - m_numPseudo = be::read(p); - be::skip(p, 3); // searchPseudo, pseudoSelector, pseudoShift -- if (e.test(p + m_numPseudo*(sizeof(uint32) + sizeof(uint16)) >= passes_start, E_BADNUMPSEUDO)) -+ m_pseudos = new Pseudo[m_numPseudo]; -+ if (e.test(p + m_numPseudo*(sizeof(uint32) + sizeof(uint16)) >= passes_start, E_BADNUMPSEUDO) -+ || e.test(!m_pseudos, E_OUTOFMEM)) - { - releaseBuffers(); return face.error(e); - } -- m_pseudos = new Pseudo[m_numPseudo]; - for (int i = 0; i < m_numPseudo; i++) - { - m_pseudos[i].uid = be::read(p); - m_pseudos[i].gid = be::read(p); - } - - const size_t clen = readClassMap(p, passes_start - p, version, e); -- if (e || e.test(p + clen > passes_start, E_BADPASSESSTART)) { releaseBuffers(); return face.error(e); } -+ m_passes = new Pass[m_numPasses]; -+ if (e || e.test(p + clen > passes_start, E_BADPASSESSTART) -+ || e.test(!m_passes, E_OUTOFMEM)) -+ { releaseBuffers(); return face.error(e); } - -- m_passes = new Pass[m_numPasses]; - for (size_t i = 0; i < m_numPasses; ++i) - { - const byte * const pass_start = silf_start + be::read(o_passes), - * const pass_end = silf_start + be::peek(o_passes); - face.error_context((face.error_context() & 0xFF00) + EC_ASILF + (i << 16)); -- if (e.test(pass_start > pass_end, E_BADPASSSTART) || e.test(pass_end > silf_end, E_BADPASSEND)) { -+ if (e.test(pass_start > pass_end, E_BADPASSSTART) -+ || e.test(pass_start < passes_start, E_BADPASSSTART) -+ || e.test(pass_end > silf_end, E_BADPASSEND)) { - releaseBuffers(); return face.error(e); - } - -+ enum passtype pt = PASS_TYPE_UNKNOWN; -+ if (i >= m_jPass) pt = PASS_TYPE_JUSTIFICATION; -+ else if (i >= m_pPass) pt = PASS_TYPE_POSITIONING; -+ else if (i >= m_sPass) pt = PASS_TYPE_SUBSTITUTE; -+ else pt = PASS_TYPE_LINEBREAK; -+ - m_passes[i].init(this); -- if (!m_passes[i].readPass(pass_start, pass_end - pass_start, pass_start - silf_start, face, e)) -+ if (!m_passes[i].readPass(pass_start, pass_end - pass_start, pass_start - silf_start, face, pt, -+ version, e)) - { - releaseBuffers(); - return false; - } - } - - // fill in gr_faceinfo - m_silfinfo.upem = face.glyphs().unitsPerEm(); -@@ -246,35 +267,38 @@ size_t Silf::readClassMap(const byte *p, - uint32 max_off; - if (version >= 0x00040000) - max_off = readClassOffsets(p, data_len, e); - else - max_off = readClassOffsets(p, data_len, e); - - if (max_off == ERROROFFSET) return ERROROFFSET; - -+ if (e.test((int)max_off < m_nLinear + (m_nClass - m_nLinear) * 6, E_CLASSESTOOBIG)) -+ return ERROROFFSET; -+ - // Check the linear offsets are sane, these must be monotonically increasing. - for (const uint32 *o = m_classOffsets, * const o_end = o + m_nLinear; o != o_end; ++o) - if (e.test(o[0] > o[1], E_BADCLASSOFFSET)) - return ERROROFFSET; - - // Fortunately the class data is all uint16s so we can decode these now - m_classData = gralloc(max_off); - if (e.test(!m_classData, E_OUTOFMEM)) return ERROROFFSET; - for (uint16 *d = m_classData, * const d_end = d + max_off; d != d_end; ++d) - *d = be::read(p); - - // Check the lookup class invariants for each non-linear class - for (const uint32 *o = m_classOffsets + m_nLinear, * const o_end = m_classOffsets + m_nClass; o != o_end; ++o) - { - const uint16 * lookup = m_classData + *o; -- if (e.test(*o > max_off - 4, E_HIGHCLASSOFFSET) // LookupClass doesn't stretch over max_off -+ if (e.test(*o + 4 > max_off, E_HIGHCLASSOFFSET) // LookupClass doesn't stretch over max_off - || e.test(lookup[0] == 0 // A LookupClass with no looks is a suspicious thing ... -- || lookup[0] > (max_off - *o - 4)/2 // numIDs lookup pairs fits within (start of LookupClass' lookups array, max_off] -- || lookup[3] != lookup[0] - lookup[1], E_BADCLASSLOOKUPINFO)) // rangeShift: numIDs - searchRange -+ || lookup[0] * 2 + *o + 4 > max_off // numIDs lookup pairs fits within (start of LookupClass' lookups array, max_off] -+ || lookup[3] + lookup[1] != lookup[0], E_BADCLASSLOOKUPINFO)) // rangeShift: numIDs - searchRange - return ERROROFFSET; - } - - return max_off; - } - - uint16 Silf::findPseudo(uint32 uid) const - { -@@ -285,17 +309,17 @@ uint16 Silf::findPseudo(uint32 uid) cons - - uint16 Silf::findClassIndex(uint16 cid, uint16 gid) const - { - if (cid > m_nClass) return -1; - - const uint16 * cls = m_classData + m_classOffsets[cid]; - if (cid < m_nLinear) // output class being used for input, shouldn't happen - { -- for (unsigned int i = 0, n = m_classOffsets[cid + 1]; i < n; ++i, ++cls) -+ for (unsigned int i = 0, n = m_classOffsets[cid + 1] - m_classOffsets[cid]; i < n; ++i, ++cls) - if (*cls == gid) return i; - return -1; - } - else - { - const uint16 * min = cls + 4, // lookups array - * max = min + cls[0]*2; // lookups aray is numIDs (cls[0]) uint16 pairs long - do -@@ -326,90 +350,82 @@ uint16 Silf::getClassGlyph(uint16 cid, u - } - return 0; - } - - - bool Silf::runGraphite(Segment *seg, uint8 firstPass, uint8 lastPass, int dobidi) const - { - assert(seg != 0); -- SlotMap map(*seg); -+ SlotMap map(*seg, m_dir); - FiniteStateMachine fsm(map, seg->getFace()->logger()); - vm::Machine m(map); - unsigned int initSize = seg->slotCount(); - uint8 lbidi = m_bPass; - #if !defined GRAPHITE2_NTRACING - json * const dbgout = seg->getFace()->logger(); - #endif - - if (lastPass == 0) - { - if (firstPass == lastPass && lbidi == 0xFF) - return true; - lastPass = m_numPasses; - } -- if (firstPass <= lbidi && lastPass >= lbidi && dobidi) -+ if ((firstPass < lbidi || (dobidi && firstPass == lbidi)) && (lastPass >= lbidi || (dobidi && lastPass + 1 == lbidi))) - lastPass++; - else - lbidi = 0xFF; - - for (size_t i = firstPass; i < lastPass; ++i) - { - // bidi and mirroring - if (i == lbidi) - { - #if !defined GRAPHITE2_NTRACING - if (dbgout) - { - *dbgout << json::item << json::object - << "id" << -1 - << "slots" << json::array; -- seg->positionSlots(0); -+ seg->positionSlots(0, 0, 0, m_dir); - for(Slot * s = seg->first(); s; s = s->next()) - *dbgout << dslot(seg, s); - *dbgout << json::close - << "rules" << json::array << json::close - << json::close; - } - #endif -- -- if (!(seg->dir() & 2)) -- seg->bidiPass(m_aBidi, seg->dir() & 1, m_aMirror); -- else if (m_aMirror) -- { -- Slot * s; -- for (s = seg->first(); s; s = s->next()) -- { -- unsigned short g = seg->glyphAttr(s->gid(), m_aMirror); -- if (g && (!(seg->dir() & 4) || !seg->glyphAttr(s->gid(), m_aMirror + 1))) -- s->setGlyph(seg, g); -- } -- } -+ if (seg->currdir() != (m_dir & 1)) -+ seg->reverseSlots(); -+ if (m_aMirror && (seg->dir() & 3) == 3) -+ seg->doMirror(m_aMirror); - --i; -+ lbidi = lastPass; - --lastPass; -- lbidi = 0xFF; - continue; - } - - #if !defined GRAPHITE2_NTRACING - if (dbgout) - { - *dbgout << json::item << json::object - << "id" << i+1 - << "slots" << json::array; -- seg->positionSlots(0); -+ seg->positionSlots(0, 0, 0, m_dir); - for(Slot * s = seg->first(); s; s = s->next()) - *dbgout << dslot(seg, s); - *dbgout << json::close; - } - #endif - - // test whether to reorder, prepare for positioning -- if (i >= 32 || (seg->passBits() & (1 << i)) == 0) -- m_passes[i].runGraphite(m, fsm); -+ bool reverse = (lbidi == 0xFF) && (seg->currdir() != ((m_dir & 1) ^ m_passes[i].reverseDir())); -+ if ((i >= 32 || (seg->passBits() & (1 << i)) == 0 || m_passes[i].collisionLoops()) -+ && !m_passes[i].runGraphite(m, fsm, reverse)) -+ return false; - // only subsitution passes can change segment length, cached subsegments are short for their text - if (m.status() != vm::Machine::finished -- || (i < m_pPass && (seg->slotCount() > initSize * MAX_SEG_GROWTH_FACTOR -- || (seg->slotCount() && seg->slotCount() * MAX_SEG_GROWTH_FACTOR < initSize)))) -+ || (seg->slotCount() && seg->slotCount() * MAX_SEG_GROWTH_FACTOR < initSize)) - return false; - } - return true; - } -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 -@@ -24,34 +24,34 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #include "inc/Segment.h" - #include "inc/Slot.h" - #include "inc/Silf.h" - #include "inc/CharInfo.h" - #include "inc/Rule.h" -+#include "inc/Collider.h" - - - using namespace graphite2; - --Slot::Slot() : -+Slot::Slot(int16 *user_attrs) : - m_next(NULL), m_prev(NULL), - m_glyphid(0), m_realglyphid(0), m_original(0), m_before(0), m_after(0), - m_index(0), m_parent(NULL), m_child(NULL), m_sibling(NULL), - m_position(0, 0), m_shift(0, 0), m_advance(0, 0), - m_attach(0, 0), m_with(0, 0), m_just(0.), -- m_flags(0), m_attLevel(0), m_bidiCls(-1), m_bidiLevel(0), m_justs(NULL) -- // Do not set m_userAttr since it is set *before* new is called since this -- // is used as a positional new to reset the GrSlot -+ m_flags(0), m_attLevel(0), m_bidiCls(-1), m_bidiLevel(0), -+ m_userAttr(user_attrs), m_justs(NULL) - { - } - - // take care, this does not copy any of the GrSlot pointer fields --void Slot::set(const Slot & orig, int charOffset, size_t numUserAttr, size_t justLevels, size_t numChars) -+void Slot::set(const Slot & orig, int charOffset, size_t sizeAttr, size_t justLevels, size_t numChars) - { - // leave m_next and m_prev unchanged - m_glyphid = orig.m_glyphid; - m_realglyphid = orig.m_realglyphid; - m_original = orig.m_original + charOffset; - if (charOffset + int(orig.m_before) < 0) - m_before = 0; - else -@@ -68,95 +68,104 @@ void Slot::set(const Slot & orig, int ch - m_advance = orig.m_advance; - m_attach = orig.m_attach; - m_with = orig.m_with; - m_flags = orig.m_flags; - m_attLevel = orig.m_attLevel; - m_bidiCls = orig.m_bidiCls; - m_bidiLevel = orig.m_bidiLevel; - if (m_userAttr && orig.m_userAttr) -- memcpy(m_userAttr, orig.m_userAttr, numUserAttr * sizeof(*m_userAttr)); -+ memcpy(m_userAttr, orig.m_userAttr, sizeAttr * sizeof(*m_userAttr)); - if (m_justs && orig.m_justs) - memcpy(m_justs, orig.m_justs, SlotJustify::size_of(justLevels)); - } - - void Slot::update(int /*numGrSlots*/, int numCharInfo, Position &relpos) - { - m_before += numCharInfo; - m_after += numCharInfo; - m_position = m_position + relpos; - } - --Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin) -+Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal) - { -+ SlotCollision *coll = NULL; - if (attrLevel && m_attLevel > attrLevel) return Position(0, 0); -- float scale = 1.0; -- Position shift(m_shift.x * ((seg->dir() & 1) * -2 + 1) + m_just, m_shift.y); -+ float scale = font ? font->scale() : 1.0f; -+ Position shift(m_shift.x * (rtl * -2 + 1) + m_just, m_shift.y); - float tAdvance = m_advance.x + m_just; -+ if (isFinal && (coll = seg->collisionInfo(this))) -+ { -+ const Position &collshift = coll->offset(); -+ if (!(coll->flags() & SlotCollision::COLL_KERN) || rtl) -+ shift = shift + collshift; -+ } - const GlyphFace * glyphFace = seg->getFace()->glyphs().glyphSafe(glyph()); - if (font) - { - scale = font->scale(); - shift *= scale; - if (font->isHinted() && glyphFace) -- tAdvance = (m_advance.x - glyphFace->theAdvance().x + m_just) * scale + font->advance(m_glyphid); -+ tAdvance = (m_advance.x - glyphFace->theAdvance().x + m_just) * scale + font->advance(glyph()); - else - tAdvance *= scale; - } - Position res; - - m_position = base + shift; - if (!m_parent) - { - res = base + Position(tAdvance, m_advance.y * scale); -- clusterMin = base.x; -+ clusterMin = m_position.x; - } - else - { - float tAdv; - m_position += (m_attach - m_with) * scale; -- tAdv = m_advance.x >= 0.5 ? m_position.x + tAdvance - shift.x : 0.f; -+ tAdv = m_advance.x >= 0.5f ? m_position.x + tAdvance - shift.x : 0.f; - res = Position(tAdv, 0); -- if ((m_advance.x >= 0.5 || m_position.x < 0) && m_position.x < clusterMin) clusterMin = m_position.x; -+ if ((m_advance.x >= 0.5f || m_position.x < 0) && m_position.x < clusterMin) clusterMin = m_position.x; - } - - if (glyphFace) - { - Rect ourBbox = glyphFace->theBBox() * scale + m_position; - bbox = bbox.widen(ourBbox); - } - - if (m_child && m_child != this && m_child->attachedTo() == this) - { -- Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin); -- if ((!m_parent || m_advance.x >= 0.5) && tRes.x > res.x) res = tRes; -+ Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal); -+ if ((!m_parent || m_advance.x >= 0.5f) && tRes.x > res.x) res = tRes; - } - - if (m_parent && m_sibling && m_sibling != this && m_sibling->attachedTo() == m_parent) - { -- Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin); -+ Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal); - if (tRes.x > res.x) res = tRes; - } - - if (!m_parent && clusterMin < base.x) - { -- Position adj = Position(base.x - clusterMin, 0.); -+ Position adj = Position(m_position.x - clusterMin, 0.); - res += adj; - m_position += adj; - if (m_child) m_child->floodShift(adj); - } - return res; - } - --int32 Slot::clusterMetric(const Segment *seg, uint8 metric, uint8 attrLevel) -+int32 Slot::clusterMetric(const Segment *seg, uint8 metric, uint8 attrLevel, bool rtl) - { - Position base; -+ if (glyph() >= seg->getFace()->glyphs().numGlyphs()) -+ return 0; - Rect bbox = seg->theGlyphBBoxTemporary(glyph()); - float clusterMin = 0.; -- Position res = finalise(seg, NULL, base, bbox, attrLevel, clusterMin); -+ Position res = finalise(seg, NULL, base, bbox, attrLevel, clusterMin, rtl, false); - - switch (metrics(metric)) - { - case kgmetLsb : - return static_cast(bbox.bl.x); - case kgmetRsb : - return static_cast(res.x - bbox.tr.x); - case kgmetBbTop : -@@ -175,19 +184,20 @@ int32 Slot::clusterMetric(const Segment - return static_cast(res.x); - case kgmetAdvHeight : - return static_cast(res.y); - default : - return 0; - } - } - -+#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 (!this) return 0; - if (ind == gr_slatUserDefnV1) - { - ind = gr_slatUserDefn; - subindex = 0; - } - else if (ind >= gr_slatJStretch && ind < gr_slatJStretch + 20 && ind != gr_slatJWidth) - { - int indx = ind - gr_slatJStretch; -@@ -205,37 +215,66 @@ int Slot::getAttr(const Segment *seg, at - case gr_slatAttYOff : return 0; - case gr_slatAttWithX : return int(m_with.x); - case gr_slatAttWithY : return int(m_with.y); - case gr_slatAttWithXOff: - case gr_slatAttWithYOff:return 0; - case gr_slatAttLevel : return m_attLevel; - case gr_slatBreak : return seg->charinfo(m_original)->breakWeight(); - case gr_slatCompRef : return 0; -- case gr_slatDir : if (m_bidiCls == -1) -- const_cast(this)->setBidiClass(seg->glyphAttr(gid(), seg->silf()->aBidi())); -- return m_bidiCls; -+ case gr_slatDir : return seg->dir() & 1; - case gr_slatInsert : return isInsertBefore(); - case gr_slatPosX : return int(m_position.x); // but need to calculate it - case gr_slatPosY : return int(m_position.y); - case gr_slatShiftX : return int(m_shift.x); - case gr_slatShiftY : return int(m_shift.y); - case gr_slatMeasureSol: return -1; // err what's this? - case gr_slatMeasureEol: return -1; - case gr_slatJWidth: return int(m_just); - case gr_slatUserDefn : return m_userAttr[subindex]; - case gr_slatSegSplit : return seg->charinfo(m_original)->flags() & 3; - case gr_slatBidiLevel: return m_bidiLevel; -- default : return 0; -+ case gr_slatColFlags : { SlotCollision *c = seg->collisionInfo(this); return c ? c->flags() : 0; } -+ case gr_slatColLimitblx : SLOTGETCOLATTR(limit().bl.x) -+ case gr_slatColLimitbly : SLOTGETCOLATTR(limit().bl.y) -+ case gr_slatColLimittrx : SLOTGETCOLATTR(limit().tr.x) -+ case gr_slatColLimittry : SLOTGETCOLATTR(limit().tr.y) -+ case gr_slatColShiftx : SLOTGETCOLATTR(offset().x) -+ case gr_slatColShifty : SLOTGETCOLATTR(offset().y) -+ case gr_slatColMargin : SLOTGETCOLATTR(margin()) -+ case gr_slatColMarginWt : SLOTGETCOLATTR(marginWt()) -+ case gr_slatColExclGlyph : SLOTGETCOLATTR(exclGlyph()) -+ case gr_slatColExclOffx : SLOTGETCOLATTR(exclOffset().x) -+ case gr_slatColExclOffy : SLOTGETCOLATTR(exclOffset().y) -+ case gr_slatSeqClass : SLOTGETCOLATTR(seqClass()) -+ case gr_slatSeqProxClass : SLOTGETCOLATTR(seqProxClass()) -+ case gr_slatSeqOrder : SLOTGETCOLATTR(seqOrder()) -+ case gr_slatSeqAboveXoff : SLOTGETCOLATTR(seqAboveXoff()) -+ case gr_slatSeqAboveWt : SLOTGETCOLATTR(seqAboveWt()) -+ case gr_slatSeqBelowXlim : SLOTGETCOLATTR(seqBelowXlim()) -+ case gr_slatSeqBelowWt : SLOTGETCOLATTR(seqBelowWt()) -+ case gr_slatSeqValignHt : SLOTGETCOLATTR(seqValignHt()) -+ case gr_slatSeqValignWt : SLOTGETCOLATTR(seqValignWt()) -+ default : return 0; - } - } - -+#define SLOTCOLSETATTR(x) { \ -+ SlotCollision *c = seg->collisionInfo(this); \ -+ if (c) { c-> x ; c->setFlags(c->flags() & ~SlotCollision::COLL_KNOWN); } \ -+ break; } -+#define SLOTCOLSETCOMPLEXATTR(t, y, x) { \ -+ SlotCollision *c = seg->collisionInfo(this); \ -+ if (c) { \ -+ const t &s = c-> y; \ -+ c-> x ; c->setFlags(c->flags() & ~SlotCollision::COLL_KNOWN); } \ -+ break; } -+ - void Slot::setAttr(Segment *seg, attrCode ind, uint8 subindex, int16 value, const SlotMap & map) - { -- if (!this) return; - if (ind == gr_slatUserDefnV1) - { - ind = gr_slatUserDefn; - subindex = 0; - } - else if (ind >= gr_slatJStretch && ind < gr_slatJStretch + 20 && ind != gr_slatJWidth) - { - int indx = ind - gr_slatJStretch; -@@ -247,22 +286,22 @@ void Slot::setAttr(Segment *seg, attrCod - case gr_slatAdvX : m_advance.x = value; break; - case gr_slatAdvY : m_advance.y = value; break; - case gr_slatAttTo : - { - const uint16 idx = uint16(value); - if (idx < map.size() && map[idx]) - { - Slot *other = map[idx]; -- if (other == this) break; -+ if (other == this || other == m_parent) break; - if (m_parent) m_parent->removeChild(this); -- if (other->child(this)) -+ if (!other->isChildOf(this) && other->child(this)) - { - attachTo(other); -- if (((seg->dir() & 1) != 0) ^ (idx > subindex)) -+ if ((map.dir() != 0) ^ (idx > subindex)) - m_with = Position(advance(), 0); - else // normal match to previous root - m_attach = Position(other->advance(), 0); - } - } - break; - } - case gr_slatAttX : m_attach.x = value; break; -@@ -275,29 +314,52 @@ void Slot::setAttr(Segment *seg, attrCod - case gr_slatAttWithYOff : break; - case gr_slatAttLevel : - m_attLevel = byte(value); - break; - case gr_slatBreak : - seg->charinfo(m_original)->breakWeight(value); - break; - case gr_slatCompRef : break; // not sure what to do here -- case gr_slatDir : m_bidiCls = value; break; -+ case gr_slatDir : break; - case gr_slatInsert : - markInsertBefore(value? true : false); - break; - case gr_slatPosX : break; // can't set these here - case gr_slatPosY : break; - case gr_slatShiftX : m_shift.x = value; break; - case gr_slatShiftY : m_shift.y = value; break; - case gr_slatMeasureSol : break; - case gr_slatMeasureEol : break; - case gr_slatJWidth : just(value); break; - case gr_slatSegSplit : seg->charinfo(m_original)->addflags(value & 3); break; - case gr_slatUserDefn : m_userAttr[subindex] = value; break; -+ case gr_slatColFlags : { -+ SlotCollision *c = seg->collisionInfo(this); -+ if (c) -+ c->setFlags(value); -+ break; } -+ case gr_slatColLimitblx : SLOTCOLSETCOMPLEXATTR(Rect, limit(), setLimit(Rect(Position(value, s.bl.y), s.tr))) -+ case gr_slatColLimitbly : SLOTCOLSETCOMPLEXATTR(Rect, limit(), setLimit(Rect(Position(s.bl.x, value), s.tr))) -+ case gr_slatColLimittrx : SLOTCOLSETCOMPLEXATTR(Rect, limit(), setLimit(Rect(s.bl, Position(value, s.tr.y)))) -+ case gr_slatColLimittry : SLOTCOLSETCOMPLEXATTR(Rect, limit(), setLimit(Rect(s.bl, Position(s.tr.x, value)))) -+ case gr_slatColMargin : SLOTCOLSETATTR(setMargin(value)) -+ case gr_slatColMarginWt : SLOTCOLSETATTR(setMarginWt(value)) -+ case gr_slatColExclGlyph : SLOTCOLSETATTR(setExclGlyph(value)) -+ case gr_slatColExclOffx : SLOTCOLSETCOMPLEXATTR(Position, exclOffset(), setExclOffset(Position(value, s.y))) -+ case gr_slatColExclOffy : SLOTCOLSETCOMPLEXATTR(Position, exclOffset(), setExclOffset(Position(s.x, value))) -+ case gr_slatSeqClass : SLOTCOLSETATTR(setSeqClass(value)) -+ case gr_slatSeqProxClass : SLOTCOLSETATTR(setSeqProxClass(value)) -+ case gr_slatSeqOrder : SLOTCOLSETATTR(setSeqOrder(value)) -+ case gr_slatSeqAboveXoff : SLOTCOLSETATTR(setSeqAboveXoff(value)) -+ case gr_slatSeqAboveWt : SLOTCOLSETATTR(setSeqAboveWt(value)) -+ case gr_slatSeqBelowXlim : SLOTCOLSETATTR(setSeqBelowXlim(value)) -+ case gr_slatSeqBelowWt : SLOTCOLSETATTR(setSeqBelowWt(value)) -+ case gr_slatSeqValignHt : SLOTCOLSETATTR(setSeqValignHt(value)) -+ case gr_slatSeqValignWt : SLOTCOLSETATTR(setSeqValignWt(value)) - default : - break; - } - } - - int Slot::getJustify(const Segment *seg, uint8 level, uint8 subindex) const - { - if (level && level >= seg->silf()->numJustLevels()) return 0; -@@ -369,46 +431,54 @@ bool Slot::removeChild(Slot *ap) - } - - 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); - return true; - } - else - return m_sibling->removeSibling(ap); - return true; - } - - void Slot::setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph) - { - m_glyphid = glyphid; -+ m_bidiCls = -1; - if (!theGlyph) - { - theGlyph = seg->getFace()->glyphs().glyphSafe(glyphid); - if (!theGlyph) - { - m_realglyphid = 0; - m_advance = Position(0.,0.); - return; - } - } - m_realglyphid = theGlyph->attrs()[seg->silf()->aPseudo()]; -+ if (m_realglyphid > seg->getFace()->glyphs().numGlyphs()) -+ m_realglyphid = 0; - const GlyphFace *aGlyph = theGlyph; - if (m_realglyphid) - { - aGlyph = seg->getFace()->glyphs().glyphSafe(m_realglyphid); - if (!aGlyph) aGlyph = theGlyph; - } - m_advance = Position(aGlyph->theAdvance().x, 0.); - if (seg->silf()->aPassBits()) -+ { - seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()]); -+ if (seg->silf()->numPasses() > 16) -+ seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()+1] << 16); -+ } - } - - void Slot::floodShift(Position adj) - { - m_position += adj; - if (m_child) m_child->floodShift(adj); - if (m_sibling) m_sibling->floodShift(adj); - } -@@ -420,8 +490,35 @@ void SlotJustify::LoadSlot(const Slot *s - Justinfo *justs = seg->silf()->justAttrs() + i; - int16 *v = values + i * NUMJUSTPARAMS; - v[0] = seg->glyphAttr(s->gid(), justs->attrStretch()); - v[1] = seg->glyphAttr(s->gid(), justs->attrShrink()); - v[2] = seg->glyphAttr(s->gid(), justs->attrStep()); - v[3] = seg->glyphAttr(s->gid(), justs->attrWeight()); - } - } -+ -+Slot * Slot::nextInCluster(const Slot *s) const -+{ -+ Slot *base; -+ if (s->firstChild()) -+ return s->firstChild(); -+ else if (s->nextSibling()) -+ return s->nextSibling(); -+ while ((base = s->attachedTo())) -+ { -+ // if (base->firstChild() == s && base->nextSibling()) -+ if (base->nextSibling()) -+ return base->nextSibling(); -+ s = base; -+ } -+ return NULL; -+} -+ -+bool Slot::isChildOf(const Slot *base) const -+{ -+ if (m_parent == base) -+ return true; -+ else if (!m_parent) -+ return false; -+ else -+ return m_parent->isChildOf(base); -+} -diff --git a/gfx/graphite2/src/Sparse.cpp b/gfx/graphite2/src/Sparse.cpp ---- a/gfx/graphite2/src/Sparse.cpp -+++ b/gfx/graphite2/src/Sparse.cpp -@@ -25,17 +25,17 @@ License, as published by the Free Softwa - of the License or (at your option) any later version. - */ - #include - #include "inc/Sparse.h" - #include "inc/bits.h" - - using namespace graphite2; - --sparse::chunk sparse::empty_chunk = {0,0}; -+const sparse::chunk sparse::empty_chunk = {0,0}; - - sparse::~sparse() throw() - { - if (m_array.map == &empty_chunk) return; - free(m_array.values); - } - - -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 -@@ -57,18 +57,20 @@ Description - Forward declarations - ***********************************************************************************************/ - - /*********************************************************************************************** - Local Constants and static variables - ***********************************************************************************************/ - namespace - { -+#ifdef ALL_TTFUTILS - // max number of components allowed in composite glyphs - const int kMaxGlyphComponents = 8; -+#endif - - template - inline float fixed_to_float(const T f) { - return float(f)/float(2^R); - } - - /*---------------------------------------------------------------------------------------------- - Table of standard Postscript glyph names. From Martin Hosken. Disagress with ttfdump.exe -@@ -222,69 +224,79 @@ bool GetTableInfo(const Tag TableTag, co - /*---------------------------------------------------------------------------------------------- - Check the specified table. Tests depend on the table type. - Return true if successful, false otherwise. - ----------------------------------------------------------------------------------------------*/ - bool CheckTable(const Tag TableId, const void * pTable, size_t lTableSize) - { - using namespace Sfnt; - -- if (pTable == 0) return false; -+ if (pTable == 0 || lTableSize < 4) return false; - - switch(TableId) - { - case Tag::cmap: // cmap - { - const Sfnt::CharacterCodeMap * const pCmap - = reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::CharacterCodeMap)) -+ return false; - return be::swap(pCmap->version) == 0; - } - - case Tag::head: // head - { - const Sfnt::FontHeader * const pHead - = reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::FontHeader)) -+ return false; - bool r = be::swap(pHead->version) == OneFix - && be::swap(pHead->magic_number) == FontHeader::MagicNumber - && be::swap(pHead->glyph_data_format) - == FontHeader::GlypDataFormat - && (be::swap(pHead->index_to_loc_format) - == FontHeader::ShortIndexLocFormat - || be::swap(pHead->index_to_loc_format) - == FontHeader::LongIndexLocFormat) - && sizeof(FontHeader) <= lTableSize; - return r; - } - - case Tag::post: // post - { - const Sfnt::PostScriptGlyphName * const pPost - = reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::PostScriptGlyphName)) -+ return false; - const fixed format = be::swap(pPost->format); - bool r = format == PostScriptGlyphName::Format1 - || format == PostScriptGlyphName::Format2 - || format == PostScriptGlyphName::Format3 - || format == PostScriptGlyphName::Format25; - return r; - } - - case Tag::hhea: // hhea - { - const Sfnt::HorizontalHeader * pHhea = - reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::HorizontalHeader)) -+ return false; - bool r = be::swap(pHhea->version) == OneFix - && be::swap(pHhea->metric_data_format) == 0 - && sizeof (Sfnt::HorizontalHeader) <= lTableSize; - return r; - } - - case Tag::maxp: // maxp - { - const Sfnt::MaximumProfile * pMaxp = - reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::MaximumProfile)) -+ return false; - bool r = be::swap(pMaxp->version) == OneFix - && sizeof(Sfnt::MaximumProfile) <= lTableSize; - return r; - } - - case Tag::OS_2: // OS/2 - { - const Sfnt::Compatibility * pOs2 -@@ -319,16 +331,18 @@ bool CheckTable(const Tag TableId, const - return false; - break; - } - - case Tag::name: - { - const Sfnt::FontNames * pName - = reinterpret_cast(pTable); -+ if (lTableSize < sizeof(Sfnt::FontNames)) -+ return false; - return be::swap(pName->format) == 0; - } - - default: - break; - } - - return true; -@@ -791,27 +805,27 @@ bool HorMetrics(gid16 nGlyphId, const vo - reinterpret_cast(pHmtx); - - const Sfnt::HorizontalHeader * phhea = - reinterpret_cast(pHhea); - - size_t cLongHorMetrics = be::swap(phhea->num_long_hor_metrics); - if (nGlyphId < cLongHorMetrics) - { // glyph id is acceptable -- if (nGlyphId * sizeof(Sfnt::HorizontalMetric) >= lHmtxSize) return false; -+ if ((nGlyphId + 1) * sizeof(Sfnt::HorizontalMetric) > lHmtxSize) return false; - nAdvWid = be::swap(phmtx[nGlyphId].advance_width); - nLsb = be::swap(phmtx[nGlyphId].left_side_bearing); - } - else - { - // guard against bad glyph id - size_t lLsbOffset = sizeof(Sfnt::HorizontalMetric) * cLongHorMetrics + - sizeof(int16) * (nGlyphId - cLongHorMetrics); // offset in bytes - // We test like this as LsbOffset is an offset not a length. -- if (lLsbOffset > lHmtxSize - sizeof(int16)) -+ if (lLsbOffset >= lHmtxSize - sizeof(int16) || cLongHorMetrics == 0) - { - nLsb = 0; - return false; - } - nAdvWid = be::swap(phmtx[cLongHorMetrics - 1].advance_width); - nLsb = be::peek(reinterpret_cast(phmtx) + lLsbOffset); - } - -@@ -833,31 +847,33 @@ const void * FindCmapSubtable(const void - { - if (be::swap(pTable->encoding[i].platform_id) == nPlatformId && - (nEncodingId == -1 || be::swap(pTable->encoding[i].platform_specific_id) == nEncodingId)) - { - uint32 offset = be::swap(pTable->encoding[i].offset); - const uint8 * pRtn = reinterpret_cast(pCmap) + offset; - if (length) - { -- if (offset > length) return NULL; -+ if (offset > length - 2) return NULL; - uint16 format = be::read(pRtn); - if (format == 4) - { -+ if (offset > length - 4) return NULL; - uint16 subTableLength = be::peek(pRtn); - if (i + 1 == csuPlatforms) - { - if (subTableLength > length - offset) - return NULL; - } - else if (subTableLength > be::swap(pTable->encoding[i+1].offset)) - return NULL; - } - if (format == 12) - { -+ if (offset > length - 6) return NULL; - uint32 subTableLength = be::peek(pRtn); - if (i + 1 == csuPlatforms) - { - if (subTableLength > length - offset) - return NULL; - } - else if (subTableLength > be::swap(pTable->encoding[i+1].offset)) - return NULL; -@@ -868,48 +884,80 @@ const void * FindCmapSubtable(const void - } - - return 0; - } - - /*---------------------------------------------------------------------------------------------- - Check the Microsoft Unicode subtable for expected values - ----------------------------------------------------------------------------------------------*/ --bool CheckCmapSubtable4(const void * pCmapSubtable4) -+bool CheckCmapSubtable4(const void * pCmapSubtable4, size_t table_len /*, unsigned int maxgid*/) - { - if (!pCmapSubtable4) return false; - const Sfnt::CmapSubTable * pTable = reinterpret_cast(pCmapSubtable4); -- // Bob H says ome freeware TT fonts have version 1 (eg, CALIGULA.TTF) -+ // 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(pCmapSubtable4); - uint16 length = be::swap(pTable4->length); -+ if (length > table_len) -+ return false; - if (length < sizeof(Sfnt::CmapSubTableFormat4)) - return false; - uint16 nRanges = be::swap(pTable4->seg_count_x2) >> 1; - if (length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16)) - return false; - // check last range is properly terminated - uint16 chEnd = be::peek(pTable4->end_code + nRanges - 1); -- return (chEnd == 0xFFFF); -+ if (chEnd != 0xFFFF) -+ return false; -+#if 0 -+ int lastend = -1; -+ for (int i = 0; i < nRanges; ++i) -+ { -+ uint16 end = be::peek(pTable4->end_code + i); -+ uint16 start = be::peek(pTable4->end_code + nRanges + 1 + i); -+ int16 delta = be::peek(pTable4->end_code + 2*nRanges + 1 + i); -+ uint16 offset = be::peek(pTable4->end_code + 3*nRanges + 1 + i); -+ if (lastend >= end || lastend >= start) -+ return false; -+ if (offset) -+ { -+ const uint16 *gstart = pTable4->end_code + 3*nRanges + 1 + i + (offset >> 1); -+ const uint16 *gend = gstart + end - start; -+ if ((char *)gend >= (char *)pCmapSubtable4 + length) -+ return false; -+ while (gstart <= gend) -+ { -+ uint16 g = be::peek(gstart++); -+ if (g && ((g + delta) & 0xFFFF) > maxgid) -+ return false; -+ } -+ } -+ else if (((delta + end) & 0xFFFF) > maxgid) -+ return false; -+ lastend = end; -+ } -+#endif -+ return true; - } - - /*---------------------------------------------------------------------------------------------- - Return the Glyph ID for the given Unicode ID in the Microsoft Unicode subtable. - (Actually this code only depends on subtable being format 4.) - Return 0 if the Unicode ID is not in the subtable. - ----------------------------------------------------------------------------------------------*/ - gid16 CmapSubtable4Lookup(const void * pCmapSubtabel4, unsigned int nUnicodeId, int rangeKey) - { - const Sfnt::CmapSubTableFormat4 * pTable = reinterpret_cast(pCmapSubtabel4); - - uint16 nSeg = be::swap(pTable->seg_count_x2) >> 1; - - uint16 n; -- const uint16 * pLeft, * pMid; -+ const uint16 * pLeft, * pMid; - uint16 cMid, chStart, chEnd; - - if (rangeKey) - { - pMid = &(pTable->end_code[rangeKey]); - chEnd = be::peek(pMid); - } - else -@@ -1027,29 +1075,41 @@ unsigned int CmapSubtable4NextCodepoint( - if (pRangeKey) - *pRangeKey = iRange + 1; - return be::peek(pStartCode + iRange + 1); - } - - /*---------------------------------------------------------------------------------------------- - Check the Microsoft UCS-4 subtable for expected values. - ----------------------------------------------------------------------------------------------*/ --bool CheckCmapSubtable12(const void *pCmapSubtable12) -+bool CheckCmapSubtable12(const void *pCmapSubtable12, size_t table_len /*, unsigned int maxgid*/) - { - if (!pCmapSubtable12) return false; - const Sfnt::CmapSubTable * pTable = reinterpret_cast(pCmapSubtable12); - if (be::swap(pTable->format) != 12) - return false; - const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast(pCmapSubtable12); - uint32 length = be::swap(pTable12->length); -+ if (length > table_len) -+ return false; - if (length < sizeof(Sfnt::CmapSubTableFormat12)) - return false; -- -- return (length == (sizeof(Sfnt::CmapSubTableFormat12) + (be::swap(pTable12->num_groups) - 1) -- * sizeof(uint32) * 3)); -+ uint32 num_groups = be::swap(pTable12->num_groups); -+ if (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; -+ } -+#endif -+ return true; - } - - /*---------------------------------------------------------------------------------------------- - Return the Glyph ID for the given Unicode ID in the Microsoft UCS-4 subtable. - (Actually this code only depends on subtable being format 12.) - Return 0 if the Unicode ID is not in the subtable. - ----------------------------------------------------------------------------------------------*/ - gid16 CmapSubtable12Lookup(const void * pCmap310, unsigned int uUnicodeId, int rangeKey) -@@ -1140,49 +1200,53 @@ unsigned int CmapSubtable12NextCodepoint - Technically this method should return an unsigned long but it is unlikely the offset will - exceed 2^31. - ----------------------------------------------------------------------------------------------*/ - size_t LocaLookup(gid16 nGlyphId, - const void * pLoca, size_t lLocaSize, - const void * pHead) // throw (std::out_of_range) - { - const Sfnt::FontHeader * pTable = reinterpret_cast(pHead); -+ size_t res = -2; - - // CheckTable verifies the index_to_loc_format is valid - if (be::swap(pTable->index_to_loc_format) == Sfnt::FontHeader::ShortIndexLocFormat) - { // loca entries are two bytes and have been divided by two -- if (nGlyphId < (lLocaSize >> 1) - 1) // allow sentinel value to be accessed -+ if (lLocaSize > 1 && nGlyphId + 1u < lLocaSize >> 1) // allow sentinel value to be accessed - { - const uint16 * pShortTable = reinterpret_cast(pLoca); -- return (be::peek(pShortTable + nGlyphId) << 1); -+ res = be::peek(pShortTable + nGlyphId) << 1; -+ if (res == static_cast(be::peek(pShortTable + nGlyphId + 1) << 1)) -+ return -1; - } - } -- -- if (be::swap(pTable->index_to_loc_format) == Sfnt::FontHeader::LongIndexLocFormat) -+ else if (be::swap(pTable->index_to_loc_format) == Sfnt::FontHeader::LongIndexLocFormat) - { // loca entries are four bytes -- if (nGlyphId < (lLocaSize >> 2) - 1) -+ if (lLocaSize > 3 && nGlyphId + 1u < lLocaSize >> 2) - { - const uint32 * pLongTable = reinterpret_cast(pLoca); -- return be::peek(pLongTable + nGlyphId); -+ res = be::peek(pLongTable + nGlyphId); -+ if (res == static_cast(be::peek(pLongTable + nGlyphId + 1))) -+ return -1; - } - } - - // only get here if glyph id was bad -- return -1; -+ return res; - //throw std::out_of_range("glyph id out of range for font"); - } - - /*---------------------------------------------------------------------------------------------- - Return a pointer into the glyf table based on the given offset (from LocaLookup). - Return NULL on error. - ----------------------------------------------------------------------------------------------*/ - void * GlyfLookup(const void * pGlyf, size_t nGlyfOffset, size_t nTableLen) - { - const uint8 * pByte = reinterpret_cast(pGlyf); -- if (nGlyfOffset == size_t(-1) || nGlyfOffset >= nTableLen) -+ if (nGlyfOffset + pByte < pByte || nGlyfOffset + sizeof(Sfnt::Glyph) >= nTableLen) - return NULL; - return const_cast(pByte + nGlyfOffset); - } - - /*---------------------------------------------------------------------------------------------- - Get the bounding box coordinates for a simple glyf entry (non-composite). - Return true if successful, false otherwise. - ----------------------------------------------------------------------------------------------*/ -@@ -1784,17 +1848,16 @@ bool GlyfContourEndPoints(gid16 nGlyphId - cnPoints - count of points from largest end point obtained from GlyfContourEndPoints - prgnX & prgnY - should point to buffers large enough to hold cnPoints integers - The ranges are parallel so that coordinates for point(n) are found at offset n in - both ranges. These points are in absolute coordinates. - prgfOnCurve - should point to a buffer a large enough to hold cnPoints bytes (bool) - This range is parallel to the prgnX & prgnY - Return true if successful, false otherwise. On false, all points may be INT_MIN - False may indicate a white space glyph, a multi-level composite, or a corrupt font -- // TODO: doesn't support composite glyphs whose components are themselves components - It's not clear from the TTF spec when the transforms should be applied. Should the - transform be done before or after attachment point calcs? (current code - before) - Should the transform be applied to other offsets? (currently - no; however commented - out code is in place so that if CompoundGlyph::UnscaledOffset on the MS rasterizer is - clear (typical) then yes, and if CompoundGlyph::ScaledOffset on the Apple rasterizer is - clear (typical?) then no). See GetComponentTransform. - It's also unclear where point numbering with attachment poinst starts - (currently - first point number is relative to whole glyph, second point number is -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 -@@ -65,57 +65,60 @@ using namespace graphite2; - using namespace vm; - - struct regbank { - slotref is; - slotref * map; - SlotMap & smap; - slotref * const map_base; - const instr * & ip; -+ uint8 direction; - int8 flags; - }; - - 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 - - #include "inc/opcodes.h" - - #undef smap - #undef seg - #undef is - #undef ip - #undef map - #undef mapb - #undef flags -+#undef dir - } - - Machine::stack_t Machine::run(const instr * program, - const byte * data, - slotref * & map) - - { - 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, 0}; -+ regbank reg = {*map, map, _map, _map.begin()+_map.context(), ip, _map.dir(), 0}; - - // Run the program - while ((reinterpret_cast(*++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 -@@ -56,16 +56,17 @@ 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, - 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; - -@@ -74,16 +75,17 @@ const void * direct_run(const bool - 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" - -@@ -104,14 +106,14 @@ const opcode_t * Machine::getOpcodeTable - - Machine::stack_t Machine::run(const instr * program, - const byte * data, - slotref * & is) - { - assert(program != 0); - - const stack_t *sp = static_cast( -- direct_run(false, program, data, _stack, is, &_map)); -+ direct_run(false, program, data, _stack, is, _map.dir(), &_map)); - const stack_t ret = sp == _stack+STACK_GUARD+1 ? *sp-- : 0; - check_final_stack(sp); - return ret; - } - -diff --git a/gfx/graphite2/src/files.mk b/gfx/graphite2/src/files.mk ---- a/gfx/graphite2/src/files.mk -+++ b/gfx/graphite2/src/files.mk -@@ -42,29 +42,32 @@ - $($(_NS)_BASE)/src/gr_char_info.cpp \ - $($(_NS)_BASE)/src/gr_face.cpp \ - $($(_NS)_BASE)/src/gr_features.cpp \ - $($(_NS)_BASE)/src/gr_font.cpp \ - $($(_NS)_BASE)/src/gr_logging.cpp \ - $($(_NS)_BASE)/src/gr_segment.cpp \ - $($(_NS)_BASE)/src/gr_slot.cpp \ - $($(_NS)_BASE)/src/json.cpp \ -- $($(_NS)_BASE)/src/Bidi.cpp \ - $($(_NS)_BASE)/src/CachedFace.cpp \ - $($(_NS)_BASE)/src/CmapCache.cpp \ - $($(_NS)_BASE)/src/Code.cpp \ -+ $($(_NS)_BASE)/src/Collider.cpp \ -+ $($(_NS)_BASE)/src/Decompressor.cpp \ - $($(_NS)_BASE)/src/Face.cpp \ - $($(_NS)_BASE)/src/FeatureMap.cpp \ - $($(_NS)_BASE)/src/FileFace.cpp \ - $($(_NS)_BASE)/src/Font.cpp \ - $($(_NS)_BASE)/src/GlyphCache.cpp \ - $($(_NS)_BASE)/src/GlyphFace.cpp \ -+ $($(_NS)_BASE)/src/Intervals.cpp \ - $($(_NS)_BASE)/src/Justifier.cpp \ - $($(_NS)_BASE)/src/NameTable.cpp \ - $($(_NS)_BASE)/src/Pass.cpp \ -+ $($(_NS)_BASE)/src/Position.cpp \ - $($(_NS)_BASE)/src/SegCache.cpp \ - $($(_NS)_BASE)/src/SegCacheEntry.cpp \ - $($(_NS)_BASE)/src/SegCacheStore.cpp \ - $($(_NS)_BASE)/src/Segment.cpp \ - $($(_NS)_BASE)/src/Silf.cpp \ - $($(_NS)_BASE)/src/Slot.cpp \ - $($(_NS)_BASE)/src/Sparse.cpp \ - $($(_NS)_BASE)/src/TtfUtil.cpp \ -@@ -73,25 +76,29 @@ - $(_NS)_PRIVATE_HEADERS = \ - $($(_NS)_BASE)/src/inc/bits.h \ - $($(_NS)_BASE)/src/inc/debug.h \ - $($(_NS)_BASE)/src/inc/json.h \ - $($(_NS)_BASE)/src/inc/CachedFace.h \ - $($(_NS)_BASE)/src/inc/CharInfo.h \ - $($(_NS)_BASE)/src/inc/CmapCache.h \ - $($(_NS)_BASE)/src/inc/Code.h \ -+ $($(_NS)_BASE)/src/inc/Collider.h \ -+ $($(_NS)_BASE)/src/inc/Compression.h \ -+ $($(_NS)_BASE)/src/inc/Decompressor.h \ - $($(_NS)_BASE)/src/inc/Endian.h \ - $($(_NS)_BASE)/src/inc/Error.h \ - $($(_NS)_BASE)/src/inc/Face.h \ - $($(_NS)_BASE)/src/inc/FeatureMap.h \ - $($(_NS)_BASE)/src/inc/FeatureVal.h \ - $($(_NS)_BASE)/src/inc/FileFace.h \ - $($(_NS)_BASE)/src/inc/Font.h \ - $($(_NS)_BASE)/src/inc/GlyphCache.h \ - $($(_NS)_BASE)/src/inc/GlyphFace.h \ -+ $($(_NS)_BASE)/src/inc/Intervals.h \ - $($(_NS)_BASE)/src/inc/List.h \ - $($(_NS)_BASE)/src/inc/locale2lcid.h \ - $($(_NS)_BASE)/src/inc/Machine.h \ - $($(_NS)_BASE)/src/inc/Main.h \ - $($(_NS)_BASE)/src/inc/NameTable.h \ - $($(_NS)_BASE)/src/inc/opcode_table.h \ - $($(_NS)_BASE)/src/inc/opcodes.h \ - $($(_NS)_BASE)/src/inc/Pass.h \ -diff --git a/gfx/graphite2/src/gr_face.cpp b/gfx/graphite2/src/gr_face.cpp ---- a/gfx/graphite2/src/gr_face.cpp -+++ b/gfx/graphite2/src/gr_face.cpp -@@ -41,17 +41,17 @@ extern json *global_log; - - namespace - { - bool load_face(Face & face, unsigned int options) - { - #ifdef GRAPHITE2_TELEMETRY - telemetry::category _misc_cat(face.tele.misc); - #endif -- Face::Table silf(face, Tag::Silf); -+ Face::Table silf(face, Tag::Silf, 0x00050000); - if (silf) options &= ~gr_face_dumbRendering; - else if (!(options & gr_face_dumbRendering)) - return false; - - if (!face.readGlyphs(options)) - return false; - - if (silf) -diff --git a/gfx/graphite2/src/gr_logging.cpp b/gfx/graphite2/src/gr_logging.cpp ---- a/gfx/graphite2/src/gr_logging.cpp -+++ b/gfx/graphite2/src/gr_logging.cpp -@@ -19,24 +19,25 @@ - Suite 500, Boston, MA 02110-1335, USA or visit their web page on the - internet at http://www.fsf.org/licenses/lgpl.html. - - Alternatively, the contents of this file may be used under the terms of the - Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ --#include -+#include - - #include "graphite2/Log.h" - #include "inc/debug.h" - #include "inc/CharInfo.h" - #include "inc/Slot.h" - #include "inc/Segment.h" - #include "inc/json.h" -+#include "inc/Collider.h" - - #if defined _WIN32 - #include "windows.h" - #endif - - using namespace graphite2; - - #if !defined GRAPHITE2_NTRACING -@@ -179,16 +180,17 @@ json & graphite2::operator << (json & j, - - - json & graphite2::operator << (json & j, const dslot & ds) throw() - { - assert(ds.first); - assert(ds.second); - const Segment & seg = *ds.first; - const Slot & s = *ds.second; -+ const SlotCollision *cslot = seg.collisionInfo(ds.second); - - j << json::object - << "id" << objectid(ds) - << "gid" << s.gid() - << "charinfo" << json::flat << json::object - << "original" << s.original() - << "before" << s.before() - << "after" << s.after() -@@ -215,16 +217,38 @@ json & graphite2::operator << (json & j, - j << json::close; - if (s.firstChild()) - { - j << "children" << json::flat << json::array; - for (const Slot *c = s.firstChild(); c; c = c->nextSibling()) - j << objectid(dslot(&seg, c)); - j << json::close; - } -+ if (cslot) -+ { -+ // Note: the reason for using Positions to lump together related attributes is to make the -+ // JSON output slightly more compact. -+ j << "collision" << json::flat << json::object -+// << "shift" << cslot->shift() -- not used pass level, only within the collision routine itself -+ << "offset" << cslot->offset() -+ << "limit" << cslot->limit() -+ << "flags" << cslot->flags() -+ << "margin" << Position(cslot->margin(), cslot->marginWt()) -+ << "exclude" << cslot->exclGlyph() -+ << "excludeoffset" << cslot->exclOffset(); -+ if (cslot->seqOrder() != 0) -+ { -+ j << "seqclass" << Position(cslot->seqClass(), cslot->seqProxClass()) -+ << "seqorder" << cslot->seqOrder() -+ << "seqabove" << Position(cslot->seqAboveXoff(), cslot->seqAboveWt()) -+ << "seqbelow" << Position(cslot->seqBelowXlim(), cslot->seqBelowWt()) -+ << "seqvalign" << Position(cslot->seqValignHt(), cslot->seqValignWt()); -+ } -+ j << json::close; -+ } - return j << json::close; - } - - - graphite2::objectid::objectid(const dslot & ds) throw() - { - const Slot * const p = ds.second; - uint32 s = reinterpret_cast(p); -diff --git a/gfx/graphite2/src/gr_segment.cpp b/gfx/graphite2/src/gr_segment.cpp ---- a/gfx/graphite2/src/gr_segment.cpp -+++ b/gfx/graphite2/src/gr_segment.cpp -@@ -43,21 +43,17 @@ namespace - Segment* pRes=new Segment(nChars, face, script, dir); - - - if (!pRes->read_text(face, pFeats, enc, pStart, nChars) || !pRes->runGraphite()) - { - delete pRes; - return NULL; - } -- // run the line break passes -- // run the substitution passes -- pRes->prepare_pos(font); -- // run the positioning passes -- pRes->finalise(font); -+ pRes->finalise(font, true); - - return static_cast(pRes); - } - - - } - - -diff --git a/gfx/graphite2/src/gr_slot.cpp b/gfx/graphite2/src/gr_slot.cpp ---- a/gfx/graphite2/src/gr_slot.cpp -+++ b/gfx/graphite2/src/gr_slot.cpp -@@ -98,21 +98,21 @@ float gr_slot_advance_X(const gr_slot* p - if (face && font->isHinted()) - res = (res - face->glyphs().glyph(p->gid())->theAdvance().x) * scale + font->advance(p->gid()); - else - res = res * scale; - } - return res; - } - --float gr_slot_advance_Y(const gr_slot *p/*not NULL*/, const gr_face *face, const gr_font *font) -+float gr_slot_advance_Y(const gr_slot *p/*not NULL*/, GR_MAYBE_UNUSED const gr_face *face, const gr_font *font) - { - assert(p); - float res = p->advancePos().y; -- if (font && (face || !face)) -+ if (font) - return res * font->scale(); - else - return res; - } - - int gr_slot_before(const gr_slot* p/*not NULL*/) - { - assert(p); -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 -@@ -36,32 +36,41 @@ of the License or (at your option) any l - #include "inc/Main.h" - #include "inc/Machine.h" - - namespace graphite2 { - - class Silf; - class Face; - -+enum passtype { -+ PASS_TYPE_UNKNOWN = 0, -+ PASS_TYPE_LINEBREAK, -+ PASS_TYPE_SUBSTITUTE, -+ PASS_TYPE_POSITIONING, -+ PASS_TYPE_JUSTIFICATION -+}; -+ - namespace vm { - - class Machine::Code - { - public: - enum status_t - { - loaded, - alloc_failed, - invalid_opcode, - unimplemented_opcode_used, - out_of_range_data, - jump_past_end, - arguments_exhausted, - missing_return, -- nested_context_item -+ nested_context_item, -+ underfull_stack - }; - - private: - class decoder; - - instr * _code; - byte * _data; - size_t _data_size, -@@ -72,40 +81,51 @@ private: - _modify, - _delete; - mutable bool _own; - - void release_buffers() throw (); - void failure(const status_t) throw(); - - public: -+ static size_t estimateCodeDataOut(size_t num_bytecodes); -+ - Code() throw(); - Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, -- uint8 pre_context, uint16 rule_length, const Silf &, const Face &); -+ uint8 pre_context, uint16 rule_length, const Silf &, const Face &, -+ enum passtype pt, byte * * const _out = 0); - Code(const Machine::Code &) throw(); - ~Code() throw(); - - Code & operator=(const Code &rhs) throw(); -- operator bool () const throw(); -- status_t status() const throw(); -- bool constraint() const throw(); -- size_t dataSize() const throw(); -- size_t instructionCount() const throw(); -- bool immutable() const throw(); -- bool deletes() const throw(); -- size_t maxRef() const throw(); -+ operator bool () const throw() { return _code && status() == loaded; } -+ status_t status() const throw() { return _status; } -+ bool constraint() const throw() { return _constraint; } -+ size_t dataSize() const throw() { return _data_size; } -+ size_t instructionCount() const throw() { return _instr_count; } -+ bool immutable() const throw() { return !(_delete || _modify); } -+ bool deletes() const throw() { return _delete; } -+ size_t maxRef() const throw() { return _max_ref; } -+ void externalProgramMoved(ptrdiff_t) throw(); - - 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)); -+} -+ -+ - 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), -+ _status(loaded), _constraint(false), _modify(false), _delete(false), - _own(false) - { - } - - inline Machine::Code::Code(const Machine::Code &obj) throw () - : _code(obj._code), - _data(obj._data), - _data_size(obj._data_size), -@@ -131,45 +151,19 @@ inline Machine::Code & Machine::Code::op - _constraint = rhs._constraint; - _modify = rhs._modify; - _delete = rhs._delete; - _own = rhs._own; - rhs._own = false; - return *this; - } - --inline Machine::Code::operator bool () const throw () { -- return _code && status() == loaded; --} -- --inline Machine::Code::status_t Machine::Code::status() const throw() { -- return _status; --} -- --inline bool Machine::Code::constraint() const throw() { -- return _constraint; --} -- --inline size_t Machine::Code::dataSize() const throw() { -- return _data_size; --} -- --inline size_t Machine::Code::instructionCount() const throw() { -- return _instr_count; --} -- --inline bool Machine::Code::immutable() const throw() -+inline void Machine::Code::externalProgramMoved(ptrdiff_t dist) throw() - { -- return !(_delete || _modify); --} -- --inline bool Machine::Code::deletes() const throw() --{ -- return _delete; --} -- --inline size_t Machine::Code::maxRef() const throw() --{ -- return _max_ref; -+ if (_code && !_own) -+ { -+ _code += dist / sizeof(instr); -+ _data += dist; -+ } - } - - } // namespace vm - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/Collider.h b/gfx/graphite2/src/inc/Collider.h -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/inc/Collider.h -@@ -0,0 +1,242 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#pragma once -+ -+#include "inc/List.h" -+#include "inc/Position.h" -+#include "inc/Intervals.h" -+#include "inc/debug.h" -+ -+namespace graphite2 { -+ -+class json; -+class Slot; -+class Segment; -+ -+#define SLOTCOLSETUINTPROP(x, y) uint16 x() const { return _ ##x; } void y (uint16 v) { _ ##x = v; } -+#define SLOTCOLSETINTPROP(x, y) int16 x() const { return _ ##x; } void y (int16 v) { _ ##x = v; } -+#define SLOTCOLSETPOSITIONPROP(x, y) const Position &x() const { return _ ##x; } void y (const Position &v) { _ ##x = v; } -+ -+// Slot attributes related to collision-fixing -+class SlotCollision -+{ -+public: -+ enum { -+ // COLL_TESTONLY = 0, // default - test other glyphs for collision with this one, but don't move this one -+ COLL_FIX = 1, // fix collisions involving this glyph -+ COLL_IGNORE = 2, // ignore this glyph altogether -+ COLL_START = 4, // start of range of possible collisions -+ COLL_END = 8, // end of range of possible collisions -+ COLL_KERN = 16, // collisions with this glyph are fixed by adding kerning space after it -+ COLL_ISCOL = 32, // this glyph has a collision -+ COLL_KNOWN = 64, // we've figured out what's happening with this glyph -+ COLL_TEMPLOCK = 128, // Lock glyphs that have been given priority positioning -+ ////COLL_JUMPABLE = 128, // moving glyphs may jump this stationary glyph in any direction - DELETE -+ ////COLL_OVERLAP = 256, // use maxoverlap to restrict - DELETE -+ }; -+ -+ // Behavior for the collision.order attribute. To GDL this is an enum, to us it's a bitfield, with only 1 bit set -+ // Allows for easier inversion. -+ enum { -+ SEQ_ORDER_LEFTDOWN = 1, -+ SEQ_ORDER_RIGHTUP = 2, -+ SEQ_ORDER_NOABOVE = 4, -+ SEQ_ORDER_NOBELOW = 8, -+ SEQ_ORDER_NOLEFT = 16, -+ SEQ_ORDER_NORIGHT = 32 -+ }; -+ -+ SlotCollision(Segment *seg, Slot *slot); -+ void initFromSlot(Segment *seg, Slot *slot); -+ -+ const Rect &limit() const { return _limit; } -+ void setLimit(const Rect &r) { _limit = r; } -+ SLOTCOLSETPOSITIONPROP(shift, setShift) -+ SLOTCOLSETPOSITIONPROP(offset, setOffset) -+ SLOTCOLSETPOSITIONPROP(exclOffset, setExclOffset) -+ SLOTCOLSETUINTPROP(margin, setMargin) -+ SLOTCOLSETUINTPROP(marginWt, setMarginWt) -+ SLOTCOLSETUINTPROP(flags, setFlags) -+ SLOTCOLSETUINTPROP(exclGlyph, setExclGlyph) -+ SLOTCOLSETUINTPROP(seqClass, setSeqClass) -+ SLOTCOLSETUINTPROP(seqProxClass, setSeqProxClass) -+ SLOTCOLSETUINTPROP(seqOrder, setSeqOrder) -+ SLOTCOLSETINTPROP(seqAboveXoff, setSeqAboveXoff) -+ SLOTCOLSETUINTPROP(seqAboveWt, setSeqAboveWt) -+ SLOTCOLSETINTPROP(seqBelowXlim, setSeqBelowXlim) -+ SLOTCOLSETUINTPROP(seqBelowWt, setSeqBelowWt) -+ SLOTCOLSETUINTPROP(seqValignHt, setSeqValignHt) -+ SLOTCOLSETUINTPROP(seqValignWt, setSeqValignWt) -+ -+ float getKern(int dir) const; -+ -+private: -+ Rect _limit; -+ Position _shift; // adjustment within the given pass -+ Position _offset; // total adjustment for collisions -+ Position _exclOffset; -+ uint16 _margin; -+ uint16 _marginWt; -+ uint16 _flags; -+ uint16 _exclGlyph; -+ uint16 _seqClass; -+ uint16 _seqProxClass; -+ uint16 _seqOrder; -+ int16 _seqAboveXoff; -+ uint16 _seqAboveWt; -+ int16 _seqBelowXlim; -+ uint16 _seqBelowWt; -+ uint16 _seqValignHt; -+ uint16 _seqValignWt; -+ -+}; // end of class SlotColllision -+ -+struct BBox; -+struct SlantBox; -+ -+class ShiftCollider -+{ -+public: -+ typedef std::pair fpair; -+ typedef Vector vfpairs; -+ typedef vfpairs::iterator ivfpairs; -+ -+ ShiftCollider(json *dbgout); -+ ~ShiftCollider() throw() { }; -+ -+ bool initSlot(Segment *seg, Slot *aSlot, const Rect &constraint, -+ float margin, float marginMin, const Position &currShift, -+ const Position &currOffset, int dir, GR_MAYBE_UNUSED json * const dbgout); -+ bool mergeSlot(Segment *seg, Slot *slot, const Position &currShift, bool isAfter, -+ bool sameCluster, bool &hasCol, bool isExclusion, GR_MAYBE_UNUSED json * const dbgout); -+ Position resolve(Segment *seg, bool &isCol, GR_MAYBE_UNUSED json * const dbgout); -+ void addBox_slope(bool isx, const Rect &box, const BBox &bb, const SlantBox &sb, const Position &org, float weight, float m, bool minright, int mode); -+ void removeBox(const Rect &box, const BBox &bb, const SlantBox &sb, const Position &org, int mode); -+ const Position &origin() const { return _origin; } -+ -+#if !defined GRAPHITE2_NTRACING -+ void outputJsonDbg(json * const dbgout, Segment *seg, int axis); -+ void outputJsonDbgStartSlot(json * const dbgout, Segment *seg); -+ void outputJsonDbgEndSlot(json * const dbgout, Position resultPos, int bestAxis, bool isCol); -+ void outputJsonDbgOneVector(json * const dbgout, Segment *seg, int axis, float tleft, float bestCost, float bestVal); -+ void outputJsonDbgRawRanges(json * const dbgout, int axis); -+ void outputJsonDbgRemovals(json * const dbgout, int axis, Segment *seg); -+#endif -+ -+ CLASS_NEW_DELETE; -+ -+protected: -+ Zones _ranges[4]; // possible movements in 4 directions (horizontally, vertically, diagonally); -+ Slot * _target; // the glyph to fix -+ Rect _limit; -+ Position _currShift; -+ Position _currOffset; -+ Position _origin; // Base for all relative calculations -+ float _margin; -+ float _marginWt; -+ float _len[4]; -+ uint16 _seqClass; -+ uint16 _seqProxClass; -+ uint16 _seqOrder; -+ -+ //bool _scraping[4]; -+ -+}; // end of class ShiftCollider -+ -+inline -+ShiftCollider::ShiftCollider(GR_MAYBE_UNUSED json *dbgout) -+: _target(0), -+ _margin(0.0), -+ _marginWt(0.0), -+ _seqClass(0), -+ _seqProxClass(0), -+ _seqOrder(0) -+{ -+#if !defined GRAPHITE2_NTRACING -+ for (int i = 0; i < 4; ++i) -+ _ranges[i].setdebug(dbgout); -+#endif -+} -+ -+class KernCollider -+{ -+public: -+ KernCollider(json *dbg); -+ ~KernCollider() throw() { }; -+ bool initSlot(Segment *seg, Slot *aSlot, const Rect &constraint, float margin, -+ const Position &currShift, const Position &offsetPrev, int dir, -+ float ymin, float ymax, json * const dbgout); -+ bool mergeSlot(Segment *seg, Slot *slot, const Position &currShift, float currSpace, int dir, json * const dbgout); -+ Position resolve(Segment *seg, Slot *slot, int dir, float margin, json * const dbgout); -+ void shift(const Position &mv, int dir); -+ -+ CLASS_NEW_DELETE; -+ -+private: -+ Slot * _target; // the glyph to fix -+ Rect _limit; -+ float _margin; -+ Position _offsetPrev; // kern from a previous pass -+ Position _currShift; // NOT USED?? -+ float _miny; // y-coordinates offset by global slot position -+ float _maxy; -+ Vector _edges; // edges of horizontal slices -+ float _sliceWidth; // width of each slice -+ float _mingap; -+ float _xbound; // max or min edge -+ -+#if !defined GRAPHITE2_NTRACING -+ // Debugging -+ Segment * _seg; -+ Vector _nearEdges; // closest potential collision in each slice -+ Vector _slotNear; -+#endif -+}; // end of class KernCollider -+ -+ -+inline -+float sqr(float x) { -+ return x * x; -+} -+ -+inline -+KernCollider::KernCollider(GR_MAYBE_UNUSED json *dbg) -+: _target(0), -+ _margin(0.0f), -+ _miny(-1e38f), -+ _maxy(1e38f), -+ _sliceWidth(0.0f), -+ _mingap(0.0f), -+ _xbound(0.0) -+{ -+#if !defined GRAPHITE2_NTRACING -+ _seg = 0; -+#endif -+}; -+ -+}; // end of namespace graphite2 -+ -diff --git a/gfx/graphite2/src/inc/Compression.h b/gfx/graphite2/src/inc/Compression.h -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/inc/Compression.h -@@ -0,0 +1,103 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2015, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+ -+#pragma once -+ -+#include -+#include -+#include -+ -+namespace -+{ -+ -+#if defined(_MSC_VER) -+typedef unsigned __int8 u8; -+typedef unsigned __int16 u16; -+typedef unsigned __int32 u32; -+typedef unsigned __int64 u64; -+#else -+#include -+typedef uint8_t u8; -+typedef uint16_t u16; -+typedef uint32_t u32; -+typedef uint64_t u64; -+#endif -+ -+ptrdiff_t const MINMATCH = 4; -+ -+template -+inline -+void unaligned_copy(void * d, void const * s) { -+ ::memcpy(d, s, S); -+} -+ -+inline -+size_t align(size_t p) { -+ return (p + sizeof(unsigned long)-1) & ~(sizeof(unsigned long)-1); -+} -+ -+inline -+u8 * safe_copy(u8 * d, u8 const * s, size_t n) { -+ while (n--) *d++ = *s++; -+ return d; -+} -+ -+inline -+u8 * overrun_copy(u8 * d, u8 const * s, size_t n) { -+ size_t const WS = sizeof(unsigned long); -+ u8 const * e = s + n; -+ do -+ { -+ unaligned_copy(d, s); -+ d += WS; -+ s += WS; -+ } -+ while (s < e); -+ d-=(s-e); -+ -+ return d; -+} -+ -+ -+inline -+u8 * fast_copy(u8 * d, u8 const * s, size_t n) { -+ size_t const WS = sizeof(unsigned long); -+ size_t wn = n/WS; -+ while (wn--) -+ { -+ unaligned_copy(d, s); -+ d += WS; -+ s += WS; -+ } -+ n &= WS-1; -+ return safe_copy(d, s, n); -+} -+ -+ -+} // end of anonymous namespace -+ -+ -diff --git a/gfx/graphite2/src/inc/Decompressor.h b/gfx/graphite2/src/inc/Decompressor.h -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/inc/Decompressor.h -@@ -0,0 +1,56 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2015, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+ -+#pragma once -+ -+#include -+ -+namespace lz4 -+{ -+ -+// decompress an LZ4 block -+// Parameters: -+// @in - Input buffer containing an LZ4 block. -+// @in_size - Size of the input LZ4 block in bytes. -+// @out - Output buffer to hold decompressed results. -+// @out_size - The size of the buffer pointed to by @out. -+// Invariants: -+// @in - This buffer must be at least 1 machine word in length, -+// regardless of the actual LZ4 block size. -+// @in_size - This must be at least 4 and must also be <= to the -+// allocated buffer @in. -+// @out - This must be bigger than the input buffer and at least -+// 13 bytes. -+// @out_size - Must always be big enough to hold the expected size. -+// Return: -+// -1 - Decompression failed. -+// size - Actual number of bytes decompressed. -+int decompress(void const *in, size_t in_size, void *out, size_t out_size); -+ -+} // end of namespace shrinker -+ -+ -diff --git a/gfx/graphite2/src/inc/Error.h b/gfx/graphite2/src/inc/Error.h ---- a/gfx/graphite2/src/inc/Error.h -+++ b/gfx/graphite2/src/inc/Error.h -@@ -106,22 +106,30 @@ enum errors { - E_BADRULECCODEPTR = 45, // The rule constraint code position does not align with where the forward reference says it should be - E_BADCCODELEN = 46, // Bad rule/pass constraint code length - E_BADACTIONCODEPTR = 47, // The action code position does not align with where the forward reference says it should be - E_MUTABLECCODE = 48, // Constraint code edits slots. It shouldn't. - E_BADSTATE = 49, // Bad state transition referencing an illegal state - E_BADRULEMAPPING = 50, // The structure of the rule mapping is bad - E_BADRANGE = 51, // Bad column range structure including a glyph in more than one column - E_BADRULENUM = 52, // A reference to a rule is out of range (too high) -+ E_BADACOLLISION = 53, // Bad Silf table collision attribute number (too high) -+ E_BADEMPTYPASS = 54, // Can't have empty passes (no rules) except for collision passes -+ E_BADSILFVERSION = 55, // The Silf table has a bad version (probably too high) -+ E_BADCOLLISIONPASS = 56, // Collision flags set on a non positioning pass -+ E_BADNUMCOLUMNS = 57, // Arbitrarily limit number of columns in fsm - // Code errors - E_CODEFAILURE = 60, // Base code error. The following subcodes must align with Machine::Code::status_t in Code.h -- E_CODEALLOC = 61, // Out of memory -- E_INVALIDOPCODE = 62, // Invalid op code -- E_UNIMPOPCODE = 63, // Unimplemented op code encountered -- E_OUTOFRANGECODE = 64, // Code argument out of range -- E_BADJUMPCODE = 65, // Code jumps past end of op codes -- E_CODEBADARGS = 66, // Code arguments exhausted -- E_CODENORETURN = 67, // Missing return type op code at end of code -- E_CODENESTEDCTXT = 68 // Nested context encountered in code -+ E_CODEALLOC = 61, // Out of memory -+ E_INVALIDOPCODE = 62, // Invalid op code -+ E_UNIMPOPCODE = 63, // Unimplemented op code encountered -+ E_OUTOFRANGECODE = 64, // Code argument out of range -+ E_BADJUMPCODE = 65, // Code jumps past end of op codes -+ E_CODEBADARGS = 66, // Code arguments exhausted -+ E_CODENORETURN = 67, // Missing return type op code at end of code -+ E_CODENESTEDCTXT = 68, // Nested context encountered in code -+// Compression errors -+ E_BADSCHEME = 69, -+ E_SHRINKERFAILED = 70, - }; - - } - -diff --git a/gfx/graphite2/src/inc/Face.h b/gfx/graphite2/src/inc/Face.h ---- a/gfx/graphite2/src/inc/Face.h -+++ b/gfx/graphite2/src/inc/Face.h -@@ -21,33 +21,34 @@ - - Alternatively, the contents of this file may be used under the terms of the - Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #pragma once - --#include -+#include - - #include "graphite2/Font.h" - - #include "inc/Main.h" - #include "inc/FeatureMap.h" - #include "inc/TtfUtil.h" - #include "inc/Silf.h" - #include "inc/Error.h" - - namespace graphite2 { - - class Cmap; - class FileFace; - class GlyphCache; - class NameTable; - class json; -+class Font; - - - using TtfUtil::Tag; - - // These are the actual tags, as distinct from the consecutive IDs in TtfUtil.h - - class Face - { -@@ -165,47 +166,51 @@ json * Face::logger() const throw() - - - - class Face::Table - { - const Face * _f; - mutable const byte * _p; - uint32 _sz; -+ bool _compressed; -+ -+ Error decompress(); -+ -+ void releaseBuffers(); - - public: - Table() throw(); -- Table(const Face & face, const Tag n) throw(); -+ Table(const Face & face, const Tag n, uint32 version=0xffffffff) throw(); - Table(const Table & rhs) throw(); - ~Table() throw(); - - operator const byte * () const throw(); - - Table & operator = (const Table & rhs) throw(); - size_t size() const throw(); - }; - - inline - Face::Table::Table() throw() --: _f(0), _p(0), _sz(0) -+: _f(0), _p(0), _sz(0), _compressed(false) - { - } - - inline - Face::Table::Table(const Table & rhs) throw() --: _f(rhs._f), _p(rhs._p), _sz(rhs._sz) -+: _f(rhs._f), _p(rhs._p), _sz(rhs._sz), _compressed(rhs._compressed) - { - rhs._p = 0; - } - - inline - Face::Table::~Table() throw() - { -- if (_p && _f->m_ops.release_table) -- (*_f->m_ops.release_table)(_f->m_appFaceHandle, _p); -+ releaseBuffers(); - } - - inline - Face::Table::operator const byte * () const throw() - { - return _p; - } - -diff --git a/gfx/graphite2/src/inc/FeatureMap.h b/gfx/graphite2/src/inc/FeatureMap.h ---- a/gfx/graphite2/src/inc/FeatureMap.h -+++ b/gfx/graphite2/src/inc/FeatureMap.h -@@ -51,17 +51,17 @@ private: - }; - - class FeatureRef - { - typedef uint32 chunk_t; - static const uint8 SIZEOF_CHUNK = sizeof(chunk_t)*8; - - public: -- FeatureRef() : m_nameValues(0) {} -+ FeatureRef(); - FeatureRef(const Face & face, unsigned short & bits_offset, uint32 max_val, - uint32 name, uint16 uiName, uint16 flags, - FeatureSetting *settings, uint16 num_set) throw(); - ~FeatureRef() throw(); - - bool applyValToFeature(uint32 val, Features& pDest) const; //defined in GrFaceImp.h - void maskFeature(Features & pDest) const { - if (m_index < pDest.size()) //defensive -@@ -94,16 +94,26 @@ private: - byte m_bits, // how many bits to shift the value into place - m_index; // index into the array to find the ulong to mask - - private: //unimplemented - FeatureRef& operator=(const FeatureRef&); - }; - - -+inline -+FeatureRef::FeatureRef() -+: m_pFace(0), m_nameValues(0), -+ m_mask(0), m_max(0), m_id(0), -+ m_nameid(0), m_flags(0), m_numSet(0), -+ m_bits(0), m_index(0) -+{ -+} -+ -+ - class NameAndFeatureRef - { - public: - NameAndFeatureRef(uint32 name = 0) : m_name(name) , m_pFRef(NULL){} - NameAndFeatureRef(const FeatureRef* p/*not NULL*/) : m_name(p->getId()), m_pFRef(p) {} - - bool operator<(const NameAndFeatureRef& rhs) const //orders by m_name - { return m_name -+#include - #include - - #include "graphite2/Font.h" - - #include "inc/Main.h" - #include "inc/TtfTypes.h" - #include "inc/TtfUtil.h" - -diff --git a/gfx/graphite2/src/inc/GlyphCache.h b/gfx/graphite2/src/inc/GlyphCache.h ---- a/gfx/graphite2/src/inc/GlyphCache.h -+++ b/gfx/graphite2/src/inc/GlyphCache.h -@@ -24,24 +24,73 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #pragma once - - - #include "graphite2/Font.h" - #include "inc/Main.h" -+#include "inc/Position.h" -+#include "inc/GlyphFace.h" - - namespace graphite2 { - - class Face; - class FeatureVal; --class GlyphFace; - class Segment; - -+ -+struct SlantBox -+{ -+ static const SlantBox empty; -+ -+// SlantBox(float psi = 0., float pdi = 0., float psa = 0., float pda = 0.) : si(psi), di(pdi), sa(psa), da(pda) {}; -+ float width() const { return sa - si; } -+ float height() const { return da - di; } -+ float si; // min -+ float di; // min -+ float sa; // max -+ float da; // max -+}; -+ -+ -+struct BBox -+{ -+ BBox(float pxi = 0, float pyi = 0., float pxa = 0., float pya = 0.) : xi(pxi), yi(pyi), xa(pxa), ya(pya) {}; -+ float width() const { return xa - xi; } -+ float height() const { return ya - yi; } -+ float xi; // min -+ float yi; // min -+ float xa; // max -+ float ya; // max -+}; -+ -+ -+class GlyphBox -+{ -+ GlyphBox(const GlyphBox &); -+ GlyphBox & operator = (const GlyphBox &); -+ -+public: -+ GlyphBox(uint8 numsubs, unsigned short bitmap, Rect *slanted) : _num(numsubs), _bitmap(bitmap), _slant(*slanted) {}; -+ -+ void addSubBox(int subindex, int boundary, Rect *val) { _subs[subindex * 2 + boundary] = *val; } -+ Rect &subVal(int subindex, int boundary) { return _subs[subindex * 2 + boundary]; } -+ const Rect &slant() const { return _slant; } -+ uint8 num() const { return _num; } -+ const Rect *subs() const { return _subs; } -+ -+private: -+ uint8 _num; -+ unsigned short _bitmap; -+ Rect _slant; -+ Rect _subs[1]; -+}; -+ - class GlyphCache - { - class Loader; - - GlyphCache(const GlyphCache&); - GlyphCache& operator=(const GlyphCache&); - - public: -@@ -49,22 +98,34 @@ public: - ~GlyphCache(); - - unsigned short numGlyphs() const throw(); - unsigned short numAttrs() const throw(); - unsigned short unitsPerEm() const throw(); - - const GlyphFace *glyph(unsigned short glyphid) const; //result may be changed by subsequent call with a different glyphid - const GlyphFace *glyphSafe(unsigned short glyphid) const; -+ float getBoundingMetric(unsigned short glyphid, uint8 metric) const; -+ uint8 numSubBounds(unsigned short glyphid) const; -+ float getSubBoundingMetric(unsigned short glyphid, uint8 subindex, uint8 metric) const; -+ const Rect & slant(unsigned short glyphid) const { return _boxes[glyphid] ? _boxes[glyphid]->slant() : _empty_slant_box; } -+ const SlantBox & getBoundingSlantBox(unsigned short glyphid) const; -+ const BBox & getBoundingBBox(unsigned short glyphid) const; -+ const SlantBox & getSubBoundingSlantBox(unsigned short glyphid, uint8 subindex) const; -+ const BBox & getSubBoundingBBox(unsigned short glyphid, uint8 subindex) const; -+ bool check(unsigned short glyphid) const; -+ bool hasBoxes() const { return _boxes != 0; } - - CLASS_NEW_DELETE; - - private: -+ const Rect _empty_slant_box; - const Loader * _glyph_loader; - const GlyphFace * * _glyphs; -+ GlyphBox * * _boxes; - unsigned short _num_glyphs, - _num_attrs, - _upem; - }; - - inline - unsigned short GlyphCache::numGlyphs() const throw() - { -@@ -79,14 +140,84 @@ unsigned short GlyphCache::numAttrs() co - - inline - unsigned short GlyphCache::unitsPerEm() const throw() - { - return _upem; - } - - inline -+bool GlyphCache::check(unsigned short glyphid) const -+{ -+ return _boxes && glyphid < _num_glyphs; -+} -+ -+inline - const GlyphFace *GlyphCache::glyphSafe(unsigned short glyphid) const - { - return glyphid < _num_glyphs ? glyph(glyphid) : NULL; - } - -+inline -+float GlyphCache::getBoundingMetric(unsigned short glyphid, uint8 metric) const -+{ -+ if (glyphid >= _num_glyphs) return 0.; -+ switch (metric) { -+ case 0: return (float)(glyph(glyphid)->theBBox().bl.x); // x_min -+ case 1: return (float)(glyph(glyphid)->theBBox().bl.y); // y_min -+ case 2: return (float)(glyph(glyphid)->theBBox().tr.x); // x_max -+ case 3: return (float)(glyph(glyphid)->theBBox().tr.y); // y_max -+ case 4: return (float)(_boxes[glyphid] ? _boxes[glyphid]->slant().bl.x : 0.f); // sum_min -+ case 5: return (float)(_boxes[glyphid] ? _boxes[glyphid]->slant().bl.y : 0.f); // diff_min -+ case 6: return (float)(_boxes[glyphid] ? _boxes[glyphid]->slant().tr.x : 0.f); // sum_max -+ case 7: return (float)(_boxes[glyphid] ? _boxes[glyphid]->slant().tr.y : 0.f); // diff_max -+ default: return 0.; -+ } -+} -+ -+inline const SlantBox &GlyphCache::getBoundingSlantBox(unsigned short glyphid) const -+{ -+ return _boxes[glyphid] ? *(SlantBox *)(&(_boxes[glyphid]->slant())) : SlantBox::empty; -+} -+ -+inline const BBox &GlyphCache::getBoundingBBox(unsigned short glyphid) const -+{ -+ return *(BBox *)(&(glyph(glyphid)->theBBox())); -+} -+ -+inline -+float GlyphCache::getSubBoundingMetric(unsigned short glyphid, uint8 subindex, uint8 metric) const -+{ -+ GlyphBox *b = _boxes[glyphid]; -+ if (b == NULL || subindex >= b->num()) return 0; -+ -+ switch (metric) { -+ case 0: return b->subVal(subindex, 0).bl.x; -+ case 1: return b->subVal(subindex, 0).bl.y; -+ case 2: return b->subVal(subindex, 0).tr.x; -+ case 3: return b->subVal(subindex, 0).tr.y; -+ case 4: return b->subVal(subindex, 1).bl.x; -+ case 5: return b->subVal(subindex, 1).bl.y; -+ case 6: return b->subVal(subindex, 1).tr.x; -+ case 7: return b->subVal(subindex, 1).tr.y; -+ default: return 0.; -+ } -+} -+ -+inline const SlantBox &GlyphCache::getSubBoundingSlantBox(unsigned short glyphid, uint8 subindex) const -+{ -+ GlyphBox *b = _boxes[glyphid]; -+ return *(SlantBox *)(b->subs() + 2 * subindex + 1); -+} -+ -+inline const BBox &GlyphCache::getSubBoundingBBox(unsigned short glyphid, uint8 subindex) const -+{ -+ GlyphBox *b = _boxes[glyphid]; -+ return *(BBox *)(b->subs() + 2 * subindex); -+} -+ -+inline -+uint8 GlyphCache::numSubBounds(unsigned short glyphid) const -+{ -+ return _boxes[glyphid] ? _boxes[glyphid]->num() : 0; -+} -+ - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/Intervals.h b/gfx/graphite2/src/inc/Intervals.h -new file mode 100644 ---- /dev/null -+++ b/gfx/graphite2/src/inc/Intervals.h -@@ -0,0 +1,234 @@ -+/* GRAPHITE2 LICENSING -+ -+ Copyright 2010, SIL International -+ All rights reserved. -+ -+ This library is free software; you can redistribute it and/or modify -+ it under the terms of the GNU Lesser General Public License as published -+ by the Free Software Foundation; either version 2.1 of License, or -+ (at your option) any later version. -+ -+ This program 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 -+ Lesser General Public License for more details. -+ -+ You should also have received a copy of the GNU Lesser General Public -+ License along with this library in the file named "LICENSE". -+ If not, write to the Free Software Foundation, 51 Franklin Street, -+ Suite 500, Boston, MA 02110-1335, USA or visit their web page on the -+ internet at http://www.fsf.org/licenses/lgpl.html. -+ -+Alternatively, the contents of this file may be used under the terms of the -+Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public -+License, as published by the Free Software Foundation, either version 2 -+of the License or (at your option) any later version. -+*/ -+#pragma once -+ -+#include -+ -+#include "inc/Main.h" -+#include "inc/List.h" -+#include "inc/json.h" -+#include "inc/Position.h" -+ -+// An IntervalSet represents the possible movement of a given glyph in a given direction -+// (horizontally, vertically, or diagonally). -+// A vector is needed to represent disjoint ranges, eg, -300..-150, 20..200, 500..750. -+// Each pair represents the min/max of a sub-range. -+ -+namespace graphite2 { -+ -+class Segment; -+ -+enum zones_t {SD, XY}; -+ -+class Zones -+{ -+ struct Exclusion -+ { -+ template -+ static Exclusion weighted(float xmin, float xmax, float f, float a0, -+ float m, float xi, float ai, float c, bool nega); -+ -+ float x, // x position -+ xm, // xmax position -+ c, // constant + sum(MiXi^2) -+ sm, // sum(Mi) -+ smx; // sum(MiXi) -+ bool open; -+ -+ Exclusion(float x, float w, float smi, float smxi, float c); -+ Exclusion & operator += (Exclusion const & rhs); -+ uint8 outcode(float p) const; -+ -+ Exclusion split_at(float p); -+ void left_trim(float p); -+ -+ bool track_cost(float & cost, float & x, float origin) const; -+ -+ private: -+ float test_position(float origin) const; -+ float cost(float x) const; -+ }; -+ -+ typedef Vector exclusions; -+ -+ typedef exclusions::iterator iterator; -+ typedef Exclusion * pointer; -+ typedef Exclusion & reference; -+ typedef std::reverse_iterator reverse_iterator; -+ -+public: -+ typedef exclusions::const_iterator const_iterator; -+ typedef Exclusion const * const_pointer; -+ typedef Exclusion const & const_reference; -+ typedef std::reverse_iterator const_reverse_iterator; -+ -+#if !defined GRAPHITE2_NTRACING -+ struct Debug -+ { -+ Exclusion _excl; -+ bool _isdel; -+ Vector _env; -+ -+ Debug(Exclusion *e, bool isdel, json *dbg) : _excl(*e), _isdel(isdel), _env(dbg->getenvs()) { }; -+ }; -+ -+ typedef Vector debugs; -+ typedef debugs::const_iterator idebugs; -+ void addDebug(Exclusion *e); -+ void removeDebug(float pos, float posm); -+ void setdebug(json *dbgout) { _dbg = dbgout; } -+ idebugs dbgs_begin() const { return _dbgs.begin(); } -+ idebugs dbgs_end() const { return _dbgs.end(); } -+ void jsonDbgOut(Segment *seg) const; -+ Position position() const { return Position(_pos, _posm); } -+#endif -+ -+ Zones(); -+ template -+ void initialise(float xmin, float xmax, float margin_len, float margin_weight, float ao); -+ -+ void exclude(float xmin, float xmax); -+ void exclude_with_margins(float xmin, float xmax, int axis); -+ -+ template -+ void weighted(float xmin, float xmax, float f, float a0, float mi, float xi, float ai, float c, bool nega); -+ void weightedAxis(int axis, float xmin, float xmax, float f, float a0, float mi, float xi, float ai, float c, bool nega); -+ -+ float closest( float origin, float &cost) const; -+ -+ const_iterator begin() const { return _exclusions.begin(); } -+ const_iterator end() const { return _exclusions.end(); } -+ -+private: -+ exclusions _exclusions; -+#if !defined GRAPHITE2_NTRACING -+ json * _dbg; -+ debugs _dbgs; -+#endif -+ float _margin_len, -+ _margin_weight, -+ _pos, -+ _posm; -+ -+ void insert(Exclusion e); -+ void remove(float x, float xm); -+ const_iterator find_exclusion_under(float x) const; -+}; -+ -+ -+inline -+Zones::Zones() -+: _margin_len(0), _margin_weight(0), _pos(0), _posm(0) -+{ -+#if !defined GRAPHITE2_NTRACING -+ _dbg = 0; -+#endif -+ _exclusions.reserve(8); -+} -+ -+inline -+Zones::Exclusion::Exclusion(float x_, float xm_, float smi, float smxi, float c_) -+: x(x_), xm(xm_), c(c_), sm(smi), smx(smxi), open(false) -+{ } -+ -+template -+inline -+void Zones::initialise(float xmin, float xmax, float margin_len, -+ float margin_weight, float a0) -+{ -+ _margin_len = margin_len; -+ _margin_weight = margin_weight; -+ _pos = xmin; -+ _posm = xmax; -+ _exclusions.clear(); -+ _exclusions.push_back(Exclusion::weighted(xmin, xmax, 1, a0, 0, 0, 0, 0, false)); -+ _exclusions.front().open = true; -+#if !defined GRAPHITE2_NTRACING -+ _dbgs.clear(); -+#endif -+} -+ -+inline -+void Zones::exclude(float xmin, float xmax) { -+ remove(xmin, xmax); -+} -+ -+template -+inline -+void Zones::weighted(float xmin, float xmax, float f, float a0, -+ float m, float xi, float ai, float c, bool nega) { -+ insert(Exclusion::weighted(xmin, xmax, f, a0, m, xi, ai, c, nega)); -+} -+ -+inline -+void Zones::weightedAxis(int axis, float xmin, float xmax, float f, float a0, -+ float m, float xi, float ai, float c, bool nega) { -+ if (axis < 2) -+ weighted(xmin, xmax, f, a0, m, xi, ai, c, nega); -+ else -+ weighted(xmin, xmax, f, a0, m, xi, ai, c, nega); -+} -+ -+#if !defined GRAPHITE2_NTRACING -+inline -+void Zones::addDebug(Exclusion *e) { -+ if (_dbg) -+ _dbgs.push_back(Debug(e, false, _dbg)); -+} -+ -+inline -+void Zones::removeDebug(float pos, float posm) { -+ if (_dbg) -+ { -+ Exclusion e(pos, posm, 0, 0, 0); -+ _dbgs.push_back(Debug(&e, true, _dbg)); -+ } -+} -+#endif -+ -+template<> -+inline -+Zones::Exclusion Zones::Exclusion::weighted(float xmin, float xmax, float f, float a0, -+ float m, float xi, GR_MAYBE_UNUSED float ai, float c, GR_MAYBE_UNUSED bool nega) { -+ return Exclusion(xmin, xmax, -+ m + f, -+ m * xi, -+ m * xi * xi + f * a0 * a0 + c); -+} -+ -+template<> -+inline -+Zones::Exclusion Zones::Exclusion::weighted(float xmin, float xmax, float f, float a0, -+ float m, float xi, float ai,float c, bool nega) { -+ float xia = nega ? xi - ai : xi + ai; -+ return Exclusion(xmin, xmax, -+ 0.25f * (m + 2.f * f), -+ 0.25f * m * xia, -+ 0.25f * (m * xia * xia + 2.f * f * a0 * a0) + c); -+} -+ -+} // end of namespace graphite2 -diff --git a/gfx/graphite2/src/inc/List.h b/gfx/graphite2/src/inc/List.h ---- a/gfx/graphite2/src/inc/List.h -+++ b/gfx/graphite2/src/inc/List.h -@@ -65,29 +65,30 @@ public: - iterator end() { return m_last; } - const_iterator end() const { return m_last; } - - bool empty() const { return m_first == m_last; } - size_t size() const { return m_last - m_first; } - size_t capacity() const{ return m_end - m_first; } - - void reserve(size_t n); -+ void resize(size_t n, const T & v = T()); - - reference front() { assert(size() > 0); return *begin(); } - const_reference front() const { assert(size() > 0); return *begin(); } - reference back() { assert(size() > 0); return *(end()-1); } - const_reference back() const { assert(size() > 0); return *(end()-1); } - - Vector & operator = (const Vector & rhs) { assign(rhs.begin(), rhs.end()); return *this; } - reference operator [] (size_t n) { assert(size() > n); return m_first[n]; } - const_reference operator [] (size_t n) const { assert(size() > n); return m_first[n]; } - - void assign(size_t n, const T& u) { clear(); insert(begin(), n, u); } - void assign(const_iterator first, const_iterator last) { clear(); insert(begin(), first, last); } -- iterator insert(iterator p, const T & x) { p = _insert_default(p, 1); *p = x; return p; } -+ iterator insert(iterator p, const T & x) { p = _insert_default(p, 1); new (p) T(x); return p; } - void insert(iterator p, size_t n, const T & x); - void insert(iterator p, const_iterator first, const_iterator last); - void pop_back() { assert(size() > 0); --m_last; } - void push_back(const T &v) { if (m_last == m_end) reserve(size()+1); new (m_last++) T(v); } - - void clear() { erase(begin(), end()); } - iterator erase(iterator p) { return erase(p, p+1); } - iterator erase(iterator first, iterator last); -@@ -99,28 +100,37 @@ private: - template - inline - void Vector::reserve(size_t n) - { - if (n > capacity()) - { - const ptrdiff_t sz = size(); - m_first = static_cast(realloc(m_first, n*sizeof(T))); -+ if (!m_first) std::abort(); - m_last = m_first + sz; - m_end = m_first + n; - } - } - -+template -+inline -+void Vector::resize(size_t n, const T & v) { -+ const ptrdiff_t d = n-size(); -+ if (d < 0) erase(end()+d, end()); -+ else if (d > 0) insert(end(), d, v); -+} -+ - template - inline - typename Vector::iterator Vector::_insert_default(iterator p, size_t n) - { - assert(begin() <= p && p <= end()); - const ptrdiff_t i = p - begin(); -- reserve((size() + n + 7) >> 3 << 3); -+ reserve(((size() + n + 7) >> 3) << 3); - p = begin() + i; - // Move tail if there is one - if (p != end()) memmove(p + n, p, distance(p,end())*sizeof(T)); - m_last += n; - return p; - } - - template -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 -@@ -105,17 +105,19 @@ enum opcode { - - PUSH_IGLYPH_ATTR, // not implemented - - POP_RET, RET_ZERO, RET_TRUE, - IATTR_SET, IATTR_ADD, IATTR_SUB, - PUSH_PROC_STATE, PUSH_VERSION, - PUT_SUBS, PUT_SUBS2, PUT_SUBS3, - PUT_GLYPH, PUSH_GLYPH_ATTR, PUSH_ATT_TO_GLYPH_ATTR, -- MAX_OPCODE, -+ BITOR, BITAND, BITNOT, -+ BITSET, SET_FEAT, -+ MAX_OPCODE, - // private opcodes for internal use only, comes after all other on disk opcodes - TEMP_COPY = MAX_OPCODE - }; - - struct opcode_t - { - instr impl[2]; - uint8 param_sz; -@@ -143,17 +145,17 @@ public: - - Machine(SlotMap &) throw(); - static const opcode_t * getOpcodeTable() throw(); - - CLASS_NEW_DELETE; - - SlotMap & slotMap() const throw(); - status_t status() const throw(); -- operator bool () const throw(); -+// operator bool () const throw(); - - private: - void check_final_stack(const stack_t * const sp); - stack_t run(const instr * program, const byte * data, - slotref * & map) HOT; - - SlotMap & _map; - stack_t _stack[STACK_MAX + 2*STACK_GUARD]; -diff --git a/gfx/graphite2/src/inc/Main.h b/gfx/graphite2/src/inc/Main.h ---- a/gfx/graphite2/src/inc/Main.h -+++ b/gfx/graphite2/src/inc/Main.h -@@ -80,25 +80,25 @@ struct telemetry {}; - // typesafe wrapper around malloc for simple types - // use free(pointer) to deallocate - - template T * gralloc(size_t n) - { - #ifdef GRAPHITE2_TELEMETRY - telemetry::count_bytes(sizeof(T) * n); - #endif -- return reinterpret_cast(malloc(sizeof(T) * n)); -+ return static_cast(malloc(sizeof(T) * n)); - } - - template T * grzeroalloc(size_t n) - { - #ifdef GRAPHITE2_TELEMETRY - telemetry::count_bytes(sizeof(T) * n); - #endif -- return reinterpret_cast(calloc(n, sizeof(T))); -+ return static_cast(calloc(n, sizeof(T))); - } - - template - inline T min(const T a, const T b) - { - return a < b ? a : b; - } - -@@ -115,13 +115,32 @@ inline T max(const T a, const T b) - void * operator new (size_t, void * p) throw() { return p; } \ - void * operator new[] (size_t size) {return gralloc(size);} \ - void * operator new[] (size_t, void * p) throw() { return p; } \ - void operator delete (void * p) throw() { free(p);} \ - void operator delete (void *, void *) throw() {} \ - void operator delete[] (void * p)throw() { free(p); } \ - void operator delete[] (void *, void *) throw() {} - --#ifdef __GNUC__ -+#if defined(__GNUC__) || defined(__clang__) - #define GR_MAYBE_UNUSED __attribute__((unused)) - #else - #define GR_MAYBE_UNUSED - #endif -+ -+#if defined(__clang__) && __cplusplus >= 201103L -+ /* clang's fallthrough annotations are only available starting in C++11. */ -+ #define GR_FALLTHROUGH [[clang::fallthrough]] -+#elif defined(_MSC_VER) -+ /* -+ * MSVC's __fallthrough annotations are checked by /analyze (Code Analysis): -+ * https://msdn.microsoft.com/en-us/library/ms235402%28VS.80%29.aspx -+ */ -+ #include -+ #define GR_FALLTHROUGH __fallthrough -+#else -+ #define GR_FALLTHROUGH /* fallthrough */ -+#endif -+ -+#ifdef _MSC_VER -+#pragma warning(disable: 4800) -+#pragma warning(disable: 4355) -+#endif -diff --git a/gfx/graphite2/src/inc/Pass.h b/gfx/graphite2/src/inc/Pass.h ---- a/gfx/graphite2/src/inc/Pass.h -+++ b/gfx/graphite2/src/inc/Pass.h -@@ -34,65 +34,85 @@ namespace graphite2 { - class Segment; - class Face; - class Silf; - struct Rule; - struct RuleEntry; - struct State; - class FiniteStateMachine; - class Error; -+class ShiftCollider; -+class KernCollider; -+class json; -+ -+enum passtype; - - class Pass - { - public: - Pass(); - ~Pass(); - -- bool readPass(const byte * pPass, size_t pass_length, size_t subtable_base, Face & face, Error &e); -- void runGraphite(vm::Machine & m, FiniteStateMachine & fsm) const; -+ bool readPass(const byte * pPass, size_t pass_length, size_t subtable_base, Face & face, -+ enum passtype pt, uint32 version, Error &e); -+ bool runGraphite(vm::Machine & m, FiniteStateMachine & fsm, bool reverse) const; - void init(Silf *silf) { m_silf = silf; } -- byte spaceContextuals() const { return (m_flags & 0x0E) >> 1; } -+ byte collisionLoops() const { return m_numCollRuns; } -+ bool reverseDir() const { return m_isReverseDir; } - - CLASS_NEW_DELETE - private: - void findNDoRule(Slot* & iSlot, vm::Machine &, FiniteStateMachine& fsm) const; - int doAction(const vm::Machine::Code* codeptr, Slot * & slot_out, vm::Machine &) const; - bool testPassConstraint(vm::Machine & m) const; - bool testConstraint(const Rule & r, vm::Machine &) const; - bool readRules(const byte * rule_map, const size_t num_entries, - const byte *precontext, const uint16 * sort_key, - const uint16 * o_constraint, const byte *constraint_data, - const uint16 * o_action, const byte * action_data, -- Face &, Error &e); -+ Face &, enum passtype pt, Error &e); - bool readStates(const byte * starts, const byte * states, const byte * o_rule_map, Face &, Error &e); - bool readRanges(const byte * ranges, size_t num_ranges, Error &e); - uint16 glyphToCol(const uint16 gid) const; - bool runFSM(FiniteStateMachine & fsm, Slot * slot) const; - void dumpRuleEventConsidered(const FiniteStateMachine & fsm, const RuleEntry & re) const; -- void dumpRuleEventOutput(const FiniteStateMachine & fsm, const Rule & r, Slot * os) const; -+ void dumpRuleEventOutput(const FiniteStateMachine & fsm, vm::Machine & m, const Rule & r, Slot * os) const; - void adjustSlot(int delta, Slot * & slot_out, SlotMap &) const; -- const Silf* m_silf; -- uint16 * m_cols; -- Rule * m_rules; // rules -- RuleEntry * m_ruleMap; -- uint16 * m_startStates; // prectxt length -- uint16 * m_transitions; -- State * m_states; -- -- byte m_flags; -+ bool collisionShift(Segment *seg, int dir, json * const dbgout) const; -+ bool collisionKern(Segment *seg, int dir, json * const dbgout) const; -+ bool collisionFinish(Segment *seg, GR_MAYBE_UNUSED json * const dbgout) const; -+ bool resolveCollisions(Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev, -+ int dir, bool &moved, bool &hasCol, json * const dbgout) const; -+ float resolveKern(Segment *seg, Slot *slot, Slot *start, KernCollider &coll, int dir, -+ float &ymin, float &ymax, json *const dbgout) const; -+ -+ const Silf * m_silf; -+ uint16 * m_cols; -+ Rule * m_rules; // rules -+ RuleEntry * m_ruleMap; -+ uint16 * m_startStates; // prectxt length -+ uint16 * m_transitions; -+ State * m_states; -+ vm::Machine::Code * m_codes; -+ byte * m_progs; -+ -+ byte m_numCollRuns; -+ byte m_kernColls; - byte m_iMaxLoop; - uint16 m_numGlyphs; - uint16 m_numRules; - uint16 m_numStates; - uint16 m_numTransition; - uint16 m_numSuccess; - uint16 m_successStart; - uint16 m_numColumns; - byte m_minPreCtxt; - byte m_maxPreCtxt; -+ byte m_colThreshold; -+ bool m_isReverseDir; - vm::Machine::Code m_cPConstraint; - - private: //defensive - Pass(const Pass&); - Pass& operator=(const Pass&); - }; - - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/Position.h b/gfx/graphite2/src/inc/Position.h ---- a/gfx/graphite2/src/inc/Position.h -+++ b/gfx/graphite2/src/inc/Position.h -@@ -45,15 +45,24 @@ public: - - class Rect - { - public : - Rect() {} - Rect(const Position& botLeft, const Position& topRight): bl(botLeft), tr(topRight) {} - Rect widen(const Rect& other) { return Rect(Position(bl.x > other.bl.x ? other.bl.x : bl.x, bl.y > other.bl.y ? other.bl.y : bl.y), Position(tr.x > other.tr.x ? tr.x : other.tr.x, tr.y > other.tr.y ? tr.y : other.tr.y)); } - Rect operator + (const Position &a) const { return Rect(Position(bl.x + a.x, bl.y + a.y), Position(tr.x + a.x, tr.y + a.y)); } -+ Rect operator - (const Position &a) const { return Rect(Position(bl.x - a.x, bl.y - a.y), Position(tr.x - a.x, tr.y - a.y)); } - Rect operator * (float m) const { return Rect(Position(bl.x, bl.y) * m, Position(tr.x, tr.y) * m); } -+ float width() const { return tr.x - bl.x; } -+ float height() const { return tr.y - bl.y; } -+ -+ bool hitTest(Rect &other); -+ -+ // returns Position(overlapx, overlapy) where overlap<0 if overlapping else positive) -+ Position overlap(Position &offset, Rect &other, Position &otherOffset); -+ //Position constrainedAvoid(Position &offset, Rect &box, Rect &sdbox, Position &other, Rect &obox, Rect &osdbox); - - Position bl; - Position tr; - }; - - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/Rule.h b/gfx/graphite2/src/inc/Rule.h ---- a/gfx/graphite2/src/inc/Rule.h -+++ b/gfx/graphite2/src/inc/Rule.h -@@ -36,30 +36,36 @@ struct Rule { - const vm::Machine::Code * constraint, - * action; - unsigned short sort; - byte preContext; - #ifndef NDEBUG - uint16 rule_idx; - #endif - -- Rule() : constraint(0), action(0), sort(0), preContext(0) {} -- ~Rule(); -+ Rule(); -+ ~Rule() {} - - CLASS_NEW_DELETE; - - private: - Rule(const Rule &); - Rule & operator = (const Rule &); - }; - --inline Rule::~Rule() -+inline -+Rule::Rule() -+: constraint(0), -+ action(0), -+ sort(0), -+ preContext(0) - { -- delete constraint; -- delete action; -+#ifndef NDEBUG -+ rule_idx = 0; -+#endif - } - - - struct RuleEntry - { - const Rule * rule; - - inline -@@ -91,40 +97,43 @@ bool State::empty() const - return rules_end == rules; - } - - - class SlotMap - { - public: - enum {MAX_SLOTS=64}; -- SlotMap(Segment & seg); -+ SlotMap(Segment & seg, uint8 direction); - - Slot * * begin(); - Slot * * end(); - size_t size() const; - unsigned short context() const; - void reset(Slot &, unsigned short); - - Slot * const & operator[](int n) const; - Slot * & operator [] (int); - void pushSlot(Slot * const slot); -- void collectGarbage(); -+ void collectGarbage(Slot *& aSlot); - - Slot * highwater() { return m_highwater; } - void highwater(Slot *s) { m_highwater = s; m_highpassed = false; } - bool highpassed() const { return m_highpassed; } - void highpassed(bool v) { m_highpassed = v; } - -+ uint8 dir() const { return m_dir; } -+ - Segment & segment; - private: - Slot * m_slot_map[MAX_SLOTS+1]; - unsigned short m_size; - unsigned short m_precontext; - Slot * m_highwater; -+ uint8 m_dir; - bool m_highpassed; - }; - - - class FiniteStateMachine - { - public: - enum {MAX_RULES=128}; -@@ -228,18 +237,18 @@ void FiniteStateMachine::Rules::accumula - return; - } - } - while (rre != rrend && out != lrend) { *out++ = *rre++; } - m_end = out; - } - - inline --SlotMap::SlotMap(Segment & seg) --: segment(seg), m_size(0), m_precontext(0), m_highwater(0), m_highpassed(false) -+SlotMap::SlotMap(Segment & seg, uint8 direction) -+: segment(seg), m_size(0), m_precontext(0), m_highwater(0), m_dir(direction), m_highpassed(false) - { - m_slot_map[0] = 0; - } - - inline - Slot * * SlotMap::begin() - { - return &m_slot_map[1]; // allow map to go 1 before slot_map when inserting -diff --git a/gfx/graphite2/src/inc/SegCache.h b/gfx/graphite2/src/inc/SegCache.h ---- a/gfx/graphite2/src/inc/SegCache.h -+++ b/gfx/graphite2/src/inc/SegCache.h -@@ -258,17 +258,17 @@ public: - - CLASS_NEW_DELETE - private: - void freeLevel(SegCacheStore * store, SegCachePrefixArray prefixes, size_t level); - void purgeLevel(SegCacheStore * store, SegCachePrefixArray prefixes, size_t level, - unsigned long long minAccessCount, unsigned long long oldAccessTime); - - uint16 m_prefixLength; -- uint16 m_maxCachedSegLength; -+// uint16 m_maxCachedSegLength; - size_t m_segmentCount; - SegCachePrefixArray m_prefixes; - Features m_features; - mutable unsigned long long m_totalAccessCount; - mutable unsigned long long m_totalMisses; - float m_purgeFactor; - }; - -diff --git a/gfx/graphite2/src/inc/Segment.h b/gfx/graphite2/src/inc/Segment.h ---- a/gfx/graphite2/src/inc/Segment.h -+++ b/gfx/graphite2/src/inc/Segment.h -@@ -30,29 +30,28 @@ of the License or (at your option) any l - - #include - - #include "inc/CharInfo.h" - #include "inc/Face.h" - #include "inc/FeatureVal.h" - #include "inc/GlyphCache.h" - #include "inc/GlyphFace.h" --//#include "inc/Silf.h" - #include "inc/Slot.h" - #include "inc/Position.h" - #include "inc/List.h" --#include "inc/Bidi.h" -+#include "inc/Collider.h" - - #define MAX_SEG_GROWTH_FACTOR 256 - - namespace graphite2 { - - typedef Vector FeatureList; - typedef Vector SlotRope; --typedef Vector AttributeRope; -+typedef Vector AttributeRope; - typedef Vector JustifyRope; - - #ifndef GRAPHITE2_NSEGCACHE - class SegmentScopeState; - #endif - class Font; - class Segment; - class Silf; -@@ -81,119 +80,151 @@ private: - - class Segment - { - // Prevent copying of any kind. - Segment(const Segment&); - Segment& operator=(const Segment&); - - public: -+ -+ enum { -+ SEG_INITCOLLISIONS = 1, -+ SEG_HASCOLLISIONS = 2 -+ }; -+ - unsigned int slotCount() const { return m_numGlyphs; } //one slot per glyph - void extendLength(int num) { m_numGlyphs += num; } - Position advance() const { return m_advance; } - bool runGraphite() { if (m_silf) return m_face->runGraphite(this, m_silf); else return true;}; - void chooseSilf(uint32 script) { m_silf = m_face->chooseSilf(script); } - const Silf *silf() const { return m_silf; } - unsigned int charInfoCount() const { return m_numCharinfo; } - const CharInfo *charinfo(unsigned int index) const { return index < m_numCharinfo ? m_charinfo + index : NULL; } - CharInfo *charinfo(unsigned int index) { return index < m_numCharinfo ? m_charinfo + index : NULL; } -- int8 dir() const { return m_dir; } - - Segment(unsigned int numchars, const Face* face, uint32 script, int dir); - ~Segment(); - #ifndef GRAPHITE2_NSEGCACHE - SegmentScopeState setScope(Slot * firstSlot, Slot * lastSlot, size_t subLength); - void removeScope(SegmentScopeState & state); - void append(const Segment &other); - void splice(size_t offset, size_t length, Slot * const startSlot, - Slot * endSlot, const Slot * srcSlot, - const size_t numGlyphs); - #endif -+ uint8 flags() const { return m_flags; } -+ void flags(uint8 f) { m_flags = f; } - Slot *first() { return m_first; } - void first(Slot *p) { m_first = p; } - Slot *last() { return m_last; } - void last(Slot *p) { m_last = p; } - void appendSlot(int i, int cid, int gid, int fid, size_t coffset); - Slot *newSlot(); - void freeSlot(Slot *); - SlotJustify *newJustify(); - void freeJustify(SlotJustify *aJustify); -- Position positionSlots(const Font *font, Slot *first=0, Slot *last=0); -+ Position positionSlots(const Font *font=0, Slot *first=0, Slot *last=0, bool isRtl = false, bool isFinal = true); - void associateChars(int offset, int num); - void linkClusters(Slot *first, Slot *last); - uint16 getClassGlyph(uint16 cid, uint16 offset) const { return m_silf->getClassGlyph(cid, offset); } - uint16 findClassIndex(uint16 cid, uint16 gid) const { return m_silf->findClassIndex(cid, gid); } - int addFeatures(const Features& feats) { m_feats.push_back(feats); return m_feats.size() - 1; } - uint32 getFeature(int index, uint8 findex) const { const FeatureRef* pFR=m_face->theSill().theFeatureMap().featureRef(findex); if (!pFR) return 0; else return pFR->getFeatureVal(m_feats[index]); } -+ void setFeature(int index, uint8 findex, uint32 val) { -+ const FeatureRef* pFR=m_face->theSill().theFeatureMap().featureRef(findex); -+ if (pFR) -+ { -+ if (val > pFR->maxVal()) val = pFR->maxVal(); -+ pFR->applyValToFeature(val, m_feats[index]); -+ } } -+ int8 dir() const { return m_dir; } - void dir(int8 val) { m_dir = val; } -+ bool currdir() const { return ((m_dir >> 6) ^ m_dir) & 1; } - unsigned int passBits() const { return m_passBits; } - void mergePassBits(const unsigned int val) { m_passBits &= val; } - int16 glyphAttr(uint16 gid, uint16 gattr) const { const GlyphFace * p = m_face->glyphs().glyphSafe(gid); return p ? p->attrs()[gattr] : 0; } -- int32 getGlyphMetric(Slot *iSlot, uint8 metric, uint8 attrLevel) const; -+ int32 getGlyphMetric(Slot *iSlot, uint8 metric, uint8 attrLevel, bool rtl) const; - float glyphAdvance(uint16 gid) const { return m_face->glyphs().glyph(gid)->theAdvance().x; } - const Rect &theGlyphBBoxTemporary(uint16 gid) const { return m_face->glyphs().glyph(gid)->theBBox(); } //warning value may become invalid when another glyph is accessed - Slot *findRoot(Slot *is) const { return is->attachedTo() ? findRoot(is->attachedTo()) : is; } - int numAttrs() const { return m_silf->numUser(); } - int defaultOriginal() const { return m_defaultOriginal; } - const Face * getFace() const { return m_face; } - const Features & getFeatures(unsigned int /*charIndex*/) { assert(m_feats.size() == 1); return m_feats[0]; } -- void bidiPass(uint8 aBidi, int paradir, uint8 aMirror); -+ void bidiPass(int paradir, uint8 aMirror); -+ int8 getSlotBidiClass(Slot *s) const; -+ void doMirror(uint16 aMirror); - Slot *addLineEnd(Slot *nSlot); - void delLineEnd(Slot *s); - bool hasJustification() const { return m_justifies.size() != 0; } -+ void reverseSlots(); - - bool isWhitespace(const int cid) const; -- -+ bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS); } -+ SlotCollision *collisionInfo(const Slot *s) const { return m_collisions ? m_collisions + s->index() : 0; } - CLASS_NEW_DELETE - - public: //only used by: GrSegment* makeAndInitialize(const GrFont *font, const GrFace *face, uint32 script, const FeaturesHandle& pFeats/*must not be IsNull*/, encform enc, const void* pStart, size_t nChars, int dir); - bool read_text(const Face *face, const Features* pFeats/*must not be NULL*/, gr_encform enc, const void*pStart, size_t nChars); -- void prepare_pos(const Font *font); -- void finalise(const Font *font); -+ void finalise(const Font *font, bool reverse=false); - float justify(Slot *pSlot, const Font *font, float width, enum justFlags flags, Slot *pFirst, Slot *pLast); -+ bool initCollisions(); - - private: - Position m_advance; // whole segment advance - SlotRope m_slots; // Vector of slot buffers - AttributeRope m_userAttrs; // Vector of userAttrs buffers - JustifyRope m_justifies; // Slot justification info buffers - FeatureList m_feats; // feature settings referenced by charinfos in this segment - Slot * m_freeSlots; // linked list of free slots - SlotJustify * m_freeJustifies; // Slot justification blocks free list - CharInfo * m_charinfo; // character info, one per input character -+ SlotCollision * m_collisions; - const Face * m_face; // GrFace - const Silf * m_silf; - Slot * m_first; // first slot in segment - Slot * m_last; // last slot in segment - unsigned int m_bufSize, // how big a buffer to create when need more slots - m_numGlyphs, - m_numCharinfo, // size of the array and number of input characters - m_passBits; // if bit set then skip pass - int m_defaultOriginal; // number of whitespace chars in the string - int8 m_dir; -+ uint8 m_flags; // General purpose flags - }; - -- -+inline -+int8 Segment::getSlotBidiClass(Slot *s) const -+{ -+ int8 res = s->getBidiClass(); -+ if (res != -1) return res; -+ res = int8(glyphAttr(s->gid(), m_silf->aBidi())); -+ s->setBidiClass(res); -+ return res; -+} - - inline --void Segment::finalise(const Font *font) -+void Segment::finalise(const Font *font, bool reverse) - { - if (!m_first) return; - -- m_advance = positionSlots(font); -- associateChars(0, m_numCharinfo); -+ m_advance = positionSlots(font, m_first, m_last, m_silf->dir(), true); -+ //associateChars(0, m_numCharinfo); -+ if (reverse && currdir() != (m_dir & 1)) -+ reverseSlots(); - linkClusters(m_first, m_last); - } - - inline --int32 Segment::getGlyphMetric(Slot *iSlot, uint8 metric, uint8 attrLevel) const { -+int32 Segment::getGlyphMetric(Slot *iSlot, uint8 metric, uint8 attrLevel, bool rtl) const { - if (attrLevel > 0) - { - Slot *is = findRoot(iSlot); -- return is->clusterMetric(this, metric, attrLevel); -+ return is->clusterMetric(this, metric, attrLevel, rtl); - } - else - return m_face->getGlyphMetric(iSlot->gid(), metric); - } - - inline - bool Segment::isWhitespace(const int cid) const - { -@@ -206,68 +237,12 @@ bool Segment::isWhitespace(const int cid - + (cid >= 0x2000) * (cid <= 0x200A) - + (cid == 0x2028) - + (cid == 0x2029) - + (cid == 0x202F) - + (cid == 0x205F) - + (cid == 0x3000)) != 0; - } - --//inline --//bool Segment::isWhitespace(const int cid) const --//{ --// switch (cid >> 8) --// { --// case 0x00: --// switch (cid) --// { --// case 0x09: --// case 0x0A: --// case 0x0B: --// case 0x0C: --// case 0x0D: --// case 0x20: --// return true; --// default: --// break; --// } --// break; --// case 0x16: --// return cid == 0x1680; --// break; --// case 0x18: --// return cid == 0x180E; --// break; --// case 0x20: --// switch (cid) --// { --// case 0x00: --// case 0x01: --// case 0x02: --// case 0x03: --// case 0x04: --// case 0x05: --// case 0x06: --// case 0x07: --// case 0x08: --// case 0x09: --// case 0x0A: --// case 0x28: --// case 0x29: --// case 0x2F: --// case 0x5F: --// return true --// default: --// break; --// } --// break; --// case 0x30: --// return cid == 0x3000; --// break; --// } --// --// return false; --//} -- - } // namespace graphite2 - - struct gr_segment : public graphite2::Segment {}; - -diff --git a/gfx/graphite2/src/inc/Silf.h b/gfx/graphite2/src/inc/Silf.h ---- a/gfx/graphite2/src/inc/Silf.h -+++ b/gfx/graphite2/src/inc/Silf.h -@@ -80,24 +80,26 @@ public: - uint16 getClassGlyph(uint16 cid, unsigned int index) const; - uint16 findPseudo(uint32 uid) const; - uint8 numUser() const { return m_aUser; } - uint8 aPseudo() const { return m_aPseudo; } - uint8 aBreak() const { return m_aBreak; } - uint8 aMirror() const {return m_aMirror; } - uint8 aPassBits() const { return m_aPassBits; } - uint8 aBidi() const { return m_aBidi; } -+ uint8 aCollision() const { return m_aCollision; } - uint8 substitutionPass() const { return m_sPass; } - uint8 positionPass() const { return m_pPass; } - uint8 justificationPass() const { return m_jPass; } - uint8 bidiPass() const { return m_bPass; } - uint8 numPasses() const { return m_numPasses; } - uint8 maxCompPerLig() const { return m_iMaxComp; } - uint16 numClasses() const { return m_nClass; } - byte flags() const { return m_flags; } -+ byte dir() const { return m_dir; } - uint8 numJustLevels() const { return m_numJusts; } - Justinfo *justAttrs() const { return m_justs; } - uint16 endLineGlyphid() const { return m_gEndLine; } - const gr_faceinfo *silfInfo() const { return &m_silfinfo; } - - CLASS_NEW_DELETE; - - private: -@@ -107,23 +109,20 @@ private: - Pass * m_passes; - Pseudo * m_pseudos; - uint32 * m_classOffsets; - uint16 * m_classData; - Justinfo * m_justs; - uint8 m_numPasses; - uint8 m_numJusts; - uint8 m_sPass, m_pPass, m_jPass, m_bPass, -- m_flags; -+ m_flags, m_dir; - -- uint8 m_aPseudo, m_aBreak, m_aUser, m_aBidi, m_aMirror, m_aPassBits, -- m_iMaxComp; -- uint16 m_aLig, -- m_numPseudo, -- m_nClass, -- m_nLinear, -- m_gEndLine; -+ uint8 m_aPseudo, m_aBreak, m_aUser, m_aBidi, m_aMirror, m_aPassBits, -+ m_iMaxComp, m_aCollision; -+ uint16 m_aLig, m_numPseudo, m_nClass, m_nLinear, -+ m_gEndLine; - gr_faceinfo m_silfinfo; - - void releaseBuffers() throw(); - }; - - } // namespace graphite2 -diff --git a/gfx/graphite2/src/inc/Slot.h b/gfx/graphite2/src/inc/Slot.h ---- a/gfx/graphite2/src/inc/Slot.h -+++ b/gfx/graphite2/src/inc/Slot.h -@@ -27,25 +27,23 @@ of the License or (at your option) any l - #pragma once - - #include "graphite2/Types.h" - #include "graphite2/Segment.h" - #include "inc/Main.h" - #include "inc/Font.h" - #include "inc/Position.h" - -- -- - namespace graphite2 { - - typedef gr_attrCode attrCode; - - class GlyphFace; -+class SegCacheEntry; - class Segment; --class SegCacheEntry; - - struct SlotJustify - { - static const int NUMJUSTPARAMS = 5; - - SlotJustify(const SlotJustify &); - SlotJustify & operator = (const SlotJustify &); - -@@ -70,73 +68,79 @@ class Slot - }; - - public: - struct iterator; - - unsigned short gid() const { return m_glyphid; } - Position origin() const { return m_position; } - float advance() const { return m_advance.x; } -+ void advance(Position &val) { m_advance = val; } - Position advancePos() const { return m_advance; } - int before() const { return m_before; } - int after() const { return m_after; } - uint32 index() const { return m_index; } - void index(uint32 val) { m_index = val; } - -- Slot(); -+ Slot(int16 *m_userAttr = NULL); - void set(const Slot & slot, int charOffset, size_t numUserAttr, size_t justLevels, size_t numChars); - Slot *next() const { return m_next; } - void next(Slot *s) { m_next = s; } - Slot *prev() const { return m_prev; } - void prev(Slot *s) { m_prev = s; } - uint16 glyph() const { return m_realglyphid ? m_realglyphid : m_glyphid; } - void setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph = NULL); - void setRealGid(uint16 realGid) { m_realglyphid = realGid; } - void adjKern(const Position &pos) { m_shift = m_shift + pos; m_advance = m_advance + pos; } - void origin(const Position &pos) { m_position = pos + m_shift; } - void originate(int ind) { m_original = ind; } - int original() const { return m_original; } - void before(int ind) { m_before = ind; } - void after(int ind) { m_after = ind; } - bool isBase() const { return (!m_parent); } - void update(int numSlots, int numCharInfo, Position &relpos); -- Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin); -+ Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal); - bool isDeleted() const { return (m_flags & DELETED) ? true : false; } - void markDeleted(bool state) { if (state) m_flags |= DELETED; else m_flags &= ~DELETED; } - bool isCopied() const { return (m_flags & COPIED) ? true : false; } - void markCopied(bool state) { if (state) m_flags |= COPIED; else m_flags &= ~COPIED; } - bool isPositioned() const { return (m_flags & POSITIONED) ? true : false; } - void markPositioned(bool state) { if (state) m_flags |= POSITIONED; else m_flags &= ~POSITIONED; } - bool isInsertBefore() const { return !(m_flags & INSERTED); } - uint8 getBidiLevel() const { return m_bidiLevel; } - void setBidiLevel(uint8 level) { m_bidiLevel = level; } -+ int8 getBidiClass(const Segment *seg); - int8 getBidiClass() const { return m_bidiCls; } - void setBidiClass(int8 cls) { m_bidiCls = cls; } - int16 *userAttrs() const { return m_userAttr; } - void userAttrs(int16 *p) { m_userAttr = p; } - void markInsertBefore(bool state) { if (!state) m_flags |= INSERTED; else m_flags &= ~INSERTED; } - void setAttr(Segment* seg, attrCode ind, uint8 subindex, int16 val, const SlotMap & map); - int getAttr(const Segment *seg, attrCode ind, uint8 subindex) const; - int getJustify(const Segment *seg, uint8 level, uint8 subindex) const; - void setJustify(Segment *seg, uint8 level, uint8 subindex, int16 value); - bool isLocalJustify() const { return m_justs != NULL; }; - void attachTo(Slot *ap) { m_parent = ap; } - Slot *attachedTo() const { return m_parent; } - Position attachOffset() const { return m_attach - m_with; } - Slot* firstChild() const { return m_child; } -+ void firstChild(Slot *ap) { m_child = ap; } - bool child(Slot *ap); - Slot* nextSibling() const { return m_sibling; } -+ void nextSibling(Slot *ap) { m_sibling = ap; } - bool sibling(Slot *ap); - bool removeChild(Slot *ap); - bool removeSibling(Slot *ap); -- int32 clusterMetric(const Segment* seg, uint8 metric, uint8 attrLevel); -+ int32 clusterMetric(const Segment* seg, uint8 metric, uint8 attrLevel, bool rtl); - void positionShift(Position a) { m_position += a; } - void floodShift(Position adj); - float just() const { return m_just; } - void just(float j) { m_just = j; } -+ Slot *nextInCluster(const Slot *s) const; -+ bool isChildOf(const Slot *base) const; - - CLASS_NEW_DELETE - - private: - Slot *m_next; // linked list of slots - Slot *m_prev; - unsigned short m_glyphid; // glyph id - uint16 m_realglyphid; -diff --git a/gfx/graphite2/src/inc/Sparse.h b/gfx/graphite2/src/inc/Sparse.h ---- a/gfx/graphite2/src/inc/Sparse.h -+++ b/gfx/graphite2/src/inc/Sparse.h -@@ -51,17 +51,17 @@ private: - static const unsigned char SIZEOF_CHUNK = (sizeof(mask_t) - sizeof(key_type))*8; - - struct chunk - { - mask_t mask:SIZEOF_CHUNK; - key_type offset; - }; - -- static chunk empty_chunk; -+ static const chunk empty_chunk; - sparse(const sparse &); - sparse & operator = (const sparse &); - - public: - template - sparse(I first, const I last); - sparse() throw(); - ~sparse() throw(); -@@ -83,17 +83,17 @@ private: - } m_array; - key_type m_nchunks; - }; - - - inline - sparse::sparse() throw() : m_nchunks(0) - { -- m_array.map = &empty_chunk; -+ m_array.map = const_cast(&empty_chunk); - } - - - template - sparse::sparse(I attr, const I last) - : m_nchunks(0) - { - m_array.map = 0; -@@ -108,30 +108,31 @@ sparse::sparse(I attr, const I last) - if (v.first <= lastkey) { m_nchunks = 0; return; } - - lastkey = v.first; - const key_type k = v.first / SIZEOF_CHUNK; - if (k >= m_nchunks) m_nchunks = k+1; - } - if (m_nchunks == 0) - { -- m_array.map=&empty_chunk; -+ m_array.map=const_cast(&empty_chunk); - return; - } - - m_array.values = grzeroalloc((m_nchunks*sizeof(chunk) + sizeof(mapped_type)-1) - / sizeof(mapped_type) - + n_values); - - if (m_array.values == 0) - { - free(m_array.values); m_array.map=0; - return; - } - -+ // coverity[forward_null : FALSE] Since m_array is union and m_array.values is not NULL - chunk * ci = m_array.map; - ci->offset = (m_nchunks*sizeof(chunk) + sizeof(mapped_type)-1)/sizeof(mapped_type); - mapped_type * vi = m_array.values + ci->offset; - for (; attr != last; ++attr, ++vi) - { - const typename std::iterator_traits::value_type v = *attr; - if (v.second == 0) { --vi; continue; } - -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); -+ bool CheckCmapSubtable4(const void * pCmap31, size_t table_len /*, 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); -+ bool CheckCmapSubtable12(const void *pCmap310, size_t table_len /*, 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/UtfCodec.h b/gfx/graphite2/src/inc/UtfCodec.h ---- a/gfx/graphite2/src/inc/UtfCodec.h -+++ b/gfx/graphite2/src/inc/UtfCodec.h -@@ -126,19 +126,22 @@ public: - static uchar_t get(const codeunit_t * cp, int8 & l) throw() - { - const int8 seq_sz = sz_lut[*cp >> 4]; - uchar_t u = *cp & mask_lut[seq_sz]; - l = 1; - bool toolong = false; - - switch(seq_sz) { -- case 4: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong = (u < 0x10); // no break -- case 3: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong |= (u < 0x20); // no break -- case 2: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong |= (u < 0x80); // no break -+ case 4: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong = (u < 0x10); GR_FALLTHROUGH; -+ // no break -+ case 3: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong |= (u < 0x20); GR_FALLTHROUGH; -+ // no break -+ case 2: u <<= 6; u |= *++cp & 0x3F; if (*cp >> 6 != 2) break; ++l; toolong |= (u < 0x80); GR_FALLTHROUGH; -+ // no break - case 1: break; - case 0: l = -1; return 0xFFFD; - } - - if (l != seq_sz || toolong) - { - l = -l; - return 0xFFFD; -diff --git a/gfx/graphite2/src/inc/bits.h b/gfx/graphite2/src/inc/bits.h ---- a/gfx/graphite2/src/inc/bits.h -+++ b/gfx/graphite2/src/inc/bits.h -@@ -24,25 +24,73 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - #pragma once - - namespace graphite2 - { - -+ -+#if defined GRAPHITE2_BUILTINS && (defined __GNUC__ || defined __clang__) -+ - template - inline unsigned int bit_set_count(T v) - { -- v = v - ((v >> 1) & T(~T(0)/3)); // temp -- v = (v & T(~T(0)/15*3)) + ((v >> 2) & T(~T(0)/15*3)); // temp -- v = (v + (v >> 4)) & T(~T(0)/255*15); // temp -- return (T)(v * T(~T(0)/255)) >> (sizeof(T)-1)*8; // count -+ return __builtin_popcount(v); - } - -+template<> -+inline unsigned int bit_set_count(int16 v) -+{ -+ return __builtin_popcount(static_cast(v)); -+} -+ -+template<> -+inline unsigned int bit_set_count(int8 v) -+{ -+ return __builtin_popcount(static_cast(v)); -+} -+ -+template<> -+inline unsigned int bit_set_count(unsigned long v) -+{ -+ return __builtin_popcountl(v); -+} -+ -+template<> -+inline unsigned int bit_set_count(signed long v) -+{ -+ return __builtin_popcountl(v); -+} -+ -+template<> -+inline unsigned int bit_set_count(unsigned long long v) -+{ -+ return __builtin_popcountll(v); -+} -+ -+template<> -+inline unsigned int bit_set_count(signed long long v) -+{ -+ return __builtin_popcountll(v); -+} -+#else -+ -+template -+inline unsigned int bit_set_count(T v) -+{ -+ v = v - ((v >> 1) & T(~(0UL)/3)); // temp -+ v = (v & T(~(0UL)/15*3)) + ((v >> 2) & T(~(0UL)/15*3)); // temp -+ v = (v + (v >> 4)) & T(~(0UL)/255*15); // temp -+ return (T)(v * T(~(0UL)/255)) >> (sizeof(T)-1)*8; // count -+} -+ -+#endif -+ - - template - inline unsigned long _mask_over_val(unsigned long v) - { - v = _mask_over_val(v); - v |= v >> S*4; - return v; - } -@@ -82,9 +130,17 @@ inline T has_zero(const T x) - - template - inline T zero_bytes(const T x, unsigned char n) - { - const T t = T(~T(0)/255*n); - return T((has_zero(x^t) >> 7)*n); - } - -+#if 0 -+inline float float_round(float x, uint32 m) -+{ -+ *reinterpret_cast(&x) &= m; -+ return *reinterpret_cast(&x); - } -+#endif -+ -+} -diff --git a/gfx/graphite2/src/inc/debug.h b/gfx/graphite2/src/inc/debug.h ---- a/gfx/graphite2/src/inc/debug.h -+++ b/gfx/graphite2/src/inc/debug.h -@@ -49,31 +49,39 @@ struct objectid - { - char name[16]; - objectid(const dslot &) throw(); - objectid(const Segment * const p) throw(); - }; - - - json & operator << (json & j, const Position &) throw(); -+json & operator << (json & j, const Rect &) throw(); - json & operator << (json & j, const CharInfo &) throw(); - json & operator << (json & j, const dslot &) throw(); - json & operator << (json & j, const objectid &) throw(); - json & operator << (json & j, const telemetry &) throw(); - - - - inline - json & operator << (json & j, const Position & p) throw() - { - return j << json::flat << json::array << p.x << p.y << json::close; - } - - - inline -+json & operator << (json & j, const Rect & p) throw() -+{ -+ return j << json::flat << json::array << p.bl.x << p.bl.y << p.tr.x << p.tr.y << json::close; -+} -+ -+ -+inline - json & operator << (json & j, const objectid & sid) throw() - { - return j << sid.name; - } - - - } // namespace graphite2 - -diff --git a/gfx/graphite2/src/inc/json.h b/gfx/graphite2/src/inc/json.h ---- a/gfx/graphite2/src/inc/json.h -+++ b/gfx/graphite2/src/inc/json.h -@@ -24,19 +24,21 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - // JSON pretty printer for graphite font debug output logging. - // Created on: 15 Dec 2011 - // Author: Tim Eves - - #pragma once -+ - #include "inc/Main.h" - #include --#include -+#include -+#include "inc/List.h" - - namespace graphite2 { - - class json - { - // Prevent copying - json(const json &); - json & operator = (const json &); -@@ -44,31 +46,36 @@ class json - typedef void (*_context_t)(json &); - class _null_t {}; - - FILE * const _stream; - char _contexts[128], // context stack - * _context, // current context (top of stack) - * _flatten; // if !0 points to context above which - // pretty printed output should occur. -+ Vector _env; - - void context(const char current) throw(); - void indent(const int d=0) throw(); - void push_context(const char, const char) throw(); - void pop_context() throw(); - - public: - class closer; - - typedef const char * string; - typedef double number; - typedef long signed int integer; - typedef bool boolean; - static const _null_t null; - -+ void setenv(unsigned int index, void *val) { _env.reserve(index + 1); if (index >= _env.size()) _env.insert(_env.end(), _env.size() - index + 1, 0); _env[index] = val; } -+ void *getenv(unsigned int index) const { return _env[index]; } -+ const Vector &getenvs() const { return _env; } -+ - static void flat(json &) throw(); - static void close(json &) throw(); - static void object(json &) throw(); - static void array(json &) throw(); - static void item(json &) throw(); - - json(FILE * stream) throw(); - ~json() throw (); -diff --git a/gfx/graphite2/src/inc/opcode_table.h b/gfx/graphite2/src/inc/opcode_table.h ---- a/gfx/graphite2/src/inc/opcode_table.h -+++ b/gfx/graphite2/src/inc/opcode_table.h -@@ -38,17 +38,17 @@ of the License or (at your option) any l - // sattrnum - 0 .. 29 (gr_slatJWidth) , 55 (gr_slatUserDefn) - // attrid - 0 .. silf.numUser() where sattrnum == 55; 0..silf.m_iMaxComp where sattrnum == 15 otherwise 0 - // gattrnum - 0 .. face->getGlyphFaceCache->numAttrs() - // gmetric - 0 .. 11 (kgmetDescent) - // featidx - 0 .. face.numFeatures() - // level - any byte - static const opcode_t opcode_table[] = - { -- {{do2(nop)}, 0, "NOP"}, -+ {{do2(nop)}, 0, "NOP"}, - - {{do2(push_byte)}, 1, "PUSH_BYTE"}, // number - {{do2(push_byte_u)}, 1, "PUSH_BYTE_U"}, // number - {{do2(push_short)}, 2, "PUSH_SHORT"}, // number number - {{do2(push_short_u)}, 2, "PUSH_SHORT_U"}, // number number - {{do2(push_long)}, 4, "PUSH_LONG"}, // number number number number - - {{do2(add)}, 0, "ADD"}, -@@ -109,12 +109,17 @@ static const opcode_t opcode_table[] = - {{do2(push_proc_state)}, 1, "PUSH_PROC_STATE"}, // dummy - {{do2(push_version)}, 0, "PUSH_VERSION"}, - {{do_(put_subs), NILOP}, 5, "PUT_SUBS"}, // slot input_class input_class output_class output_class - {{NILOP,NILOP}, 0, "PUT_SUBS2"}, - {{NILOP,NILOP}, 0, "PUT_SUBS3"}, - {{do_(put_glyph), NILOP}, 2, "PUT_GLYPH"}, // output_class output_class - {{do2(push_glyph_attr)}, 3, "PUSH_GLYPH_ATTR"}, // gattrnum gattrnum slot - {{do2(push_att_to_glyph_attr)}, 3, "PUSH_ATT_TO_GLYPH_ATTR"}, // gattrnum gattrnum slot -+ {{do2(bor)}, 0, "BITOR"}, -+ {{do2(band)}, 0, "BITAND"}, -+ {{do2(bnot)}, 0, "BITNOT"}, // 0x40 -+ {{do2(setbits)}, 4, "BITSET"}, -+ {{do2(set_feat)}, 2, "SET_FEAT"}, - // private opcodes for internal use only, comes after all other on disk opcodes. - {{do_(temp_copy), NILOP}, 0, "TEMP_COPY"} - }; - -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 -@@ -56,16 +56,17 @@ of the License or (at your option) any l - // pushed. - // seg = A reference to the Segment this code is running over. - // is = The current slot index - // isb = The original base slot index at the start of this rule - // isf = The first positioned slot - // isl = The last positioned slot - // ip = The current instruction pointer - // endPos = Position of advance of last cluster -+// dir = writing system directionality of the font - - - // #define NOT_IMPLEMENTED assert(false) - #define NOT_IMPLEMENTED - - #define binop(op) const int32 a = pop(); *sp = int32(*sp) op a - #define use_params(n) dp += n - -@@ -236,30 +237,34 @@ STARTOP(put_subs_8bit_obs) - index = seg.findClassIndex(input_class, slot->gid()); - is->setGlyph(&seg, seg.getClassGlyph(output_class, index)); - } - ENDOP - - STARTOP(put_copy) - declare_params(1); - const int slot_ref = int8(*param); -- if (is && (slot_ref ||is != *map)) -+ if (is) - { -- int16 *tempUserAttrs = is->userAttrs(); - slotref ref = slotat(slot_ref); -- if (ref) -+ if (ref && ref != is) - { -- memcpy(tempUserAttrs, ref->userAttrs(), seg.numAttrs() * sizeof(uint16)); -+ int16 *tempUserAttrs = is->userAttrs(); -+ if (is->attachedTo() || is->firstChild()) DIE - Slot *prev = is->prev(); - Slot *next = is->next(); -- memcpy(is, slotat(slot_ref), sizeof(Slot)); -+ memcpy(tempUserAttrs, ref->userAttrs(), seg.numAttrs() * sizeof(uint16)); -+ memcpy(is, ref, sizeof(Slot)); -+ is->firstChild(NULL); -+ is->nextSibling(NULL); - is->userAttrs(tempUserAttrs); - is->next(next); - is->prev(prev); -- is->sibling(NULL); -+ if (is->attachedTo()) -+ is->attachedTo()->child(is); - } - is->markCopied(false); - is->markDeleted(false); - } - ENDOP - - STARTOP(insert) - Slot *newSlot = seg.newSlot(); -@@ -304,24 +309,26 @@ STARTOP(insert) - { - newSlot->originate(newSlot->prev()->original()); - newSlot->after(newSlot->prev()->after()); - } - else - { - newSlot->originate(seg.defaultOriginal()); - } -+ if (is == smap.highwater()) -+ smap.highpassed(false); - is = newSlot; - seg.extendLength(1); - if (map != &smap[-1]) - --map; - ENDOP - - STARTOP(delete_) -- if (!is) DIE -+ if (!is || is->isDeleted()) DIE - is->markDeleted(true); - if (is->prev()) - is->prev()->next(is->next()); - else - seg.first(is->next()); - - if (is->next()) - is->next()->prev(is->prev()); -@@ -380,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)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - 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)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - 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); -@@ -422,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)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - flags |= POSITIONED; - } - slotref slot = slotat(slot_ref); - if (slot) - { - int res = slot->getAttr(&seg, slat, 0); - push(res); - } -@@ -449,17 +456,17 @@ ENDOP - - STARTOP(push_glyph_metric) - declare_params(3); - const unsigned int glyph_attr = uint8(param[0]); - const int slot_ref = int8(param[1]); - const signed int attr_level = uint8(param[2]); - slotref slot = slotat(slot_ref); - if (slot) -- push(seg.getGlyphMetric(slot, glyph_attr, attr_level)); -+ push(seg.getGlyphMetric(slot, glyph_attr, attr_level, dir)); - ENDOP - - STARTOP(push_feat) - declare_params(2); - const unsigned int feat = uint8(param[0]); - const int slot_ref = int8(param[1]); - slotref slot = slotat(slot_ref); - if (slot) -@@ -487,28 +494,28 @@ STARTOP(push_att_to_glyph_metric) - const unsigned int glyph_attr = uint8(param[0]); - const int slot_ref = int8(param[1]); - const signed int attr_level = uint8(param[2]); - slotref slot = slotat(slot_ref); - if (slot) - { - slotref att = slot->attachedTo(); - if (att) slot = att; -- push(int32(seg.getGlyphMetric(slot, glyph_attr, attr_level))); -+ push(int32(seg.getGlyphMetric(slot, glyph_attr, attr_level, dir))); - } - 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)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - flags |= POSITIONED; - } - slotref slot = slotat(slot_ref); - if (slot) - { - int res = slot->getAttr(&seg, slat, idx); - push(res); - } -@@ -543,31 +550,31 @@ ENDOP - - STARTOP(iattr_add) - declare_params(2); - const attrCode slat = attrCode(uint8(param[0])); - const size_t idx = uint8(param[1]); - const int val = int(pop()); - if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0) - { -- seg.positionSlots(0, *smap.begin(), *(smap.end()-1)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - flags |= POSITIONED; - } - int res = is->getAttr(&seg, slat, idx); - is->setAttr(&seg, slat, idx, val + res, smap); - ENDOP - - STARTOP(iattr_sub) - declare_params(2); - const attrCode slat = attrCode(uint8(param[0])); - const size_t idx = uint8(param[1]); - const int val = int(pop()); - if ((slat == gr_slatPosX || slat == gr_slatPosY) && (flags & POSITIONED) == 0) - { -- seg.positionSlots(0, *smap.begin(), *(smap.end()-1)); -+ seg.positionSlots(0, *smap.begin(), *(smap.end()-1), dir); - flags |= POSITIONED; - } - int res = is->getAttr(&seg, slat, idx); - is->setAttr(&seg, slat, idx, res - val, smap); - ENDOP - - STARTOP(push_proc_state) - use_params(1); -@@ -631,16 +638,50 @@ STARTOP(push_att_to_glyph_attr) - slotref att = slot->attachedTo(); - if (att) slot = att; - push(int32(seg.glyphAttr(slot->gid(), glyph_attr))); - } - ENDOP - - STARTOP(temp_copy) - slotref newSlot = seg.newSlot(); -- if (!newSlot) DIE; -+ if (!newSlot || !is) DIE; - int16 *tempUserAttrs = newSlot->userAttrs(); - memcpy(newSlot, is, sizeof(Slot)); - memcpy(tempUserAttrs, is->userAttrs(), seg.numAttrs() * sizeof(uint16)); - newSlot->userAttrs(tempUserAttrs); - newSlot->markCopied(true); - *map = newSlot; - ENDOP -+ -+STARTOP(band) -+ binop(&); -+ENDOP -+ -+STARTOP(bor) -+ binop(|); -+ENDOP -+ -+STARTOP(bnot) -+ *sp = ~*sp; -+ENDOP -+ -+STARTOP(setbits) -+ declare_params(4); -+ const uint16 m = uint16(param[0]) << 8 -+ | uint8(param[1]); -+ const uint16 v = uint16(param[2]) << 8 -+ | uint8(param[3]); -+ *sp = ((*sp) & ~m) | v; -+ENDOP -+ -+STARTOP(set_feat) -+ declare_params(2); -+ const unsigned int feat = uint8(param[0]); -+ const int slot_ref = int8(param[1]); -+ slotref slot = slotat(slot_ref); -+ if (slot) -+ { -+ uint8 fid = seg.charinfo(slot->original())->fid(); -+ seg.setFeature(fid, feat, pop()); -+ } -+ENDOP -+ -diff --git a/gfx/graphite2/src/json.cpp b/gfx/graphite2/src/json.cpp ---- a/gfx/graphite2/src/json.cpp -+++ b/gfx/graphite2/src/json.cpp -@@ -24,17 +24,18 @@ Mozilla Public License (http://mozilla.o - License, as published by the Free Software Foundation, either version 2 - of the License or (at your option) any later version. - */ - // JSON debug logging - // Author: Tim Eves - - #if !defined GRAPHITE2_NTRACING - --#include -+#include -+#include - #include "inc/json.h" - - using namespace graphite2; - - namespace - { - enum - { -@@ -111,16 +112,29 @@ json & json::operator << (json::string s - const char ctxt = _context[-1] == obj ? *_context == member ? seq : member : seq; - context(ctxt); - fprintf(_stream, "\"%s\"", s); - if (ctxt == member) fputc(' ', _stream); - - return *this; - } - --json & json::operator << (json::number f) throw() { context(seq); fprintf(_stream, "%g", f); return *this; } -+json & json::operator << (json::number f) throw() -+{ -+ context(seq); -+ if (std::numeric_limits::infinity() == f) -+ fputs("Infinity", _stream); -+ else if (-std::numeric_limits::infinity() == f) -+ fputs("-Infinity", _stream); -+ else if (std::numeric_limits::quiet_NaN() == f || -+ std::numeric_limits::signaling_NaN() == f) -+ fputs("NaN", _stream); -+ else -+ fprintf(_stream, "%g", f); -+ return *this; -+} - json & json::operator << (json::integer d) throw() { context(seq); fprintf(_stream, "%ld", d); return *this; } - json & json::operator << (long unsigned d) throw() { context(seq); fprintf(_stream, "%ld", d); return *this; } - json & json::operator << (json::boolean b) throw() { context(seq); fputs(b ? "true" : "false", _stream); return *this; } - json & json::operator << (json::_null_t) throw() { context(seq); fputs("null",_stream); return *this; } - - #endif - -diff --git a/gfx/graphite2/src/moz.build b/gfx/graphite2/src/moz.build ---- a/gfx/graphite2/src/moz.build -+++ b/gfx/graphite2/src/moz.build -@@ -18,37 +18,40 @@ if CONFIG['GNU_CC']: - ] - else: - UNIFIED_SOURCES += [ - 'call_machine.cpp' - ] - - # This should contain all of the _SOURCES from files.mk, except *_machine.cpp - UNIFIED_SOURCES += [ -- 'Bidi.cpp', - 'CachedFace.cpp', - 'CmapCache.cpp', - 'Code.cpp', -+ 'Collider.cpp', -+ 'Decompressor.cpp', - 'Face.cpp', - 'FeatureMap.cpp', - 'FileFace.cpp', - 'Font.cpp', - 'GlyphCache.cpp', - 'GlyphFace.cpp', - 'gr_char_info.cpp', - 'gr_face.cpp', - 'gr_features.cpp', - 'gr_font.cpp', - 'gr_logging.cpp', - 'gr_segment.cpp', - 'gr_slot.cpp', -+ 'Intervals.cpp', - 'json.cpp', - 'Justifier.cpp', - 'NameTable.cpp', - 'Pass.cpp', -+ 'Position.cpp', - 'SegCache.cpp', - 'SegCacheEntry.cpp', - 'SegCacheStore.cpp', - 'Segment.cpp', - 'Silf.cpp', - 'Slot.cpp', - 'Sparse.cpp', - 'TtfUtil.cpp', - -- cgit 1.4.1 From 42aa73b337c3b872514e2fb9454932fcee20d99a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 7 Apr 2016 09:51:21 +0300 Subject: gnu: offlineimap: Add sqlite support. * gnu/packages/mail.scm (offlineimap)[inputs]: Add python2-pysqlite. [arguments]: Wrap binary with python2-pysqlite's path. --- gnu/packages/mail.scm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7bcb93cbc6..e5eefc7c4c 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -302,11 +302,21 @@ and corrections. It is based on a Bayesian filter.") "0462mal2fxvavxhwjk1a6vsnspx07yniifa687dwg46aplqznin4")))) (build-system python-build-system) (native-inputs `(("python" ,python-2))) + (inputs `(("python2-pysqlite" ,python2-pysqlite))) (arguments ;; The setup.py script expects python-2. `(#:python ,python-2 ;; Tests require a modifiable IMAP account. - #:tests? #f)) + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-binary + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/offlineimap"))) + (wrap-program bin + `("PYTHONPATH" ":" prefix (,(getenv "PYTHONPATH")))) + #t)))))) (home-page "http://www.offlineimap.org") (synopsis "Sync emails between two repositories") (description -- cgit 1.4.1 From 5b9fe59fbe322a4f4662f5df1f64bd7a027d11a3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 10:33:59 +0300 Subject: gnu: livestreamer: Remove extra inputs. * gnu/packages/video.scm (livestreamer)[native-inputs]: Remove python-setuptools. [propagated-inputs]: Remove python-singledispatch. --- gnu/packages/video.scm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8f93950e97..01422e9691 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1205,11 +1205,8 @@ and custom quantization matrices.") (build-system python-build-system) (arguments '(#:tests? #f)) ; tests rely on external web servers - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-singledispatch" ,python-singledispatch))) + `(("python-requests" ,python-requests))) (synopsis "Internet video stream viewer") (description "Livestreamer is a command-line utility that extracts streams from various services and pipes them into a video playing application.") -- cgit 1.4.1 From 6a308947b459ba73204aab428e3894af04432d2f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 10:55:28 +0300 Subject: gnu: python-requests: Rearrange inputs. * gnu/packages/python.scm (python-requests)[propagated-inputs]: Move python-py, python-pytest, python-pytest-cov, python-wheel from here... [native-inputs]: ... to here. --- gnu/packages/python.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 785da66d51..0eb9dd72bc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2208,9 +2208,8 @@ installed with a newer @code{pip} or with wheel's own command line utility.") "0zsqrzlybf25xscgi7ja4s48y2abf9wvjkn47wh984qgs1fq2xy5")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools))) - (propagated-inputs - `(("python-py" ,python-py) + `(("python-setuptools" ,python-setuptools) + ("python-py" ,python-py) ("python-pytest" ,python-pytest) ("python-pytest-cov" ,python-pytest-cov) ("python-wheel" ,python-wheel))) -- cgit 1.4.1 From 623cd1ab188eaec176d1fc95f73d0d8f25850250 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 11:17:55 +0300 Subject: gnu: youtube-dl: Update to 2016.04.06. * gnu/packages/video.scm (youtube-dl): Update to 2016.04.06. [native-inputs]: Remove python-setuptools. --- gnu/packages/video.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 01422e9691..d2f9cb1930 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -809,7 +809,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2016.03.01") + (version "2016.04.06") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -817,9 +817,8 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "0w2dy54rnsi8fbzpnf07lpn3zzv5lhdfscanld4ai0rrrzmrl3zw")))) + "1kdrjwrn0x1wmvansvd2222gfqnld4zdihf2jwnz36112r1p8nhi")))) (build-system python-build-system) - (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") (arguments ;; The problem here is that the directory for the man page and completion -- cgit 1.4.1 From 81b9bbbd578262986ab66c3454e9671948edc571 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 11:57:11 +0300 Subject: gnu: python-paramiko: Update to 1.16.0. * gnu/packages/python.scm (python-paramiko): Update to 1.16.0. --- gnu/packages/python.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0eb9dd72bc..94d630a9ff 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -453,17 +453,14 @@ John the Ripper).") (define-public python-paramiko (package (name "python-paramiko") - (version "1.15.2") + (version "1.16.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/paramiko/paramiko-" - version - ".tar.gz")) + (uri (pypi-uri "paramiko" version)) (sha256 (base32 - "0mbfzm9zlrz6mla9xakrm8wkll3x035f9rj3c5pbgjzfldqscmjg")))) + "14k8z7ndc3zk5xivnm4d8lncchx475ll5izpf8vmfbq7rp9yp5rj")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) -- cgit 1.4.1 From 286f1bac9e423f468b8b8fe468c2612ca56ae10a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 12:13:02 +0300 Subject: gnu: python-httplib2: Update to 0.9.2. * gnu/packages/python.scm (python-httplib2): Update to 0.9.2. --- gnu/packages/python.scm | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 94d630a9ff..04dafa5e36 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -483,22 +483,18 @@ Python interface around SSH networking concepts.") (define-public python-httplib2 (package (name "python-httplib2") - (version "0.9.1") + (version "0.9.2") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/h/httplib2/httplib2-" - version - ".tar.gz")) + (uri (pypi-uri "httplib2" version)) (sha256 (base32 - "1xc3clbrf77r0600kja71j7hk1218sjiq0gfmb8vjdajka8kjqxw")))) + "126rsryvw9vhbf3qmsfw9lf4l4xm2srmgs439lgma4cpag4s3ay3")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) - (home-page - "https://github.com/jcgregorio/httplib2") + (home-page "https://github.com/jcgregorio/httplib2") (synopsis "Comprehensive HTTP client library") (description "A comprehensive HTTP client library supporting many features left out of -- cgit 1.4.1 From db5567f75394566b6d006e0802a2adde442a1a66 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 12:16:44 +0300 Subject: gnu: python-ccm: Update to 2.1.6. * gnu/packages/python.scm (python-ccm): Update to 2.1.6. --- gnu/packages/python.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 04dafa5e36..eeb06698a8 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -541,17 +541,14 @@ making them easy to handle and incorporate into other protocols.") (define-public python-ccm (package (name "python-ccm") - (version "2.0.4.1") + (version "2.1.6") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/c/ccm/ccm-" - version - ".tar.gz")) + (uri (pypi-uri "ccm" version)) (sha256 (base32 - "199jw221albs2iv6xczczq88fxnh0aw8hzmys8qkbzkd99dssng9")))) + "177dfxsmk3k4cih6fh6v8d91bh4nqx7ns6pc07w7m7i3cvdx3c8n")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) -- cgit 1.4.1 From 3f37db6b0ee146be2e03f51387453ccf09a07e11 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 12:21:51 +0300 Subject: gnu: python-babel: Update to 2.3.2. * gnu/packages/python.scm (python-babel): Update to 2.3.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index eeb06698a8..f473ea1b17 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -591,14 +591,14 @@ using Python 2.4 or higher and provides access to the Olson timezone database.") (define-public python-babel (package (name "python-babel") - (version "2.1.1") + (version "2.3.2") (source (origin (method url-fetch) (uri (pypi-uri "Babel" version)) (sha256 (base32 - "0j2jgfzj1a2m39pm2qc36fzr7a6p5ybwndi0xdzhi2p8zw7dbdkz")))) + "0k43pi0p1dwpds2w0km3fw92wixzxv2vw7p09capxmjz5cfh23lw")))) (build-system python-build-system) (inputs `(("python-pytz" ,python-pytz) -- cgit 1.4.1 From 61c9babb6e93bf970689b7db076b0ec8df0b6cf2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 12:27:42 +0300 Subject: gnu: python-pytz: Update to 2016.3. * gnu/packages/python.scm (python-pytz): Update to 2016.3. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f473ea1b17..c4d027f0a3 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -567,14 +567,14 @@ Cassandra cluster on localhost.") (define-public python-pytz (package (name "python-pytz") - (version "2015.7") + (version "2016.3") (source (origin (method url-fetch) - (uri (pypi-uri "pytz" version)) + (uri (pypi-uri "pytz" version ".tar.bz2")) (sha256 (base32 - "1spgdfp1ssya7v3kww7zp71xpj437skpqazcvqr3kr1p1brnw9lr")))) + "1mjmrkk4vc5xzppw7fm0pli1nnbj57cvqv7jjv5whcmccyhxz4y1")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no test target (home-page "http://pythonhosted.org/pytz") -- cgit 1.4.1 From fe147c414353d924b300e85835373de5c186da63 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 17:12:31 +0300 Subject: gnu: python-h5py: Update to 2.6.0. * gnu/packages/python.scm (python-h5py): Update to 2.6.0. [inputs]: Add python-six. [native-inputs]: Add python-pkgconfig. [properties]: Define python2-h5py. --- gnu/packages/python.scm | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c4d027f0a3..fab743ec4b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -650,15 +650,14 @@ and verifies that it matches the intended target hostname.") (define-public python-h5py (package (name "python-h5py") - (version "2.4.0") + (version "2.6.0") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/h/h5py/h5py-" - version ".tar.gz")) + (uri (pypi-uri "h5py" version)) (sha256 (base32 - "0q4f9l8grf6pwp64xbv8bmyxx416s7h4522nnxac056ap3savbps")))) + "0df46dg7i7xfking9lp221bfm8dbl974yvlrbi1w7r6m61ac7bxj")))) (build-system python-build-system) (arguments `(#:tests? #f ; no test target @@ -679,9 +678,11 @@ and verifies that it matches the intended target hostname.") (propagated-inputs `(("python-numpy" ,python-numpy))) (inputs - `(("hdf5" ,hdf5))) + `(("hdf5" ,hdf5) + ("python-six" ,python-six))) (native-inputs - `(("python-cython" ,python-cython))) + `(("python-cython" ,python-cython) + ("python-pkgconfig" ,python-pkgconfig))) (home-page "http://www.h5py.org/") (synopsis "Read and write HDF5 files from Python") (description @@ -690,16 +691,11 @@ HDF5 library from Python. The low-level interface is intended to be a complete wrapping of the HDF5 API, while the high-level component supports access to HDF5 files, datasets and groups using established Python and NumPy concepts.") - (license bsd-3))) + (license bsd-3) + (properties `((python2-variant . ,(delay python2-h5py)))))) (define-public python2-h5py - (let ((h5py (package-with-python2 python-h5py))) - (package (inherit h5py) - (propagated-inputs - `(("python2-numpy" ,python2-numpy) - ,@(alist-delete - "python-numpy" - (package-propagated-inputs h5py))))))) + (package-with-python2 (strip-python2-variant python-h5py))) (define-public python-lockfile (package -- cgit 1.4.1 From 13f3ff352237e58a91c8aa3b6fe2ddb487a1235e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 18:02:32 +0300 Subject: gnu: python-keyring: Update to 8.7. * gnu/packages/python.scm (python-keyring): Update to 8.7. [native-inputs]: Remove python-setuptools, python-mock. [properties]: Define python2-keyring. (python2-keyring): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index fab743ec4b..72559ec0ee 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -835,19 +835,17 @@ etc.). The package is structured to make adding new modules easy.") (define-public python-keyring (package (name "python-keyring") - (version "5.7.1") + (version "8.7") (source (origin (method url-fetch) (uri (pypi-uri "keyring" version)) (sha256 (base32 - "1h7a1r9ick7wdd0xb5p63413nvjadna2xawrsvmklsl5ddhm5wrx")))) + "0482rmi2x6p78wl2kz8qzyq21xz1sbbfwnv5x7dggar4vkwxhzfx")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-setuptools-scm" ,python-setuptools-scm) - ("python-mock" ,python-mock))) + `(("python-setuptools-scm" ,python-setuptools-scm))) (inputs `(("python-pycrypto" ,python-pycrypto))) (arguments @@ -859,13 +857,15 @@ etc.). The package is structured to make adding new modules easy.") service from python. It can be used in any application that needs safe password storage.") ;; "MIT" and PSF dual license - (license x11))) + (license x11) + (properties `((python2-variant . ,(delay python2-keyring)))))) (define-public python2-keyring - (let ((keyring (package-with-python2 python-keyring))) - (package (inherit keyring) - (inputs - `(("python2-pycrypto" ,python2-pycrypto)))))) + (let ((base (package-with-python2 (strip-python2-variant python-keyring)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-six (package -- cgit 1.4.1 From 394b8060b187aa55810e285382a97c01c17dcfe6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 18:56:05 +0300 Subject: gnu: python-dateutil-2: Update to 2.5.2. * gnu/packages/python.scm (python-dateutil-2): Update to 2.5.2. [inputs]: Remove python-setuptools. [properties]: Define python2-dateutil-2. (python2-dateutil-2): Build with 'strip-python2-variant'. [inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 72559ec0ee..9b874320a2 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -897,28 +897,31 @@ Python file, so it can be easily copied into your project.") (define-public python-dateutil-2 (package (name "python-dateutil") - (version "2.4.2") + (version "2.5.2") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - name "/" name "-" version ".tar.gz")) + (uri (pypi-uri "python-dateutil" version)) (sha256 (base32 - "0ggbm2z72p0nwjqgvpw8s5bqzwayqiqv2iws0x2a605m3mf4959y")))) + "0jrfpcgvgya6hs45dhrd9yiqgdgz9qp9aa07zsw8gqgn8zphff86")))) (build-system python-build-system) (inputs - `(("python-setuptools" ,python-setuptools) - ("python-six" ,python-six))) + `(("python-six" ,python-six))) (home-page "http://labix.org/python-dateutil") (synopsis "Extensions to the standard datetime module") (description "The dateutil module provides powerful extensions to the standard datetime module, available in Python 2.3+.") - (license bsd-3))) + (license bsd-3) + (properties `((python2-variant . ,(delay python2-dateutil-2)))))) (define-public python2-dateutil-2 - (package-with-python2 python-dateutil-2)) + (let ((base (package-with-python2 (strip-python2-variant python-dateutil-2)))) + (package + (inherit base) + (inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-inputs base)))))) (define-public python-dateutil (package -- cgit 1.4.1 From eebf6f01e49a8ad4c8b7eec26ffbaf8a0e7185a2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 20:07:57 +0300 Subject: gnu: python-parsedatetime: Update to 2.1. * gnu/packages/python.scm (parsedatetime): Update to 2.1. [native-inputs]: Remove python-setuptools, add python-nose, python-pyicu. [properties]: Define python2-variant. (python2-parsedatetime): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9b874320a2..afb5181157 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -951,27 +951,32 @@ datetime module, available in Python 2.3+.") (define-public python-parsedatetime (package (name "python-parsedatetime") - (version "1.5") + (version "2.1") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - "parsedatetime/parsedatetime-" version ".tar.gz")) + (uri (pypi-uri "parsedatetime" version)) (sha256 (base32 - "1as0mm4ql3z0324nc9bys2s1ngh507i317p16b79rx86wlmvx9ix")))) + "0bdgyw6y3v7bcxlx0p50s8drxsh5bb5cy2afccqr3j90amvpii8p")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools))) + `(("python-nose" ,python-nose) + ("python-pyicu" ,python-pyicu))) (home-page "http://github.com/bear/parsedatetime/") (synopsis "Parse human-readable date/time text") (description "Parse human-readable date/time text.") - (license asl2.0))) + (license asl2.0) + (properties `((python2-variant . ,(delay python2-parsedatetime)))))) (define-public python2-parsedatetime - (package-with-python2 python-parsedatetime)) + (let ((base (package-with-python2 (strip-python2-variant python-parsedatetime)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-pandas (package -- cgit 1.4.1 From ed80839b8c7eab09df91324134dfbabb01ee51bd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 20:45:49 +0300 Subject: gnu: python-tzlocal: Update to 1.2.2. * gnu/packages/python.scm (python-tzlocal): Update to 1.2.2. [native-inputs]: Move python-pytz ... [inputs]: ... to here. --- gnu/packages/python.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index afb5181157..a0ee42d774 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1017,16 +1017,16 @@ doing practical, real world data analysis in Python.") (define-public python-tzlocal (package (name "python-tzlocal") - (version "1.2") + (version "1.2.2") (source (origin (method url-fetch) (uri (pypi-uri "tzlocal" version)) (sha256 (base32 - "12wsw2fl3adrqrwghasld57bhqdrzn0crblqrci1p5acd0ni53s3")))) + "0paj7vlsb0np8b5sp4bv64wxv7qk2piyp7xg29pkhdjwsbls9fnb")))) (build-system python-build-system) - (propagated-inputs `(("python-pytz" ,python-pytz))) + (inputs `(("python-pytz" ,python-pytz))) (home-page "https://github.com/regebro/tzlocal") (synopsis "Local timezone information for Python") -- cgit 1.4.1 From eb3d3503f34b75efdfcb1db6d550921c1a2521d4 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 20:52:04 +0300 Subject: gnu: python-parse: Update to 1.6.6. * gnu/packages/python.scm (python-parse): Update to 1.6.6. --- gnu/packages/python.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a0ee42d774..e98c594803 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1326,15 +1326,14 @@ backported for previous versions of Python from 2.4 to 3.3.") (define-public python-parse (package (name "python-parse") - (version "1.6.4") + (version "1.6.6") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - "parse/parse-" version ".tar.gz")) + (uri (pypi-uri "parse" version)) (sha256 (base32 - "0m30q64l6szl7s9mhvqy64w2fdhdn8lb91fmacjiwbv3479cmk57")))) + "0y31i3mwgv35qn0kzzjn9q8jqfdqmbi6sr6yfvn8rq4lqjm5lhvi")))) (build-system python-build-system) (arguments `(#:phases -- cgit 1.4.1 From 545f4a1c3cb6a613bbeb17faeebbecaa559231fd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 21:00:42 +0300 Subject: gnu: python-pytest-cov: Update to 2.2.1. * gnu/packages/python.scm (python-pytest-cov): Update to 2.2.1. [native-inputs]: Remove python-setuptools. Move python-coverage, python-pytest ... [inputs]: ... to here. [properties]: Define python2-pytest-cov. (python-pytest-cov): Build with 'strip-python2-variant'. [inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e98c594803..2cde276b37 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1562,30 +1562,33 @@ and many external plugins.") (define-public python-pytest-cov (package (name "python-pytest-cov") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (pypi-uri "pytest-cov" version)) (sha256 - (base32 - "1lf9jsmhqk5nc4w3kzwglmdzjvmi7ajvrsnwv826j3bn0wzx8c92")))) + (base32 + "1yl4nbhzfgsxqlsyk4clafgp9x11zvgrkprm9i2p3fgkwx9jxcm8")))) (build-system python-build-system) - (propagated-inputs + (inputs `(("python-coverage" ,python-coverage) ("python-pytest" ,python-pytest))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "https://github.com/pytest-dev/pytest-cov") (synopsis "Pytest plugin for measuring coverage") (description "Pytest-cov produces coverage reports. It supports centralised testing and distributed testing in both @code{load} and @code{each} modes. It also supports coverage of subprocesses.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pytest-cov)))))) (define-public python2-pytest-cov - (package-with-python2 python-pytest-cov)) + (let ((base (package-with-python2 (strip-python2-variant python-pytest-cov)))) + (package + (inherit base) + (inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-inputs base)))))) (define-public python-pytest-runner (package -- cgit 1.4.1 From 54cd239b358f7d3fb15a0d17a96713c68c5142ec Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 21:17:10 +0300 Subject: gnu: python-pytest-runner: Define python2-pytest-runner. * gnu/packages/python.scm (python-pytest-runner)[properties]: Define python2-pytest-runner. [native-inputs]: Remove python-setuptools. [home-page]: Project has moved to Github. (python2-pytest-runner)[native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2cde276b37..c3daf3156f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1597,9 +1597,7 @@ supports coverage of subprocesses.") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/p/" - "pytest-runner/pytest-runner-" - version ".tar.gz")) + (uri (pypi-uri "pytest-runner" version)) (sha256 (base32 "1nwcqx0l3fv52kv8526wy8ypzghbq96c96di318d98d3wh7a8xg7")))) @@ -1617,14 +1615,22 @@ supports coverage of subprocesses.") #t))))) (native-inputs `(("python-pytest" ,python-pytest) - ("python-setuptools" ,python-setuptools) ("python-setuptools-scm" ,python-setuptools-scm))) - (home-page "https://bitbucket.org/pytest-dev/pytest-runner") + (home-page "https://github.com/pytest-dev/pytest-runner") (synopsis "Invoke py.test as a distutils command") (description "This package provides a @command{pytest-runner} command that @file{setup.py} files can use to run tests.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pytest-runner)))))) + +(define-public python2-pytest-runner + (let ((base (package-with-python2 + (strip-python2-variant python-pytest-runner)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python2-pytest-runner (package-with-python2 python-pytest-runner)) -- cgit 1.4.1 From fbe9abcce40d9f07035f96a3f81b120c7325591a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 22:07:28 +0300 Subject: gnu: python-pytest-xdist: Change inputs. * gnu/packages/python.scm (python-pytest-xdist)[native-inputs]: Remove python-setuptools. [propagated-inputs]: Move python-execnet, python-py, python-pytest ... [inputs]: ... to here. Add python-apipkg. [properties]: Define python2-pytest-xdist. (python2-pytest-xdist): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c3daf3156f..9a8676a6b7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1649,10 +1649,10 @@ supports coverage of subprocesses.") (build-system python-build-system) (native-inputs `(("unzip" ,unzip) - ("python-setuptools" ,python-setuptools) ("python-setuptools-scm" ,python-setuptools-scm))) - (propagated-inputs - `(("python-execnet" ,python-execnet) + (inputs + `(("python-apipkg" ,python-apipkg) + ("python-execnet" ,python-execnet) ("python-pytest" ,python-pytest) ("python-py" ,python-py))) (home-page @@ -1666,10 +1666,16 @@ to run tests repeatedly when failed, and the ability to run tests on multiple Python interpreters or platforms. It uses rsync to copy the existing program code to a remote location, executes there, and then syncs the result back.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-pytest-xdist)))))) (define-public python2-pytest-xdist - (package-with-python2 python-pytest-xdist)) + (let ((base (package-with-python2 + (strip-python2-variant python-pytest-xdist)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-scripttest (package -- cgit 1.4.1 From b43bab3c2a3c48b97889c070155044836b5c4731 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 22:30:19 +0300 Subject: gnu: python-apipkg: Change inputs. * gnu/packages/python.scm (python-apipkg)[native-inputs]: Move python-pytest. [inputs]: ... to here. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 9a8676a6b7..0d6d58773d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6890,7 +6890,7 @@ applications.") (base32 "1iks5701qnp3dlr3q1d9qm68y2plp2m029irhpz92a44psfkjf1f")))) (build-system python-build-system) - (propagated-inputs + (inputs `(("python-pytest" ,python-pytest))) (synopsis "Namespace control and lazy-import mechanism") (description "With apipkg you can control the exported namespace of a Python -- cgit 1.4.1 From 584d068f0fe7872ffa3af70afbe3f4bc93a235bb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 22:32:39 +0300 Subject: gnu: python-execnet: Change inputs. * gnu/packages/python.scm (python-execnet)[propagated-inputs]: Move python-apipkg ... [inputs]: ... to here. --- gnu/packages/python.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0d6d58773d..17f24d5cbe 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6920,7 +6920,7 @@ pure Python module that works on virtually all Python versions.") (build-system python-build-system) (native-inputs `(("python-setuptools-scm" ,python-setuptools-scm))) - (propagated-inputs + (inputs `(("python-apipkg" ,python-apipkg))) (synopsis "Rapid multi-Python deployment") (description "Execnet provides a share-nothing model with -- cgit 1.4.1 From 630d938fbedbc6d67f931983b41708023dd31783 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 22:38:44 +0300 Subject: gnu: python-pytest-cache: Change inputs. * gnu/packages/python.scm (python-pytest-cache)[propagated-inputs]: Move python-execnet ... [inputs]: ... to here. Add python-apipkg, python-py, python-pytest. --- gnu/packages/python.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 17f24d5cbe..f13d55d80a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6957,8 +6957,11 @@ minimal and fast API targetting the following uses: (base32 "1a873fihw4rhshc722j4h6j7g3nj7xpgsna9hhg3zn6ksknnhx5y")))) (build-system python-build-system) - (propagated-inputs - `(("python-execnet" ,python-execnet))) + (inputs + `(("python-apipkg" ,python-apipkg) + ("python-execnet" ,python-execnet) + ("python-py" ,python-py) + ("python-pytest" ,python-pytest))) (synopsis "Py.test plugin with mechanisms for caching across test runs") (description "The pytest-cache plugin provides tools to rerun failures from the last py.test invocation.") -- cgit 1.4.1 From 9ba40f05c8dcbac6918331fcc8796bb4fe884a1f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 22:45:53 +0300 Subject: gnu: python-pytest-localserver: Change inputs. * gnu/packages/python.scm (python-pytest-localserver)[native-inputs]: Remove zip. [proapgated-inputs]: Move python-werkzeug ... [inputs]: ... to here. [propagated-inputs]: Move python-pytest, python-requests, python-six ... [native-inputs]: ... to here. --- gnu/packages/python.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f13d55d80a..710adc3b6f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6986,12 +6986,11 @@ the last py.test invocation.") (zero? (system* "py.test" "--genscript=runtests.py")) (zero? (system* "py.test"))))))) (native-inputs - `(("unzip" ,unzip))) - (propagated-inputs `(("python-pytest" ,python-pytest) ("python-requests" ,python-requests) - ("python-six" ,python-six) - ("python-werkzeug" ,python-werkzeug))) + ("python-six" ,python-six))) + (inputs + `(("python-werkzeug" ,python-werkzeug))) (synopsis "Py.test plugin to test server connections locally") (description "Pytest-localserver is a plugin for the pytest testing framework which enables you to test server connections locally.") -- cgit 1.4.1 From 4b47cbfa9a8edefa34520899aa59463d70c68958 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 10 Apr 2016 23:36:58 +0300 Subject: gnu: python-werkzeug: Update to 0.11.5. * gnu/packages/python.scm (python-werkzeug): Update to 0.11.5. --- gnu/packages/python.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 710adc3b6f..bc0a54b971 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6605,16 +6605,14 @@ timestamps.") (define-public python-werkzeug (package (name "python-werkzeug") - (version "0.11.2") + (version "0.11.5") (source (origin (method url-fetch) - (uri (string-append "https://pypi.python.org/packages/source/W/Werkzeug" - "/Werkzeug-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (pypi-uri "Werkzeug" version)) (sha256 (base32 - "1gzwn1lkl90f3l1nzzxr7vjhm21qk8f837i8rvny5a209fcrhkzb")))) + "0r41xqp4cypzcgsf6zbspbqd272wnzf20igb4w4b5wzfhgqh9nxg")))) (build-system python-build-system) (native-inputs `(("python-pytest" ,python-pytest))) -- cgit 1.4.1 From d87fd7995310e97117f2147519829a5b0d9605ed Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 10 Apr 2016 22:28:29 -0400 Subject: gnu: vdirsyncer: Update to 0.9.3. * gnu/packages/dav.scm (vdirsyncer): Update to 0.9.3. --- gnu/packages/dav.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index de984faf33..6815a6b250 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -52,13 +52,13 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.9.2") + (version "0.9.3") (source (origin (method url-fetch) (uri (pypi-uri "vdirsyncer" version)) (sha256 (base32 - "1g1107cz4sk41d2z6k6pn9n2fzd26m72j8aj33zn483vfvmyrc4q")))) + "1wjhzjfcvwz68j6wc5cmjsw69ggwcpfy7jp7z7q6fnwwp4dr98lc")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases -- cgit 1.4.1 From ce8eeaf7a4889f1d9d367b2adcd91c1f0a668b82 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 9 Apr 2016 23:43:54 -0400 Subject: gnu: borg: Update to 1.0.1. * gnu/packages/backup.scm (borg): Update to 1.0.1. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index ec95769a5e..619c5cb57a 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -410,13 +410,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.0") + (version "1.0.1") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "0wa6cvqs3rni5nwrgagigchcly8a53rxk56z0zn8iaii2cqrw2sh")))) + "1fhzsj66fnyz8059k0zx8ldhyjqj73980qrz48aqwz1097kc58jq")))) (build-system python-build-system) (arguments `(#:phases -- cgit 1.4.1 From 936e7d67746a2c769c73692949da1f5a1abf94f9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 18 Mar 2016 12:15:24 +0100 Subject: gnu: Add r-seqlogo. * gnu/packages/bioinformatics.scm (r-seqlogo): New variable. --- gnu/packages/bioinformatics.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 500a08b283..8b0132d91a 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4748,6 +4748,27 @@ annotations for the genome of the model fruit fly Drosophila melanogaster.") annotations for the genome of the model mouse Mus musculus.") (license license:artistic2.0))) +(define-public r-seqlogo + (package + (name "r-seqlogo") + (version "1.36.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "seqLogo" version)) + (sha256 + (base32 + "0kn1a1nf2j4v9c09vjkz9bmxlln7yhg87bnyrdsxy1m55x56rn5k")))) + (properties `((upstream-name . "seqLogo"))) + (build-system r-build-system) + (home-page "http://bioconductor.org/packages/seqLogo") + (synopsis "Sequence logos for DNA sequence alignments") + (description + "seqLogo takes the position weight matrix of a DNA sequence motif and +plots the corresponding sequence logo as introduced by Schneider and +Stephens (1990).") + (license license:lgpl2.0+))) + (define-public r-qtl (package (name "r-qtl") -- cgit 1.4.1 From c90a4baff6cbc35ccd6af3cdac72f314c9eceab3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 18 Mar 2016 12:15:50 +0100 Subject: gnu: Add r-bsgenome-hsapiens-ucsc-hg19. * gnu/packages/bioinformatics.scm (r-bsgenome-hsapiens-ucsc-hg19): New variable. --- gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8b0132d91a..58268dc258 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4769,6 +4769,37 @@ plots the corresponding sequence logo as introduced by Schneider and Stephens (1990).") (license license:lgpl2.0+))) +(define-public r-bsgenome-hsapiens-ucsc-hg19 + (package + (name "r-bsgenome-hsapiens-ucsc-hg19") + (version "1.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "http://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Hsapiens.UCSC.hg19_" + version ".tar.gz")) + (sha256 + (base32 + "1y0nqpk8cw5a34sd9hmin3z4v7iqm6hf6l22cl81vlbxqbjibxc8")))) + (properties + `((upstream-name . "BSgenome.Hsapiens.UCSC.hg19"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "http://www.bioconductor.org/packages/BSgenome.Hsapiens.UCSC.hg19/") + (synopsis "Full genome sequences for Homo sapiens") + (description + "This package provides full genome sequences for Homo sapiens as provided +by UCSC (hg19, February 2009) and stored in Biostrings objects.") + (license license:artistic2.0))) + (define-public r-qtl (package (name "r-qtl") -- cgit 1.4.1 From ae2462f7dd8abfdd6e5a603c55443ec5246936f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 18 Mar 2016 12:16:17 +0100 Subject: gnu: Add r-motifrg. * gnu/packages/bioinformatics.scm (r-motifrg): New variable. --- gnu/packages/bioinformatics.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 58268dc258..4ea7534568 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4800,6 +4800,33 @@ Stephens (1990).") by UCSC (hg19, February 2009) and stored in Biostrings objects.") (license license:artistic2.0))) +(define-public r-motifrg + (package + (name "r-motifrg") + (version "1.14.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "motifRG" version)) + (sha256 + (base32 + "1v9zm5629k2lcqbbgw8bwflvbircyxkfavbkvmbd212kgwcng8vn")))) + (properties `((upstream-name . "motifRG"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biostrings" ,r-biostrings) + ("r-bsgenome" ,r-bsgenome) + ("r-bsgenome.hsapiens.ucsc.hg19" ,r-bsgenome-hsapiens-ucsc-hg19) + ("r-iranges" ,r-iranges) + ("r-seqlogo" ,r-seqlogo) + ("r-xvector" ,r-xvector))) + (home-page "http://bioconductor.org/packages/motifRG") + (synopsis "Discover motifs in high throughput sequencing data") + (description + "This package provides tools for discriminative motif discovery in high +throughput genetic sequencing data sets using regression methods.") + (license license:artistic2.0))) + (define-public r-qtl (package (name "r-qtl") -- cgit 1.4.1 From a3e90287705b931f03c441c1736f16f51e20b882 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 30 Mar 2016 12:23:51 +0200 Subject: gnu: Add r-bsgenome-mmusculus-ucsc-mm9. * gnu/packages/bioinformatics.scm (r-bsgenome-mmusculus-ucsc-mm9): New variable. --- gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 4ea7534568..15a367da3b 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4800,6 +4800,37 @@ Stephens (1990).") by UCSC (hg19, February 2009) and stored in Biostrings objects.") (license license:artistic2.0))) +(define-public r-bsgenome-mmusculus-ucsc-mm9 + (package + (name "r-bsgenome-mmusculus-ucsc-mm9") + (version "1.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "http://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Mmusculus.UCSC.mm9_" + version ".tar.gz")) + (sha256 + (base32 + "1birqw30g2azimxpnjfzmkphan7x131yy8b9h85lfz5fjdg7841i")))) + (properties + `((upstream-name . "BSgenome.Mmusculus.UCSC.mm9"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "http://www.bioconductor.org/packages/BSgenome.Mmusculus.UCSC.mm9/") + (synopsis "Full genome sequences for Mouse") + (description + "This package provides full genome sequences for Mus musculus (Mouse) as +provided by UCSC (mm9, July 2007) and stored in Biostrings objects.") + (license license:artistic2.0))) + (define-public r-motifrg (package (name "r-motifrg") -- cgit 1.4.1 From 943bd6279fd60e6fc4f5b781c1c52315b9c1011c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 30 Mar 2016 12:24:16 +0200 Subject: gnu: Add r-bsgenome-celegans-ucsc-ce6. * gnu/packages/bioinformatics.scm (r-bsgenome-celegans-ucsc-ce6): New variable. --- gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 15a367da3b..23dc9d2e2e 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4831,6 +4831,38 @@ by UCSC (hg19, February 2009) and stored in Biostrings objects.") provided by UCSC (mm9, July 2007) and stored in Biostrings objects.") (license license:artistic2.0))) +(define-public r-bsgenome-celegans-ucsc-ce6 + (package + (name "r-bsgenome-celegans-ucsc-ce6") + (version "1.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "http://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Celegans.UCSC.ce6_" + version ".tar.gz")) + (sha256 + (base32 + "0mqzb353xv2c3m3vkb315dkmnxkgczp7ndnknyhpgjlybyf715v9")))) + (properties + `((upstream-name . "BSgenome.Celegans.UCSC.ce6"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "http://www.bioconductor.org/packages/BSgenome.Celegans.UCSC.ce6/") + (synopsis "Full genome sequences for Worm") + (description + "This package provides full genome sequences for Caenorhabditis +elegans (Worm) as provided by UCSC (ce6, May 2008) and stored in Biostrings +objects.") + (license license:artistic2.0))) + (define-public r-motifrg (package (name "r-motifrg") -- cgit 1.4.1 From 6dc60998534bab0ed267b08025d06883d40670ac Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 30 Mar 2016 12:24:44 +0200 Subject: gnu: Add r-bsgenome-dmelanogaster-ucsc-dm3. * gnu/packages/bioinformatics.scm (r-bsgenome-dmelanogaster-ucsc-dm3): New variable. --- gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 23dc9d2e2e..da4a2d5eba 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4863,6 +4863,38 @@ elegans (Worm) as provided by UCSC (ce6, May 2008) and stored in Biostrings objects.") (license license:artistic2.0))) +(define-public r-bsgenome-dmelanogaster-ucsc-dm3 + (package + (name "r-bsgenome-dmelanogaster-ucsc-dm3") + (version "1.4.0") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "http://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Dmelanogaster.UCSC.dm3_" + version ".tar.gz")) + (sha256 + (base32 + "19bm3lkhhkag3gnwp419211fh0cnr0x6fa0r1lr0ycwrikxdxsv8")))) + (properties + `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm3"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "http://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm3/") + (synopsis "Full genome sequences for Fly") + (description + "This package provides full genome sequences for Drosophila +melanogaster (Fly) as provided by UCSC (dm3, April 2006) and stored in +Biostrings objects.") + (license license:artistic2.0))) + (define-public r-motifrg (package (name "r-motifrg") -- cgit 1.4.1 From a94d455f58616b3b345fb9bc79a126e29ec74889 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 9 Apr 2016 21:13:31 -0400 Subject: gnu: letsencrypt, python-acme: Update to 0.5.0 These packages should be updated together. * gnu/packages/tls.scm (letsencrypt): Update to 0.5.0. (python-acme, python2-acme): Update to 0.5.0. --- gnu/packages/tls.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 079c73da8d..a9bd3db3db 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -322,13 +322,13 @@ security, and applying best practice development processes.") (define-public python-acme (package (name "python-acme") - (version "0.4.2") + (version "0.5.0") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "1dh0qlsi309b37wa0nw0h2gvs94yk12lc4mhr3rb9c4h46m0hn8a")))) + "1g8scfkhs3l06588h73py81xb1gvkkdzaxanl21whcvdclycc186")))) (build-system python-build-system) (arguments `(#:phases @@ -381,13 +381,13 @@ security, and applying best practice development processes.") (define-public letsencrypt (package (name "letsencrypt") - (version "0.4.2") + (version "0.5.0") (source (origin (method url-fetch) (uri (pypi-uri "letsencrypt" version)) (sha256 (base32 - "1rjbblj60w7jwc5y04sy6fbxcynvakvazikg1pdmhyic5jmj9bg3")))) + "0nnijs26kkw07yylszc97p3jw09y98j54xihjp0rprrbp1q2p2p3")))) (build-system python-build-system) (arguments `(#:python ,python-2 -- cgit 1.4.1 From 097e012b5aa8f377954cca450e68dffe848037c6 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 11 Apr 2016 18:59:53 -0400 Subject: gnu: e2fsprogs: Fix misleading comment. * gnu/packages/linux.scm (e2fsprogs): Fix misleading comment. --- gnu/packages/linux.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 09886be0e5..80ac863fab 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -598,7 +598,7 @@ slabtop, and skill.") (native-inputs `(("pkg-config" ,pkg-config) ("texinfo" ,texinfo))) ;for the libext2fs Info manual (arguments - '(;; util-linux is not the preferred source for some of the libraries and + '(;; util-linux is the preferred source for some of the libraries and ;; commands, so disable them (see, e.g., ;; .) #:configure-flags '("--disable-libblkid" -- cgit 1.4.1 From 916627b484053a0ed95c78e312c8f36a919a723d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 2 Apr 2016 15:29:32 +0200 Subject: gnu: btrfs-progs: Update to 4.5.1. * gnu/packages/linux.scm (btrfs-progs): Update to 4.5.1. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 80ac863fab..02cde8eed2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2487,7 +2487,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.4.1") + (version "4.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -2495,7 +2495,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "1z5882zx9jx02vyg067siws0irsl8pg37myx17hr4imn9ypf6r4r")))) + "1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f")))) (build-system gnu-build-system) (arguments '(#:test-target "test" -- cgit 1.4.1 From df887432be25e1534b9ecdccf39c98857b1d0786 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Apr 2016 21:36:28 +0200 Subject: gnu: util-linux: Add "static" output. * gnu/packages/linux.scm: (util-linux)[outputs]: New field. [arguments]: Remove "--disable-static" from #:configure-flags. Add 'move-static-libraries' phase. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 02cde8eed2..6c669e3160 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -464,12 +464,11 @@ providing the system administrator with some help in common tasks.") (("build_kill=yes") "build_kill=no")) #t)))) (build-system gnu-build-system) + (outputs '("out" + "static")) ; >2 MiB of static .a libraries (arguments `(#:configure-flags (list "--disable-use-tty-group" - ;; Do not build .a files to save 2 MiB. - "--disable-static" - ;; Install completions where our ;; bash-completion package expects them. (string-append "--with-bashcompletiondir=" @@ -494,6 +493,19 @@ providing the system administrator with some help in common tasks.") (substitute* "tests/ts/misc/mcookie" (("/etc/services") (string-append net "/etc/services"))) + #t))) + (add-after + 'install 'move-static-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (with-directory-excursion out + (for-each (lambda (file) + (rename-file file + (string-append static "/" + file))) + (find-files "lib" "\\.a$"))) #t)))))) (inputs `(("zlib" ,zlib) ("ncurses" ,ncurses))) -- cgit 1.4.1 From 5f3f3ac287467994f01646680c6a6837ec7ee587 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 3 Apr 2016 21:36:29 +0200 Subject: gnu: btrfs-progs: Add "static" output. * gnu/packages/linux.scm (btrfs-progs)[outputs]: New field. [inputs]: Add "static" outputs of util-linux for libuuid and libblkid. [arguments]: Add 'build-static' and 'install-static' phases. Signed-off-by: Leo Famulari --- gnu/packages/linux.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6c669e3160..2920298b36 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2509,12 +2509,26 @@ and copy/paste text in the console and in xterm.") (base32 "1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f")))) (build-system gnu-build-system) + (outputs '("out" + "static")) ; static versions of binaries in "out" (~16MiB!) (arguments - '(#:test-target "test" + '(#:phases (modify-phases %standard-phases + (add-after 'build 'build-static + (lambda _ (zero? (system* "make" "static")))) + (add-after 'install 'install-static + (let ((staticbin (string-append (assoc-ref %outputs "static") + "/bin"))) + (lambda _ + (zero? (system* "make" + (string-append "bindir=" staticbin) + "install-static")))))) + #:test-target "test" #:parallel-tests? #f)) ; tests fail when run in parallel (inputs `(("e2fsprogs" ,e2fsprogs) ("libblkid" ,util-linux) + ("libblkid:static" ,util-linux "static") ("libuuid" ,util-linux) + ("libuuid:static" ,util-linux "static") ("zlib" ,zlib) ("lzo" ,lzo))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 1e7bd1ec6e074ca6b0ed2ff4516c675fd48d86f5 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 12 Apr 2016 04:48:47 -0400 Subject: gnu: abduco: Update to 0.6. * gnu/packages/abduco.scm (abduco): Update to 0.6. --- gnu/packages/abduco.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/abduco.scm b/gnu/packages/abduco.scm index ae67f81849..3cb84f5fc8 100644 --- a/gnu/packages/abduco.scm +++ b/gnu/packages/abduco.scm @@ -25,7 +25,7 @@ (define-public abduco (package (name "abduco") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) (uri (string-append @@ -33,7 +33,7 @@ version ".tar.gz")) (sha256 (base32 - "11phry5wnvwm9ckij5gxbrjfgdz3x38vpnm505q5ldc88im248mz")))) + "1x1m58ckwsprljgmdy93mvgjyg9x3cqrzdf3mysp0mx97zhhj2f9")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" -- cgit 1.4.1 From 927e176d2ac1ecaf470833f8b664f6c06f552e2a Mon Sep 17 00:00:00 2001 From: alírio eyng Date: Thu, 7 Apr 2016 19:04:07 +0000 Subject: gnu: fontforge: Update to 20160404. * gnu/packages/fontutils.scm (fontforge): Update to 20160404. [source](snippet): Remove tottf.c modification. Update date strings. Co-authored-by: Eric Bavier --- gnu/packages/fontutils.scm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index ff10a4ac73..d64ed71bbf 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -341,30 +341,25 @@ definitions.") (define-public fontforge (package (name "fontforge") - (version "20150824") + (version "20160404") (source (origin (method url-fetch) (uri (string-append "https://github.com/fontforge/fontforge/releases/download/" - version "/fontforge-" version ".tar.gz")) + version "/fontforge-dist-" version ".tar.gz")) (sha256 (base32 - "0gfcm8yn1d30giqhdwbchnfnspcqypqdzrxlhqhwy1i18wgl0v2v")) + "1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc")) (modules '((guix build utils))) (snippet '(begin ;; Make builds bit-reproducible by using fixed date strings. (substitute* "configure" (("^FONTFORGE_MODTIME=.*$") - "FONTFORGE_MODTIME=\"1458399002\"\n") + "FONTFORGE_MODTIME=\"1459819518L\"\n") (("^FONTFORGE_MODTIME_STR=.*$") - "FONTFORGE_MODTIME_STR=\"15:50 CET 19-Mar-2016\"\n") + "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n") (("^FONTFORGE_VERSIONDATE=.*$") - "FONTFORGE_VERSIONDATE=\"20160319\"\n")) - - ;; Make TTF builds bit-reproducible by clearing the timestamp - ;; that goes in TTF files. - (substitute* "fontforge/tottf.c" - (("cvt_unix_to_1904\\(now") "cvt_unix_to_1904(0")))))) + "FONTFORGE_VERSIONDATE=\"20160404\"\n")))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit 1.4.1 From b4c400a75c9f432820146dfe24fcebdfbc276e4b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Fri, 8 Apr 2016 10:36:05 -0500 Subject: gnu: Add xscreensaver. * gnu/packages/xdisorg.scm (xscreensaver): New variable. --- gnu/packages/xdisorg.scm | 69 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 5a77a6c8f3..1a8305e553 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -37,6 +37,7 @@ #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages asciidoc) + #:use-module (gnu packages algebra) #:use-module (gnu packages compression) #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) @@ -47,6 +48,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages python) #:use-module (gnu packages linux) + #:use-module (gnu packages gl) #:use-module (gnu packages guile) #:use-module (gnu packages xml) #:use-module (gnu packages gtk) @@ -714,6 +716,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") ("libx11" ,libx11) ("libxcb" ,libxcb) ("libxxf86vm" ,libxxf86vm) + ("libjpeg" ,libjpeg) ("glib" ,glib))) ;for Geoclue2 support (home-page "https://github.com/jonls/redshift") (synopsis "Adjust the color temperature of your screen") @@ -724,3 +727,69 @@ twilight and early morning, the color temperature transitions smoothly from night to daytime temperature to allow your eyes to slowly adapt. At night the color temperature should be set to match the lamps in your room.") (license license:gpl3+))) + +(define-public xscreensaver + (package + (name "xscreensaver") + (version "5.34") + (source + (origin + (method url-fetch) + (uri + (string-append "https://www.jwz.org/xscreensaver/xscreensaver-" + version ".tar.gz")) + (sha256 + (base32 + "09sy5v8bn62hiq4ib3jyvp8lipqcvn3rdsj74q25qgklpv27xzvg")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + (add-before 'configure 'adjust-gtk-resource-paths + (lambda _ + (substitute* '("driver/Makefile.in" "po/Makefile.in.in") + (("@GTK_DATADIR@") "@datadir@") + (("@PO_DATADIR@") "@datadir@"))))) + #:configure-flags '("--with-pam" "--with-proc-interrupts" + "--without-readdisplay") + #:make-flags (list (string-append "AD_DIR=" + (assoc-ref %outputs "out") + "/usr/lib/X11/app-defaults")))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (inputs + `(("libx11" ,libx11) + ("libxext" ,libxext) + ("libxi" ,libxi) + ("libxt" ,libxt) + ("libxft" ,libxft) + ("libxmu" ,libxmu) + ("libxpm" ,libxpm) + ("libglade" ,libglade) + ("libxml2" ,libxml2) + ("libsm" ,libsm) + ("libjpeg" ,libjpeg) + ("linux-pam" ,linux-pam) + ("pango" ,pango) + ("gtk+" ,gtk+) + ("perl" ,perl) + ("cairo" ,cairo) + ("bc" ,bc) + ("libxrandr" ,libxrandr) + ("glu" ,glu) + ("glib" ,glib))) + (home-page "https://www.jwz.org/xscreensaver/") + (synopsis "Classic screen saver suite supporting screen locking") + (description + "xscreensaver is a popular screen saver collection with many entertaining +demos. It also acts as a nice screen locker.") + ;; xscreensaver doesn't have a single copyright file and instead relies on + ;; source comment headers, though most files have the same lax + ;; permissions. To reduce complexity, we're pointing at Debian's + ;; breakdown of the copyright information. + (license (license:non-copyleft + (string-append + "http://metadata.ftp-master.debian.org/changelogs/" + "/main/x/xscreensaver/xscreensaver_5.34-2_copyright"))))) -- cgit 1.4.1 From ec8c7e4734b9e28f08067301c42cda86d8ab3980 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Fri, 8 Apr 2016 10:48:58 +0200 Subject: gnu: Add r-pracma. * gnu/packages/maths.scm (r-pracma): New variable. Signed-off-by: Leo Famulari --- gnu/packages/maths.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6f61a637a0..a673a55eaa 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Fabian Harfert +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -37,6 +38,7 @@ #:use-module (guix build utils) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) + #:use-module (guix build-system r) #:use-module (gnu packages algebra) #:use-module (gnu packages bison) #:use-module (gnu packages boost) @@ -931,6 +933,24 @@ sparse system of linear equations A x = b using Guassian elimination.") (inputs (alist-delete "pt-scotch" (package-inputs mumps-openmpi))))) +(define-public r-pracma + (package + (name "r-pracma") + (version "1.8.8") + (source (origin + (method url-fetch) + (uri (cran-uri "pracma" version)) + (sha256 + (base32 "0ans9l5rrb7a38gyi4qx4258sd5r5668vyrk02yzjpg9k3h8l165")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/pracma") + (synopsis "Practical numerical math functions") + (description "This package provides functions for numerical analysis and +linear algebra, numerical optimization, differential equations, plus some +special functions. It uses Matlab function names where appropriate to simplify +porting.") + (license license:gpl3+))) + (define-public superlu (package (name "superlu") -- cgit 1.4.1 From 645deac3264744ec09c027a8b9762fdf62aced70 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 12 Apr 2016 19:38:21 -0400 Subject: gnu: samba: Update to 4.3.8. Fixes CVE-2015-5730, CVE-2016-2110, CVE-2016-2111, CVE-2016-2112, CVE-2016-2113, CVE-2016-2114, CVE-2016-2115, CVE-2016-2118. * gnu/packages/samba.scm (samba): Update to 4.3.8. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 8c4f064cf8..8aac6a5dc1 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -99,14 +99,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.3.6") + (version "4.3.8") (source (origin (method url-fetch) (uri (string-append "https://www.samba.org/samba/ftp/stable/samba-" version ".tar.gz")) (sha256 (base32 - "0929fpk2pq4v389naai519xvsm9bzpar4jlgjxwlx1cnn6jyql9j")))) + "041b5frh4ikcka922aqhqjvlv4w2s7jycyykpvsknj0a79ncd79p")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit 1.4.1 From 966dff3b81bfb46dd824d0c7e21f473fe1e7addd Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Tue, 12 Apr 2016 12:47:26 -0400 Subject: gnu: Add qqwing. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/game-development.scm (qqwing): New variable. Signed-off-by: 宋文武 --- gnu/packages/game-development.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index 0a58a7efa5..414af14f28 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Alex Kost ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -407,3 +408,35 @@ games. In addition to basic pixel editing features, Aseprite can assist in the creation of animations, tiled graphics, texture atlases, and more.") (home-page "http://www.aseprite.org/") (license license:gpl2+))) + +(define-public qqwing + (package + (name "qqwing") + (version "1.3.4") + (source (origin + (method url-fetch) + (uri (string-append + "https://qqwing.com/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0bw0papyqjg22z6irf36gs54y8236wa37b6gyn2h1spy65n76lqp")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://qqwing.com/") + (synopsis "Sudoku puzzle solver and generator") + (description + "QQWing is a Sudoku puzzle generator and solver. +It offers the following features: +@enumerate +@item Can solve 1000 puzzles in 1 second and generate 1000 puzzles in 25 seconds. +@item Uses logic. Uses as many solve techniques as possible when solving + puzzles rather than guessing. +@item Rates puzzles. Most generators don't give an indication of the difficulty + of a Sudoku puzzle. QQwing does. +@item Can print solve instructions for any puzzle. +@item Customizable output style, including a CSV style that is easy to + import into a database. +@end enumerate") + (license license:gpl2+))) -- cgit 1.4.1 From dfc407f348a83722ed72d4aa56b82d967b24daf5 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Tue, 12 Apr 2016 12:47:57 -0400 Subject: gnu: Add gnome-sudoku. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/gnome.scm (gnome-sudoku): New variable. Signed-off-by: 宋文武 --- gnu/packages/gnome.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5c2cf0197e..2adf267b09 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Jochem Raat ;;; Copyright © 2016 Rene Saavedra +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -57,6 +58,7 @@ #:use-module (gnu packages flex) #:use-module (gnu packages docbook) #:use-module (gnu packages enchant) + #:use-module (gnu packages game-development) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) @@ -2207,6 +2209,41 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") floating in an ocean using only your brain and a little bit of luck.") (license license:gpl2+))) +(define-public gnome-sudoku + (package + (name "gnome-sudoku") + (version "3.18.2") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "1b60z22fjrjzsz0kfhv0kfhvigzn54wvh9s31zrlp7sx2h2dxvsf")))) + (build-system glib-or-gtk-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("desktop-file-utils" ,desktop-file-utils) + ("intltool" ,intltool) + ("itstool" ,itstool) + ("xmllint" ,libxml2))) + (inputs + `(("gtk+" ,gtk+) + ("json-glib" ,json-glib) + ("libgee" ,libgee) + ("librsvg" ,librsvg) + ("qqwing" ,qqwing))) + (home-page "https://wiki.gnome.org/Apps/Sudoku") + (synopsis "Japanese logic game") + (description + "Sudoku is a Japanese logic game that exploded in popularity in 2005. +GNOME Sudoku is meant to have an interface as simple and unobstrusive as +possible while still providing features that make playing difficult Sudoku +more fun.") + (license license:gpl2+))) + (define-public gnome-terminal (package (name "gnome-terminal") -- cgit 1.4.1 From 57c9c349b77ea9a949286222ee10a5da317f2806 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 13 Apr 2016 13:32:05 +0200 Subject: gnu: Add GMP-ECM. * gnu/packages/algebra.scm (gmp-ecm): New variable. --- gnu/packages/algebra.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index abac961aaa..4a0e7ff6be 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -366,6 +366,36 @@ geometry and singularity theory.") (license license:gpl3) (home-page "http://www.singular.uni-kl.de/index.php"))) +(define-public gmp-ecm + (package + (name "gmp-ecm") + (version "7.0") + (source (origin + (method url-fetch) + (uri (string-append "https://gforge.inria.fr/frs/download.php/" + "file/35642/ecm-" + version ".tar.gz")) + (sha256 (base32 + "00jzzwqp49m01vwsr9z1w7bvm8lb69l3f62x7qr8sfz0xiczxnpm")))) + (build-system gnu-build-system) + (inputs + `(("gmp" ,gmp))) + (arguments + `(#:configure-flags '("--enable-shared" + ;; Disable specific assembly routines, which depend + ;; on the subarchitecture of the build machine, + ;; and use gmp instead. + "--disable-asm-redc"))) + (synopsis "Integer factorization library using the elliptic curve method") + (description + "GMP-ECM factors integers using the elliptic curve method (ECM) as well +as the P-1 and P+1 algorithms. It provides a library and a stand-alone +binary.") + ;; Most files are under lgpl3+, but some are under gpl3+ or gpl2+, + ;; so the combined work is under gpl3+. + (license license:gpl3+) + (home-page "http://ecm.gforge.inria.fr/"))) + (define-public bc (package (name "bc") -- cgit 1.4.1 From 0de9813905ebec00d1b1e8fbabe8dc024900180a Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 13 Apr 2016 10:41:57 -0400 Subject: gnu: geda-gaf: Make gsch2pcb work out-of-the-box. * gnu/packages/engineering.scm (geda-gaf)[inputs]: Add m4 and pcb. [arguments]: Add configure flags that point to PCB data files. --- gnu/packages/engineering.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 9a36ffbb31..9a299d91c8 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 David Thompson ;;; ;;; This file is part of GNU Guix. ;;; @@ -45,6 +46,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages linux) ;FIXME: for pcb + #:use-module (gnu packages m4) #:use-module (gnu packages maths) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -124,13 +126,22 @@ plans and designs.") 'check 'set-home (lambda _ (setenv "HOME" (getenv "TMPDIR"))) - %standard-phases))) + %standard-phases + ) + #:configure-flags + (let ((pcb (assoc-ref %build-inputs "pcb"))) + (list (string-append "--with-pcb-datadir=" pcb "/share") + (string-append "--with-pcb-lib-path=" + pcb "/share/pcb/pcblib-newlib:" + pcb "/share/pcb/newlib"))))) (inputs `(("glib" ,glib) ("gtk" ,gtk+-2) ("guile" ,guile-2.0) ("desktop-file-utils" ,desktop-file-utils) - ("shared-mime-info" ,shared-mime-info))) + ("shared-mime-info" ,shared-mime-info) + ("m4" ,m4) + ("pcb" ,pcb))) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) ; for tests -- cgit 1.4.1 From 61bb355532f2612ee99d0d9438dbea5ad4ec1f4d Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 10 Apr 2016 13:53:42 +0200 Subject: gnu: Add mpfi. * gnu/packages/multiprecision.scm (mpfi): New variable. Signed-off-by: Mathieu Lirzin --- gnu/packages/multiprecision.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index ad507706db..d97bf9ba28 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2015 Ludovic Courtès ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2015 Andreas Enge +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -119,3 +120,28 @@ floating-point computations with correct rounding.") It supports arbitrarily high precision and it correctly rounds the results.") (license lgpl3+) (home-page "http://mpc.multiprecision.org/"))) + +(define-public mpfi + (package + (name "mpfi") + (version "1.5.1") + (source (origin + (method url-fetch) + (uri (string-append "https://gforge.inria.fr/frs/download.php/" + "file/30130/mpfi-" version ".tar.gz")) + (sha256 + (base32 + "1g2q6i7dqx40p4gw11da6jgfcbzmm26wxc69fwv8zpcdyg32a9za")))) + (build-system gnu-build-system) + (propagated-inputs `(("gmp" ,gmp) ; refers to both + ("mpfr" ,mpfr))) + (synopsis "C library for arbitrary precision interval arithmetic") + (description "MPFI is intended to be a portable library written in C for +arbitrary precision interval arithmetic with intervals represented using MPFR +reliable floating-point numbers. It is based on the GNU MP library and on the +MPFR library. The purpose of an arbitrary precision interval arithmetic is on +the one hand to get guaranteed results, thanks to interval computation, and on +the other hand to obtain accurate results, thanks to multiple precision +arithmetic.") + (license lgpl2.1+) + (home-page "https://perso.ens-lyon.fr/nathalie.revol/software.html"))) -- cgit 1.4.1 From 57497c5753465d4c2bbe1427223a51c5c33e12d9 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 7 Apr 2016 14:43:15 +0200 Subject: gnu: Add giac-xcas. * gnu/packages/algebra.scm (giac-xcas): New variable. Signed-off-by: Mathieu Lirzin --- gnu/packages/algebra.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 4a0e7ff6be..78e078fbd2 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2013, 2015 Ludovic Courtès +;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -23,7 +24,10 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages compression) #:use-module (gnu packages doxygen) + #:use-module (gnu packages fltk) + #:use-module (gnu packages gl) #:use-module (gnu packages graphviz) + #:use-module (gnu packages image) #:use-module (gnu packages multiprecision) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) @@ -31,7 +35,9 @@ #:use-module (gnu packages readline) #:use-module (gnu packages flex) #:use-module (gnu packages python) + #:use-module (gnu packages tcsh) #:use-module (gnu packages texlive) + #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) @@ -192,6 +198,67 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (license license:gpl2) (home-page "http://pari.math.u-bordeaux.fr/"))) +(define-public giac-xcas + (package + (name "giac-xcas") + (version "1.2.2-37") + (source (origin + (method url-fetch) + ;; "~parisse/giac" is not used because the maintainer regularly + ;; overwrites the release tarball there, introducing a checksum + ;; mismatch every time. See + ;; + (uri (string-append "https://www-fourier.ujf-grenoble.fr/" + "~parisse/debian/dists/stable/main/" + "source/giac_" version ".tar.gz")) + (sha256 + (base32 + "0cagh9nnaz7ks299b2bs3lrdclv4xbyis24zc8vf3i25p470bxsf")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-bin-cp + (lambda _ + ;; Some Makefiles contain hard-coded "/bin/cp". + (substitute* (find-files "doc" "^Makefile") + (("/bin/cp") (which "cp"))) + #t)) + (add-after 'unpack 'disable-broken-test + (lambda _ + ;; Disable failing test. Actually, the results are correct but + ;; a sorting discrepancy prevents the test from being validated. + (substitute* "check/Makefile.in" + (("chk_fhan16") "")) + #t))))) + (inputs + `(("fltk" ,fltk) + ("gmp" ,gmp) + ("gsl" ,gsl) + ("lapack" ,lapack) + ("libao" ,ao) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxft" ,libxft) + ("libxt" ,libxt) + ("mesa" ,mesa) + ("mpfi" ,mpfi) + ("mpfr" ,mpfr) + ("ntl" ,ntl) + ("perl" ,perl) + ("pari-gp" ,pari-gp) + ("tcsh" ,tcsh) + ("texlive" ,texlive-minimal))) + (native-inputs `(("readline" ,readline))) + (home-page "https://www-fourier.ujf-grenoble.fr/~parisse/giac.html") + (synopsis "Computer algebra system") + (description + "Giac/Xcas is a computer algebra system. It has a compatibility mode for +maple, mupad and the TI89. It is available as a standalone program (graphic +or text interfaces) or as a C++ library.") + (license license:gpl3+))) + (define-public flint (package (name "flint") -- cgit 1.4.1 From b0cf3d0fed3ae071dbcb90ff365210d0a5745b1a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 12 Apr 2016 19:29:12 +0200 Subject: gnu: qsynth: Update to 0.4.1. * gnu/packages/audio.scm (qsynth): Update to 0.4.1. --- gnu/packages/audio.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index ca438f8077..204e0a435c 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -2096,14 +2096,14 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.4.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz")) (sha256 - (base32 "1chc89v9hcjw3k4rvzakl8g56wv24kh48fzv1gfs4iv8vhyl3j4x")))) + (base32 "034p6mbwrjnxd9b6h20cidxi4ilkk3cgpjp154j0jzjs1ipf7x2h")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" phase -- cgit 1.4.1 From 58f738a1c8dabab0d855bda632518f2a1ac78181 Mon Sep 17 00:00:00 2001 From: Raymond Nicholson Date: Thu, 7 Apr 2016 21:07:59 +0100 Subject: gnu: pcmanfm, libfm: Update to 1.2.4. * gnu/packages/lxde.scm (pcmanfm): Update to 1.2.4. * gnu/packages/lxde.scm (libfm): Update to 1.2.4. Signed-off-by: Leo Famulari --- gnu/packages/lxde.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index fe71a17406..7ce31ad36a 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -32,7 +32,7 @@ (define-public libfm (package (name "libfm") - (version "1.2.3") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/project/pcmanfm/" @@ -40,7 +40,7 @@ "%29/LibFM/" name "-" version ".tar.xz")) (sha256 (base32 - "1ygvw52262r3jp1f45m9cdpx5xgvd4rkyfszslfqvg2c99ig34n6")))) + "0bsh4p7h2glhxf1cc1lvbxyb4qy0y1zsnl9izf7vrldkikrgc13q")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("gtk+" ,gtk+-2))) @@ -189,7 +189,7 @@ speed up the access to freedesktop.org defined application menus.") (define-public pcmanfm (package (name "pcmanfm") - (version "1.2.3") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/project/" name "/" @@ -197,7 +197,7 @@ speed up the access to freedesktop.org defined application menus.") "%29/PCManFM/" name "-" version ".tar.xz")) (sha256 (base32 - "1033rw5jd7nlzbcdpx3bik7347kyh1sg1gkla424gq9vqqpxia6g")))) + "04z3vd9si24yi4c8calqncdpb9b6mbj4cs4f3fs86i6j05gvpk9q")))) (build-system gnu-build-system) ;; (#:configure-flags '("--sysconfdir=/etc")) suggested in README. (inputs `(("gtk+" ,gtk+-2) -- cgit 1.4.1 From f7cfd80fc6b594a38a30255a74eedb5c33e45834 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 13 Apr 2016 18:04:49 -0400 Subject: gnu: linux-libre: Update to 4.5.1. * gnu/packages/linux.scm (linux-libre): Update to 4.5.1. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 2920298b36..5846dd9b04 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -221,7 +221,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.5") + (let* ((version "4.5.1") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -299,7 +299,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (uri (linux-libre-urls version)) (sha256 (base32 - "0km863vwy557flpygkr869yshpjs1v11ni78p8k9p9nm31ai6yn3")))) + "1x621kvaf842bzpgglfl31zi74ny9w9jgvmkz3z6m3708n8clrdh")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit 1.4.1 From 557a2503bc04649bb6dcb7dac8270e293bca8e44 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 13 Apr 2016 18:08:31 -0400 Subject: gnu: linux-libre-4.4: Update to 4.4.7. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.7. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5846dd9b04..31554c01df 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -336,13 +336,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.4 (package (inherit linux-libre) - (version "4.4.6") + (version "4.4.7") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "0sf623knc4j23p96r0w1ng725kj45ra50bwix01z5nvl5aqpnsrp")))) + "031wh2k204zvshira28bf33sk1bbk19ilgqmkvkwjp6spk5wmvpq")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit 1.4.1 From 9f1d33be33b647c9d0c60e8a3dd71c6cbc37adf1 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 3 Apr 2016 14:36:33 +0300 Subject: gnu: Add slop. * gnu/packages/xdisorg.scm (slop): New variable. --- gnu/packages/xdisorg.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 1a8305e553..c8e4beb0b6 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Eric Bavier -;;; Copyright © 2014, 2015 Alex Kost +;;; Copyright © 2014, 2015, 2016 Alex Kost ;;; Copyright © 2013, 2015 Ludovic Courtès ;;; Copyright © 2015 Mathieu Lirzin ;;; Copyright © 2015 Alexander I.Grafov @@ -32,6 +32,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python) @@ -42,6 +43,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) #:use-module (gnu packages gettext) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) ;for libgudev #:use-module (gnu packages ncurses) @@ -378,6 +380,38 @@ of the screen selected by mouse.") (license (license:x11-style "file://COPYING" "See 'COPYING' in the distribution.")))) +(define-public slop + (package + (name "slop") + (version "4.3.21") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/naelstrof/slop/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0z0p4a3p5mc6fjh5f8js9ppb0maxyvfxpiw2n6nqc5nim1kv6bim")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no "check" target + (inputs + `(("libx11" ,libx11) + ("libxrandr" ,libxrandr) + ("libxext" ,libxext) + ("imlib2" ,imlib2) + ("glew" ,glew) + ("mesa" ,mesa))) + (home-page "https://github.com/naelstrof/slop") + (synopsis "Select a region and print its bounds to stdout") + (description + "slop (Select Operation) is a tool that queries for a selection from a +user and prints the region to stdout. It grabs the mouse and turns it into a +crosshair, lets the user click and drag to make a selection (or click on a +window) while drawing a pretty box around it, then finally prints the +selection's dimensions to stdout.") + (license license:gpl3+))) + (define-public unclutter (package (name "unclutter") -- cgit 1.4.1 From 5c93de733789e328c2e25a11d4d32889ec6bf033 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 4 Apr 2016 19:53:37 +0300 Subject: gnu: Add maim. * gnu/packages/xdisorg.scm (maim): New variable. --- gnu/packages/xdisorg.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index c8e4beb0b6..a999857ecb 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -412,6 +412,48 @@ window) while drawing a pretty box around it, then finally prints the selection's dimensions to stdout.") (license license:gpl3+))) +(define-public maim + (package + (name "maim") + (version "3.4.47") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/naelstrof/maim/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0kfp7k55bxc5h6h0wv8bwmsc5ny66h9ra2z4dzs4yzszq16544pv")))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-source + (lambda* (#:key inputs #:allow-other-keys) + (let ((slop (string-append (assoc-ref inputs "slop") + "/bin/slop"))) + ;; "slop" command is hardcoded in the source; replace it + ;; with the full file name. + (substitute* "src/main.cpp" + (("^( +slopcommand.*)\"slop\"" all front) + (string-append front "\"" slop "\""))))))))) + (inputs + `(("libx11" ,libx11) + ("libxrandr" ,libxrandr) + ("libxfixes" ,libxfixes) + ("imlib2" ,imlib2) + ("slop" ,slop))) + (home-page "https://github.com/naelstrof/maim") + (synopsis "Screenshot utility for X Window System") + (description + "maim (Make Image) is a tool that takes screenshots of your desktop and +saves it in any format. Along with a full screen, it allows you to capture a +predefined region or a particular window. Also, it makes it possible to +include cursor in the resulting image.") + (license license:gpl3+))) + (define-public unclutter (package (name "unclutter") -- cgit 1.4.1 From fc1adab1487e5ea3c5f6341263df14414ba4e784 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Apr 2016 15:18:13 +0300 Subject: gnu: packages: Use 'search-patches' everywhere. * gnu/packages/abiword.scm: Use 'search-patches' for 'patches' field. * gnu/packages/acl.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/algebra.scm: Likewise. * gnu/packages/animation.scm: Likewise. * gnu/packages/apr.scm: Likewise. * gnu/packages/audacity.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/autotools.scm: Likewise. * gnu/packages/avahi.scm: Likewise. * gnu/packages/backup.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/bash.scm: Likewise. * gnu/packages/bioinformatics.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/ci.scm: Likewise. * gnu/packages/cmake.scm: Likewise. * gnu/packages/cpio.scm: Likewise. * gnu/packages/cross-base.scm: Likewise. * gnu/packages/dico.scm: Likewise. * gnu/packages/doxygen.scm: Likewise. * gnu/packages/ebook.scm: Likewise. * gnu/packages/elf.scm: Likewise. * gnu/packages/emacs.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/firmware.scm: Likewise. * gnu/packages/flashing-tools.scm: Likewise. * gnu/packages/fltk.scm: Likewise. * gnu/packages/ftp.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gawk.scm: Likewise. * gnu/packages/gcc.scm: Likewise. * gnu/packages/gd.scm: Likewise. * gnu/packages/ghostscript.scm: Likewise. * gnu/packages/glib.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/gnucash.scm: Likewise. * gnu/packages/gnunet.scm: Likewise. * gnu/packages/gnupg.scm: Likewise. * gnu/packages/gnuzilla.scm: Likewise. * gnu/packages/graphics.scm: Likewise. * gnu/packages/grub.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/icu4c.scm: Likewise. * gnu/packages/idutils.scm: Likewise. * gnu/packages/image.scm: Likewise. * gnu/packages/imagemagick.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/ldc.scm: Likewise. * gnu/packages/libcanberra.scm: Likewise. * gnu/packages/libevent.scm: Likewise. * gnu/packages/libreoffice.scm: Likewise. * gnu/packages/libunwind.scm: Likewise. * gnu/packages/libusb.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/lirc.scm: Likewise. * gnu/packages/llvm.scm: Likewise. * gnu/packages/lsh.scm: Likewise. * gnu/packages/lua.scm: Likewise. * gnu/packages/lxqt.scm: Likewise. * gnu/packages/mail.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mcrypt.scm: Likewise. * gnu/packages/messaging.scm: Likewise. * gnu/packages/mit-krb5.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/multiprecision.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/ninja.scm: Likewise. * gnu/packages/nvi.scm: Likewise. * gnu/packages/ocaml.scm: Likewise. * gnu/packages/orpheus.scm: Likewise. * gnu/packages/ots.scm: Likewise. * gnu/packages/parallel.scm: Likewise. * gnu/packages/patchutils.scm: Likewise. * gnu/packages/pcre.scm: Likewise. * gnu/packages/pdf.scm: Likewise. * gnu/packages/perl.scm: Likewise. * gnu/packages/plotutils.scm: Likewise. * gnu/packages/polkit.scm: Likewise. * gnu/packages/pulseaudio.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/qemu.scm: Likewise. * gnu/packages/qt.scm: Likewise. * gnu/packages/ratpoison.scm: Likewise. * gnu/packages/rdf.scm: Likewise. * gnu/packages/readline.scm: Likewise. * gnu/packages/rush.scm: Likewise. * gnu/packages/scheme.scm: Likewise. * gnu/packages/screen.scm: Likewise. * gnu/packages/sdl.scm: Likewise. * gnu/packages/slim.scm: Likewise. * gnu/packages/ssh.scm: Likewise. * gnu/packages/tcl.scm: Likewise. * gnu/packages/tcsh.scm: Likewise. * gnu/packages/texinfo.scm: Likewise. * gnu/packages/tls.scm: Likewise. * gnu/packages/tor.scm: Likewise. * gnu/packages/tv.scm: Likewise. * gnu/packages/valgrind.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/vpn.scm: Likewise. * gnu/packages/vtk.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/web.scm: Likewise. * gnu/packages/wicd.scm: Likewise. * gnu/packages/wm.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xfce.scm: Likewise. * gnu/packages/xiph.scm: Likewise. * gnu/packages/xml.scm: Likewise. * gnu/packages/xorg.scm: Likewise. * gnu/packages/zip.scm: Likewise. --- gnu/packages/abiword.scm | 5 ++- gnu/packages/acl.scm | 2 +- gnu/packages/admin.scm | 10 +++--- gnu/packages/algebra.scm | 4 +-- gnu/packages/animation.scm | 2 +- gnu/packages/apr.scm | 2 +- gnu/packages/audacity.scm | 2 +- gnu/packages/audio.scm | 4 +-- gnu/packages/autotools.scm | 8 ++--- gnu/packages/avahi.scm | 2 +- gnu/packages/backup.scm | 15 ++++---- gnu/packages/base.scm | 40 ++++++++++----------- gnu/packages/bash.scm | 2 +- gnu/packages/bioinformatics.scm | 9 +++-- gnu/packages/cdrom.scm | 2 +- gnu/packages/ci.scm | 8 ++--- gnu/packages/cmake.scm | 2 +- gnu/packages/cpio.scm | 2 +- gnu/packages/cross-base.scm | 2 +- gnu/packages/dico.scm | 5 ++- gnu/packages/doxygen.scm | 2 +- gnu/packages/ebook.scm | 6 ++-- gnu/packages/elf.scm | 5 ++- gnu/packages/emacs.scm | 9 +++-- gnu/packages/engineering.scm | 14 ++++---- gnu/packages/firmware.scm | 2 +- gnu/packages/flashing-tools.scm | 6 ++-- gnu/packages/fltk.scm | 2 +- gnu/packages/ftp.scm | 7 ++-- gnu/packages/games.scm | 22 ++++++------ gnu/packages/gawk.scm | 2 +- gnu/packages/gcc.scm | 6 ++-- gnu/packages/gd.scm | 5 ++- gnu/packages/ghostscript.scm | 4 +-- gnu/packages/glib.scm | 28 +++++++-------- gnu/packages/gnome.scm | 13 +++---- gnu/packages/gnucash.scm | 2 +- gnu/packages/gnunet.scm | 2 +- gnu/packages/gnupg.scm | 7 ++-- gnu/packages/gnuzilla.scm | 8 ++--- gnu/packages/graphics.scm | 8 ++--- gnu/packages/grub.scm | 6 ++-- gnu/packages/gtk.scm | 10 +++--- gnu/packages/guile.scm | 6 ++-- gnu/packages/icu4c.scm | 6 ++-- gnu/packages/idutils.scm | 3 +- gnu/packages/image.scm | 75 ++++++++++++++++++++-------------------- gnu/packages/imagemagick.scm | 2 +- gnu/packages/irc.scm | 2 +- gnu/packages/ldc.scm | 2 +- gnu/packages/libcanberra.scm | 2 +- gnu/packages/libevent.scm | 2 +- gnu/packages/libreoffice.scm | 2 +- gnu/packages/libunwind.scm | 2 +- gnu/packages/libusb.scm | 2 +- gnu/packages/linux.scm | 22 ++++++------ gnu/packages/lirc.scm | 2 +- gnu/packages/llvm.scm | 2 +- gnu/packages/lsh.scm | 2 +- gnu/packages/lua.scm | 10 +++--- gnu/packages/lxqt.scm | 2 +- gnu/packages/mail.scm | 8 ++--- gnu/packages/maths.scm | 12 +++---- gnu/packages/mcrypt.scm | 2 +- gnu/packages/messaging.scm | 9 +++-- gnu/packages/mit-krb5.scm | 8 ++--- gnu/packages/mp3.scm | 13 ++++--- gnu/packages/multiprecision.scm | 8 ++--- gnu/packages/music.scm | 2 +- gnu/packages/ninja.scm | 4 +-- gnu/packages/nvi.scm | 6 ++-- gnu/packages/ocaml.scm | 3 +- gnu/packages/orpheus.scm | 2 +- gnu/packages/ots.scm | 3 +- gnu/packages/parallel.scm | 4 +-- gnu/packages/patchutils.scm | 3 +- gnu/packages/pcre.scm | 2 +- gnu/packages/pdf.scm | 5 ++- gnu/packages/perl.scm | 18 +++++----- gnu/packages/plotutils.scm | 4 +-- gnu/packages/polkit.scm | 2 +- gnu/packages/pulseaudio.scm | 6 ++-- gnu/packages/python.scm | 39 ++++++++++----------- gnu/packages/qemu.scm | 27 +++++++-------- gnu/packages/qt.scm | 5 ++- gnu/packages/ratpoison.scm | 2 +- gnu/packages/rdf.scm | 7 ++-- gnu/packages/readline.scm | 2 +- gnu/packages/rush.scm | 2 +- gnu/packages/scheme.scm | 8 ++--- gnu/packages/screen.scm | 2 +- gnu/packages/sdl.scm | 2 +- gnu/packages/slim.scm | 6 ++-- gnu/packages/ssh.scm | 4 +-- gnu/packages/tcl.scm | 6 ++-- gnu/packages/tcsh.scm | 2 +- gnu/packages/texinfo.scm | 4 +-- gnu/packages/tls.scm | 5 ++- gnu/packages/tor.scm | 2 +- gnu/packages/tv.scm | 8 ++--- gnu/packages/valgrind.scm | 2 +- gnu/packages/version-control.scm | 14 ++++---- gnu/packages/video.scm | 10 +++--- gnu/packages/vpn.scm | 2 +- gnu/packages/vtk.scm | 2 +- gnu/packages/w3m.scm | 8 ++--- gnu/packages/web.scm | 19 +++++----- gnu/packages/wicd.scm | 10 +++--- gnu/packages/wm.scm | 2 +- gnu/packages/xdisorg.scm | 6 ++-- gnu/packages/xfce.scm | 7 ++-- gnu/packages/xiph.scm | 4 +-- gnu/packages/xml.scm | 6 ++-- gnu/packages/xorg.scm | 25 ++++++-------- gnu/packages/zip.scm | 26 +++++++------- 115 files changed, 402 insertions(+), 448 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/abiword.scm b/gnu/packages/abiword.scm index eac06ee02e..8e89bb2f52 100644 --- a/gnu/packages/abiword.scm +++ b/gnu/packages/abiword.scm @@ -53,9 +53,8 @@ (sha256 (base32 "1ik591rx15nn3n1297cwykl8wvrlgj78i528id9wbidgy3xzd570")) (patches - (list - (search-patch "abiword-wmf-version-lookup-fix.patch") - (search-patch "abiword-explictly-cast-bools.patch"))))) + (search-patches "abiword-wmf-version-lookup-fix.patch" + "abiword-explictly-cast-bools.patch")))) (build-system gnu-build-system) (arguments ;; NOTE: rsvg is disabled, since Abiword diff --git a/gnu/packages/acl.scm b/gnu/packages/acl.scm index 784186b670..415fae496b 100644 --- a/gnu/packages/acl.scm +++ b/gnu/packages/acl.scm @@ -41,7 +41,7 @@ (sha256 (base32 "08qd9s3wfhv0ajswsylnfwr5h0d7j9d4rgip855nrh400nxp940p")) - (patches (list (search-patch "acl-hurd-path-max.patch"))))) + (patches (search-patches "acl-hurd-path-max.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; FIXME: Investigate test suite failures diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 406aa0eece..11a2d1622b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -797,7 +797,7 @@ system administrator.") (sha256 (base32 "0263gi6i19fyzzc488n0qw3m518i39f6a7qmrfvahk9j10bkh5j3")) - (patches (list (search-patch "sudo-CVE-2015-5602.patch"))))) + (patches (search-patches "sudo-CVE-2015-5602.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -871,10 +871,10 @@ commands and their arguments.") (base32 "05mkp5bx1c3z7h5biddsv0p49gkrq9ksany3anp4wdiv92p5prfc")) (patches - (map search-patch '("wpa-supplicant-CVE-2015-5310.patch" - "wpa-supplicant-CVE-2015-5314.patch" - "wpa-supplicant-CVE-2015-5315.patch" - "wpa-supplicant-CVE-2015-5316.patch"))))) + (search-patches "wpa-supplicant-CVE-2015-5310.patch" + "wpa-supplicant-CVE-2015-5314.patch" + "wpa-supplicant-CVE-2015-5315.patch" + "wpa-supplicant-CVE-2015-5316.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 78e078fbd2..5b0049330a 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -270,7 +270,7 @@ or text interfaces) or as a C++ library.") version ".tar.gz")) (sha256 (base32 "11syazv1a8rrnac3wj3hnyhhflpqcmq02q8pqk2m6g2k6h0gxwfb")) - (patches (map search-patch '("flint-ldconfig.patch"))))) + (patches (search-patches "flint-ldconfig.patch")))) (build-system gnu-build-system) (propagated-inputs `(("gmp" ,gmp) @@ -319,7 +319,7 @@ fast arithmetic.") (sha256 (base32 "04hhcpshfkcq9fr4hixbhpps50yf9drk62xgkvlcaj5kb4nyrx7l")) - (patches (map search-patch '("arb-ldconfig.patch"))))) + (patches (search-patches "arb-ldconfig.patch")))) (build-system gnu-build-system) (propagated-inputs `(("flint" ,flint))) ; flint.h is included by arf.h diff --git a/gnu/packages/animation.scm b/gnu/packages/animation.scm index 789bb6e6f2..077657937d 100644 --- a/gnu/packages/animation.scm +++ b/gnu/packages/animation.scm @@ -68,7 +68,7 @@ C++ @dfn{Standard Template Library} (STL).") (sha256 (base32 "1d3z2r78j3rkff47q3wl0ami69y3l4nyi5r9zclymb8ar7mgkk9l")) - (patches (list (search-patch "synfig-build-fix.patch"))))) + (patches (search-patches "synfig-build-fix.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/apr.scm b/gnu/packages/apr.scm index 8c57ee3ab2..17945c0390 100644 --- a/gnu/packages/apr.scm +++ b/gnu/packages/apr.scm @@ -39,7 +39,7 @@ (base32 "0ypn51xblix5ys9xy7da3ngdydip0qqh9rdq8nz54w9aq8lys0vx")) (patches - (list (search-patch "apr-skip-getservbyname-test.patch"))) + (search-patches "apr-skip-getservbyname-test.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm index 53cc2a497e..9eae6aa1aa 100644 --- a/gnu/packages/audacity.scm +++ b/gnu/packages/audacity.scm @@ -47,7 +47,7 @@ "mirror://sourceforge/audacity/audacity-minsrc-" version ".tar.xz")) (sha256 (base32 "1cs2w3fwqylpqmfwkvlgdx5lhclpckfil7pqibl37qlbnf4qvndh")) - (patches (list (search-patch "audacity-fix-ffmpeg-binding.patch"))))) + (patches (search-patches "audacity-fix-ffmpeg-binding.patch")))) (build-system gnu-build-system) (inputs ;; TODO: Add portSMF and libwidgetextra once they're packaged. In-tree diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 204e0a435c..cdcb61afee 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -333,7 +333,7 @@ tools (analyzer, mono/stereo tools, crossovers).") (sha256 (base32 "0a1sni6lr7qpwywpggbkp0ia3h9bwwgf9i87gsag8ra2h30v82hd")) - (patches (list (search-patch "csound-header-ordering.patch"))))) + (patches (search-patches "csound-header-ordering.patch")))) (build-system cmake-build-system) (arguments ;; Work around this error on x86_64 with libc 2.22+: @@ -2064,7 +2064,7 @@ portions of LAME.") ".tgz")) (sha256 (base32 "0mwddk4qzybaf85wqfhxqlf0c5im9il8z03rd4n127k8y2jj9q4g")) - (patches (list (search-patch "portaudio-audacity-compat.patch"))))) + (patches (search-patches "portaudio-audacity-compat.patch")))) (build-system gnu-build-system) (inputs ;; TODO: Add ASIHPI. diff --git a/gnu/packages/autotools.scm b/gnu/packages/autotools.scm index 598624ccdc..ddc628d005 100644 --- a/gnu/packages/autotools.scm +++ b/gnu/packages/autotools.scm @@ -195,9 +195,8 @@ output is indexed in many ways to simplify browsing.") (base32 "0dl6vfi2lzz8alnklwxzfz624b95hb1ipjvd3mk177flmddcf24r")) (patches - (map search-patch - '("automake-regexp-syntax.patch" - "automake-skip-amhello-tests.patch"))))) + (search-patches "automake-regexp-syntax.patch" + "automake-skip-amhello-tests.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,(autoconf-wrapper)) @@ -273,8 +272,7 @@ Makefile, simplifying the entire process for the developer.") (sha256 (base32 "0vxj52zm709125gwv9qqlw02silj8bnjnh4y07arrz60r31ai1vw")) - (patches - (list (search-patch "libtool-skip-tests2.patch"))))) + (patches (search-patches "libtool-skip-tests2.patch")))) (build-system gnu-build-system) (propagated-inputs `(("m4" ,m4))) (native-inputs `(("m4" ,m4) diff --git a/gnu/packages/avahi.scm b/gnu/packages/avahi.scm index 2d480192af..5740ab2ff8 100644 --- a/gnu/packages/avahi.scm +++ b/gnu/packages/avahi.scm @@ -41,7 +41,7 @@ (sha256 (base32 "0j5b5ld6bjyh3qhd2nw0jb84znq0wqai7fsrdzg7bpg24jdp2wl3")) - (patches (list (search-patch "avahi-localstatedir.patch"))))) + (patches (search-patches "avahi-localstatedir.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-distro=none" diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 619c5cb57a..4bdb9ca059 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -61,8 +61,8 @@ (sha256 (base32 "0jh79syhr8n3l81jxlwsmwm1pklb4d923m2lgqbswyavh1fqmvwb")) - (patches (list (search-patch "duplicity-piped-password.patch") - (search-patch "duplicity-test_selection-tmp.patch"))))) + (patches (search-patches "duplicity-piped-password.patch" + "duplicity-test_selection-tmp.patch")))) (build-system python-build-system) (native-inputs `(("python2-setuptools" ,python2-setuptools) @@ -146,10 +146,10 @@ backups (called chunks) to allow easy burning to CD/DVD.") (base32 "0pixqnrcf35dnqgv0lp7qlcw7k13620qkhgxr288v7p4iz6ym1zb")) (patches - (list (search-patch "libarchive-mtree-filename-length-fix.patch") - (search-patch "libarchive-fix-lzo-test-case.patch") - (search-patch "libarchive-CVE-2013-0211.patch") - (search-patch "libarchive-bsdtar-test.patch"))))) + (search-patches "libarchive-mtree-filename-length-fix.patch" + "libarchive-fix-lzo-test-case.patch" + "libarchive-CVE-2013-0211.patch" + "libarchive-bsdtar-test.patch")))) (build-system gnu-build-system) ;; TODO: Add -L/path/to/nettle in libarchive.pc. (inputs @@ -377,8 +377,7 @@ changes are stored.") (sha256 (base32 "0fpdyxww41ba52d98blvnf543xvirq1v9xz1i3x1gm9lzlzpmc2g")) - (patches - (list (search-patch "diffutils-gets-undeclared.patch"))))) + (patches (search-patches "diffutils-gets-undeclared.patch")))) (build-system gnu-build-system) (native-inputs `(("guile" ,guile-2.0) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index e6628277a6..1c4ebbf64f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -82,8 +82,7 @@ command-line arguments, multiple languages, and so on.") (sha256 (base32 "1srn321x7whlhs5ks36zlcrrmj4iahll8fxwsh1vbz3v04px54fa")) - (patches - (list (search-patch "grep-timing-sensitive-test.patch"))))) + (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it (synopsis "Print lines matching a pattern") @@ -109,7 +108,7 @@ including, for example, recursive directory searching.") (sha256 (base32 "1myvrmh99jsvk7v3d7crm0gcrq51hmmm1r2kjyyci152in1x2j7h")) - (patches (list (search-patch "sed-hurd-path-max.patch"))))) + (patches (search-patches "sed-hurd-path-max.patch")))) (build-system gnu-build-system) (synopsis "Stream editor") (arguments @@ -145,9 +144,8 @@ implementation offers several extensions over the standard utility.") (sha256 (base32 "1wi2zwm4c9r3h3b8y4w0nm0qq897kn8kyj9k22ba0iqvxj48vvk4")) - (patches (map search-patch - '("tar-d_ino_in_dirent-fix.patch" - "tar-skip-unreliable-tests.patch"))))) + (patches (search-patches "tar-d_ino_in_dirent-fix.patch" + "tar-skip-unreliable-tests.patch")))) (build-system gnu-build-system) (synopsis "Managing tar archives") (description @@ -171,7 +169,7 @@ standard utility.") (sha256 (base32 "16d2r9kpivaak948mxzc0bai45mqfw73m113wrkmbffnalv1b5gx")) - (patches (list (search-patch "patch-hurd-path-max.patch"))))) + (patches (search-patches "patch-hurd-path-max.patch")))) (build-system gnu-build-system) (native-inputs `(("ed" ,ed))) (synopsis "Apply differences to originals, with optional backups") @@ -217,9 +215,8 @@ interactive means to merge two files.") (sha256 (base32 "178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y")) - (patches (map search-patch - '("findutils-localstatedir.patch" - "findutils-test-xargs.patch"))))) + (patches (search-patches "findutils-localstatedir.patch" + "findutils-test-xargs.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list @@ -325,7 +322,7 @@ functionality beyond that which is outlined in the POSIX standard.") (sha256 (base32 "19gwwhik3wdwn0r42b7xcihkbxvjl9r2bdal8nifc3k5i4rn3iqb")) - (patches (list (search-patch "make-impure-dirs.patch"))))) + (patches (search-patches "make-impure-dirs.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile (inputs `(("guile" ,guile-2.0))) @@ -363,8 +360,8 @@ change. GNU make offers many powerful extensions over the standard utility.") (sha256 (base32 "08lzmhidzc16af1zbx34f8cy4z7mzrswpdbhrb8shy3xxpflmcdm")) - (patches (list (search-patch "binutils-ld-new-dtags.patch") - (search-patch "binutils-loongson-workaround.patch"))))) + (patches (search-patches "binutils-ld-new-dtags.patch" + "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) ;; TODO: Add dependency on zlib + those for Gold. @@ -484,12 +481,12 @@ store.") (("use_ldconfig=yes") "use_ldconfig=no"))) (modules '((guix build utils))) - (patches (map search-patch - '("glibc-ldd-x86_64.patch" - "glibc-locale-incompatibility.patch" - "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch" - "glibc-CVE-2015-7547.patch"))))) + (patches + (search-patches "glibc-ldd-x86_64.patch" + "glibc-locale-incompatibility.patch" + "glibc-versioned-locpath.patch" + "glibc-o-largefile.patch" + "glibc-CVE-2015-7547.patch")))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc @@ -659,7 +656,7 @@ with the Linux kernel.") (sha256 (base32 "1f135546j34s9bfkydmx2nhh9vwxlx60jldi80zmsnln6wj3dsxf")) - (patches (list (search-patch "glibc-ldd-x86_64.patch"))))))) + (patches (search-patches "glibc-ldd-x86_64.patch")))))) (define-public glibc-locales (package @@ -779,8 +776,7 @@ command.") (base32 "17gsh0kaz0zyvghjmx861mi2p65m9901lngi179x61zm6v2v3xc4")) (file-name (string-append name "-" version)) - (patches (map search-patch - '("glibc-hurd-extern-inline.patch"))))) + (patches (search-patches "glibc-hurd-extern-inline.patch")))) ;; Libc provides , which includes a bunch of Hurd and Mach headers, ;; so both should be propagated. diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm index 15909c7e88..cad66da70b 100644 --- a/gnu/packages/bash.scm +++ b/gnu/packages/bash.scm @@ -285,7 +285,7 @@ without modification.") (base32 "0kxf8s5bw7y50x0ksb77d3kv0dwadixhybl818w27y6mlw26hq1b")) (patches - (list (search-patch "bash-completion-directories.patch"))))) + (search-patches "bash-completion-directories.patch")))) (build-system gnu-build-system) (native-inputs `(("util-linux" ,util-linux))) (arguments diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index da4a2d5eba..b76aadc6a2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -716,7 +716,7 @@ gapped, local, and paired-end alignment modes.") (sha256 (base32 "168zlzykq622zbgkh90a90f1bdgsxkscq2zxzbj8brq80hbjpyp7")) - (patches (list (search-patch "tophat-build-with-later-seqan.patch"))) + (patches (search-patches "tophat-build-with-later-seqan.patch")) (modules '((guix build utils))) (snippet '(begin @@ -1156,8 +1156,7 @@ time.") "07y179f63d7qnzdvkqcziwk9bs3k4zhp81q392fp1hwszjdvy22f")) ;; This patch has been sent upstream already and is available ;; for download from Sourceforge, but it has not been merged. - (patches (list - (search-patch "crossmap-allow-system-pysam.patch"))) + (patches (search-patches "crossmap-allow-system-pysam.patch")) (modules '((guix build utils))) ;; remove bundled copy of pysam (snippet @@ -2722,7 +2721,7 @@ partial genes, and identifies translation initiation sites.") version ".tar.gz")) (sha256 (base32 "0nzdc0j0hjllhsd5f2xli95dafm3nawskigs140xzvjk67xh0r9q")) - (patches (list (search-patch "rsem-makefile.patch"))) + (patches (search-patches "rsem-makefile.patch")) (modules '((guix build utils))) (snippet '(begin @@ -3129,7 +3128,7 @@ accessed/downloaded on demand across HTTP.") version "-src.zip")) (sha256 (base32 "0as8gxm4pjyc8dxmm1sl873rrd7wn5qs0l29nqfnl31x8i467xaa")) - (patches (list (search-patch "plink-1.07-unclobber-i.patch"))))) + (patches (search-patches "plink-1.07-unclobber-i.patch")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;no "check" target diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 46a5b234aa..4eff2d5cb0 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -164,7 +164,7 @@ files.") (sha256 (base32 "1pv4zrajm46za0f6lv162iqffih57a8ly4pc69f7y0gfyigb8p80")) - (patches (list (search-patch "cdparanoia-fpic.patch"))) + (patches (search-patches "cdparanoia-fpic.patch")) (modules '((guix build utils))) (snippet ;; Make libraries respect LDFLAGS. diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 5ab03c7652..be18ebd29f 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -52,10 +52,10 @@ (sha256 (base32 "08vc76xb7f42hh65j7qvjf58hw36aki5ml343170pq94vk75b1nh")) - (patches (map search-patch - '("hydra-automake-1.15.patch" - ;; TODO: Remove once we have a darcs input - "hydra-disable-darcs-test.patch"))))) + (patches (search-patches + "hydra-automake-1.15.patch" + ;; TODO: Remove once we have a darcs input + "hydra-disable-darcs-test.patch")))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index d75b9f62ef..1cb1e06993 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -45,7 +45,7 @@ (sha256 (base32 "08pwy9ip9cgwgynhn5vrjw8drw29gijy1rmziq22n65zds6ifnp7")) - (patches (list (search-patch "cmake-fix-tests.patch"))))) + (patches (search-patches "cmake-fix-tests.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" diff --git a/gnu/packages/cpio.scm b/gnu/packages/cpio.scm index e8eede6524..77a0c82d2e 100644 --- a/gnu/packages/cpio.scm +++ b/gnu/packages/cpio.scm @@ -36,7 +36,7 @@ (sha256 (base32 "0vi9q475h1rki53100zml75vxsykzyhrn70hidy41s5c2rc8r6bh")) - (patches (list (search-patch "cpio-CVE-2016-2037.patch"))))) + (patches (search-patches "cpio-CVE-2016-2037.patch")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/cpio/") (synopsis "Manage cpio and tar file archives") diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 8bd599c25a..aa67d21c19 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -201,7 +201,7 @@ may be either a libc package or #f.)" "Return GCC patches needed for TARGET." (cond ((string-prefix? "xtensa-" target) ;; Patch by Qualcomm needed to build the ath9k-htc firmware. - (list (search-patch "ath9k-htc-firmware-gcc.patch"))) + (search-patches "ath9k-htc-firmware-gcc.patch")) (else '()))) (define* (cross-gcc target diff --git a/gnu/packages/dico.scm b/gnu/packages/dico.scm index 317eeeebea..780d8efcc7 100644 --- a/gnu/packages/dico.scm +++ b/gnu/packages/dico.scm @@ -43,9 +43,8 @@ (sha256 (base32 "04pjks075x20d19l623mj50bw64g8i41s63z4kzzqcbg9qg96x64")) - (patches (map search-patch - '("cpio-gets-undeclared.patch" - "dico-libtool-deterministic.patch"))))) + (patches (search-patches "cpio-gets-undeclared.patch" + "dico-libtool-deterministic.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output diff --git a/gnu/packages/doxygen.scm b/gnu/packages/doxygen.scm index 8245a65c86..8e4cbb936c 100644 --- a/gnu/packages/doxygen.scm +++ b/gnu/packages/doxygen.scm @@ -40,7 +40,7 @@ (sha256 (base32 "0ja02pm3fpfhc5dkry00kq8mn141cqvdqqpmms373ncbwi38pl35")) - (patches (list (search-patch "doxygen-test.patch"))))) + (patches (search-patches "doxygen-test.patch")))) (build-system cmake-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm index bf7fe70772..f972d8831f 100644 --- a/gnu/packages/ebook.scm +++ b/gnu/packages/ebook.scm @@ -50,7 +50,7 @@ (sha256 (base32 "18zzb4x3z0d7fjh1x5439bs62dmgsi4c1pg3qyr7h5gp1i5xcj9l")) - (patches (list (search-patch "chmlib-inttypes.patch"))))) + (patches (search-patches "chmlib-inttypes.patch")))) (build-system gnu-build-system) (home-page "http://www.jedrea.com/chmlib/") (synopsis "Library for CHM files") @@ -77,8 +77,8 @@ '(begin (delete-file-recursively "src/unrar") (delete-file "src/odf/thumbnail.py"))) - (patches (list (search-patch "calibre-drop-unrar.patch") - (search-patch "calibre-no-updates-dialog.patch"))))) + (patches (search-patches "calibre-drop-unrar.patch" + "calibre-no-updates-dialog.patch")))) (build-system python-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index cb456af195..82604c4e30 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -39,8 +39,7 @@ (sha256 (base32 "0w50szymyqvx8g0vkwrvnv17grqxva6x1z9dm9m3i99zg2hr232p")) - (patches - (list (search-patch "elfutils-tests-ptrace.patch"))))) + (patches (search-patches "elfutils-tests-ptrace.patch")))) (build-system gnu-build-system) ;; Separate programs because that's usually not what elfutils users want, @@ -108,7 +107,7 @@ addr2line, and more.") (sha256 (base32 "1rqpg84wrd3fa16wa9vqdvasnc05yz49w207cz1l0wrl4k8q97y9")) - (patches (list (search-patch "patchelf-page-size.patch"))))) + (patches (search-patches "patchelf-page-size.patch")))) (build-system gnu-build-system) ;; XXX: The upstream 'patchelf' doesn't support ARM. The only available diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c8283ca441..188824a48b 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -76,8 +76,8 @@ (sha256 (base32 "0kn3rzm91qiswi0cql89kbv6mqn27rwsyjfb8xmwy9m5s8fxfiyx")) - (patches (list (search-patch "emacs-exec-path.patch") - (search-patch "emacs-source-date-epoch.patch"))))) + (patches (search-patches "emacs-exec-path.patch" + "emacs-source-date-epoch.patch")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -1308,7 +1308,7 @@ on context.") (base32 "141wn9l0m33w0g3dqmx8nxbfdny1r5xbr6ak61rsz21bk0qafs7x")) (patches - (list (search-patch "emacs-scheme-complete-scheme-r5rs-info.patch"))))) + (search-patches "emacs-scheme-complete-scheme-r5rs-info.patch")))) (build-system emacs-build-system) (home-page "https://github.com/ashinn/scheme-complete") (synopsis "Smart tab completion for Scheme in Emacs") @@ -1385,8 +1385,7 @@ identifiers in the MIT-Scheme documentation.") (file-name (string-append name "-" version ".el")) (method uncompressed-file-fetch) (uri "https://staff.fnwi.uva.nl/c.dominik/Tools/constants/constants.el") - (patches - (list (search-patch "emacs-constants-lisp-like.patch"))) + (patches (search-patches "emacs-constants-lisp-like.patch")) (sha256 (base32 "14q094aphsjhq8gklv7i5a7byl0ygz63cv3n6b5p8ji2jy0mnnw3")))) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 9a299d91c8..c519ca59e7 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -232,8 +232,8 @@ optimizer; and it can produce photorealistic and design review images.") (modules '((guix build utils) (guix build download) (guix ftp-client))) - (patches (list (search-patch "fastcap-mulSetup.patch") - (search-patch "fastcap-mulGlobal.patch"))))) + (patches (search-patches "fastcap-mulSetup.patch" + "fastcap-mulGlobal.patch")))) (build-system gnu-build-system) (native-inputs `(("texlive" ,texlive) @@ -329,11 +329,11 @@ multipole-accelerated algorithm.") "-" version ".tar.z")) (sha256 (base32 "1a06xyyd40zhknrkz17xppl2zd5ig4w9g1grc8qrs0zqqcl5hpzi")) - (patches (list (search-patch "fasthenry-spAllocate.patch") - (search-patch "fasthenry-spBuild.patch") - (search-patch "fasthenry-spUtils.patch") - (search-patch "fasthenry-spSolve.patch") - (search-patch "fasthenry-spFactor.patch"))))) + (patches (search-patches "fasthenry-spAllocate.patch" + "fasthenry-spBuild.patch" + "fasthenry-spUtils.patch" + "fasthenry-spSolve.patch" + "fasthenry-spFactor.patch")))) (build-system gnu-build-system) (arguments `(#:make-flags '("CC=gcc" "RM=rm" "SHELL=sh" "all") diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index 271fb49dd7..45b7bf7ab1 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -39,7 +39,7 @@ (base32 "16jbj8avg5jkgvq5lxm0hdxxn4c3zn7fx8b4nxllvr024apk9w23")) (file-name (string-append name "-" version "-checkout")) - (patches (list (search-patch "ath9k-htc-firmware-objcopy.patch"))))) + (patches (search-patches "ath9k-htc-firmware-objcopy.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-before diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index 194ed380bb..9f9f1b9c6a 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -44,7 +44,7 @@ (sha256 (base32 "1s9pc4yls2s1gcg2ar4q75nym2z5v6lxq36bl6lq26br00nj2mas")) - (patches (list (search-patch "flashrom-use-libftdi1.patch"))))) + (patches (search-patches "flashrom-use-libftdi1.patch")))) (build-system gnu-build-system) (inputs `(("dmidecode" ,dmidecode) ("pciutils" ,pciutils) @@ -88,7 +88,7 @@ programmer devices.") (sha256 (base32 "0frxg0q09nrm95z7ymzddx7ysl77ilfbdix1m81d9jjpiv5bm64y")) - (patches (list (search-patch "avrdude-fix-libusb.patch"))))) + (patches (search-patches "avrdude-fix-libusb.patch")))) (build-system gnu-build-system) (inputs `(("libelf" ,libelf) @@ -117,7 +117,7 @@ technique (ISP).") (sha256 (base32 "15gr99y1z9vbvhrkd25zqhnzhg6zjmaam3vfjzf2mazd39mx7d0x")) - (patches (list (search-patch "dfu-programmer-fix-libusb.patch"))))) + (patches (search-patches "dfu-programmer-fix-libusb.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 0629d41c0c..4dec9bc288 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -46,7 +46,7 @@ (sha256 (base32 "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq")) - (patches (list (search-patch "fltk-shared-lib-defines.patch"))))) + (patches (search-patches "fltk-shared-lib-defines.patch")))) (build-system gnu-build-system) (inputs `(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index acd69adcd0..4c2d893c17 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -43,9 +43,8 @@ (sha256 (base32 "1grmp8zg7cjgjinz66mrh53whigkqzl90nlxj05hapnhk3ns3vni")) - (patches - (list (search-patch - "lftp-dont-save-unknown-host-fingerprint.patch"))))) + (patches (search-patches + "lftp-dont-save-unknown-host-fingerprint.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -126,7 +125,7 @@ FTP browser, as well as non-interactive commands such as 'ncftpput' and (sha256 (base32 "0f5cj5p852wkm24mzy2sxgxyahv2p9rk4wlq21j310pi7wlhgwyl")) - (patches (list (search-patch "weex-vacopy.patch"))))) + (patches (search-patches "weex-vacopy.patch")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 653e0c7206..3fb30af9e2 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -220,7 +220,7 @@ that beneath its ruins lay buried an ancient evil.") (sha256 (base32 "0q34d2k6anzqvb0mf67x85q92lfx9jr71ry13dlp47jx0x9i573m")) - (patches (list (search-patch "pingus-sdl-libs-config.patch"))))) + (patches (search-patches "pingus-sdl-libs-config.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("scons" ,scons))) @@ -598,8 +598,8 @@ for common mesh file formats, and collision detection.") (sha256 (base32 "1r4c5gap1z2zsv4yjd34qriqkxaq4lb4rykapyzkkdf4g36lc3nh")) - (patches (list (search-patch "mars-sfml-2.3.patch") - (search-patch "mars-install.patch"))))) + (patches (search-patches "mars-sfml-2.3.patch" + "mars-install.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; There are no tests @@ -1709,8 +1709,7 @@ Z64 video plugin.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "04qkpd8ic7xsgnqz7spl00wxdygf79m7d1k8rabbygjk5lg6p8z2")) - (patches - (list (search-patch "mupen64plus-ui-console-notice.patch"))))) + (patches (search-patches "mupen64plus-ui-console-notice.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1871,12 +1870,11 @@ and a game metadata scraper.") (sha256 (base32 "1f2whlrfidwfh8lvr8cspcyirc6840r5d1ajm7x99qmngygrhixs")) - (patches (map search-patch - '("pinball-const-fix.patch" - "pinball-cstddef.patch" - "pinball-missing-separators.patch" - "pinball-src-deps.patch" - "pinball-system-ltdl.patch"))))) + (patches (search-patches "pinball-const-fix.patch" + "pinball-cstddef.patch" + "pinball-missing-separators.patch" + "pinball-src-deps.patch" + "pinball-system-ltdl.patch")))) (build-system gnu-build-system) (inputs `(("glu" ,glu) @@ -1965,7 +1963,7 @@ players.") (sha256 (base32 "1hxrlv6n8py48j487i6wbb4n4vd55w0na69r7ccmmr9vmrsw5mlk")) - (patches (list (search-patch "einstein-build.patch"))))) + (patches (search-patches "einstein-build.patch")))) (build-system gnu-build-system) (inputs `(("freetype" ,freetype) diff --git a/gnu/packages/gawk.scm b/gnu/packages/gawk.scm index 8f2805cd4b..c6d322b708 100644 --- a/gnu/packages/gawk.scm +++ b/gnu/packages/gawk.scm @@ -36,7 +36,7 @@ ".tar.xz")) (sha256 (base32 "09d6pmx6h3i2glafm0jd1v1iyrs03vcyv2rkz12jisii3vlmbkz3")) - (patches (list (search-patch "gawk-fts-test.patch"))))) + (patches (search-patches "gawk-fts-test.patch")))) (build-system gnu-build-system) (arguments `(#:parallel-tests? #f ; test suite fails in parallel diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 1df5150ab3..a2b8126872 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -328,7 +328,7 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "08yggr18v373a1ihj0rg2vd6psnic42b518xcgp3r9k81xz1xyr2")) - (patches (list (search-patch "gcc-arm-link-spec-fix.patch"))))))) + (patches (search-patches "gcc-arm-link-spec-fix.patch")))))) (define-public gcc-4.9 (package (inherit gcc-4.8) @@ -340,7 +340,7 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "0zmnm00d2a1hsd41g34bhvxzvxisa2l584q3p447bd91lfjv4ci3")) - (patches (list (search-patch "gcc-libvtv-runpath.patch"))))))) + (patches (search-patches "gcc-libvtv-runpath.patch")))))) (define-public gcc-5 (package (inherit gcc-4.9) @@ -352,7 +352,7 @@ Go. It also includes runtime support libraries for these languages.") (sha256 (base32 "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq")) - (patches (list (search-patch "gcc-5.0-libvtv-runpath.patch"))))))) + (patches (search-patches "gcc-5.0-libvtv-runpath.patch")))))) ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions accordingly. diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index 55caac9b29..6ae5579b9c 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -83,9 +83,8 @@ most common applications of GD involve website development.") (sha256 (base32 "1ya8f9hpiax8j29vwaiwlvvgah0vkyvpzva28r8231nyk0f3s40z")) - (patches - (list - (search-patch "perl-gd-options-passthrough-and-fontconfig.patch"))))) + (patches (search-patches + "perl-gd-options-passthrough-and-fontconfig.patch")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) ;needs Module::Build >= 0.42 diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index 88f24209c8..0a65813f97 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -133,8 +133,8 @@ printing, and psresize, for adjusting page sizes.") (sha256 (base32 "0q4jj41p0qbr4mgcc9q78f5zs8cm1g57wgryhsm2yq4lfslm3ib1")) - (patches (map search-patch '("ghostscript-CVE-2015-3228.patch" - "ghostscript-runpath.patch"))) + (patches (search-patches "ghostscript-CVE-2015-3228.patch" + "ghostscript-runpath.patch")) (modules '((guix build utils))) (snippet ;; Honor --docdir. diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 16a1a6162d..e7e9df8dff 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -68,8 +68,7 @@ (sha256 (base32 "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) - (patches - (list (search-patch "dbus-helper-search-path.patch"))))) + (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -139,11 +138,11 @@ shared NFS home directories.") (sha256 (base32 "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) - (patches (list (search-patch "glib-tests-homedir.patch") - (search-patch "glib-tests-desktop.patch") - (search-patch "glib-tests-prlimit.patch") - (search-patch "glib-tests-timer.patch") - (search-patch "glib-tests-gapplication.patch"))))) + (patches (search-patches "glib-tests-homedir.patch" + "glib-tests-desktop.patch" + "glib-tests-prlimit.patch" + "glib-tests-timer.patch" + "glib-tests-gapplication.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python @@ -231,12 +230,10 @@ dynamic loading, and an object system.") (snippet '(substitute* "tools/g-ir-tool-template.in" (("#!/usr/bin/env @PYTHON@") "#!@PYTHON@"))) - (patches (list - (search-patch "gobject-introspection-cc.patch") - (search-patch - "gobject-introspection-girepository.patch") - (search-patch - "gobject-introspection-absolute-shlib-path.patch"))))) + (patches (search-patches + "gobject-introspection-cc.patch" + "gobject-introspection-girepository.patch" + "gobject-introspection-absolute-shlib-path.patch")))) (build-system gnu-build-system) (inputs `(("bison" ,bison) @@ -479,9 +476,8 @@ useful for C++.") (sha256 (base32 "1f5dfxjnil2glfwxnqr14d2cjfbkghsbsn8n04js2c2icr7iv2pv")) - (patches - (list (search-patch - "python2-pygobject-2-gi-info-type-error-domain.patch"))))) + (patches (search-patches + "python2-pygobject-2-gi-info-type-error-domain.patch")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2adf267b09..0fd1d5bb29 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -739,8 +739,8 @@ the API.") version "/gtkglext-" version ".tar.gz")) (sha256 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5")) - (patches (list - (search-patch "gtkglext-disable-disable-deprecated.patch"))))) + (patches (search-patches + "gtkglext-disable-disable-deprecated.patch")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+-2) ("mesa" ,mesa) @@ -1010,7 +1010,8 @@ featuring mature C, C++ and Python bindings.") "/" name "-" version ".tar.bz2")) (sha256 (base32 "0swp4kk6x7hy1rvd1f9jba31lvfc6qvafkvbpg9h0r34fzrd8q4i")) - (patches (list (search-patch "libbonobo-activation-test-race.patch"))))) + (patches (search-patches + "libbonobo-activation-test-race.patch")))) (build-system gnu-build-system) (arguments ;; The programmer kindly gives us a hook to turn off deprecation warnings ... @@ -1976,7 +1977,7 @@ library.") (base32 "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) (patches - (list (search-patch "glib-networking-ssl-cert-file.patch"))))) + (search-patches "glib-networking-ssl-cert-file.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2371,7 +2372,7 @@ output devices.") (sha256 (base32 "0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454")) - (patches (list (search-patch "geoclue-config.patch"))))) + (patches (search-patches "geoclue-config.patch")))) (build-system glib-or-gtk-build-system) (arguments '(;; The tests want to run the system bus. @@ -2450,7 +2451,7 @@ faster results and to avoid unnecessary server load.") (sha256 (base32 "0f6x9mi1jzgqdpycaikyhjljnw3aacsl3gxndyg0dfqkq6y9jwb9")) - (patches (list (search-patch "upower-builddir.patch"))))) + (patches (search-patches "upower-builddir.patch")))) (build-system glib-or-gtk-build-system) (arguments '( ;; The tests want to contact the system bus, which can't be done in the diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 58d3bda561..5c0ce4f544 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -47,7 +47,7 @@ (sha256 (base32 "0x84f07p30pwhriamv8ifljgw755cj87rc12jy1xddf47spyj7rp")) - (patches (list (search-patch "gnucash-price-quotes-perl.patch"))))) + (patches (search-patches "gnucash-price-quotes-perl.patch")))) (build-system gnu-build-system) (inputs `(("guile" ,guile-2.0) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 471f383b85..b5a2685f65 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -67,7 +67,7 @@ (sha256 (base32 "0zvv7wd011npcx7yphw9bpgivyxz6mlp87a57n96nv85k96dd2l6")) - (patches (list (search-patch "libextractor-ffmpeg-3.patch"))) + (patches (search-patches "libextractor-ffmpeg-3.patch")) (modules '((guix build utils))) (snippet ;; Nowadays libmagic (from 'file') returns 'audio/ogg' and not diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index c3b859b7a2..5ed6885cab 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -207,9 +207,8 @@ compatible to GNU Pth.") (sha256 (base32 "06mn2viiwsyq991arh5i5fhr9jyxq2bi0jkdj7ndfisxihngpc5p")) - (patches - (list (search-patch - "gnupg-simple-query-ignore-status-messages.patch"))))) + (patches (search-patches + "gnupg-simple-query-ignore-status-messages.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -351,7 +350,7 @@ and every application benefits from this.") ;; Unfortunately, we have to disable some tests due to some gpg-agent ;; goofiness... see: ;; https://bugs.launchpad.net/pygpgme/+bug/999949 - (patches (list (search-patch "pygpgme-disable-problematic-tests.patch"))))) + (patches (search-patches "pygpgme-disable-problematic-tests.patch")))) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 1ae97b256b..b2717b8cdb 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -191,7 +191,7 @@ in the Mozilla clients.") (base32 "0knr99yc8sba2ga6x1gwhg9gr1dmgcl344g3bmxm8c364i2vpxns")) ;; Create nss.pc and nss-config. - (patches (list (search-patch "nss-pkgconfig.patch"))))) + (patches (search-patches "nss-pkgconfig.patch")))) (build-system gnu-build-system) (outputs '("out" "bin")) (arguments @@ -288,9 +288,9 @@ standards.") (sha256 (base32 "1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g")) - (patches (map search-patch - '("icecat-avoid-bundled-includes.patch" - "icecat-re-enable-DHE-cipher-suites.patch"))) + (patches (search-patches + "icecat-avoid-bundled-includes.patch" + "icecat-re-enable-DHE-cipher-suites.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 6edba5025d..b3fd1b6af9 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -176,7 +176,7 @@ many more.") (sha256 (base32 "1izddjwbh1grs8080vmaix72z469qy29wrvkphgmqmcm0sv1by7c")) - (patches (map search-patch '("ilmbase-fix-tests.patch"))))) + (patches (search-patches "ilmbase-fix-tests.patch")))) (build-system gnu-build-system) (home-page "http://www.openexr.com/") (synopsis "Utility C++ libraries for threads, maths, and exceptions") @@ -204,7 +204,7 @@ exception-handling library.") '(substitute* (find-files "." "tmpDir\\.h") (("\"/var/tmp/\"") "\"/tmp/\""))) - (patches (list (search-patch "openexr-missing-samples.patch"))))) + (patches (search-patches "openexr-missing-samples.patch")))) (build-system gnu-build-system) (arguments '(#:phases @@ -245,7 +245,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.") (sha256 (base32 "0mn7cz19mn8dcrhkq15h25gl20ammr1wz0j2j3c2vxs6ph7zn8jy")) - (patches (list (search-patch "openimageio-boost-1.60.patch"))))) + (patches (search-patches "openimageio-boost-1.60.patch")))) (build-system cmake-build-system) ;; FIXME: To run all tests successfully, test image sets from multiple ;; third party sources have to be present. For details see @@ -385,7 +385,7 @@ and understanding different BRDFs (and other component functions).") version ".tar.gz"))) (sha256 (base32 "07wii4i824vy9qsvjsgqxppgqmfdxq0xa87i5yk53fijriadq7mb")) - (patches (list (search-patch "agg-am_c_prototype.patch"))))) + (patches (search-patches "agg-am_c_prototype.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm index 96d284c108..5fc7ee8386 100644 --- a/gnu/packages/grub.scm +++ b/gnu/packages/grub.scm @@ -83,9 +83,9 @@ (sha256 (base32 "0n64hpmsccvicagvr0c6v0kgp2yw0kgnd3jvsyd26cnwgs7c6kkq")) - (patches (list (search-patch "grub-gets-undeclared.patch") - (search-patch "grub-freetype.patch") - (search-patch "grub-CVE-2015-8370.patch"))))) + (patches (search-patches "grub-gets-undeclared.patch" + "grub-freetype.patch" + "grub-CVE-2015-8370.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-werror") diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3bc4b8dc07..255d885b27 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -554,7 +554,7 @@ is part of the GNOME accessibility project.") (sha256 (base32 "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj")) - (patches (list (search-patch "gtk2-respect-GUIX_GTK2_PATH.patch"))))) + (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs @@ -615,7 +615,7 @@ application suites.") (sha256 (base32 "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")) - (patches (list (search-patch "gtk3-respect-GUIX_GTK3_PATH.patch"))))) + (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) @@ -752,7 +752,7 @@ exceptions, macros, and a dynamic programming environment.") (sha256 (base32 "136f236iw3yrrz6pkkp1ma9c5mrs5icqha6pnawinqpk892r3jh7")) - (patches (list (search-patch "guile-rsvg-pkgconfig.patch"))) + (patches (search-patches "guile-rsvg-pkgconfig.patch")) (modules '((guix build utils))) (snippet '(substitute* (find-files "." "Makefile\\.am") @@ -791,7 +791,7 @@ images onto Cairo surfaces.") (sha256 (base32 "1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m")) - (patches (list (search-patch "guile-present-coding.patch"))) + (patches (search-patches "guile-present-coding.patch")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -977,7 +977,7 @@ extensive documentation, including API reference and a tutorial.") (sha256 (base32 "1gjkf8x6hyx1skq3hhwcbvwifxvrf9qxis5vx8x5igmmgs70g94s")) - (patches (list (search-patch "pycairo-wscript.patch"))))) + (patches (search-patches "pycairo-wscript.patch")))) (build-system waf-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index fe043cba0b..e247634e04 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -72,7 +72,7 @@ (sha256 (base32 "0l200a0v7h8bh0cwz6v7hc13ds39cgqsmfrks55b1rbj5vniyiy3")) - (patches (list (search-patch "guile-1.8-cpp-4.5.patch"))))) + (patches (search-patches "guile-1.8-cpp-4.5.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-error-on-warning") @@ -132,7 +132,7 @@ without requiring the source code to be rewritten.") (sha256 (base32 "1qh3j7308qvsjgwf7h94yqgckpbgz2k3yqdkzsyhqcafvfka9l5f")) - (patches (list (search-patch "guile-arm-fixes.patch"))))) + (patches (search-patches "guile-arm-fixes.patch")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) (inputs `(("libffi" ,libffi) @@ -410,7 +410,7 @@ library.") (sha256 (base32 "0zparwgf01jgl1x53ik71ghabldq6zz18ha4dscps1i0qrzgap1b")) - (patches (list (search-patch "mcron-install.patch"))))) + (patches (search-patches "mcron-install.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs `(("ed" ,ed) ("which" ,which) ("guile" ,guile-2.0))) diff --git a/gnu/packages/icu4c.scm b/gnu/packages/icu4c.scm index a6f5acd4f2..fb33c761de 100644 --- a/gnu/packages/icu4c.scm +++ b/gnu/packages/icu4c.scm @@ -39,9 +39,9 @@ "-src.tgz")) (sha256 (base32 "0ys5f5spizg45qlaa31j2lhgry0jka2gfha527n4ndfxxz5j4sz1")) - (patches (map search-patch '("icu4c-CVE-2014-6585.patch" - "icu4c-CVE-2015-1270.patch" - "icu4c-CVE-2015-4760.patch"))))) + (patches (search-patches "icu4c-CVE-2014-6585.patch" + "icu4c-CVE-2015-1270.patch" + "icu4c-CVE-2015-4760.patch")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) diff --git a/gnu/packages/idutils.scm b/gnu/packages/idutils.scm index 3dc322f568..7a8e1c6752 100644 --- a/gnu/packages/idutils.scm +++ b/gnu/packages/idutils.scm @@ -35,8 +35,7 @@ (sha256 (base32 "1hmai3422iaqnp34kkzxdnywl7n7pvlxp11vrw66ybxn9wxg90c1")) - (patches (list - (search-patch "diffutils-gets-undeclared.patch"))))) + (patches (search-patches "diffutils-gets-undeclared.patch")))) (build-system gnu-build-system) (native-inputs `(("emacs" ,emacs-no-x))) (home-page "http://www.gnu.org/software/idutils/") diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 0343e45d6f..aaddce1c70 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -140,10 +140,10 @@ maximum quality factor.") version ".tar.gz")) (sha256 (base32 "136nf1rj9dp5jgv1p7z4dk0xy3wki1w0vfjbk82f645m0w4samsd")) - (patches (map search-patch - '("libtiff-oob-accesses-in-decode.patch" - "libtiff-oob-write-in-nextdecode.patch" - "libtiff-CVE-2015-8665+CVE-2015-8683.patch"))))) + (patches (search-patches + "libtiff-oob-accesses-in-decode.patch" + "libtiff-oob-write-in-nextdecode.patch" + "libtiff-CVE-2015-8665+CVE-2015-8683.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;1.3 MiB of HTML documentation @@ -178,18 +178,18 @@ collection of tools for doing simple manipulations of TIFF images.") (sha256 (base32 "1y3wba4q8pl7kr51212jwrsz1x6nslsx1gsjml1x0i8549lmqd2v")) (patches - (map search-patch '("libwmf-CAN-2004-0941.patch" - "libwmf-CVE-2006-3376.patch" - "libwmf-CVE-2007-0455.patch" - "libwmf-CVE-2007-2756.patch" - "libwmf-CVE-2007-3472.patch" - "libwmf-CVE-2007-3473.patch" - "libwmf-CVE-2007-3477.patch" - "libwmf-CVE-2009-1364.patch" - "libwmf-CVE-2009-3546.patch" - "libwmf-CVE-2015-0848+CVE-2015-4588.patch" - "libwmf-CVE-2015-4695.patch" - "libwmf-CVE-2015-4696.patch"))))) + (search-patches "libwmf-CAN-2004-0941.patch" + "libwmf-CVE-2006-3376.patch" + "libwmf-CVE-2007-0455.patch" + "libwmf-CVE-2007-2756.patch" + "libwmf-CVE-2007-3472.patch" + "libwmf-CVE-2007-3473.patch" + "libwmf-CVE-2007-3477.patch" + "libwmf-CVE-2009-1364.patch" + "libwmf-CVE-2009-3546.patch" + "libwmf-CVE-2015-0848+CVE-2015-4588.patch" + "libwmf-CVE-2015-4695.patch" + "libwmf-CVE-2015-4696.patch")))) (build-system gnu-build-system) (inputs @@ -291,7 +291,7 @@ arithmetic ops.") version ".tar.gz")) (sha256 (base32 "1ffhgmf2fqzk0h4k736pp06z7q5y4x41fg844bd6a9vgncq86bby")) - (patches (list (search-patch "jbig2dec-ignore-testtest.patch"))))) + (patches (search-patches "jbig2dec-ignore-testtest.patch")))) (build-system gnu-build-system) (synopsis "Decoder of the JBIG2 image compression format") @@ -320,8 +320,8 @@ work.") version ".tar.gz")) (sha256 (base32 "00zzm303zvv4ijzancrsb1cqbph3pgz0nky92k9qx3fq9y0vnchj")) - (patches (map search-patch '("openjpeg-use-after-free-fix.patch" - "openjpeg-CVE-2015-6581.patch"))))) + (patches (search-patches "openjpeg-use-after-free-fix.patch" + "openjpeg-CVE-2015-6581.patch")))) (build-system cmake-build-system) (arguments ;; Trying to run `$ make check' results in a no rule fault. @@ -357,8 +357,8 @@ error-resilience, a Java-viewer for j2k-images, ...") version ".tar.gz")) (sha256 (base32 "1c2xc3nl2mg511b63rk7hrckmy14681p1m44mzw3n1fyqnjm0b0z")) - (patches (map search-patch '("openjpeg-use-after-free-fix.patch" - "openjpeg-CVE-2015-6581.patch"))))))) + (patches (search-patches "openjpeg-use-after-free-fix.patch" + "openjpeg-CVE-2015-6581.patch")))))) (define-public openjpeg-1 (package (inherit openjpeg) @@ -520,7 +520,7 @@ supplies a generic doubly-linked list and some string functions.") (sha256 (base32 "12bz57asdcfsz3zr9i9nska0fb6h3z2aizy412qjqkixkginbz7v")) - (patches (list (search-patch "freeimage-CVE-2015-0852.patch"))))) + (patches (search-patches "freeimage-CVE-2015-0852.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-delete @@ -673,7 +673,7 @@ channels.") "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8")) ;; Backported from upstream: ;; https://github.com/DentonW/DevIL/commit/724194d7a9a91221a564579f64bdd6f0abd64219.patch - (patches (list (search-patch "devil-fix-libpng.patch"))) + (patches (search-patches "devil-fix-libpng.patch")) (modules '((guix build utils))) (snippet ;; Fix old lcms include directives and lib flags. @@ -723,21 +723,20 @@ convert, manipulate, filter and display a wide variety of image formats.") (sha256 (base32 "154l7zk7yh3v8l2l6zm5s2alvd2fzkp6c9i18iajfbna5af5m43b")) - (patches - (list - (search-patch "jasper-CVE-2007-2721.patch") - (search-patch "jasper-CVE-2008-3520.patch") - (search-patch "jasper-CVE-2008-3522.patch") - (search-patch "jasper-CVE-2011-4516-and-CVE-2011-4517.patch") - (search-patch "jasper-CVE-2014-8137.patch") - (search-patch "jasper-CVE-2014-8138.patch") - (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-1577.patch") - (search-patch "jasper-CVE-2016-1867.patch") - (search-patch "jasper-CVE-2016-2089.patch") - (search-patch "jasper-CVE-2016-2116.patch"))))) + (patches (search-patches + "jasper-CVE-2007-2721.patch" + "jasper-CVE-2008-3520.patch" + "jasper-CVE-2008-3522.patch" + "jasper-CVE-2011-4516-and-CVE-2011-4517.patch" + "jasper-CVE-2014-8137.patch" + "jasper-CVE-2014-8138.patch" + "jasper-CVE-2014-8157.patch" + "jasper-CVE-2014-8158.patch" + "jasper-CVE-2014-9029.patch" + "jasper-CVE-2016-1577.patch" + "jasper-CVE-2016-1867.patch" + "jasper-CVE-2016-2089.patch" + "jasper-CVE-2016-2116.patch")))) (build-system gnu-build-system) (native-inputs `(("unzip" ,unzip))) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index a68e9aa159..2bdc333d91 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -48,7 +48,7 @@ (sha256 (base32 "159afhqrj22jlz745ccbgnkdiwvn8pjcc96jic0iv9ms7gqxwln5")) - (patches (list (search-patch "imagemagick-test-segv.patch"))))) + (patches (search-patches "imagemagick-test-segv.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths") diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index a17330ec63..5744c0dcdc 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -142,7 +142,7 @@ SILC and ICB protocols via plugins.") (sha256 (base32 "19apd3hav77v74j7flicai0843k7wrkr2fd3q2ayvzkgnbrrp1ai")) - (patches (list (search-patch "weechat-python.patch"))))) + (patches (search-patches "weechat-python.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) ("pkg-config" ,pkg-config) diff --git a/gnu/packages/ldc.scm b/gnu/packages/ldc.scm index 66da63581c..1709f59f4c 100644 --- a/gnu/packages/ldc.scm +++ b/gnu/packages/ldc.scm @@ -129,7 +129,7 @@ and freshness without requiring additional information from the user.") (sha256 (base32 "0sgdj0536c4nb118yiw1f8lqy5d3g3lpg9l99l165lk9xy45l9z4")) - (patches (list (search-patch "ldc-disable-tests.patch"))))) + (patches (search-patches "ldc-disable-tests.patch")))) ("druntime-src" ,(origin (method url-fetch) diff --git a/gnu/packages/libcanberra.scm b/gnu/packages/libcanberra.scm index bfa7715160..6bac0bcd5b 100644 --- a/gnu/packages/libcanberra.scm +++ b/gnu/packages/libcanberra.scm @@ -64,7 +64,7 @@ ;; his pleasure. (patch-flags '("-p0")) (patches - (list (search-patch "libcanberra-sound-theme-freedesktop.patch"))))) + (search-patches "libcanberra-sound-theme-freedesktop.patch")))) (build-system gnu-build-system) (inputs `(("alsa-lib" ,alsa-lib) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 7b3ae6fadd..fab6b5c993 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -42,7 +42,7 @@ (sha256 (base32 "18qz9qfwrkakmazdlwxvjmw8p76g70n3faikwvdwznns1agw9hki")) - (patches (list (search-patch "libevent-dns-tests.patch"))))) + (patches (search-patches "libevent-dns-tests.patch")))) (build-system gnu-build-system) (inputs `(;; Dependencies used for the tests and for `event_rpcgen.py'. diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 9d58a267b6..5256c49035 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -250,7 +250,7 @@ working with graphics in the WPG (WordPerfect Graphics) format.") version ".tar.gz")) (sha256 (base32 "1dprvk4fibylv24l7gr49gfqbkfgmxynvgssvdcycgpf7n8h4zm8")) - (patches (list (search-patch "libcmis-fix-test-onedrive.patch"))))) + (patches (search-patches "libcmis-fix-test-onedrive.patch")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm index ab3496277a..cda83b2bc0 100644 --- a/gnu/packages/libunwind.scm +++ b/gnu/packages/libunwind.scm @@ -35,7 +35,7 @@ (sha256 (base32 "16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx")) - (patches (list (search-patch "libunwind-CVE-2015-3239.patch"))))) + (patches (search-patches "libunwind-CVE-2015-3239.patch")))) (build-system gnu-build-system) (arguments ;; FIXME: As of glibc 2.17, we get 3 out of 34 test failures. diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index c3427e7f6f..61136791d3 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -98,7 +98,7 @@ version of libusb to run with newer libusb.") (sha256 (base32 "12dinqic0ljnhrwx3rc61jc7q24ybr0mckc2ya5kh1s1np0d7w93")) - (patches (list (search-patch "libmtp-devices.patch"))))) + (patches (search-patches "libmtp-devices.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 31554c01df..8659471623 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -170,8 +170,7 @@ (sha256 (base32 "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1")) - (patches - (list (search-patch "module-init-tools-moduledir.patch"))))) + (patches (search-patches "module-init-tools-moduledir.patch")))) (build-system gnu-build-system) (arguments ;; FIXME: The upstream tarball lacks man pages, and building them would @@ -453,7 +452,7 @@ providing the system administrator with some help in common tasks.") (sha256 (base32 "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw")) - (patches (list (search-patch "util-linux-tests.patch"))) + (patches (search-patches "util-linux-tests.patch")) (modules '((guix build utils))) (snippet ;; We take the 'logger' program from GNU Inetutils and 'kill' @@ -820,7 +819,7 @@ intercept and print the system calls executed by the program.") (sha256 (base32 "0fx057746dj7rjdi0jnvx2m9b0y1lgdkh1hks87d8w32xyihf3k9")) - (patches (list (search-patch "alsa-lib-mips-atomic-fix.patch"))))) + (patches (search-patches "alsa-lib-mips-atomic-fix.patch")))) (build-system gnu-build-system) (home-page "http://www.alsa-project.org/") (synopsis "The Advanced Linux Sound Architecture libraries") @@ -981,8 +980,7 @@ manpages.") (sha256 (base32 "0yvxrzk0mzmspr7sa34hm1anw6sif39gyn85w4c5ywfn8inxvr3s")) - (patches - (list (search-patch "net-tools-bitrot.patch"))))) + (patches (search-patches "net-tools-bitrot.patch")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build gnu-build-system) @@ -1564,7 +1562,7 @@ to use Linux' inotify mechanism, which allows file accesses to be monitored.") (sha256 (base32 "1yid3a9b64a60ybj66fk2ysrq5klnl0ijl4g624cl16y8404g9rv")) - (patches (list (search-patch "kmod-module-directory.patch"))))) + (patches (search-patches "kmod-module-directory.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1609,7 +1607,7 @@ from the module-init-tools project.") (sha256 (base32 "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p")) - (patches (list (search-patch "eudev-rules-directory.patch"))))) + (patches (search-patches "eudev-rules-directory.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1743,7 +1741,7 @@ interface.") (sha256 (base32 "1gydiqgb08d9gbx4l6gv98zg3pljc984m50hmn3ysxcbkxkvkz23")) - (patches (list (search-patch "crda-optional-gcrypt.patch"))))) + (patches (search-patches "crda-optional-gcrypt.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -1861,7 +1859,7 @@ country-specific regulations for the wireless spectrum.") (sha256 (base32 "1ksgrynxgrq590nb2fwxrl1gwzisjkqlyg3ljfd1al0ibrk6mbjx")) - (patches (list (search-patch "lm-sensors-hwmon-attrs.patch"))))) + (patches (search-patches "lm-sensors-hwmon-attrs.patch")))) (build-system gnu-build-system) (inputs `(("rrdtool" ,rrdtool) ("perl" ,perl) @@ -2201,7 +2199,7 @@ also contains the libsysfs library.") version ".tar.gz")) (sha256 (base32 "0qfqv7nqmjfr3p0bwrdlxkiqwqr7vmx053cadaa548ybqbghxmvm")) - (patches (list (search-patch "cpufrequtils-fix-aclocal.patch"))))) + (patches (search-patches "cpufrequtils-fix-aclocal.patch")))) (build-system gnu-build-system) (native-inputs `(("sysfsutils" ,sysfsutils-1))) @@ -2298,7 +2296,7 @@ MPEG-2 and audio over Linux IEEE 1394.") (sha256 (base32 "132vdvh3myjgcjn6i9w90ck16ddjxjcszklzkyvr4f5ifqd7wfhg")) - (patches (list (search-patch "mdadm-gcc-4.9-fix.patch"))))) + (patches (search-patches "mdadm-gcc-4.9-fix.patch")))) (build-system gnu-build-system) (inputs `(("udev" ,eudev))) diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm index f8828d3f03..b077825529 100644 --- a/gnu/packages/lirc.scm +++ b/gnu/packages/lirc.scm @@ -39,7 +39,7 @@ (sha256 (base32 "19c6ldjsdnk1md66q3nb035ja1xj217k8iabhxpsb8rs10a6kwi6")) - (patches (list (search-patch "lirc-localstatedir.patch"))))) + (patches (search-patches "lirc-localstatedir.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--localstatedir=/var"))) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d5e5ed65ad..3bf019fa83 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -102,7 +102,7 @@ compiler. In LLVM this library is called \"compiler-rt\".") (uri (string-append "http://llvm.org/releases/" version "/cfe-" version ".src.tar.xz")) (sha256 (base32 hash)) - (patches (list (search-patch "clang-libc-search-path.patch"))))) + (patches (search-patches "clang-libc-search-path.patch")))) ;; Using cmake allows us to treat llvm as an external library. There ;; doesn't seem to be any way to do this with clang's autotools-based ;; build system. diff --git a/gnu/packages/lsh.scm b/gnu/packages/lsh.scm index 3b6487f38c..bb941365a9 100644 --- a/gnu/packages/lsh.scm +++ b/gnu/packages/lsh.scm @@ -44,7 +44,7 @@ (sha256 (base32 "0z6rlalhvfca64jpvksppc9bdhs7jwhiw4y35g5ibvh91xp3rn1l")) - (patches (list (search-patch "liboop-mips64-deplibs-fix.patch"))))) + (patches (search-patches "liboop-mips64-deplibs-fix.patch")))) (build-system gnu-build-system) (home-page "http://www.lysator.liu.se/liboop/") (synopsis "Event loop library") diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index fcb41831eb..17874f86ab 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -37,8 +37,8 @@ version ".tar.gz")) (sha256 (base32 "0b8034v1s82n4dg5rzcn12067ha3nxaylp2vdp8gg08kjsbzphhk")) - (patches (list (search-patch "lua-pkgconfig.patch") - (search-patch "lua52-liblua-so.patch"))))) + (patches (search-patches "lua-pkgconfig.patch" + "lua52-liblua-so.patch")))) (build-system gnu-build-system) (inputs `(("readline" ,readline))) (arguments @@ -78,7 +78,7 @@ for configuration, scripting, and rapid prototyping.") version ".tar.gz")) (sha256 (base32 "0cskd4w0g6rdm2q8q3i4n1h3j8kylhs3rq8mxwl9vwlmlxbgqh16")) - (patches (list (search-patch "lua51-liblua-so.patch"))))))) + (patches (search-patches "lua51-liblua-so.patch")))))) (define-public luajit (package @@ -90,8 +90,8 @@ for configuration, scripting, and rapid prototyping.") version ".tar.gz")) (sha256 (base32 "0ydxpqkmsn2c341j4r2v6r5r0ig3kbwv3i9jran3iv81s6r6rgjm")) - (patches (list (search-patch "luajit-symlinks.patch") - (search-patch "luajit-no_ldconfig.patch"))))) + (patches (search-patches "luajit-symlinks.patch" + "luajit-no_ldconfig.patch")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;luajit is distributed without tests diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index 677b580bed..38a7aea137 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -69,7 +69,7 @@ in Qt.") (sha256 (base32 "0ljdzqavvy82qwwwnhg2bgbshl2ns0k2lcswxlx1cfc8rcdr9w5l")) - (patches (map search-patch '("liblxqt-include.patch"))))) + (patches (search-patches "liblxqt-include.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index e5eefc7c4c..fd379b7968 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -92,7 +92,7 @@ (sha256 (base32 "0szbqa12zqzldqyw97lxqax3ja2adis83i7brdfsxmrfw68iaf65")) - (patches (list (search-patch "m4-gets-undeclared.patch"))))) + (patches (search-patches "m4-gets-undeclared.patch")))) (build-system gnu-build-system) (arguments '(;; TODO: Add `--with-sql'. @@ -185,7 +185,7 @@ aliasing facilities to work just as they would on normal mail.") (sha256 (base32 "06bc2drbgalkk68rzg7hq2v5m5qgjxff5357wg0419dpi8ivdbr9")) - (patches (list (search-patch "mutt-store-references.patch"))))) + (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs `(("cyrus-sasl" ,cyrus-sasl) @@ -1129,9 +1129,7 @@ deliver it in various ways.") ;; 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"))))) + (patches (search-patches "procmail-ambiguous-getline-debian.patch")))) (arguments `(#:phases (modify-phases %standard-phases (replace 'configure diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a673a55eaa..d009905346 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -777,7 +777,7 @@ arising after the discretization of partial differential equations.") (sha256 (base32 "1820jfp3mbl7n85765v5mp6p0gzqpgr4d2lrnhwj4gl7cwp5ndah")) - (patches (list (search-patch "mumps-build-parallelism.patch"))))) + (patches (search-patches "mumps-build-parallelism.patch")))) (build-system gnu-build-system) (inputs `(("fortran" ,gfortran) @@ -1044,7 +1044,7 @@ also provides threshold-based ILU factorization preconditioners.") "superlu_dist_" version ".tar.gz")) (sha256 (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj")) - (patches (list (search-patch "superlu-dist-scotchmetis.patch"))))) + (patches (search-patches "superlu-dist-scotchmetis.patch")))) (build-system gnu-build-system) (native-inputs `(("tcsh" ,tcsh))) @@ -1145,8 +1145,8 @@ implemented in ANSI C, and MPI for communications.") "scotch_" version ".tar.gz")) (sha256 (base32 "1ir088mvrqggyqdkx9qfynmiaffqbyih5qfl5mga2nrlm1qlsgzm")) - (patches (list (search-patch "scotch-test-threading.patch") - (search-patch "pt-scotch-build-parallelism.patch"))))) + (patches (search-patches "scotch-test-threading.patch" + "pt-scotch-build-parallelism.patch")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib) @@ -1371,7 +1371,7 @@ to BMP, JPEG or PNG image formats.") (sha256 (base32 "0x1rk659sn3cq0n5c90848ilzr1gb1wf0072fl6jhkdq00qgh2s0")) - (patches (list (search-patch "maxima-defsystem-mkdir.patch"))))) + (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs `(("gcl" ,gcl) @@ -1960,7 +1960,7 @@ revised simplex and the branch-and-bound methods.") (sha256 (base32 "185jych0gdnpkjwxni7pd0dda149492zwq2457xdjg76bzj78mnp")) - (patches (list (search-patch "dealii-p4est-interface.patch"))) + (patches (search-patches "dealii-p4est-interface.patch")) (modules '((guix build utils))) (snippet ;; Remove bundled sources: UMFPACK, TBB, muParser, and boost diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm index 71cbfd1ff9..a683ad7ac9 100644 --- a/gnu/packages/mcrypt.scm +++ b/gnu/packages/mcrypt.scm @@ -90,7 +90,7 @@ XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.") (sha256 (base32 "1w7yiljan8gf1ibiypi6hm3r363imm3sxl1j8hapjdq3m591qljn")) - (patches (list (search-patch "mhash-keygen-test-segfault.patch"))))) + (patches (search-patches "mhash-keygen-test-segfault.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;for tests diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 1646d70b0e..fbe84f58b2 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -71,8 +71,7 @@ (sha256 (base32 "1x8rliydhbibmzwdbyr7pd7n87m2jmxnqkpvaalnf4154hj1hfwb")) - (patches - (list (search-patch "libotr-test-auth-fix.patch"))))) + (patches (search-patches "libotr-test-auth-fix.patch")))) (build-system gnu-build-system) (propagated-inputs `(("libgcrypt" ,libgcrypt))) ; libotr headers include gcrypt.h @@ -180,8 +179,8 @@ dictionaries. HexChat can be extended with multiple addons.") (sha256 (base32 "17k3g9qd9d010czk5846qxvzkmw4fihv8l6m2a2287crbxm3xhd4")) - (patches (list (search-patch "ngircd-no-dns-in-tests.patch") - (search-patch "ngircd-handle-zombies.patch"))))) + (patches (search-patches "ngircd-no-dns-in-tests.patch" + "ngircd-handle-zombies.patch")))) (build-system gnu-build-system) ;; Needed for the test suite. (native-inputs `(("procps" ,procps) @@ -246,7 +245,7 @@ supports IPv6, SSL-protected connections as well as PAM for authentication.") (sha256 (base32 "01s0q30qrjlzj7kkz6f8lvrwsdd55a9yjh2xjjwyyxzw849j3bpj")) - (patches (list (search-patch "pidgin-add-search-path.patch"))))) + (patches (search-patches "pidgin-add-search-path.patch")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/mit-krb5.scm b/gnu/packages/mit-krb5.scm index 5f9868979a..565163732e 100644 --- a/gnu/packages/mit-krb5.scm +++ b/gnu/packages/mit-krb5.scm @@ -40,10 +40,10 @@ (base32 "1gpscn78lv48dxccxq9ncyj53w9l2a15xmngjfa1wylvmn7g0jjx")) (patches - (map search-patch '("mit-krb5-init-context-null-spnego.patch" - "mit-krb5-CVE-2015-8629.patch" - "mit-krb5-CVE-2015-8630.patch" - "mit-krb5-CVE-2015-8631.patch"))))) + (search-patches "mit-krb5-init-context-null-spnego.patch" + "mit-krb5-CVE-2015-8629.patch" + "mit-krb5-CVE-2015-8630.patch" + "mit-krb5-CVE-2015-8631.patch")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 5dec2a8b3f..fe1d13b382 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -55,10 +55,10 @@ (sha256 (base32 "14460zhacxhswnzb36qfpd1f2wbk10qvksvm6wyq5hpvdgnw7ymv")) - (patches (map search-patch '("libmad-armv7-thumb-pt1.patch" - "libmad-armv7-thumb-pt2.patch" - "libmad-frame-length.patch" - "libmad-mips-newgcc.patch"))))) + (patches (search-patches "libmad-armv7-thumb-pt1.patch" + "libmad-armv7-thumb-pt2.patch" + "libmad-frame-length.patch" + "libmad-mips-newgcc.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -367,8 +367,7 @@ use with CD-recording software).") (sha256 (base32 "1ss3c1a5hx6c99q1cryxg0jhbnbdj6ga9xyz0dzlz9qhzg5qswfs")) - (patches - (list (search-patch "ripperx-missing-file.patch"))))) + (patches (search-patches "ripperx-missing-file.patch")))) (build-system gnu-build-system) (propagated-inputs `(("gs-fonts" ,gs-fonts) @@ -423,7 +422,7 @@ format.") (sha256 (base32 "0sf4pns0245009z6mbxpx7kqy4kwl69bc95wz9v23wgappsvxgy1")) - (patches (list (search-patch "mpc123-initialize-ao.patch"))))) + (patches (search-patches "mpc123-initialize-ao.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index d97bf9ba28..99243235ad 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -40,8 +40,7 @@ (sha256 (base32 "12b9s4jn48gbar6dbs5qrlmljdmnq43xy3ji9yjzic0mwp6dmnk8")) - (patches (map search-patch - '("gmp-faulty-test.patch"))))) + (patches (search-patches "gmp-faulty-test.patch")))) (build-system gnu-build-system) (native-inputs `(("m4" ,m4))) (outputs '("out" "debug")) @@ -75,9 +74,8 @@ cryptography and computational algebra.") (sha256 (base32 "0r5pp27cy7ch3dg5v0rsny8bib1zfvrza6027g2mp5f6v8pd6mli")) - (patches (map search-patch - '("gmp-arm-asm-nothumb.patch" - "gmp-faulty-test.patch"))))))) + (patches (search-patches "gmp-arm-asm-nothumb.patch" + "gmp-faulty-test.patch")))))) (define-public mpfr (package diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 1fa142120e..f733e45cf7 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1055,7 +1055,7 @@ improves on support for JACK features, such as JACK MIDI.") version ".tar.gz")) (sha256 (base32 "1dhphsya41rv8z6yqcv9l6fwbslsds4zh1y56zizi39nd996d40v")) - (patches (list (search-patch "cursynth-wave-rand.patch"))))) + (patches (search-patches "cursynth-wave-rand.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) ;; TODO: See https://github.com/iyoko/cursynth/issues/4 which currently diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm index ea5488afc9..cfcc6d5a51 100644 --- a/gnu/packages/ninja.scm +++ b/gnu/packages/ninja.scm @@ -37,8 +37,8 @@ (sha256 (base32 "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw")) - (patches (map search-patch - '("ninja-zero-mtime.patch" "ninja-tests.patch"))))) + (patches (search-patches "ninja-zero-mtime.patch" + "ninja-tests.patch")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) (arguments diff --git a/gnu/packages/nvi.scm b/gnu/packages/nvi.scm index 128715f6ac..999b553733 100644 --- a/gnu/packages/nvi.scm +++ b/gnu/packages/nvi.scm @@ -37,9 +37,9 @@ ".tar.bz2")) (sha256 (base32 "0nbbs1inyrqds0ywn3ln5slv54v5zraq7lszkg8nsavv4kivhh9l")) - (patches (list (search-patch "nvi-assume-preserve-path.patch") - (search-patch "nvi-dbpagesize-binpower.patch") - (search-patch "nvi-db4.patch"))) + (patches (search-patches "nvi-assume-preserve-path.patch" + "nvi-dbpagesize-binpower.patch" + "nvi-db4.patch")) (snippet ;; Create a wrapper for the configure script, make it executable. '(let ((conf-wrap (open-output-file "configure"))) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 4b5ac617d5..5d489532f7 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -633,8 +633,7 @@ to the other.") (sha256 (base32 "02abg1lsnwvjg3igdyb8qjgr5kv1nbwl4gaf8mdinzfii5p82721")) - (patches - (list (search-patch "ocaml-findlib-make-install.patch"))))) + (patches (search-patches "ocaml-findlib-make-install.patch")))) (build-system gnu-build-system) (native-inputs `(("camlp4" ,camlp4) diff --git a/gnu/packages/orpheus.scm b/gnu/packages/orpheus.scm index 7d4b1cac63..069d3e548a 100644 --- a/gnu/packages/orpheus.scm +++ b/gnu/packages/orpheus.scm @@ -40,7 +40,7 @@ (sha256 (base32 "1xbgxq8fybwhm51nw9hvvrgi873qzkc2qvmy15d2m2hw2yqa99hq")) - (patches (list (search-patch "orpheus-cast-errors-and-includes.patch"))))) + (patches (search-patches "orpheus-cast-errors-and-includes.patch")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) diff --git a/gnu/packages/ots.scm b/gnu/packages/ots.scm index 1c0d4a71f4..f1900746b6 100644 --- a/gnu/packages/ots.scm +++ b/gnu/packages/ots.scm @@ -40,8 +40,7 @@ ".tar.gz")) (sha256 (base32 "0dz1ccd7ymzk4swz1aly4im0k3pascnshmgg1whd2rk14li8v47a")) - (patches - (list (search-patch "ots-no-include-missing-file.patch"))))) + (patches (search-patches "ots-no-include-missing-file.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 4648010bf1..828bd26cf8 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -74,8 +74,8 @@ and they are executed on lists of files, hosts, users or other items.") (sha256 (base32 "1rmi35l4img00dr4vic8cv8s7b6n1yx1mkq2s7kjf5hvqdh6s2ki")) - (patches (list - (search-patch "slurm-configure-remove-nonfree-contribs.patch"))) + (patches (search-patches + "slurm-configure-remove-nonfree-contribs.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index 31a735fd5d..c4232cc8a7 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -48,8 +48,7 @@ (sha256 (base32 "0g5df00cj4nczrmr4k791l7la0sq2wnf8rn981fsrz1f3d2yix4i")) - (patches - (list (search-patch "patchutils-xfail-gendiff-tests.patch"))))) + (patches (search-patches "patchutils-xfail-gendiff-tests.patch")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) (arguments diff --git a/gnu/packages/pcre.scm b/gnu/packages/pcre.scm index 9215b38d91..24ecf905e0 100644 --- a/gnu/packages/pcre.scm +++ b/gnu/packages/pcre.scm @@ -72,7 +72,7 @@ POSIX regular expression API.") (inherit pcre) (source (origin (inherit (package-source pcre)) - (patches (list (search-patch "pcre-CVE-2016-3191.patch"))))))) + (patches (search-patches "pcre-CVE-2016-3191.patch")))))) (define-public pcre2 (package diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index e8e6993a9c..1d33be85d5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -336,9 +336,8 @@ by using the poppler rendering engine.") (sha256 (base32 "1rywx09qn6ap5hb1z31wxby4lzdrqdbldm51pjk1ifflr37xwirk")) - (patches - (list - (search-patch "zathura-plugindir-environment-variable.patch"))))) + (patches (search-patches + "zathura-plugindir-environment-variable.patch")))) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gnu-gettext))) (inputs `(("girara" ,girara) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 9bbcc8ffa4..a517581e7d 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -47,14 +47,14 @@ (sha256 (base32 "09wg24w5syyafyv87l6z8pxwz4bjgcdj996bx5844k6m9445sirb")) - (patches (map search-patch - '("perl-no-sys-dirs.patch" - "perl-autosplit-default-time.patch" - "perl-source-date-epoch.patch" - "perl-deterministic-ordering.patch" - "perl-no-build-time.patch" - "perl-CVE-2015-8607.patch" - "perl-CVE-2016-2381.patch"))))) + (patches (search-patches + "perl-no-sys-dirs.patch" + "perl-autosplit-default-time.patch" + "perl-source-date-epoch.patch" + "perl-deterministic-ordering.patch" + "perl-no-build-time.patch" + "perl-CVE-2015-8607.patch" + "perl-CVE-2016-2381.patch")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -3109,7 +3109,7 @@ installation version 5.005 or newer.") (sha256 (base32 "1px6qmszmfc69v36vd8d92av4nkrif6xf4nrj3xv647xwi2svwmk")) - (patches (list (search-patch "perl-module-pluggable-search.patch"))))) + (patches (search-patches "perl-module-pluggable-search.patch")))) (build-system perl-build-system) (home-page "http://search.cpan.org/dist/Module-Pluggable") (synopsis "Give your Perl module the ability to have plugins") diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index e9a247142d..67f692daf5 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -51,7 +51,7 @@ (sha256 (base32 "1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg")) - (patches (list (search-patch "plotutils-libpng-jmpbuf.patch"))) + (patches (search-patches "plotutils-libpng-jmpbuf.patch")) (modules '((guix build utils))) (snippet ;; Force the use of libXaw7 instead of libXaw. When not doing @@ -179,7 +179,7 @@ colors, styles, options and details.") (sha256 (base32 "11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z")) - (patches (list (search-patch "asymptote-gsl2.patch"))))) + (patches (search-patches "asymptote-gsl2.patch")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index 4f21612804..08b753a6cf 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -48,7 +48,7 @@ (sha256 (base32 "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71")) - (patches (list (search-patch "polkit-drop-test.patch"))) + (patches (search-patches "polkit-drop-test.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/pulseaudio.scm b/gnu/packages/pulseaudio.scm index 8c37b2a3f1..b2b0508e58 100644 --- a/gnu/packages/pulseaudio.scm +++ b/gnu/packages/pulseaudio.scm @@ -131,9 +131,9 @@ rates.") '(substitute* "src/daemon/default.pa.in" (("load-module module-console-kit" all) (string-append "#" all "\n")))) - (patches - (list (search-patch "pulseaudio-fix-mult-test.patch") - (search-patch "pulseaudio-longer-test-timeout.patch"))))) + (patches (search-patches + "pulseaudio-fix-mult-test.patch" + "pulseaudio-longer-test-timeout.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--localstatedir=/var" ;"--sysconfdir=/etc" diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index bc0a54b971..4238965fd0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -100,10 +100,10 @@ (sha256 (base32 "1h7zbrf9pkj29hlm18b10548ch9757f75m64l47sy75rh43p7lqw")) - (patches (map search-patch - '("python-2.7-search-paths.patch" - "python-2-deterministic-build-info.patch" - "python-2.7-source-date-epoch.patch"))))) + (patches (search-patches + "python-2.7-search-paths.patch" + "python-2-deterministic-build-info.patch" + "python-2.7-source-date-epoch.patch")))) (outputs '("out" "tk")) ;tkinter; adds 50 MiB to the closure (build-system gnu-build-system) @@ -267,12 +267,12 @@ data types.") (method url-fetch) (uri (string-append "https://www.python.org/ftp/python/" version "/Python-" version ".tar.xz")) - (patches (map search-patch - '("python-fix-tests.patch" - ;; XXX Try removing this patch for python > 3.4.3 - "python-disable-ssl-test.patch" - "python-3-deterministic-build-info.patch" - "python-3-search-paths.patch"))) + (patches (search-patches + "python-fix-tests.patch" + ;; XXX Try removing this patch for python > 3.4.3 + "python-disable-ssl-test.patch" + "python-3-deterministic-build-info.patch" + "python-3-search-paths.patch")) (patch-flags '("-p0")) (sha256 (base32 @@ -1255,9 +1255,8 @@ commands.") (sha256 (base32 "17ni00p08gp5lkxlrrcnvi3x09fmajnlbz4da03qcgl9q21ym4jd")) - (patches (map search-patch - (list "pybugz-stty.patch" - "pybugz-encode-error.patch"))))) + (patches (search-patches "pybugz-stty.patch" + "pybugz-encode-error.patch")))) (build-system python-build-system) (arguments `(#:python ,python-2 ; SyntaxError with Python 3 @@ -3298,7 +3297,7 @@ transcendental functions).") (sha256 (base32 "1dn05cvd0g984lzhh72wa0z93psgwshbbg93fkab6slx5m3l95av")) - (patches (list (search-patch "matplotlib-setupext-tk.patch"))))) + (patches (search-patches "matplotlib-setupext-tk.patch")))) (build-system python-build-system) (outputs '("out" "doc")) (propagated-inputs ; the following packages are all needed at run time @@ -4272,7 +4271,7 @@ without using the configuration machinery.") (source (origin (method url-fetch) - (patches (list (search-patch "python-ipython-inputhook-ctype.patch"))) + (patches (search-patches "python-ipython-inputhook-ctype.patch")) (uri (string-append "https://pypi.python.org/packages/source/i/" "ipython/ipython-" version ".tar.gz")) (sha256 @@ -6642,7 +6641,7 @@ addon modules.") "00h9rcmws03xvdlfni11yb60bz3kxfvsj6dg6nrpzj71f03nbxd2")) ;; Patch setup.py so it looks for python-setuptools, which is ;; required to parse the keyword 'install_requires' in setup.py. - (patches (list (search-patch "python-configobj-setuptools.patch"))))) + (patches (search-patches "python-configobj-setuptools.patch")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools) @@ -7767,10 +7766,8 @@ file.") (sha256 (base32 "16dsv9qi0r4qsrsb6dilpq2rx0fnglvh36flzywcdnm2jg43mb5d")) - (patches (list (search-patch - "python-paste-remove-website-test.patch") - (search-patch - "python-paste-remove-timing-test.patch"))))) + (patches (search-patches "python-paste-remove-website-test.patch" + "python-paste-remove-timing-test.patch")))) (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) @@ -8502,7 +8499,7 @@ module, adding support for Unicode strings.") (base32 "0d8n1dlpiz7av8dmbp0vclrwl9cnxizr4f2c9xvj1h5nvn480527")) ;; https://github.com/markokr/rarfile/pull/17/ - (patches (list (search-patch "python-rarfile-fix-tests.patch"))))) + (patches (search-patches "python-rarfile-fix-tests.patch")))) (build-system python-build-system) (arguments '(#:phases diff --git a/gnu/packages/qemu.scm b/gnu/packages/qemu.scm index 1104a2da6a..c0ee504b24 100644 --- a/gnu/packages/qemu.scm +++ b/gnu/packages/qemu.scm @@ -62,20 +62,19 @@ (sha256 (base32 "1m3j6xl7msrniidkvr5pw9d44yba5m7hm42xz8xy77v105s8hhrl")) - (patches - (map search-patch - '("qemu-virtio-9p-use-accessor-to-get-thread-pool.patch" - "qemu-CVE-2015-8558.patch" - "qemu-CVE-2015-8567.patch" - "qemu-CVE-2016-1922.patch" - "qemu-CVE-2015-8613.patch" - "qemu-CVE-2015-8701.patch" - "qemu-CVE-2015-8743.patch" - "qemu-CVE-2016-1568.patch" - "qemu-CVE-2015-8619.patch" - "qemu-CVE-2016-1981.patch" - "qemu-usb-ehci-oob-read.patch" - "qemu-CVE-2016-2197.patch"))))) + (patches (search-patches + "qemu-virtio-9p-use-accessor-to-get-thread-pool.patch" + "qemu-CVE-2015-8558.patch" + "qemu-CVE-2015-8567.patch" + "qemu-CVE-2016-1922.patch" + "qemu-CVE-2015-8613.patch" + "qemu-CVE-2015-8701.patch" + "qemu-CVE-2015-8743.patch" + "qemu-CVE-2016-1568.patch" + "qemu-CVE-2015-8619.patch" + "qemu-CVE-2016-1981.patch" + "qemu-usb-ehci-oob-read.patch" + "qemu-CVE-2016-2197.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index bfd99b6519..7b2be4f4e9 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -252,8 +252,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (sha256 (base32 "183fca7n7439nlhxyg1z7aky0izgbyll3iwakw4gwivy16aj5272")) - (patches (map search-patch - '("qt4-ldflags.patch"))) + (patches (search-patches "qt4-ldflags.patch")) (modules '((guix build utils))) (snippet ;; Remove webkit module, which is not built. @@ -440,7 +439,7 @@ module provides support functions to the automatically generated code.") (sha256 (base32 "056qmkv02wdcfblqdaxiswrgn4wa88sz22i1x58dpb1iniavplfd")) - (patches (list (search-patch "pyqt-configure.patch"))))) + (patches (search-patches "pyqt-configure.patch")))) (build-system gnu-build-system) (native-inputs `(("python-sip" ,python-sip) diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm index dc6db7258f..23adf859a7 100644 --- a/gnu/packages/ratpoison.scm +++ b/gnu/packages/ratpoison.scm @@ -51,7 +51,7 @@ (sha256 (base32 "1w502z55vv7zs45l80nsllqh9fvfwjfdfi11xy1qikhzdmirains")) - (patches (list (search-patch "ratpoison-shell.patch"))))) + (patches (search-patches "ratpoison-shell.patch")))) (build-system gnu-build-system) (arguments '(#:phases diff --git a/gnu/packages/rdf.scm b/gnu/packages/rdf.scm index b577e266f9..958716a447 100644 --- a/gnu/packages/rdf.scm +++ b/gnu/packages/rdf.scm @@ -89,9 +89,8 @@ HTML and JSON.") (sha256 (base32 "1arffdwivig88kkx685pldr784njm0249k0rb1f1plwavlrw9zfx")) - (patches (list - (search-patch "clucene-pkgconfig.patch") - (search-patch "clucene-contribs-lib.patch"))))) + (patches (search-patches "clucene-pkgconfig.patch" + "clucene-contribs-lib.patch")))) (build-system cmake-build-system) (inputs `(("boost" ,boost) ; could also use bundled copy @@ -311,7 +310,7 @@ ideal (e.g. in LV2 implementations or embedded applications).") ".tar.gz")) (patches ;; The patch has no effect under Python 3. - (list (search-patch "python2-rdflib-drop-sparqlwrapper.patch"))) + (search-patches "python2-rdflib-drop-sparqlwrapper.patch")) (sha256 (base32 "0kvaf332cqbi47rqzlpdx4mbkvw12mkrzkj8n9l19wk713d4py9w")))) diff --git a/gnu/packages/readline.scm b/gnu/packages/readline.scm index 13ce9165f4..db469db051 100644 --- a/gnu/packages/readline.scm +++ b/gnu/packages/readline.scm @@ -46,7 +46,7 @@ (sha256 (base32 "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn")) - (patches (list (search-patch "readline-link-ncurses.patch"))) + (patches (search-patches "readline-link-ncurses.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (propagated-inputs `(("ncurses" ,ncurses))) diff --git a/gnu/packages/rush.scm b/gnu/packages/rush.scm index 0a65599e24..6926f68787 100644 --- a/gnu/packages/rush.scm +++ b/gnu/packages/rush.scm @@ -36,7 +36,7 @@ (sha256 (base32 "0fh0gbbp0iiq3wbkf503xb40r8ljk42vyj9bnlflbz82d6ipy1rm")) - (patches (list (search-patch "cpio-gets-undeclared.patch"))))) + (patches (search-patches "cpio-gets-undeclared.patch")))) (build-system gnu-build-system) (home-page "http://www.gnu.org/software/rush/") (synopsis "Restricted user (login) shell") diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 50533b9a29..f9537d72b2 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -187,7 +187,7 @@ features an integrated Emacs-like editor and a large runtime library.") (sha256 (base32 "170q7nh08n4v20xl81fxb0xcdxphqqacfa643hsa8i2ar6pki04c")) - (patches (list (search-patch "bigloo-gc-shebangs.patch"))))) + (patches (search-patches "bigloo-gc-shebangs.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -277,8 +277,8 @@ Scheme and C programs and between Scheme and Java programs.") (sha256 (base32 "1v2r4ga58kk1sx0frn8qa8ccmjpic9csqzpk499wc95y9c4b1wy3")) - (patches (list (search-patch "hop-bigloo-4.0b.patch") - (search-patch "hop-linker-flags.patch"))))) + (patches (search-patches "hop-bigloo-4.0b.patch" + "hop-linker-flags.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -374,7 +374,7 @@ language standard, and includes many enhancements and extensions.") (sha256 (base32 "1x4xfm3lyz2piqcw1h01vbs1iq89zq7wrsfjgh3fxnlm1slj2jcw")) - (patches (list (search-patch "scheme48-tests.patch"))))) + (patches (search-patches "scheme48-tests.patch")))) (build-system gnu-build-system) (home-page "http://s48.org/") (synopsis "Scheme implementation using a bytecode interpreter") diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index 088ca559d8..4b9bacf3e5 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -107,7 +107,7 @@ controlling terminal and attach to it later.") (sha256 (base32 "1s8nh4wbds1nh52i0d1hy1b308jjf4siwpq92lna1zh9ll4x71j5")) - (patches (list (search-patch "byobu-writable-status.patch"))))) + (patches (search-patches "byobu-writable-status.patch")))) (build-system gnu-build-system) (inputs `(("python" ,python-wrapper) ;for config and session GUIs diff --git a/gnu/packages/sdl.scm b/gnu/packages/sdl.scm index 458fdc599f..49b9deaf4d 100644 --- a/gnu/packages/sdl.scm +++ b/gnu/packages/sdl.scm @@ -60,7 +60,7 @@ (sha256 (base32 "005d993xcac8236fpvd1iawkz4wqjybkpn8dbwaliqz5jfkidlyn")) - (patches (list (search-patch "sdl-libx11-1.6.patch"))))) + (patches (search-patches "sdl-libx11-1.6.patch")))) (build-system gnu-build-system) (arguments '(;; Explicitly link against shared libraries instead of dlopening them. diff --git a/gnu/packages/slim.scm b/gnu/packages/slim.scm index 8e25a5a669..dfb37a94bc 100644 --- a/gnu/packages/slim.scm +++ b/gnu/packages/slim.scm @@ -44,9 +44,9 @@ version ".tar.gz")) (sha256 (base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1")) - (patches (map search-patch - (list "slim-config.patch" "slim-session.patch" - "slim-sigusr1.patch"))))) + (patches (search-patches "slim-config.patch" + "slim-session.patch" + "slim-sigusr1.patch")))) (build-system cmake-build-system) (inputs `(("linux-pam" ,linux-pam) ("libpng" ,libpng) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index d7f2f363a8..eaf57acb3d 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -82,8 +82,8 @@ remote applications.") (sha256 (base32 "0b6wyx6bwbb8jpn8x4rhlrdiqwqrwrs0mxjmrnqykm9kw1ijgm8g")) - (patches (list - (search-patch "libssh-0.6.5-CVE-2016-0739.patch"))))))) + (patches (search-patches + "libssh-0.6.5-CVE-2016-0739.patch")))))) (define-public libssh2 (package diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 1f301458a9..993842339b 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -45,7 +45,7 @@ (sha256 (base32 "13cwa4bc85ylf5gfj9vk182lvgy60qni3f7gbxghq78wk16djvly")) - (patches (list (search-patch "tcl-mkindex-deterministic.patch"))))) + (patches (search-patches "tcl-mkindex-deterministic.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-before @@ -143,7 +143,7 @@ X11 GUIs.") (sha256 (base32 "1h96vp15zl5xz0d4qp6wjyrchqmrmdm3q5k22wkw9jaxbvw9vy88")) - (patches (list (search-patch "tk-find-library.patch"))))) + (patches (search-patches "tk-find-library.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases @@ -257,7 +257,7 @@ utility functions and modules all written in high-level Tcl.") (sha256 (base32 "0ffb4aw63inig3aql33g4pk0kjk14dv238anp1scwjdjh1k6n4gl")) - (patches (list (search-patch "tclxml-3.2-install.patch"))))) + (patches (search-patches "tclxml-3.2-install.patch")))) (build-system gnu-build-system) (native-inputs `(("tcl" ,tcl) diff --git a/gnu/packages/tcsh.scm b/gnu/packages/tcsh.scm index 0bd1b92b8f..5e3df2ba3f 100644 --- a/gnu/packages/tcsh.scm +++ b/gnu/packages/tcsh.scm @@ -40,7 +40,7 @@ (sha256 (base32 "1a4z9kwgx1iqqzvv64si34m60gj34p7lp6rrcrb59s7ka5wa476q")) - (patches (list (search-patch "tcsh-fix-autotest.patch"))) + (patches (search-patches "tcsh-fix-autotest.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm index 8f5913ac89..4921b10124 100644 --- a/gnu/packages/texinfo.scm +++ b/gnu/packages/texinfo.scm @@ -148,8 +148,8 @@ is on expressing the content semantically, avoiding physical markup commands.") (base32 "1yprv64vrlcbksqv25asplnjg07mbq38lfclp1m5lj8cw878pag8")) (patches - (list (search-patch "texi2html-document-encoding.patch") - (search-patch "texi2html-i18n.patch"))) + (search-patches "texi2html-document-encoding.patch" + "texi2html-i18n.patch")) (snippet ;; This file is modified by the patch above, but reset its ;; timestamp so we don't trigger the rule to update PO files, diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index a9bd3db3db..cb538362b7 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -192,9 +192,8 @@ required structures.") (sha256 (base32 "0cxajjayi859czi545ddafi24m9nwsnjsw4q82zrmqvwj2rv315p")) - (patches (map search-patch - '("openssl-runpath.patch" - "openssl-c-rehash-in.patch"))))) + (patches (search-patches "openssl-runpath.patch" + "openssl-c-rehash-in.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) (arguments diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 5fb8f954aa..5155fc09a0 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -80,7 +80,7 @@ applications based on the TCP protocol.") (base32 "0an2q5ail9z414riyjbkjkm29504hy778j914baz2gn5hlv2cfak")) (file-name (string-append name "-" version "-checkout")) - (patches (list (search-patch "torsocks-dns-test.patch"))))) + (patches (search-patches "torsocks-dns-test.patch")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/tv.scm b/gnu/packages/tv.scm index 0a229e149a..f58c03623e 100644 --- a/gnu/packages/tv.scm +++ b/gnu/packages/tv.scm @@ -39,10 +39,10 @@ (sha256 (base32 "08q5gzbyz0lxb730rz6d6amkzimlc7nanv6n50j2bpw4n2xa9wmf")) - (patches (list (search-patch "tvtime-videodev2.patch") - (search-patch "tvtime-pngoutput.patch") - (search-patch "tvtime-xmltv.patch") - (search-patch "tvtime-gcc41.patch"))))) + (patches (search-patches "tvtime-videodev2.patch" + "tvtime-pngoutput.patch" + "tvtime-xmltv.patch" + "tvtime-gcc41.patch")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) diff --git a/gnu/packages/valgrind.scm b/gnu/packages/valgrind.scm index 5cfbe6d554..ed847c2def 100644 --- a/gnu/packages/valgrind.scm +++ b/gnu/packages/valgrind.scm @@ -38,7 +38,7 @@ (sha256 (base32 "0hiv871b9bk689mv42mkhp76za78l5773glszfkdbpf1m1qn4fbc")) - (patches (map search-patch '("valgrind-enable-arm.patch"))))) + (patches (search-patches "valgrind-enable-arm.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 0b70d545b9..3be89ce06e 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -896,8 +896,8 @@ large, complex patch files.") (sha256 (base32 "0bkw6fjh20ppvn54smv05461lm1vcwvn02avx941c4acafmkl1cm")) - (patches (list (search-patch "cssc-gets-undeclared.patch") - (search-patch "cssc-missing-include.patch"))))) + (patches (search-patches "cssc-gets-undeclared.patch" + "cssc-missing-include.patch")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before @@ -940,11 +940,11 @@ accessed and migrated on modern systems.") (sha256 (base32 "18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl")) - (patches (list (search-patch "aegis-perl-tempdir1.patch") - (search-patch "aegis-perl-tempdir2.patch") - (search-patch "aegis-test-fixup-1.patch") - (search-patch "aegis-test-fixup-2.patch") - (search-patch "aegis-constness-error.patch"))))) + (patches (search-patches "aegis-perl-tempdir1.patch" + "aegis-perl-tempdir2.patch" + "aegis-test-fixup-1.patch" + "aegis-test-fixup-2.patch" + "aegis-constness-error.patch")))) (build-system gnu-build-system) (inputs `(("e2fsprogs" ,e2fsprogs) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index d2f9cb1930..7673636b15 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -132,10 +132,10 @@ old-fashioned output methods with powerful ascii-art renderer.") (sha256 (base32 "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2")) - (patches (map search-patch '("liba52-enable-pic.patch" - "liba52-set-soname.patch" - "liba52-use-mtune-not-mcpu.patch" - "liba52-link-with-libm.patch"))))) + (patches (search-patches "liba52-enable-pic.patch" + "liba52-set-soname.patch" + "liba52-use-mtune-not-mcpu.patch" + "liba52-link-with-libm.patch")))) (build-system gnu-build-system) ;; XXX We need to run ./bootstrap because of the build system fixes above. (native-inputs @@ -1007,7 +1007,7 @@ for use with HTML5 video.") (sha256 (base32 "1vas43bwb15q2wv3dpp7fgp8dc6szinmwl7i0ziq2vv5l2128v0p")) - (patches (map search-patch '("avidemux-install-to-lib.patch"))))) + (patches (search-patches "avidemux-install-to-lib.patch")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/vpn.scm b/gnu/packages/vpn.scm index 34dacecdc5..d7c2616dfe 100644 --- a/gnu/packages/vpn.scm +++ b/gnu/packages/vpn.scm @@ -67,7 +67,7 @@ endpoints.") version ".tar.gz")) (sha256 (base32 "1128860lis89g1s21hqxvap2nq426c9j4bvgghncc1zj0ays7kj6")) - (patches (list (search-patch "vpnc-script.patch"))))) + (patches (search-patches "vpnc-script.patch")))) (build-system gnu-build-system) (inputs `(("libgcrypt" ,libgcrypt) ("perl" ,perl) diff --git a/gnu/packages/vtk.scm b/gnu/packages/vtk.scm index 17312103dd..13ce2e2ac0 100644 --- a/gnu/packages/vtk.scm +++ b/gnu/packages/vtk.scm @@ -39,7 +39,7 @@ (sha256 (base32 "0d7shccdkyj4mbh2riilslgx3gd28in4c7xpm0lxa1ln8w5g2zdx")) - (patches (list (search-patch "vtk-mesa-10.patch"))))) + (patches (search-patches "vtk-mesa-10.patch")))) (build-system cmake-build-system) (arguments ;; Build without '-g' to save space. diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index 45c9375def..42141fb04d 100644 --- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -44,10 +44,10 @@ "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579")) ;; cf. https://bugs.archlinux.org/task/33397 - (patches (list (search-patch "w3m-libgc.patch") - (search-patch "w3m-force-ssl_verify_server-on.patch") - (search-patch "w3m-disable-sslv2-and-sslv3.patch") - (search-patch "w3m-disable-weak-ciphers.patch"))))) + (patches (search-patches "w3m-libgc.patch" + "w3m-force-ssl_verify_server-on.patch" + "w3m-disable-sslv2-and-sslv3.patch" + "w3m-disable-weak-ciphers.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no check target #:phases (alist-cons-before diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 1f13474e95..617df198a6 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -402,7 +402,7 @@ UTS#46.") (sha256 (base32 "14dsnmirjcrvwsffqp3as70qr6bbfaig2fv3zvs5g7005jrsbvpb")) - (patches (list (search-patch "tidy-CVE-2015-5522+5523.patch"))))) + (patches (search-patches "tidy-CVE-2015-5522+5523.patch")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after @@ -605,8 +605,8 @@ from streaming URLs. It is a command-line wrapper for the libquvi library.") version ".tar.bz2")) (sha256 (base32 "14155g48gamcv5s0828bzij6vr14nqmbndwq8j8f9g6vcph0nl70")) - (patches (map search-patch '("serf-comment-style-fix.patch" - "serf-deflate-buckets-test-fix.patch"))) + (patches (search-patches "serf-comment-style-fix.patch" + "serf-deflate-buckets-test-fix.patch")) (patch-flags '("-p0")))) (build-system gnu-build-system) (native-inputs @@ -1718,8 +1718,8 @@ which can be used to parse directory listings.") (sha256 (base32 "1b6pbh7f76fb5sa4f0lhx085xy55pprz5v7z7li7pqiyw7i4f4bf")) - (patches (list - (search-patch "perl-finance-quote-unuse-mozilla-ca.patch"))))) + (patches (search-patches + "perl-finance-quote-unuse-mozilla-ca.patch")))) (build-system perl-build-system) (propagated-inputs `(("perl-cgi" ,perl-cgi) @@ -2288,9 +2288,8 @@ and IPv6 sockets, intended as a replacement for IO::Socket::INET.") (sha256 (base32 "1mph52lw6x5v44wf8mw00llzi8pp6k5c4jnrnrvlacrlfv260jb8")) - (patches - (list - (search-patch "perl-io-socket-ssl-openssl-1.0.2f-fix.patch"))))) + (patches (search-patches + "perl-io-socket-ssl-openssl-1.0.2f-fix.patch")))) (build-system perl-build-system) (propagated-inputs `(("perl-net-ssleay" ,perl-net-ssleay))) (synopsis "Nearly transparent SSL encapsulation for IO::Socket::INET") @@ -2418,8 +2417,8 @@ and retry a few times.") (sha256 (base32 "10dcsq4s2kc9cb1vccx17r187c81drirc3s1hbxh3rb8489kg2b2")) - (patches (list - (search-patch "perl-net-amazon-s3-moose-warning.patch"))))) + (patches (search-patches + "perl-net-amazon-s3-moose-warning.patch")))) (build-system perl-build-system) (native-inputs `(("perl-libwww" ,perl-libwww) diff --git a/gnu/packages/wicd.scm b/gnu/packages/wicd.scm index 350baf7373..f9aa657e56 100644 --- a/gnu/packages/wicd.scm +++ b/gnu/packages/wicd.scm @@ -46,11 +46,11 @@ "/+download/wicd-" version ".tar.gz")) (sha256 (base32 "0qpbwwsrqdp40mm3a8djpn2d055rxxspdhwijwsdnws700a9d637")) - (patches (map search-patch - '("wicd-bitrate-none-fix.patch" - "wicd-get-selected-profile-fix.patch" - "wicd-urwid-1.3.patch" - "wicd-wpa2-ttls.patch"))))) + (patches (search-patches + "wicd-bitrate-none-fix.patch" + "wicd-get-selected-profile-fix.patch" + "wicd-urwid-1.3.patch" + "wicd-wpa2-ttls.patch")))) (build-system python-build-system) (native-inputs `(("gettext" ,gnu-gettext))) (inputs `(("dbus-glib" ,dbus-glib) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index a63e597599..60842efab2 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -286,7 +286,7 @@ tiling window manager for X.") (sha256 (base32 "0ak0yajzk3v4dg5wmaghv6acf7v02a4iw8qxmq5yw5ard8lrqn3r")) - (patches (map search-patch '("evilwm-lost-focus-bug.patch"))))) + (patches (search-patches "evilwm-lost-focus-bug.patch")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index a999857ecb..126e997673 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -135,7 +135,7 @@ avoiding password prompts when X11 forwarding has already been setup.") (sha256 (base32 "1lcngsw33fy9my21rdiz1gs474bfdqcfxjrnfggbx4aypn1nhcp8")) - (patches (list (search-patch "xdotool-fix-makefile.patch"))))) + (patches (search-patches "xdotool-fix-makefile.patch")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; Test suite requires a lot of black magic @@ -233,7 +233,7 @@ rasterisation.") (sha256 (base32 "1i4n7mz49l0j4kr0dg9n1j3hlc786ncqgj0v5fci1mz7pp40m5ki")) - (patches (list (search-patch "libdrm-symbol-check.patch"))))) + (patches (search-patches "libdrm-symbol-check.patch")))) (build-system gnu-build-system) (inputs `(("libpciaccess" ,libpciaccess) @@ -315,7 +315,7 @@ System style license, and has no special dependencies.") (sha256 (base32 "1afclc57b9017a73mfs9w7lbdvdipmf9q0xdk116f61gnvyix2np")) - (patches (list (search-patch "wmctrl-64-fix.patch"))))) + (patches (search-patches "wmctrl-64-fix.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 03b49a86ac..89071e991d 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -272,7 +272,7 @@ management D-Bus specification.") (sha256 (base32 "1c4p3ckghvsad1sj5v8wmar5mh9cbhail9mmhad2f9pwwb10z4ih")) - (patches (list (search-patch "xfce4-panel-plugins.patch"))))) + (patches (search-patches "xfce4-panel-plugins.patch")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--enable-gtk3"))) @@ -467,7 +467,7 @@ your system in categories, so you can quickly find and launch them.") "01kvbd09c06j20n155hracsgrq06rlmfgdywffjsvlwpn19m9j38")) (patches ;; See: https://bugzilla.xfce.org/show_bug.cgi?id=12282 - (list (search-patch "xfce4-session-fix-xflock4.patch"))) + (search-patches "xfce4-session-fix-xflock4.patch")) (modules '((guix build utils))) (snippet '(begin @@ -510,8 +510,7 @@ allows you to shutdown the computer from Xfce.") (sha256 (base32 "108za1cmjslwzkdl76x9kwxkq8z734kg9nz8rxk057f10pqwxgh4")) - (patches - (list (search-patch "xfce4-settings-defaults.patch"))))) + (patches (search-patches "xfce4-settings-defaults.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 1e157a4c96..83bed814f9 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -111,7 +111,7 @@ polyphonic) audio and music at fixed and variable bitrates from 16 to (sha256 (base32 "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk")) - (patches (list (search-patch "libtheora-config-guess.patch"))))) + (patches (search-patches "libtheora-config-guess.patch")))) (build-system gnu-build-system) (inputs `(("libvorbis" ,libvorbis))) ;; The .pc files refer to libogg. @@ -267,7 +267,7 @@ Kate stream.") (sha256 (base32 "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3")) - (patches (list (search-patch "vorbis-tools-CVE-2015-6749.patch"))))) + (patches (search-patches "vorbis-tools-CVE-2015-6749.patch")))) (build-system gnu-build-system) (inputs `(("ao" ,ao) ("curl" ,curl) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 7419c61d3a..e1f111e329 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -52,7 +52,7 @@ (sha256 (base32 "11pblz61zyxh68s5pdcbhc30ha1b2vfjd83aiwfg4vc15x3hadw2")) - (patches (list (search-patch "expat-CVE-2015-1283.patch"))))) + (patches (search-patches "expat-CVE-2015-1283.patch")))) (build-system gnu-build-system) (home-page "http://www.libexpat.org/") (synopsis "Stream-oriented XML parser library written in C") @@ -132,7 +132,7 @@ project (but it is usable outside of the Gnome platform).") (sha256 (base32 "13029baw9kkyjgr7q3jccw2mz38amq7mmpr5p3bh775qawd1bisz")) - (patches (list (search-patch "libxslt-CVE-2015-7995.patch"))))) + (patches (search-patches "libxslt-CVE-2015-7995.patch")))) (build-system gnu-build-system) (home-page "http://xmlsoft.org/XSLT/index.html") (synopsis "C library for applying XSLT stylesheets to XML documents") @@ -654,7 +654,7 @@ UTF-8 and UTF-16 encoding.") (sha256 (base32 "14smciid19lvkxqznfig77jxn5s4iq3jpb47vh5a6zcaqp7gvg8m")) - (patches (list (search-patch "tinyxml-use-stl.patch"))))) + (patches (search-patches "tinyxml-use-stl.patch")))) (build-system gnu-build-system) ;; This library is missing *a lot* of the steps to make it usable, so we ;; have to add them here, like every other distro must do. diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4cf466883b..fd933e36a7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1514,7 +1514,7 @@ treat it as part of their software base when porting.") "0dn694mk56x6hdk6y9ylx4f128h5jcin278gnw2gb807rf3ygc1h")) ;; See https://bugs.freedesktop.org/show_bug.cgi?id=47792; ;; should become obsolete with the next release. - (patches (list (search-patch "luit-posix.patch"))))) + (patches (search-patches "luit-posix.patch")))) (build-system gnu-build-system) (inputs `(("libfontenc" ,libfontenc))) @@ -2577,7 +2577,7 @@ as USB mice.") (sha256 (base32 "07p5vdsj2ckxb6wh02s61akcv4qfg6s1d5ld3jn3lfaayd3f1466")) - (patches (list (search-patch "xf86-video-ark-remove-mibstore.patch"))))) + (patches (search-patches "xf86-video-ark-remove-mibstore.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2603,7 +2603,7 @@ as USB mice.") ;; (sha256 ;; (base32 ;; "1q64z8qqa0ix3cymqiwk1s3sphd1fvvz30lvyxhgkgciygz6dm69")) -;; (patches (list (search-patch "xf86-video-ast-remove-mibstore.patch"))))) +;; (patches (search-patches "xf86-video-ast-remove-mibstore.patch")))) ;; (build-system gnu-build-system) ;; (inputs `(("xorg-server" ,xorg-server))) ;; (native-inputs `(("pkg-config" ,pkg-config))) @@ -2711,7 +2711,7 @@ framebuffer device.") (sha256 (base32 "1s59kdj573v38sb14xfhp1l926aypbhy11vaz36y72x6calfkv6n")) - (patches (list (search-patch "xf86-video-geode-glibc-2.20.patch"))))) + (patches (search-patches "xf86-video-geode-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2770,8 +2770,7 @@ compositing. Both support Xv overlay and dynamic rotation with XRandR.") (sha256 (base32 "08a2aark2yn9irws9c78d9q44dichr03i9zbk61jgr54ncxqhzv5")) - (patches (list - (search-patch "xf86-video-glint-remove-mibstore.patch"))))) + (patches (search-patches "xf86-video-glint-remove-mibstore.patch")))) (build-system gnu-build-system) (inputs `(("xf86dgaproto" ,xf86dgaproto) ("xorg-server" ,xorg-server))) @@ -2798,8 +2797,7 @@ X server.") (sha256 (base32 "171b8lbxr56w3isph947dnw7x87hc46v6m3mcxdcz44gk167x0pq")) - (patches (list - (search-patch "xf86-video-i128-remove-mibstore.patch"))))) + (patches (search-patches "xf86-video-i128-remove-mibstore.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2870,7 +2868,7 @@ It supports a variety of Intel graphics chipsets.") (sha256 (base32 "07xlf5nsjm0x18ij5gyy4lf8hwpl10i8chi3skpqjh84drdri61y")) - (patches (list (search-patch "xf86-video-mach64-glibc-2.20.patch"))))) + (patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) ("xf86driproto" ,xf86driproto) @@ -3005,7 +3003,7 @@ kernel mode setting (KMS).") (sha256 (base32 "1gqh1khc4zalip5hh2nksgs7i3piqq18nncgmsx9qvzi05azd5c3")) - (patches (list (search-patch "xf86-video-nv-remove-mibstore.patch"))))) + (patches (search-patches "xf86-video-nv-remove-mibstore.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3057,8 +3055,7 @@ graphics cards.") (sha256 (base32 "1v8j4i1r268n4fc5gq54zg1x50j0rhw71f3lba7411mcblg2z7p4")) - (patches (list - (search-patch "xf86-video-openchrome-glibc-2.20.patch"))))) + (patches (search-patches "xf86-video-openchrome-glibc-2.20.patch")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) ("libxext" ,libxext) @@ -3272,7 +3269,7 @@ This driver supports SiS chipsets of 300/315/330/340 series.") (sha256 (base32 "0cb161lvdgi6qnf1sfz722qn38q7kgakcvj7b45ba3i0020828r0")) - (patches (list (search-patch "xf86-video-tga-remove-mibstore.patch"))))) + (patches (search-patches "xf86-video-tga-remove-mibstore.patch")))) (build-system gnu-build-system) (inputs `(("xf86dgaproto" ,xf86dgaproto) ("xorg-server" ,xorg-server))) @@ -3887,7 +3884,7 @@ protocol.") (sha256 (base32 "0y649an3jqfq9klkp9y5gj20xb78fw6g193f5mnzpl0hbz6fbc5p")) - (patches (list (search-patch "xmodmap-asprintf.patch"))))) + (patches (search-patches "xmodmap-asprintf.patch")))) (build-system gnu-build-system) (inputs `(("xproto" ,xproto) diff --git a/gnu/packages/zip.scm b/gnu/packages/zip.scm index b7bed0e86d..6defbda49e 100644 --- a/gnu/packages/zip.scm +++ b/gnu/packages/zip.scm @@ -81,19 +81,19 @@ Compression ratios of 2:1 to 3:1 are common for text files.") (sha256 (base32 "0dxx11knh3nk95p2gg2ak777dd11pr7jx5das2g49l262scrcv83")) - (patches (map search-patch '("unzip-CVE-2014-8139.patch" - "unzip-CVE-2014-8140.patch" - "unzip-CVE-2014-8141.patch" - "unzip-CVE-2014-9636.patch" - "unzip-CVE-2015-7696.patch" - "unzip-CVE-2015-7697.patch" - "unzip-allow-greater-hostver-values.patch" - "unzip-initialize-symlink-flag.patch" - "unzip-remove-build-date.patch" - "unzip-attribs-overflow.patch" - "unzip-overflow-on-invalid-input.patch" - "unzip-format-secure.patch" - "unzip-overflow-long-fsize.patch"))))) + (patches (search-patches "unzip-CVE-2014-8139.patch" + "unzip-CVE-2014-8140.patch" + "unzip-CVE-2014-8141.patch" + "unzip-CVE-2014-9636.patch" + "unzip-CVE-2015-7696.patch" + "unzip-CVE-2015-7697.patch" + "unzip-allow-greater-hostver-values.patch" + "unzip-initialize-symlink-flag.patch" + "unzip-remove-build-date.patch" + "unzip-attribs-overflow.patch" + "unzip-overflow-on-invalid-input.patch" + "unzip-format-secure.patch" + "unzip-overflow-long-fsize.patch")))) (build-system gnu-build-system) ;; no inputs; bzip2 is not supported, since not compiled with BZ_NO_STDIO (arguments -- cgit 1.4.1 From a2d0e2003f12f948e270c2e6ae0fbe82f8b6a5f4 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 14 Apr 2016 10:19:40 +0200 Subject: gnu: hwloc: Update to 1.11.2. * gnu/packages/mpi.scm (hwloc): Update to 1.11.2. Change URLs to https. --- gnu/packages/mpi.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index abe4fac470..262330ecd7 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Eric Bavier -;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2016 Andreas Enge ;;; @@ -41,15 +41,15 @@ (define-public hwloc (package (name "hwloc") - (version "1.11.1") + (version "1.11.2") (source (origin (method url-fetch) - (uri (string-append "http://www.open-mpi.org/software/hwloc/v" + (uri (string-append "https://www.open-mpi.org/software/hwloc/v" (version-major+minor version) "/downloads/hwloc-" version ".tar.bz2")) (sha256 (base32 - "03vcr9f98z45xfkk34x376mfrwyi7ff4ay60gvn4v95sqihl0qa8")))) + "1y7c3ysiin0rw0sj6dbxkvjg92j4by36rykvf0vmh91q2rmrn0lc")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -79,7 +79,7 @@ '("lib/pkgconfig/hwloc.pc" "lib/libhwloc.la")) (("-lnuma" lib) (string-append "-L" numa "/lib " lib))))))))) - (home-page "http://www.open-mpi.org/projects/hwloc/") + (home-page "https://www.open-mpi.org/projects/hwloc/") (synopsis "Abstraction of hardware architectures") (description "hwloc provides a portable abstraction (across OS, -- cgit 1.4.1 From b4d6f4089f0328c01e7c1c14abe288e69223a962 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:36:42 +0200 Subject: gnu: Add r-acepack. * gnu/packages/statistics.scm (r-acepack): New variable. --- gnu/packages/statistics.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9c197f4977..fa5cb3686f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -944,6 +944,27 @@ matter where it is stored, whether in a data frame, a data table or database.") (license license:expat))) +(define-public r-acepack + (package + (name "r-acepack") + (version "1.3-3.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "acepack" version)) + (sha256 + (base32 + "13ry3vyys12iplb14jfhmkrl9g5fxg3iijiggq4s4zb5m5436b1y")))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (home-page "http://cran.r-project.org/web/packages/acepack") + (synopsis "Functions for regression transformations") + (description + "This package provides ACE and AVAS methods for choosing regression +transformations.") + (license license:expat))) + (define-public r-chron (package (name "r-chron") -- cgit 1.4.1 From 0926b8779fc340d893a041dc3cbdecc371c06c21 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:37:52 +0200 Subject: gnu: Add r-cluster. * gnu/packages/statistics.scm (r-cluster): New variable. --- gnu/packages/statistics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index fa5cb3686f..0c8fcc928d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -965,6 +965,28 @@ database.") transformations.") (license license:expat))) +(define-public r-cluster + (package + (name "r-cluster") + (version "2.0.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "cluster" version)) + (sha256 + (base32 + "03jfczb3dwg57f164pya0b762xgyswyb9a7s33lw9i0s5dq72ri8")))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (home-page "http://cran.r-project.org/web/packages/cluster") + (synopsis "Methods for data cluster analysis") + (description + "This package provides tools that are useful in finding groups in data. +It is based on the methods described in Kaufman and Rousseeuw (1990) \"Finding +Groups in Data\".") + (license license:gpl2+))) + (define-public r-chron (package (name "r-chron") -- cgit 1.4.1 From 0837dd0737b18301173ca07acb5df53f3230f1d0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:38:27 +0200 Subject: gnu: Add r-foreign. * gnu/packages/statistics.scm (r-foreign): New variable. --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0c8fcc928d..e266a0ab5e 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -987,6 +987,26 @@ It is based on the methods described in Kaufman and Rousseeuw (1990) \"Finding Groups in Data\".") (license license:gpl2+))) +(define-public r-foreign + (package + (name "r-foreign") + (version "0.8-66") + (source + (origin + (method url-fetch) + (uri (cran-uri "foreign" version)) + (sha256 + (base32 + "19278jm85728zb20800w6hq9q8jy8ywdn81mgmlnxkmrr9giwh6p")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/foreign") + (synopsis "Read data stored by other statistics software in R") + (description + "This package provides functions for reading and writing data stored by +some versions of Epi Info, Minitab, S, SAS, SPSS, Stata, Systat and Weka, and +for reading and writing some dBase files.") + (license license:gpl2+))) + (define-public r-chron (package (name "r-chron") -- cgit 1.4.1 From b1acb4457392a8ff3f3f8952d9c2464b3d04a9a0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:39:16 +0200 Subject: gnu: Add r-formula. * gnu/packages/statistics.scm (r-formula): New variable. --- gnu/packages/statistics.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e266a0ab5e..fb05d8347e 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1007,6 +1007,28 @@ some versions of Epi Info, Minitab, S, SAS, SPSS, Stata, Systat and Weka, and for reading and writing some dBase files.") (license license:gpl2+))) +(define-public r-formula + (package + (name "r-formula") + (version "1.2-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "Formula" version)) + (sha256 + (base32 + "02in5325zzrqbhlygx6s0dinj6ymw845q70y56frqacv25ayzcax")))) + (properties `((upstream-name . "Formula"))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/Formula") + (synopsis "Extended model formulas") + (description + "This package provides a new class @code{Formula}, which extends the base +class @code{formula}. It supports extended formulas with multiple parts of +regressors on the right-hand side and/or multiple responses on the left-hand +side.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-chron (package (name "r-chron") -- cgit 1.4.1 From 97ee973daab6bbaa12d94836af0c709a5eda1210 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:39:44 +0200 Subject: gnu: Add r-locfit. * gnu/packages/statistics.scm (r-locfit): New variable. --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index fb05d8347e..84f36f0e60 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1029,6 +1029,25 @@ regressors on the right-hand side and/or multiple responses on the left-hand side.") (license (list license:gpl2+ license:gpl3+)))) +(define-public r-locfit + (package + (name "r-locfit") + (version "1.5-9.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "locfit" version)) + (sha256 + (base32 + "0lafrmq1q7x026m92h01hc9cjjiximqqi3v1g2hw7ai9vf7i897m")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/locfit") + (synopsis "Local regression, likelihood and density estimation") + (description + "This package provides functions used for local regression, likelihood +and density estimation.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-chron (package (name "r-chron") -- cgit 1.4.1 From a73f4cd18b889d13846b88b704afaa8caf183f82 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:40:10 +0200 Subject: gnu: Add r-xtable. * gnu/packages/statistics.scm (r-xtable): New variable. --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 84f36f0e60..478d1b2660 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1088,6 +1088,26 @@ fast ordered joins, fast add/modify/delete of columns by group, column listing and fast file reading.") (license license:gpl3+))) +(define-public r-xtable + (package + (name "r-xtable") + (version "1.8-2") + (source + (origin + (method url-fetch) + (uri (cran-uri "xtable" version)) + (sha256 + (base32 + "0398qkpvlw3dv0myz4mjcyqwpwc2m31l127r8vdzwc71wb6s28qn")))) + (build-system r-build-system) + (native-inputs + `(("r-knitr" ,r-knitr))) + (home-page "http://xtable.r-forge.r-project.org/") + (synopsis "Export R tables to LaTeX or HTML") + (description + "This package provides tools to export R data as LaTeX and HTML tables.") + (license license:gpl2+))) + (define-public python-patsy (package (name "python-patsy") -- cgit 1.4.1 From b20abbcd7478eaa3d351af0ff2b0f63ce158871f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:40:49 +0200 Subject: gnu: Add r-latticeextra. * gnu/packages/statistics.scm (r-latticeextra): New variable. --- gnu/packages/statistics.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 478d1b2660..2dd744206d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1522,6 +1522,30 @@ multivariate data. Lattice is sufficient for typical graphics needs, and is also flexible enough to handle most nonstandard requirements.") (license license:gpl2+))) +(define-public r-latticeextra + (package + (name "r-latticeextra") + (version "0.6-28") + (source + (origin + (method url-fetch) + (uri (cran-uri "latticeExtra" version)) + (sha256 + (base32 + "1hkyqsa7klk5glj9y1hg3rxr5qilqw8h0017zc4c3nps7lr9a1kq")))) + (properties `((upstream-name . "latticeExtra"))) + (build-system r-build-system) + (propagated-inputs + `(("r-lattice" ,r-lattice) + ("r-rcolorbrewer" ,r-rcolorbrewer))) + (home-page "http://latticeextra.r-forge.r-project.org/") + (synopsis "Extra graphical utilities based on lattice") + (description + "Building on the infrastructure provided by the lattice package, this +package provides several new high-level graphics functions and methods, as +well as additional utilities such as panel and axis annotation functions.") + (license license:gpl2+))) + (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") -- cgit 1.4.1 From dada39aaedba6dd44161478f9758ec97ead3fa27 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:41:41 +0200 Subject: gnu: Add r-irlba. * gnu/packages/statistics.scm (r-irlba): New variable. --- gnu/packages/statistics.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2dd744206d..ede353df10 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2029,6 +2029,26 @@ The 'DataTables' library has been included in this R package.") flexible than the orphaned \"base64\" package.") (license license:gpl2+))) +(define-public r-irlba + (package + (name "r-irlba") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "irlba" version)) + (sha256 + (base32 + "1gms3rxrm24ri4vjvnpl4v47m7bx0zk63z8y85rbhsvx230xdy0m")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/irlba") + (synopsis "Methods for eigendecomposition of large matrices") + (description + "This package provides fast and memory efficient methods for truncated +singular and eigenvalue decompositions, as well as for principal component +analysis of large sparse or dense matrices.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From 3a6607f00b3270fc4fed5487ace4b9b4b6b62cb8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:42:08 +0200 Subject: gnu: Add r-pkgmaker. * gnu/packages/statistics.scm (r-pkgmaker): New variable. --- gnu/packages/statistics.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ede353df10..7743d1b70b 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2049,6 +2049,32 @@ singular and eigenvalue decompositions, as well as for principal component analysis of large sparse or dense matrices.") (license (list license:gpl2+ license:gpl3+)))) +(define-public r-pkgmaker + (package + (name "r-pkgmaker") + (version "0.22") + (source + (origin + (method url-fetch) + (uri (cran-uri "pkgmaker" version)) + (sha256 + (base32 + "0vrqnd3kg6liqvpbd969jjsdx0f0rvmmxgdbwwrp6xfmdg0pib8r")))) + (build-system r-build-system) + (propagated-inputs + `(("r-codetools" ,r-codetools) + ("r-digest" ,r-digest) + ("r-registry" ,r-registry) + ("r-stringr" ,r-stringr) + ("r-xtable" ,r-xtable))) + (home-page "https://renozao.github.io/pkgmaker") + (synopsis "Package development utilities") + (description + "This package provides some low-level utilities to use for R package +development. It currently provides managers for multiple package specific +options and registries, vignette, unit test and bibtex related utilities.") + (license license:gpl2+))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From 2d0f7d80bf9b2f4883cabe98832b93762839c8d2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:42:30 +0200 Subject: gnu: Add r-registry. * gnu/packages/statistics.scm (r-registry): New variable. --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 7743d1b70b..3cd3a0d452 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2075,6 +2075,25 @@ development. It currently provides managers for multiple package specific options and registries, vignette, unit test and bibtex related utilities.") (license license:gpl2+))) + (define-public r-registry + (package + (name "r-registry") + (version "0.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "registry" version)) + (sha256 + (base32 + "0c7lscfxncwwd8zp46h2xfw9gw14dypqv6m2kx85xjhjh0xw99aq")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/registry") + (synopsis "Infrastructure for R package registries") + (description + "This package provides a generic infrastructure for creating and using R +package registries.") + (license license:gpl2+))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From 790034bd23a569c00960ac9f2c86b1b045adb653 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:42:49 +0200 Subject: gnu: Add r-rngtools. * gnu/packages/statistics.scm (r-rngtools): New variable. --- gnu/packages/statistics.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 3cd3a0d452..d337e15df8 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2094,6 +2094,32 @@ options and registries, vignette, unit test and bibtex related utilities.") package registries.") (license license:gpl2+))) +(define-public r-rngtools + (package + (name "r-rngtools") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (cran-uri "rngtools" version)) + (sha256 + (base32 + "1fcgfqrrb48z37xgy8sffx91p9irp39yqzxv7nqp1x2hnwsrh097")))) + (build-system r-build-system) + (propagated-inputs + `(("r-digest" ,r-digest) + ("r-pkgmaker" ,r-pkgmaker) + ("r-stringr" ,r-stringr))) + (home-page "https://renozao.github.io/rngtools") + (synopsis "Utility functions for working with random number generators") + (description + "This package contains a set of functions for working with Random Number +Generators (RNGs). In particular, it defines a generic S4 framework for +getting/setting the current RNG, or RNG data that are embedded into objects +for reproducibility. Notably, convenient default methods greatly facilitate +the way current RNG settings can be changed.") + (license license:gpl3+))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From b783ff7833df1cb5284139ed80a00826b5dc93fd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:43:12 +0200 Subject: gnu: Add r-nmf. * gnu/packages/statistics.scm (r-nmf): New variable. --- gnu/packages/statistics.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d337e15df8..b234517f9d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2120,6 +2120,44 @@ for reproducibility. Notably, convenient default methods greatly facilitate the way current RNG settings can be changed.") (license license:gpl3+))) +(define-public r-nmf + (package + (name "r-nmf") + (version "0.20.6") + (source + (origin + (method url-fetch) + (uri (cran-uri "NMF" version)) + (sha256 + (base32 + "0mmh9bz0zjwd8h9jplz4rq3g94npaqj8s4px51vcv47csssd9k6z")))) + (properties `((upstream-name . "NMF"))) + (build-system r-build-system) + (propagated-inputs + `(("r-cluster" ,r-cluster) + ("r-colorspace" ,r-colorspace) + ("r-digest" ,r-digest) + ("r-doparallel" ,r-doparallel) + ("r-foreach" ,r-foreach) + ("r-ggplot2" ,r-ggplot2) + ("r-gridbase" ,r-gridbase) + ("r-pkgmaker" ,r-pkgmaker) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-registry" ,r-registry) + ("r-reshape2" ,r-reshape2) + ("r-rngtools" ,r-rngtools) + ("r-stringr" ,r-stringr))) + (home-page "http://renozao.github.io/NMF") + (synopsis "Algorithms and framework for nonnegative matrix factorization") + (description + "This package provides a framework to perform Non-negative Matrix +Factorization (NMF). The package implements a set of already published +algorithms and seeding methods, and provides a framework to test, develop and +plug new or custom algorithms. Most of the built-in algorithms have been +optimized in C++, and the main interface function provides an easy way of +performing parallel computations on multicore machines.") + (license license:gpl2+))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From 07f911bab77a1c19c3729c649cadd317d1106fc8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 15:43:48 +0200 Subject: gnu: Add r-igraph. * gnu/packages/statistics.scm (r-igraph): New variable. --- gnu/packages/statistics.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b234517f9d..d820b08eb4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -40,6 +40,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages java) #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -2158,6 +2159,36 @@ optimized in C++, and the main interface function provides an easy way of performing parallel computations on multicore machines.") (license license:gpl2+))) +(define-public r-igraph + (package + (name "r-igraph") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "igraph" version)) + (sha256 + (base32 + "00jnm8v3kvxpxav5klld2z2nnkcpj4sdwv4ksipddy5mp04ysr6w")))) + (build-system r-build-system) + (native-inputs + `(("gfortran" ,gfortran))) + (inputs + `(("gmp" ,gmp) + ("libxml2" ,libxml2))) + (propagated-inputs + `(("r-irlba" ,r-irlba) + ("r-magrittr" ,r-magrittr) + ("r-nmf" ,r-nmf))) + (home-page "http://igraph.org") + (synopsis "Network analysis and visualization") + (description + "This package provides routines for simple graphs and network analysis. +It can handle large graphs very well and provides functions for generating +random and regular graphs, graph visualization, centrality methods and much +more.") + (license license:gpl2+))) + (define-public r-r-methodss3 (package (name "r-r-methodss3") -- cgit 1.4.1 From e4785eb81633cc2539038e09d5fc704c40d10ffe Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 31 Mar 2016 17:05:27 +0200 Subject: gnu: Add r-nnet. * gnu/packages/machine-learning.scm (r-nnet): New variable. --- gnu/packages/machine-learning.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 4bc37ad86d..cbc7509416 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -323,3 +323,22 @@ in terms of new algorithms.") adaptive sparsity and the Wong algorithm for adaptively sparse gaussian geometric models.") (license license:lgpl3+))) + +(define-public r-nnet + (package + (name "r-nnet") + (version "7.3-12") + (source + (origin + (method url-fetch) + (uri (cran-uri "nnet" version)) + (sha256 + (base32 + "17amqnw9dpap2w8ivx53hxha2xrm0drwfnj32li0xk41hlz548r7")))) + (build-system r-build-system) + (home-page "http://www.stats.ox.ac.uk/pub/MASS4/") + (synopsis "Feed-forward neural networks and multinomial log-linear models") + (description + "This package provides functions for feed-forward neural networks with a +single hidden layer, and for multinomial log-linear models.") + (license (list license:gpl2+ license:gpl3+)))) -- cgit 1.4.1 From e6f0ca2f0598e6b0278aeecacfc88c925011c547 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 13 Apr 2016 16:08:08 +0200 Subject: gnu: r-htmltools: Update to 0.3.5. * gnu/packages/web.scm (r-htmltools): Update to 0.3.5. [propagated-inputs]: Add r-rcpp. --- gnu/packages/web.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 617df198a6..58de65ce39 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013 Aljosha Papsch ;;; Copyright © 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016 Mark H Weaver -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2015 Eric Dvorsak @@ -3009,16 +3009,17 @@ directory.") (define-public r-htmltools (package (name "r-htmltools") - (version "0.2.6") + (version "0.3.5") (source (origin (method url-fetch) (uri (cran-uri "htmltools" version)) (sha256 (base32 - "1gp6f6388xy3cvnb08q08vraidjp740gfxlafdd19m2s04v5hncz")))) + "0j9bf80grd6gwh7116m575pycv87c0wcwkxsz3gzzfs4aw3pxyr9")))) (build-system r-build-system) (propagated-inputs - `(("r-digest" ,r-digest))) + `(("r-digest" ,r-digest) + ("r-rcpp" ,r-rcpp))) (home-page "http://cran.r-project.org/web/packages/htmltools") (synopsis "R tools for HTML") (description -- cgit 1.4.1 From 85c7e8e611be1bdc2eed47e61e9ff45d92ab293d Mon Sep 17 00:00:00 2001 From: David Thompson Date: Thu, 14 Apr 2016 13:24:10 -0400 Subject: Revert "gnu: util-linux: Add "static" output." This reverts commit df887432be25e1534b9ecdccf39c98857b1d0786. --- gnu/packages/linux.scm | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8659471623..310bb57127 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -463,11 +463,12 @@ providing the system administrator with some help in common tasks.") (("build_kill=yes") "build_kill=no")) #t)))) (build-system gnu-build-system) - (outputs '("out" - "static")) ; >2 MiB of static .a libraries (arguments `(#:configure-flags (list "--disable-use-tty-group" + ;; Do not build .a files to save 2 MiB. + "--disable-static" + ;; Install completions where our ;; bash-completion package expects them. (string-append "--with-bashcompletiondir=" @@ -492,19 +493,6 @@ providing the system administrator with some help in common tasks.") (substitute* "tests/ts/misc/mcookie" (("/etc/services") (string-append net "/etc/services"))) - #t))) - (add-after - 'install 'move-static-libraries - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (static (assoc-ref outputs "static"))) - (mkdir-p (string-append static "/lib")) - (with-directory-excursion out - (for-each (lambda (file) - (rename-file file - (string-append static "/" - file))) - (find-files "lib" "\\.a$"))) #t)))))) (inputs `(("zlib" ,zlib) ("ncurses" ,ncurses))) -- cgit 1.4.1 From 63e8bb12a46fe6ff493e674fd7ccceb8729c6b47 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 14 Apr 2016 22:18:56 +0200 Subject: gnu-maintenance: Move FTP directory info to 'properties' fields. * guix/gnu-maintenance.scm (ftp-server/directory): Rewrite to honor PACKAGE's properties. Remove list of quirks. (releases): Add #:server and #:directory parameters. Remove call to 'ftp-server/directory'. (latest-release): Likewise. (latest-release*): Add call to 'ftp-server/directory'. Honor 'upstream-name' property of PACKAGE. * gnu/packages/fonts.scm (font-gnu-freefont-ttf): Add 'properties' field. * gnu/packages/gnupg.scm (libgpg-error, libgcrypt, libassuan): (libksba, gnupg): Likewise. * gnu/packages/gnuzilla.scm (icecat): Likewise. * gnu/packages/package-management.scm (guix-0.10.0): Likewise. * gnu/packages/pretty-print.scm (source-highlight): Likewise. * gnu/packages/scheme.scm (mit-scheme): Likewise. * gnu/packages/telephony.scm (ucommon): Likewise. * gnu/packages/tls.scm (gnutls): Likewise. --- gnu/packages/fonts.scm | 4 +- gnu/packages/gnupg.scm | 22 +++-- gnu/packages/gnuzilla.scm | 5 +- gnu/packages/package-management.scm | 3 +- gnu/packages/pretty-print.scm | 3 +- gnu/packages/scheme.scm | 5 +- gnu/packages/telephony.scm | 3 +- gnu/packages/tls.scm | 4 +- guix/gnu-maintenance.scm | 155 +++++++++++++++++------------------- 9 files changed, 105 insertions(+), 99 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 3d75591560..aa78926d17 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -306,7 +306,9 @@ sans-serif designed for on-screen reading. It is used by GNOME@tie{}3.") "The GNU Freefont project aims to provide a set of free outline (PostScript Type0, TrueType, OpenType...) fonts covering the ISO 10646/Unicode UCS (Universal Character Set).") - (license license:gpl3+))) + (license license:gpl3+) + (properties '((upstream-name . "freefont") + (ftp-directory . "/gnu/freefont"))))) (define-public font-liberation (package diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index 5ed6885cab..b6c1233497 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014, 2015, 2016 Mark H Weaver @@ -65,7 +65,9 @@ for all GnuPG components. Among these are GPG, GPGSM, GPGME, GPG-Agent, libgcrypt, Libksba, DirMngr, Pinentry, SmartCard Daemon and possibly more in the future.") - (license license:lgpl2.0+))) + (license license:lgpl2.0+) + (properties '((ftp-server . "ftp.gnupg.org") + (ftp-directory . "/gcrypt/libgpg-error"))))) (define-public libgcrypt (package @@ -99,7 +101,9 @@ Daemon and possibly more in the future.") standard cryptographic building blocks such as symmetric ciphers, hash algorithms, public key algorithms, large integer functions and random number generation.") - (license license:lgpl2.0+))) + (license license:lgpl2.0+) + (properties '((ftp-server . "ftp.gnupg.org") + (ftp-directory . "/gcrypt/libgcrypt"))))) (define-public libgcrypt-1.5 (package (inherit libgcrypt) @@ -136,7 +140,9 @@ generation.") protocol. This protocol is used for IPC between most newer GnuPG components. Both, server and client side functions are provided.") - (license license:lgpl2.0+))) + (license license:lgpl2.0+) + (properties '((ftp-server . "ftp.gnupg.org") + (ftp-directory . "/gcrypt/libassuan"))))) (define-public libksba (package @@ -169,7 +175,9 @@ provided.") "KSBA (pronounced Kasbah) is a library to make X.509 certificates as well as the CMS easily accessible by other applications. Both specifications are building blocks of S/MIME and TLS.") - (license license:gpl3+))) + (license license:gpl3+) + (properties '((ftp-server . "ftp.gnupg.org") + (ftp-directory . "/gcrypt/libksba"))))) (define-public npth (package @@ -243,7 +251,9 @@ features powerful key management and the ability to access public key servers. It includes several libraries: libassuan (IPC between GnuPG components), libgpg-error (centralized GnuPG error values), and libskba (working with X.509 certificates and CMS data).") - (license license:gpl3+))) + (license license:gpl3+) + (properties '((ftp-server . "ftp.gnupg.org") + (ftp-directory . "/gcrypt/gnupg"))))) (define-public gnupg-2.0 (package (inherit gnupg) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index b2717b8cdb..bf20a4e05f 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2015 Andreas Enge -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2016 Efraim Flashner @@ -508,4 +508,5 @@ standards.") "IceCat is the GNU version of the Firefox browser. It is entirely free software, which does not recommend non-free plugins and addons. It also features built-in privacy-protecting features.") - (license license:mpl2.0))) ; and others, see toolkit/content/license.html + (license license:mpl2.0) ;and others, see toolkit/content/license.html + (properties '((ftp-directory . "/gnu/gnuzilla"))))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 38c9bdb7d1..46ebde80ca 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -195,7 +195,8 @@ also a distribution thereof. It includes a virtual machine image. Besides the usual package management features, it also supports transactional upgrades and roll-backs, per-user profiles, and much more. It is based on the Nix package manager.") - (license gpl3+))) + (license gpl3+) + (properties '((ftp-server . "alpha.gnu.org"))))) (define guix-devel ;; Development version of Guix. diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index 7c0f50d467..a1692dd4de 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -191,7 +191,8 @@ their syntactic role. It supports over 150 different languages and it can output to 8 different formats, including HTML, LaTeX and ODF. It can also output to ANSI color escape sequences, so that highlighted source code can be seen in a terminal.") - (license gpl3+))) + (license gpl3+) + (properties '((ftp-directory . "/gnu/src-highlite"))))) (define-public astyle (package diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index f9537d72b2..6cf75c2471 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2016 Ricardo Wurmus @@ -174,7 +174,8 @@ "GNU/MIT Scheme is an implementation of the Scheme programming language. It provides an interpreter, a compiler and a debugger. It also features an integrated Emacs-like editor and a large runtime library.") - (license gpl2+))) + (license gpl2+) + (properties '((ftp-directory . "/gnu/mit-scheme/stable.pkg"))))) (define-public bigloo (package diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 76e369a563..50a83fbcf3 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -76,7 +76,8 @@ to facilitate using C++ design patterns even for very deeply embedded applications, such as for systems using uclibc along with posix threading support.") (license gpl3+) - (home-page "http://www.gnu.org/software/commoncpp"))) + (home-page "http://www.gnu.org/software/commoncpp") + (properties '((ftp-directory . "/gnu/commoncpp"))))) (define-public ccrtp (package diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index cb538362b7..fac26b8bda 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -176,7 +176,9 @@ living in the same process.") and DTLS protocols. It is provided in the form of a C library to support the protocols, as well as to parse and write X.5009, PKCS 12, OpenPGP and other required structures.") - (license license:lgpl2.1+))) + (license license:lgpl2.1+) + (properties '((ftp-server . "ftp.gnutls.org") + (ftp-directory . "/gcrypt/gnutls"))))) (define-public openssl (package diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 353892f36d..8021d99c8b 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -206,34 +206,12 @@ network to check in GNU's database." ;;; Latest release. ;;; -(define (ftp-server/directory project) - "Return the FTP server and directory where PROJECT's tarball are -stored." - (define quirks - '(("commoncpp2" "ftp.gnu.org" "/gnu/commoncpp") - ("ucommon" "ftp.gnu.org" "/gnu/commoncpp") - ("libzrtpcpp" "ftp.gnu.org" "/gnu/ccrtp") - ("libosip2" "ftp.gnu.org" "/gnu/osip") - ("libgcrypt" "ftp.gnupg.org" "/gcrypt/libgcrypt") - ("libgpg-error" "ftp.gnupg.org" "/gcrypt/libgpg-error") - ("libassuan" "ftp.gnupg.org" "/gcrypt/libassuan") - ("gnupg" "ftp.gnupg.org" "/gcrypt/gnupg") - ("freefont-ttf" "ftp.gnu.org" "/gnu/freefont") - ("gnu-ghostscript" "ftp.gnu.org" "/gnu/ghostscript") - ("mit-scheme" "ftp.gnu.org" "/gnu/mit-scheme/stable.pkg") - ("icecat" "ftp.gnu.org" "/gnu/gnuzilla") - ("source-highlight" "ftp.gnu.org" "/gnu/src-highlite") - ("gnutls" "ftp.gnutls.org" "/gcrypt/gnutls") - - ;; FIXME: ftp.texmacs.org is currently outdated; texmacs.org refers to - ;; its own http URL instead. - ("TeXmacs" "ftp.texmacs.org" "/TeXmacs/targz"))) - - (match (assoc project quirks) - ((_ server directory) - (values server directory)) - (_ - (values "ftp.gnu.org" (string-append "/gnu/" project))))) +(define (ftp-server/directory package) + "Return the FTP server and directory where PACKAGE's tarball are stored." + (values (or (assoc-ref (package-properties package) 'ftp-server) + "ftp.gnu.org") + (or (assoc-ref (package-properties package) 'ftp-directory) + (string-append "/gnu/" (package-name package))))) (define (sans-extension tarball) "Return TARBALL without its .tar.* or .zip extension." @@ -276,51 +254,53 @@ true." (gnu-package-name->name+version (sans-extension tarball)))) version)) -(define (releases project) - "Return the list of releases of PROJECT as a list of release name/directory -pairs. Example: (\"mit-scheme-9.0.1\" . \"/gnu/mit-scheme/stable.pkg/9.0.1\"). " +(define* (releases project + #:key + (server "ftp.gnu.org") + (directory (string-append "/gnu/" project))) + "Return the list of of PROJECT as a list of release +name/directory pairs." ;; TODO: Parse something like fencepost.gnu.org:/gd/gnuorg/packages-ftp. - (let-values (((server directory) (ftp-server/directory project))) - (define conn (ftp-open server)) - - (let loop ((directories (list directory)) - (result '())) - (match directories - (() - (ftp-close conn) - (coalesce-sources result)) - ((directory rest ...) - (let* ((files (ftp-list conn directory)) - (subdirs (filter-map (match-lambda - ((name 'directory . _) name) - (_ #f)) - files))) - (define (file->url file) - (string-append "ftp://" server directory "/" file)) - - (define (file->source file) - (let ((url (file->url file))) - (upstream-source - (package project) - (version (tarball->version file)) - (urls (list url)) - (signature-urls (list (string-append url ".sig")))))) - - (loop (append (map (cut string-append directory "/" <>) - subdirs) - rest) - (append - ;; Filter out signatures, deltas, and files which - ;; are potentially not releases of PROJECT--e.g., - ;; in /gnu/guile, filter out guile-oops and - ;; guile-www; in mit-scheme, filter out binaries. - (filter-map (match-lambda - ((file 'file . _) - (and (release-file? project file) - (file->source file))) - (_ #f)) - files) - result)))))))) + (define conn (ftp-open server)) + + (let loop ((directories (list directory)) + (result '())) + (match directories + (() + (ftp-close conn) + (coalesce-sources result)) + ((directory rest ...) + (let* ((files (ftp-list conn directory)) + (subdirs (filter-map (match-lambda + ((name 'directory . _) name) + (_ #f)) + files))) + (define (file->url file) + (string-append "ftp://" server directory "/" file)) + + (define (file->source file) + (let ((url (file->url file))) + (upstream-source + (package project) + (version (tarball->version file)) + (urls (list url)) + (signature-urls (list (string-append url ".sig")))))) + + (loop (append (map (cut string-append directory "/" <>) + subdirs) + rest) + (append + ;; Filter out signatures, deltas, and files which + ;; are potentially not releases of PROJECT--e.g., + ;; in /gnu/guile, filter out guile-oops and + ;; guile-www; in mit-scheme, filter out binaries. + (filter-map (match-lambda + ((file 'file . _) + (and (release-file? project file) + (file->source file))) + (_ #f)) + files) + result))))))) (define* (latest-ftp-release project #:key @@ -412,15 +392,15 @@ return the corresponding signature URL, or #f it signatures are unavailable." (ftp-close conn) result)))))) -(define (latest-release package . rest) +(define* (latest-release package + #:key + (server "ftp.gnu.org") + (directory (string-append "/gnu/" package))) "Return the for the latest version of PACKAGE or #f. -PACKAGE is the name of a GNU package. This procedure automatically uses the -right FTP server and directory for PACKAGE." - (let-values (((server directory) (ftp-server/directory package))) - (apply latest-ftp-release package - #:server server - #:directory directory - rest))) +PACKAGE must be the canonical name of a GNU package." + (latest-ftp-release package + #:server server + #:directory directory)) (define-syntax-rule (false-if-ftp-error exp) "Return #f if an FTP error is raise while evaluating EXP; return the result @@ -435,10 +415,17 @@ of EXP otherwise." #f))) (define (latest-release* package) - "Like 'latest-release', but ignore FTP errors that might occur when PACKAGE -is not actually a GNU package, or not hosted on ftp.gnu.org, or not under that -name (this is the case for \"emacs-auctex\", for instance.)" - (false-if-ftp-error (latest-release (package-name package)))) + "Like 'latest-release', but (1) take a object, and (2) ignore FTP +errors that might occur when PACKAGE is not actually a GNU package, or not +hosted on ftp.gnu.org, or not under that name (this is the case for +\"emacs-auctex\", for instance.)" + (let-values (((server directory) + (ftp-server/directory package))) + (let ((name (or (assoc-ref (package-properties package) 'upstream-name) + (package-name package)))) + (false-if-ftp-error (latest-release name + #:server server + #:directory directory))))) (define %package-name-rx ;; Regexp for a package name, e.g., "foo-X.Y". Since TeXmacs uses -- cgit 1.4.1 From 1e47d0e24520dcbfa15273244ea8d04c17118f8e Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Thu, 7 Apr 2016 20:58:25 +0200 Subject: gnu: Add docbook-xml-4.1.2. * gnu/packages/docbook.scm (docbook-xml-4.1.2): New variable. --- gnu/packages/docbook.scm | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index 9f5fbf1d96..2bd86fe5d2 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,7 +75,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (define-public docbook-xml-4.4 (package (inherit docbook-xml) - (version "4.4") + (version "4.4") (source (origin (method url-fetch) (uri (string-append "http://www.docbook.org/xml/" version @@ -85,7 +86,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (define-public docbook-xml-4.3 (package (inherit docbook-xml) - (version "4.3") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "http://www.docbook.org/xml/" version @@ -96,7 +97,7 @@ by no means limited to these applications.) This package provides XML DTDs.") (define-public docbook-xml-4.2 (package (inherit docbook-xml) - (version "4.2") + (version "4.2") (source (origin (method url-fetch) (uri (string-append "http://www.docbook.org/xml/" version @@ -105,6 +106,29 @@ by no means limited to these applications.) This package provides XML DTDs.") (base32 "18hgwvmywh6a5jh38szjmg3hg2r4v5lb6r3ydc3rd8cp9wg61i5c")))))) +(define-public docbook-xml-4.1.2 + (package (inherit docbook-xml) + (version "4.1.2") + (source (origin + (method url-fetch) + (uri (string-append "http://www.docbook.org/xml/" version + "/docbkx412.zip")) + (sha256 + (base32 + "0wkp5rvnqj0ghxia0558mnn4c7s3n501j99q2isp3sp0ci069w1h")))) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (unzip (string-append (assoc-ref %build-inputs "unzip") + "/bin/unzip")) + (dtd (string-append (assoc-ref %outputs "out") + "/xml/dtd/docbook"))) + (mkdir-p dtd) + (zero? (system* unzip source "-d" dtd)))))))) + (define-public docbook-xsl (package (name "docbook-xsl") -- cgit 1.4.1 From 08fbfa8d21674738cf043bf4cc6fba1a91fc3162 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 14 Apr 2016 21:01:09 -0400 Subject: Revert "gnu: btrfs-progs: Add "static" output." This reverts commit 5f3f3ac287467994f01646680c6a6837ec7ee587. --- gnu/packages/linux.scm | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 310bb57127..e1a12045df 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2495,26 +2495,12 @@ and copy/paste text in the console and in xterm.") (base32 "1znf2zhb56zbmdjk3lq107678xwsqwc5gczspypmc5i31qnppy7f")))) (build-system gnu-build-system) - (outputs '("out" - "static")) ; static versions of binaries in "out" (~16MiB!) (arguments - '(#:phases (modify-phases %standard-phases - (add-after 'build 'build-static - (lambda _ (zero? (system* "make" "static")))) - (add-after 'install 'install-static - (let ((staticbin (string-append (assoc-ref %outputs "static") - "/bin"))) - (lambda _ - (zero? (system* "make" - (string-append "bindir=" staticbin) - "install-static")))))) - #:test-target "test" + '(#:test-target "test" #:parallel-tests? #f)) ; tests fail when run in parallel (inputs `(("e2fsprogs" ,e2fsprogs) ("libblkid" ,util-linux) - ("libblkid:static" ,util-linux "static") ("libuuid" ,util-linux) - ("libuuid:static" ,util-linux "static") ("zlib" ,zlib) ("lzo" ,lzo))) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 1e69db8f1487ec61007099b3664e771094b8470b Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 31 Mar 2016 00:36:22 -0500 Subject: gnu: Add ttfautohint. * gnu/packages/fontutils.scm (ttfautohint): New variable. * gnu/packages/patches/ttfautohint-source-date-epoch.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/fontutils.scm | 35 ++++++++++- .../patches/ttfautohint-source-date-epoch.patch | 70 ++++++++++++++++++++++ 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/ttfautohint-source-date-epoch.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 8822d0bdc0..e8cb5a630d 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -727,6 +727,7 @@ dist_patch_DATA = \ gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ gnu/packages/patches/tinyxml-use-stl.patch \ gnu/packages/patches/tk-find-library.patch \ + gnu/packages/patches/ttfautohint-source-date-epoch.patch \ gnu/packages/patches/tophat-build-with-later-seqan.patch \ gnu/packages/patches/torsocks-dns-test.patch \ gnu/packages/patches/tvtime-gcc41.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index d64ed71bbf..c7cd519f65 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Andreas Enge -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2016 Mark H Weaver ;;; Copyright © 2016 Efraim Flashner ;;; @@ -29,6 +29,8 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages python) #:use-module (gnu packages image) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) #:use-module (gnu packages glib) #:use-module (gnu packages xorg) #:use-module (gnu packages gtk) @@ -70,6 +72,37 @@ anti-aliased glyph bitmap generation with 256 gray levels.") (license license:freetype) ; some files have other licenses (home-page "http://www.freetype.org/"))) +(define-public ttfautohint + (package + (name "ttfautohint") + (version "1.5") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://savannah/freetype/ttfautohint-" + version ".tar.gz")) + (sha256 + (base32 + "1lgghck46p33z3hg8dnl76jryig4fh6d8rhzms837zp7x4hyfkv4")) + (patches (list (search-patch "ttfautohint-source-date-epoch.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("flex" ,flex) + ("bison" ,bison) + ("pkg-config" ,pkg-config))) + (inputs + `(("freetype" ,freetype) + ("harfbuzz" ,harfbuzz))) + (arguments + `(#:configure-flags '("--with-qt=no"))) ;no gui + (synopsis "Automated font hinting") + (description + "ttfautohint provides a 99% automated hinting process and a platform for +finely hand-hinting the last 1%. It is ideal for web fonts and supports many +scripts.") + (license (list license:gpl2+ license:freetype)) ;choose one or the other + (home-page "http://www.freetype.org/ttfautohint/"))) + (define-public fontconfig (package (name "fontconfig") diff --git a/gnu/packages/patches/ttfautohint-source-date-epoch.patch b/gnu/packages/patches/ttfautohint-source-date-epoch.patch new file mode 100644 index 0000000000..e42fdbf6b0 --- /dev/null +++ b/gnu/packages/patches/ttfautohint-source-date-epoch.patch @@ -0,0 +1,70 @@ +Honour an external definition of SOURCE_DATE_EPOCH when updating the embedded +modification date in TTF/TTC files. + +--- a/lib/tatime.c ++++ b/lib/tatime.c +@@ -15,6 +15,8 @@ + + #include + #include ++#include ++#include + + #include "ta.h" + +@@ -27,12 +29,51 @@ TA_get_current_time(FT_ULong* high, + { + /* there have been 24107 days between January 1st, 1904 (the epoch of */ + /* OpenType), and January 1st, 1970 (the epoch of the `time' function) */ +- TA_ULongLong seconds_to_1970 = 24107 * 24 * 60 * 60; +- TA_ULongLong seconds_to_today = seconds_to_1970 + (TA_ULongLong)time(NULL); ++ const TA_ULongLong seconds_to_1970 = 24107 * 24 * 60 * 60; ++ TA_ULongLong seconds_to_build; + ++ time_t now; ++ char *source_date_epoch, *endptr; ++ TA_ULongLong epoch; ++ source_date_epoch = getenv("SOURCE_DATE_EPOCH"); ++ if (source_date_epoch) { ++ errno = 0; ++ epoch = strtoull(source_date_epoch, &endptr, 10); ++ if ((errno == ERANGE && (epoch == ULLONG_MAX || epoch == 0)) ++ || (errno != 0 && epoch == 0)) { ++ fprintf(stderr, ++ "Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n", ++ strerror(errno)); ++ exit(EXIT_FAILURE); ++ } ++ if (endptr == source_date_epoch) { ++ fprintf(stderr, ++ "Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n", ++ endptr); ++ exit(EXIT_FAILURE); ++ } ++ if (*endptr != '\0') { ++ fprintf(stderr, ++ "Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n", ++ endptr); ++ exit(EXIT_FAILURE); ++ } ++ if (epoch > ULONG_MAX) { ++ fprintf(stderr, ++ "Environment variable $SOURCE_DATE_EPOCH: value must be smaller " ++ "than or equal to: %lu but was found to be: %llu \n", ++ ULONG_MAX, epoch); ++ exit(EXIT_FAILURE); ++ } ++ now = epoch; ++ } else { ++ now = time(NULL); ++ } + +- *high = (FT_ULong)(seconds_to_today >> 32); +- *low = (FT_ULong)seconds_to_today; ++ seconds_to_build = seconds_to_1970 + (TA_ULongLong)now; ++ ++ *high = (FT_ULong)(seconds_to_build >> 32); ++ *low = (FT_ULong)seconds_to_build; + } + + /* end of tatime.c */ -- cgit 1.4.1 From 508a85dfd6a0f10b460020535ee5d13e5d304089 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 31 Mar 2016 00:50:47 -0500 Subject: gnu: Add woff-tools. * gnu/packages/fontutils.scm (woff-tools): New variable. --- gnu/packages/fontutils.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index c7cd519f65..a413e86ec6 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -103,6 +103,47 @@ scripts.") (license (list license:gpl2+ license:freetype)) ;choose one or the other (home-page "http://www.freetype.org/ttfautohint/"))) +(define-public woff-tools + (package + (name "woff-tools") + (version "2009.10.04") + (source + (origin + (method url-fetch) + ;; Upstream source is unversioned, so use Debian's versioned tarball + (uri (string-append "mirror://debian/pool/main/w/woff-tools/" + "woff-tools_" version ".orig.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1i97gkqa6jfzlslsngqf556kx60knlgf7yc9pzsq2pizc6f0d4zl")))) + (build-system gnu-build-system) + (inputs + `(("zlib" ,zlib))) + (arguments + `(#:make-flags '("CC=gcc") + #:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configuration + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "sfnt2woff" bin) + (install-file "woff2sfnt" bin))))))) + (synopsis "Convert between OpenType and WOFF fonts") + (description + "This package provides two tools: +@table @code +@item sfnt2woff +Converts OpenType fonts to WOFF fonts +@item woff2sfnt +Converts WOFF fonts to OpenType fonts +@end table") + (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+)) + (home-page "https://people.mozilla.com/~jkew/woff/"))) + (define-public fontconfig (package (name "fontconfig") -- cgit 1.4.1 From 1555aee7d03fc9931eb870bdfb272a889f0cadc4 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Thu, 31 Mar 2016 01:11:19 -0500 Subject: gnu: Add ttf2eot. * gnu/packages/fontutils.scm (ttf2eot): New variable. * gnu/packages/patches/ttf2eot-cstddef.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/fontutils.scm | 37 ++++++++++++++++++++++++++++++ gnu/packages/patches/ttf2eot-cstddef.patch | 12 ++++++++++ 3 files changed, 50 insertions(+) create mode 100644 gnu/packages/patches/ttf2eot-cstddef.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index e8cb5a630d..11d8d6e730 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -727,6 +727,7 @@ dist_patch_DATA = \ gnu/packages/patches/tidy-CVE-2015-5522+5523.patch \ gnu/packages/patches/tinyxml-use-stl.patch \ gnu/packages/patches/tk-find-library.patch \ + gnu/packages/patches/ttf2eot-cstddef.patch \ gnu/packages/patches/ttfautohint-source-date-epoch.patch \ gnu/packages/patches/tophat-build-with-later-seqan.patch \ gnu/packages/patches/torsocks-dns-test.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index a413e86ec6..dc18daaeb6 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -144,6 +144,43 @@ Converts WOFF fonts to OpenType fonts (license (list license:mpl1.1 license:gpl2+ license:lgpl2.1+)) (home-page "https://people.mozilla.com/~jkew/woff/"))) +(define-public ttf2eot + (package + (name "ttf2eot") + (version "0.0.2-2") + (source + (origin + (method url-fetch) + (uri (string-append "https://storage.googleapis.com/" + "google-code-archive-downloads/v2/" + "code.google.com/ttf2eot/" + "ttf2eot-" version ".tar.gz")) + (sha256 + (base32 + "1f4dzzmhn0208dvbm3ia5ar6ls9apwc6ampy5blmfxkigi6z0g02")) + (patches (list (search-patch "ttf2eot-cstddef.patch"))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) ;no configuration + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "ttf2eot" bin))))))) + (synopsis "Convert from TrueType to Embeddable Open Type") + (description + "This package contains a commandline wrapper around OpenTypeUtilities.cpp +from Chromium, used to make EOT (Embeddable Open Type) files from +TTF (TrueType/OpenType Font) files.") + ;; While the README states "License: Derived from WebKit, so BSD/LGPL + ;; 2/LGPL 2.1", the single derived source file includes only BSD in its + ;; license header, and the wrapper source contains no license header. + (license license:bsd-2) + (home-page "https://code.google.com/archive/p/ttf2eot/"))) + (define-public fontconfig (package (name "fontconfig") diff --git a/gnu/packages/patches/ttf2eot-cstddef.patch b/gnu/packages/patches/ttf2eot-cstddef.patch new file mode 100644 index 0000000000..af76898e77 --- /dev/null +++ b/gnu/packages/patches/ttf2eot-cstddef.patch @@ -0,0 +1,12 @@ +From resolution of https://code.google.com/p/ttf2eot/issues/detail?id=26 + +--- ttf2eot-0.0.2-2/OpenTypeUtilities.cpp 2009-04-30 04:18:46.000000000 -0500 ++++ ttf2eot-0.0.2-2/OpenTypeUtilities.cpp 2016-03-31 01:06:39.109996011 -0500 +@@ -25,6 +25,7 @@ + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + ++#include + #include + #include + -- cgit 1.4.1 From 69d9792a94c443069e1580497dd10d4a8213eee2 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sat, 2 Apr 2016 01:48:30 -0500 Subject: gnu: Add brotli. * gnu/packages/compression.scm (brotli): New variable. --- gnu/packages/compression.scm | 45 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index 938d4b8718..de5d03af22 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013 Andreas Enge ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2015, 2016 Eric Bavier ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2015 Jeff Mickey @@ -33,6 +33,7 @@ #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system perl) + #:use-module (gnu packages autotools) #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages perl) @@ -688,3 +689,45 @@ a collection of smaller blocks which makes random access to the original data possible and can compress in parallel. This is especially useful for large tarballs.") (license license:bsd-2))) + +(define-public brotli + (let ((commit "e992cce7a174d6e2b3486616499d26bb0bad6448") + (revision "1")) + (package + (name "brotli") + (version (string-append "0.1-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bagder/libbrotli.git") + (commit commit) + (recursive? #t))) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1qxxsasvwbbbh6dl3138y9h3fg0q2v7xdk5jjc690bdg7g1wrj6n")) + (modules '((guix build utils))) + (snippet + ;; This is a recursive submodule that is unnecessary for this + ;; package, so delete it. + '(delete-file-recursively "brotli/terryfy")))) + (build-system gnu-build-system) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + (mkdir "m4") + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://github.com/bagder/libbrotli/") + (synopsis "Implementation of the Brotli compression algorithm") + (description + "Brotli is a general-purpose lossless compression algorithm. It is +similar in speed to deflate but offers denser compression. This package +provides encoder and a decoder libraries: libbrotlienc and libbrotlidec, +respectively, based on the reference implementation from Google.") + (license license:expat)))) -- cgit 1.4.1 From 579760d06e11d24ef280e5af16a2e02a98c1d77d Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sat, 2 Apr 2016 01:50:14 -0500 Subject: gnu: Add woff2. * gnu/packages/fontutils.scm (woff2): New variable. * gnu/packages/patches/woff2-libbrotli.patch: New patch. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/fontutils.scm | 41 +++++++++++++++ gnu/packages/patches/woff2-libbrotli.patch | 84 ++++++++++++++++++++++++++++++ 3 files changed, 126 insertions(+) create mode 100644 gnu/packages/patches/woff2-libbrotli.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 11d8d6e730..0c5255fd50 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -765,6 +765,7 @@ dist_patch_DATA = \ gnu/packages/patches/wicd-urwid-1.3.patch \ gnu/packages/patches/wicd-wpa2-ttls.patch \ gnu/packages/patches/wmctrl-64-fix.patch \ + gnu/packages/patches/woff2-libbrotli.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5310.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5314.patch \ gnu/packages/patches/wpa-supplicant-CVE-2015-5315.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index dc18daaeb6..a16e9dddcf 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -39,6 +39,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix svn-download) + #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) @@ -181,6 +182,46 @@ TTF (TrueType/OpenType Font) files.") (license license:bsd-2) (home-page "https://code.google.com/archive/p/ttf2eot/"))) +(define-public woff2 + (let ((commit "4e698b8c6c5e070d53c340db9ddf160e21070ede") + (revision "1")) + (package + (name "woff2") + (version (string-append "20160306-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/google/woff2.git") + (commit commit))) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "0wka0yhf0cjmd4rv2jckxpyv6lb5ckj4nj0k1ajq5hrjy7f30lcp")) + (patches (list (search-patch "woff2-libbrotli.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("brotli" ,brotli))) + (arguments + `(#:tests? #f ;no tests + #: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"))) + (install-file "woff2_compress" bin) + (install-file "woff2_decompress" bin) + #t)))))) + (synopsis "Compress TrueType fonts to WOFF2") + (description + "This package provides utilities for compressing/decompressing TrueType +fonts to/from the WOFF2 format.") + (license license:asl2.0) + (home-page "https://github.com/google/woff2")))) + (define-public fontconfig (package (name "fontconfig") diff --git a/gnu/packages/patches/woff2-libbrotli.patch b/gnu/packages/patches/woff2-libbrotli.patch new file mode 100644 index 0000000000..47539c8070 --- /dev/null +++ b/gnu/packages/patches/woff2-libbrotli.patch @@ -0,0 +1,84 @@ +From: Eric Bavier +Date: Sat, 2 Apr 2016 01:31:03 -0500 +Subject: [PATCH] Build against external libbrotli. + +--- + Makefile | 20 ++++---------------- + src/woff2_dec.cc | 2 +- + src/woff2_enc.cc | 2 +- + 3 files changed, 6 insertions(+), 18 deletions(-) + +diff --git a/Makefile b/Makefile +index 92b8d54..618a751 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + OS := $(shell uname) + +-CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src ++CPPFLAGS := -I./src $(shell pkg-config --cflags libbrotlienc libbrotlidec) + + CC ?= gcc + CXX ?= g++ +@@ -22,29 +22,17 @@ OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \ + woff2_dec.o woff2_enc.o woff2_common.o woff2_out.o \ + variable_length.o + +-BROTLI = brotli +-ENCOBJ = $(BROTLI)/enc/*.o +-DECOBJ = $(BROTLI)/dec/*.o ++BROTLI_LIBS := $(shell pkg-config --libs libbrotlienc libbrotlidec) + + OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ)) + EXECUTABLES=woff2_compress woff2_decompress + + EXE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(EXECUTABLES)) + +-ifeq (,$(wildcard $(BROTLI)/*)) +- $(error Brotli dependency not found : you must initialize the Git submodule) +-endif +- + all : $(OBJS) $(EXECUTABLES) + +-$(EXECUTABLES) : $(EXE_OBJS) deps +- $(CXX) $(LFLAGS) $(OBJS) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@ +- +-deps : +- $(MAKE) -C $(BROTLI)/dec +- $(MAKE) -C $(BROTLI)/enc ++$(EXECUTABLES) : $(EXE_OBJS) ++ $(CXX) $(LDFLAGS) $(OBJS) $(SRCDIR)/$@.o -o $@ $(BROTLI_LIBS) $(LIBS) + + clean : + rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES) +- $(MAKE) -C $(BROTLI)/dec clean +- $(MAKE) -C $(BROTLI)/enc clean +diff --git a/src/woff2_dec.cc b/src/woff2_dec.cc +index 837eede..98c01ce 100644 +--- a/src/woff2_dec.cc ++++ b/src/woff2_dec.cc +@@ -27,7 +27,7 @@ + #include + #include + +-#include "./decode.h" ++#include "brotli/dec/decode.h" + #include "./buffer.h" + #include "./port.h" + #include "./round.h" +diff --git a/src/woff2_enc.cc b/src/woff2_enc.cc +index 920c614..00d74da 100644 +--- a/src/woff2_enc.cc ++++ b/src/woff2_enc.cc +@@ -23,7 +23,7 @@ + #include + #include + +-#include "./encode.h" ++#include "brotli/enc/encode.h" + #include "./buffer.h" + #include "./font.h" + #include "./normalize.h" +-- +2.7.3 + -- cgit 1.4.1 From 5391be116ec454dc563d0f92aa2485e017cfbf5b Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 5 Apr 2016 22:34:54 -0500 Subject: gnu: fontforge: Make SVG builds reproducible. * gnu/packages/patches/fontforge-svg-modtime.patch: New file. * gnu/packages/fontutils.scm (fontforge)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it. --- gnu-system.am | 1 + gnu/packages/fontutils.scm | 3 +- gnu/packages/patches/fontforge-svg-modtime.patch | 35 ++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/fontforge-svg-modtime.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 0c5255fd50..cd1c663705 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -472,6 +472,7 @@ dist_patch_DATA = \ gnu/packages/patches/flashrom-use-libftdi1.patch \ gnu/packages/patches/flint-ldconfig.patch \ gnu/packages/patches/fltk-shared-lib-defines.patch \ + gnu/packages/patches/fontforge-svg-modtime.patch \ gnu/packages/patches/freeimage-CVE-2015-0852.patch \ gnu/packages/patches/gawk-fts-test.patch \ gnu/packages/patches/gawk-shell.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index a16e9dddcf..f37f343d52 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -511,7 +511,8 @@ definitions.") (("^FONTFORGE_MODTIME_STR=.*$") "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n") (("^FONTFORGE_VERSIONDATE=.*$") - "FONTFORGE_VERSIONDATE=\"20160404\"\n")))))) + "FONTFORGE_VERSIONDATE=\"20160404\"\n")))) + (patches (list (search-patch "fontforge-svg-modtime.patch"))))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/patches/fontforge-svg-modtime.patch b/gnu/packages/patches/fontforge-svg-modtime.patch new file mode 100644 index 0000000000..fd960ae610 --- /dev/null +++ b/gnu/packages/patches/fontforge-svg-modtime.patch @@ -0,0 +1,35 @@ +Propagate source font modification time to svg during conversion. Similar to +what upstream commit 95a470e941d9a20fbdaca51334e8b6b9d93cfae4 did for TTF +files. + +Submitted upstream at http://github.com/fontforge/fontforge/pull/2696 + +--- a/fontforge/svg.c ++++ b/fontforge/svg.c +@@ -27,7 +27,6 @@ + #include "fontforgevw.h" + #include + #include +-#include + #include + #include + #include +@@ -62,7 +61,6 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { + BlueData bd; + char *hash, *hasv, ch; + int minu, maxu, i; +- time_t now; + const char *author = GetAuthor(); + + memset(&info,0,sizeof(info)); +@@ -78,9 +76,8 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { + fprintf( file, "\n-->\n" ); + } + fprintf( file, "\n" ); +- time(&now); + fprintf( file, "\nCreated by FontForge %d at %s", +- FONTFORGE_VERSIONDATE_RAW, ctime(&now) ); ++ FONTFORGE_VERSIONDATE_RAW, ctime((time_t*)&sf->modificationtime) ); + if ( author!=NULL ) + fprintf(file," By %s\n", author); + else -- cgit 1.4.1 From f85cafde81df6f8cafd6148655c0a4ac089b3fae Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sat, 2 Apr 2016 02:58:30 -0500 Subject: gnu: Add font-fantasque-sans. * gnu/packages/fonts.scm (font-fantasque-sans): New variable. --- gnu/packages/fonts.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index aa78926d17..893db56ee5 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Jookia <166291@gmail.com> +;;; Copyright © 2016 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -761,3 +762,49 @@ It contains the following fonts and styles: @item UnGungseo: cursive, brush-stroke. @end enumerate\n") (license license:gpl2+))) + +(define-public font-fantasque-sans + (package + (name "font-fantasque-sans") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/belluzj/fantasque-sans/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "07fpy53k2x2nz5q61swkab6cfk9gw2kc4x4brsj6zjgbm16fap85")))) + (build-system gnu-build-system) + (native-inputs + `(("ttfautohint" ,ttfautohint) + ("woff-tools" ,woff-tools) + ("fontforge" ,fontforge) + ("woff2" ,woff2) + ("ttf2eot" ,ttf2eot))) + (arguments + `(#:tests? #f ;test target intended for visual inspection + #:phases (modify-phases %standard-phases + (delete 'configure) ;no configuration + (replace 'install + ;; 'make install' wants to install to ~/.fonts, install to + ;; output instead. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (font-dir (string-append out "/share/fonts")) + (truetype-dir (string-append font-dir "/truetype")) + (opentype-dir (string-append font-dir "/opentype")) + (webfonts-dir (string-append font-dir "/webfonts"))) + (copy-recursively "OTF" opentype-dir) + (for-each (lambda (f) (install-file f truetype-dir)) + (find-files "." "\\.ttf$")) + (copy-recursively "Webfonts" webfonts-dir) + #t)))))) + (synopsis "Font family with a monospaced variant for programmers") + (description + "Fantasque Sans Mono is a programming font designed with functionality in +mind. The font includes a bold version and a good italic version with new +glyph designs, not just an added slant.") + (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono") + (license license:silofl1.1))) -- cgit 1.4.1 From 5ab869f962e767110530e79b50d08421ff7411ab Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 5 Apr 2016 22:51:53 -0500 Subject: gnu: fontforge: Use modify-phases. * gnu/packages/fontutils.scm (fontforge)[arguments]: Use modify-phases. --- gnu/packages/fontutils.scm | 64 ++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 33 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index f37f343d52..e438aaf422 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -541,39 +541,37 @@ definitions.") (arguments '(#:tests? #f #:phases - (alist-cons-before - 'configure 'patch-configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((libxml2 (assoc-ref inputs "libxml2")) - (cairo (assoc-ref inputs "cairo")) - (pango (assoc-ref inputs "pango"))) - (substitute* "configure" - ;; configure looks for a directory to be present to determine - ;; whether libxml2 is available, rather than checking for the - ;; library or headers. Point it to the correct directory. - (("/usr/include/libxml2") - (string-append libxml2 "/include/libxml2")) - ;; Similary, the search directories for cairo and pango are - ;; hard-coded. - (("gww_prefix in.*") (string-append "gww_prefix in " - cairo " " pango "\n"))))) - (alist-cons-after - 'install 'set-library-path - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (potrace (string-append (assoc-ref inputs "potrace") "/bin"))) - (wrap-program (string-append out "/bin/fontforge") - ;; Fontforge dynamically opens libraries. - `("LD_LIBRARY_PATH" ":" prefix - ,(map (lambda (input) - (string-append (assoc-ref inputs input) - "/lib")) - '("libtiff" "libjpeg" "libpng" "giflib" - "libxml2" "zlib" "libspiro" "freetype" - "pango" "cairo" "fontconfig"))) - ;; Checks for potrace program at runtime - `("PATH" ":" prefix (,potrace))))) - %standard-phases)))) + (modify-phases %standard-phases + (add-before 'configure 'patch-configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((libxml2 (assoc-ref inputs "libxml2")) + (cairo (assoc-ref inputs "cairo")) + (pango (assoc-ref inputs "pango"))) + (substitute* "configure" + ;; configure looks for a directory to be present to determine + ;; whether libxml2 is available, rather than checking for the + ;; library or headers. Point it to the correct directory. + (("/usr/include/libxml2") + (string-append libxml2 "/include/libxml2")) + ;; Similary, the search directories for cairo and pango are + ;; hard-coded. + (("gww_prefix in.*") (string-append "gww_prefix in " + cairo " " pango "\n")))))) + (add-after 'install 'set-library-path + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (potrace (string-append (assoc-ref inputs "potrace") "/bin"))) + (wrap-program (string-append out "/bin/fontforge") + ;; Fontforge dynamically opens libraries. + `("LD_LIBRARY_PATH" ":" prefix + ,(map (lambda (input) + (string-append (assoc-ref inputs input) + "/lib")) + '("libtiff" "libjpeg" "libpng" "giflib" + "libxml2" "zlib" "libspiro" "freetype" + "pango" "cairo" "fontconfig"))) + ;; Checks for potrace program at runtime + `("PATH" ":" prefix (,potrace))))))))) (synopsis "Outline font editor") (description "FontForge allows you to create and modify postscript, truetype and -- cgit 1.4.1 From 5f031ed242f979a9687f14fac9c311068f6b437b Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 5 Apr 2016 22:52:58 -0500 Subject: gnu: fontforge: Install 'showttf' tool. * gnu/packages/fontutils.scm (fontforge)[arguments]: Add 'build-contrib' phase. --- gnu/packages/fontutils.scm | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index e438aaf422..7141f188ee 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -557,6 +557,14 @@ definitions.") ;; hard-coded. (("gww_prefix in.*") (string-append "gww_prefix in " cairo " " pango "\n")))))) + (add-after 'build 'build-contrib + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (and (zero? (system* "make" "-Ccontrib/fonttools" + "CC=gcc" "showttf")) + (begin (install-file "contrib/fonttools/showttf" bin) + #t))))) (add-after 'install 'set-library-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) -- cgit 1.4.1 From 17b974f71c1cfb6309200e3ad7cbb63a17181092 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 15 Apr 2016 00:07:15 -0500 Subject: gnu: fontforge: Remove 'patch-configure' phase. * gnu/packages/fontutils.scm (fontforge)[arguments]: Remove 'patch-configure' phase, which became unnecessary in the latest versions. --- gnu/packages/fontutils.scm | 15 --------------- 1 file changed, 15 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 7141f188ee..51638e0ec1 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -542,21 +542,6 @@ definitions.") '(#:tests? #f #:phases (modify-phases %standard-phases - (add-before 'configure 'patch-configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((libxml2 (assoc-ref inputs "libxml2")) - (cairo (assoc-ref inputs "cairo")) - (pango (assoc-ref inputs "pango"))) - (substitute* "configure" - ;; configure looks for a directory to be present to determine - ;; whether libxml2 is available, rather than checking for the - ;; library or headers. Point it to the correct directory. - (("/usr/include/libxml2") - (string-append libxml2 "/include/libxml2")) - ;; Similary, the search directories for cairo and pango are - ;; hard-coded. - (("gww_prefix in.*") (string-append "gww_prefix in " - cairo " " pango "\n")))))) (add-after 'build 'build-contrib (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) -- cgit 1.4.1 From de946028beb4e90495c77bd08b86f75765095b42 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 15 Apr 2016 00:08:53 -0500 Subject: gnu: fontforge: Swap giflib input for libungif. * gnu/packages/fontutils.scm (fontforge)[inputs]: Remove giflib, add libungif. [arguments]: Adjust 'set-library-path' phase accordingly. --- gnu/packages/fontutils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 51638e0ec1..5f6ff15935 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -520,7 +520,6 @@ definitions.") ("fontconfig" ,fontconfig) ;dlopen'd ("freetype" ,freetype) ("gettext" ,gnu-gettext) - ("giflib" ,giflib) ;needs giflib 4.* ("glib" ,glib) ;needed for pango detection ("libICE" ,libice) ("libSM" ,libsm) @@ -531,6 +530,7 @@ definitions.") ("libpng" ,libpng) ("libspiro" ,libspiro) ("libtiff" ,libtiff) + ("libungif" ,libungif) ("libuninameslist" ,libuninameslist) ("libxft" ,libxft) ("libxml2" ,libxml2) @@ -560,7 +560,7 @@ definitions.") ,(map (lambda (input) (string-append (assoc-ref inputs input) "/lib")) - '("libtiff" "libjpeg" "libpng" "giflib" + '("libtiff" "libjpeg" "libpng" "libungif" "libxml2" "zlib" "libspiro" "freetype" "pango" "cairo" "fontconfig"))) ;; Checks for potrace program at runtime -- cgit 1.4.1 From e9687748e1d0c92de4cb4c1db5dbe90d30486a2f Mon Sep 17 00:00:00 2001 From: Albin Söderqvist Date: Wed, 13 Apr 2016 03:50:36 +0200 Subject: gnu: Add openttd. * gnu/packages/games.scm (openttd-engine): New variable (private). (openttd): Inherit it. New variable (public). Signed-off-by: Alex Kost --- gnu/packages/games.scm | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 3fb30af9e2..c514671c35 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2016 Rodger Fox ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016 Nils Gillmann +;;; Copyright © 2016 Albin Söderqvist ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,7 @@ #:use-module (gnu packages libunwind) #:use-module (gnu packages haskell) #:use-module (gnu packages mp3) + #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages ncurses) #:use-module (gnu packages python) @@ -1858,6 +1860,74 @@ and a game metadata scraper.") (home-page "http://www.emulationstation.org") (license license:expat))) +(define openttd-engine + (package + (name "openttd-engine") + (version "1.6.0") + (source + (origin (method url-fetch) + (uri (string-append "http://binaries.openttd.org/releases/" + version "/openttd-" version "-source.tar.xz")) + (sha256 + (base32 + "1cjf9gz7d0sn7893wv9d00q724sxv3d81bgb0c5f5ppz2ssyc4jc")) + (modules '((guix build utils))) + (snippet + ;; The DOS port contains proprietary software. + '(delete-file-recursively "os/dos")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no "check" target + #:phases + (modify-phases %standard-phases + ;; The build process fails if the configure script is passed the + ;; option "--enable-fast-install". + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lzo (assoc-ref inputs "lzo"))) + (zero? + (system* "./configure" + (string-append "--prefix=" out) + ;; Provide the "lzo" path. + (string-append "--with-liblzo2=" + lzo "/lib/liblzo2.a") + ;; Put the binary in 'bin' instead of 'games'. + "--binary-dir=bin")))))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("allegro" ,allegro-4) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("icu4c" ,icu4c) + ("libpng" ,libpng) + ("lzo" ,lzo) + ("sdl" ,sdl) + ("xz" ,xz) + ("zlib" ,zlib))) + (synopsis "Transportation economics simulator") + (description "OpenTTD is a game in which you transport goods and +passengers by land, water and air. It is a re-implementation of Transport +Tycoon Deluxe with many enhancements including multiplayer mode, +internationalization support, conditional orders and the ability to clone, +autoreplace and autoupdate vehicles.") + (home-page "http://openttd.org/") + ;; This package is GPLv2, except for a few files located in + ;; "src/3rdparty/" which are under the 3-clause BSD, LGPLv2.1+ and Zlib + ;; licenses. In addition, this software contains an in-game downloader + ;; from which the user may find non-functional data licensed under + ;; different terms. + (license (list license:bsd-3 license:gpl2 license:lgpl2.1+ license:zlib)))) + +;; TODO Add 'openttd-opengfx' and 'openttd-openmsx' packages and make +;; 'openttd' a wrapper around them. The engine is playable by itself, +;; but it asks a user to download graphics if it's not found. + +(define-public openttd + (package + (inherit openttd-engine) + (name "openttd"))) + (define-public pinball (package (name "pinball") -- cgit 1.4.1 From 4670f70a7ffbfed0427260537c99d92bc00ab80b Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sat, 2 Apr 2016 13:29:05 -0700 Subject: gnu: Add emacs-rfcview. * gnu/packages/emacs.scm (emacs-rfcview): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 188824a48b..07530a9aeb 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2015 Federico Beffa ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 Nils Gillmann +;;; Copyright © 2016 Chris Marusich ;;; ;;; This file is part of GNU Guix. ;;; @@ -1506,3 +1507,30 @@ without modifier keys. It's similar to Vim's separation of commands and insertion mode. When enabled all keys are implicitly prefixed with @samp{C-} (among other helpful shortcuts).") (license license:gpl3+)))) + +(define-public emacs-rfcview + (package + (name "emacs-rfcview") + (version "0.13") + (home-page "http://www.loveshack.ukfsn.org/emacs") + (source (origin + (method uncompressed-file-fetch) + (uri "http://www.loveshack.ukfsn.org/emacs/rfcview.el") + (sha256 + (base32 + "0ympj5rxig383zl2jf0pzdsa80nnq0dpvjiriq0ivfi98fj7kxbz")))) + (build-system emacs-build-system) + (native-inputs + `(("emacs" ,emacs-no-x))) + (synopsis "Prettify Request for Comments (RFC) documents") + (description "The Internet Engineering Task Force (IETF) and the Internet +Society (ISOC) publish various Internet-related protocols and specifications +as \"Request for Comments\" (RFC) documents and Internet Standard (STD) +documents. RFCs and STDs are published in a simple text form. This package +provides an Emacs major mode, rfcview-mode, which makes it more pleasant to +read these documents in Emacs. It prettifies the text and adds +hyperlinks/menus for easier navigation. It also provides functions for +browsing the index of RFC documents and fetching them from remote servers or +local directories.") + (license license:gpl3+))) + -- cgit 1.4.1 From 9e9c71eb60607ddaa3bb0c4fb5cc8d8758ce694d Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sat, 2 Apr 2016 13:29:38 -0700 Subject: gnu: Add emacs-ffap-rfc-space. * gnu/packages/emacs.scm (emacs-ffap-rfc-space): New variable. Signed-off-by: Alex Kost --- gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 07530a9aeb..c496c5e261 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1534,3 +1534,28 @@ browsing the index of RFC documents and fetching them from remote servers or local directories.") (license license:gpl3+))) +(define-public emacs-ffap-rfc-space + (package + (name "emacs-ffap-rfc-space") + (version "12") + (home-page "http://user42.tuxfamily.org/ffap-rfc-space/index.html") + (source (origin + (method uncompressed-file-fetch) + (uri "http://download.tuxfamily.org/user42/ffap-rfc-space.el") + (sha256 + (base32 + "1iv61dv57a73mdps7rn6zmgz7nqh14v0ninidyrasy45b1nv6gck")))) + (build-system emacs-build-system) + (native-inputs + `(("emacs" ,emacs-no-x))) + (synopsis "Make ffap recognize an RFC with a space before its number") + (description "The Internet Engineering Task Force (IETF) and the +Internet Society (ISOC) publish various Internet-related protocols and +specifications as \"Request for Comments\" (RFC) documents. The +built-in Emacs module \"ffap\" (Find File at Point) has the ability to +recognize names at point which look like \"RFC1234\" and \"RFC-1234\" +and load the appropriate RFC from a remote server. However, it fails +to recognize a name like \"RFC 1234\". This package enhances ffap so +that it correctly finds RFCs even when a space appears before the +number.") + (license license:gpl3+))) -- cgit 1.4.1 From 2df831a78a933c04d64c400402a5cb1889b2d93a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 13 Apr 2016 21:30:28 +0200 Subject: gnu: Add libpng-1.2. * gnu/packages/image.scm (libpng-1.2): New variable. --- gnu/packages/image.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index aaddce1c70..ba7c8c39ba 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2015, 2016 Andreas Enge ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2015 Alex Kost -;;; Copyright © 2014 Ricardo Wurmus +;;; Copyright © 2014, 2016 Ricardo Wurmus ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer ;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2014 John Darrington @@ -76,6 +76,22 @@ library. It supports almost all PNG features and is extensible.") (license license:zlib) (home-page "http://www.libpng.org/pub/png/libpng.html"))) +(define-public libpng-1.2 + (package + (inherit libpng) + (version "1.2.56") + (source + (origin + (method url-fetch) + ;; Note: upstream removes older tarballs. + (uri (list (string-append "mirror://sourceforge/libpng/libpng12/" + version "/libpng-" version ".tar.xz") + (string-append + "ftp://ftp.simplesystems.org/pub/libpng/png/src" + "/libpng12/libpng-" version ".tar.xz"))) + (sha256 + (base32 "1ghd03p353x0vi4dk83n1nlldg11w7vqdk3f99rkgfb82ic59ki4")))))) + (define-public libjpeg (package (name "libjpeg") -- cgit 1.4.1 From 96d15e4841d9c6b0de7e50b3f262c7470d32ce83 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 13 Apr 2016 08:56:16 +0200 Subject: gnu: Add rapicorn. * gnu/packages/graphics.scm (rapicorn): New variable. --- gnu/packages/graphics.scm | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index b3fd1b6af9..c01eb39038 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -31,9 +31,13 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages boost) + #:use-module (gnu packages doxygen) + #:use-module (gnu packages haskell) #:use-module (gnu packages image) #:use-module (gnu packages python) + #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate @@ -41,13 +45,19 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages boost) #:use-module (gnu packages gl) + #:use-module (gnu packages glib) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gnome) #: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 readline) #:use-module (gnu packages sdl) #:use-module (gnu packages video) + #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) (define-public blender @@ -272,6 +282,59 @@ visual effects work for film.") (home-page "http://www.openimageio.org") (license license:bsd-3))) +(define-public rapicorn + (package + (name "rapicorn") + (version "16.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://testbit.eu/pub/dists/rapicorn/" + "rapicorn-" version ".tar.xz")) + (sha256 + (base32 + "1y51yjrpsihas1jy905m9p3r8iiyhq6bwi2690c564i5dnix1f9d")))) + (build-system gnu-build-system) + (arguments + `(;; FIXME: At least "testrcore1" fails. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'replace-/bin/ls + (lambda _ + (substitute* (cons "Makefile.decl" + (find-files "." "^Makefile\\.in$")) + (("/bin/ls") (which "ls"))) + #t))))) + ;; These libraries are listed in the "Required" section of the pkg-config + ;; file. + (propagated-inputs + `(("librsvg" ,librsvg) + ("cairo" ,cairo) + ("pango" ,pango) + ("libxml2" ,libxml2))) + (inputs + `(("gdk-pixbuf" ,gdk-pixbuf) + ("libpng" ,libpng-1.2) + ("readline" ,readline) + ("libcroco" ,libcroco) + ("python" ,python-2) + ("cython" ,python2-cython))) + (native-inputs + `(("pandoc" ,ghc-pandoc) + ("bison" ,bison) + ("flex" ,flex) + ("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (home-page "http://rapicorn.org") + (synopsis "Toolkit for rapid development of user interfaces") + (description + "Rapicorn is a toolkit for rapid development of user interfaces in C++ +and Python. The user interface is designed in a declarative markup language +and is connected to the programming logic using data bindings and commands.") + (license license:mpl2.0))) + (define-public ctl (package (name "ctl") -- cgit 1.4.1 From 770305f4ab2eb743971262faed0d9b636ed7a903 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 14 Apr 2016 20:26:23 +0200 Subject: gnu: Add Beast. * gnu/packages/music.scm (beast): New variable. --- gnu/packages/music.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f733e45cf7..280f3840bb 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) @@ -673,6 +674,46 @@ modification devices that brought world-wide fame to the names and products of Laurens Hammond and Don Leslie.") (license license:gpl2+))) +(define-public beast + (package + (name "beast") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append "https://testbit.eu/pub/dists/beast/beast-" + version ".tar.xz")) + (sha256 + (base32 + "1jzzmfwssklzw8fvvil04n8csc0zm99fnd9p2xa7c0xchg37lvhn")))) + (build-system gnu-build-system) + (inputs + `(("rapicorn" ,rapicorn) + ("guile" ,guile-1.8) + ("python" ,python-2) + ("cython" ,python2-cython) + ("libgnomecanvas" ,libgnomecanvas) + ("libogg" ,libogg) + ("libmad" ,libmad) + ("flac" ,flac) + ("alsa-lib" ,alsa-lib) + ("libvorbis" ,libvorbis) + ("gettext" ,gnu-gettext))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin") + ("perl" ,perl) + ("perl-xml-parser" ,perl-xml-parser))) + (home-page "https://testbit.eu/wiki/Beast_Home") + (synopsis "Music composition and modular synthesis environment") + (description + "Beast is a music composition and modular synthesis application. It +supports a wide range of standards in the field, such as MIDI, various audio +file formats and LADSPA modules. It allows for multitrack editing, real-time +synthesis, 32bit audio rendering, precise timing down to sample granularity, +on-demand and partial loading of wave files, on the fly decoding, stereo +mixing, FFT scopes, MIDI automation and full scriptability in Scheme.") + (license license:gpl3+))) + (define-public bristol (package (name "bristol") -- cgit 1.4.1 From a5e2c9a9c5afc599b1cd1551eadb2e70fd01bc7a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 15 Apr 2016 17:40:19 +0200 Subject: gnu: Add tcc. * gnu/packages/c.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/c.scm | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 gnu/packages/c.scm (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index cd1c663705..0165519af5 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -59,6 +59,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/boost.scm \ gnu/packages/bootstrap.scm \ gnu/packages/busybox.scm \ + gnu/packages/c.scm \ gnu/packages/calcurse.scm \ gnu/packages/ccache.scm \ gnu/packages/cdrom.scm \ diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm new file mode 100644 index 0000000000..ce4a6aa795 --- /dev/null +++ b/gnu/packages/c.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Ludovic Courtès +;;; +;;; 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 . + +(define-module (gnu packages c) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages perl) + #:use-module (gnu packages texinfo)) + +(define-public tcc + (package + (name "tcc") ;aka. "tinycc" + (version "0.9.26") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah/tinycc/tcc-" + version ".tar.bz2")) + (sha256 + (base32 + "0wbdbdq6090ayw8bxnbikiv989kykff3m5rzbia05hrnwhd707jj")))) + (build-system gnu-build-system) + (native-inputs `(("perl" ,perl) + ("texinfo" ,texinfo))) + (arguments + `(#:configure-flags (list (string-append "--elfinterp=" + (assoc-ref %build-inputs "libc") + ,(glibc-dynamic-linker)) + (string-append "--crtprefix=" + (assoc-ref %build-inputs "libc") + "/lib") + (string-append "--sysincludepaths=" + (assoc-ref %build-inputs "libc") + "/include:" + (assoc-ref %build-inputs + "linux-headers") + "/include:{B}/include") + (string-append "--libpaths=" + (assoc-ref %build-inputs "libc") + "/lib")) + #:test-target "test")) + (synopsis "Tiny and fast C compiler") + (description + "TCC, also referred to as \"TinyCC\", is a small and fast C compiler +written in C. It supports ANSI C with GNU and extensions and most of the C99 +standard.") + (home-page "http://www.tinycc.org/") + (license license:lgpl2.1+))) -- cgit 1.4.1 From 9f088725c087c5d49dcbbb26d45dba4af6b0cad6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 15 Apr 2016 17:53:43 +0200 Subject: gnu: Add tcc-wrapper. * gnu/packages/c.scm (tcc-wrapper): New variable. --- gnu/packages/c.scm | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/c.scm b/gnu/packages/c.scm index ce4a6aa795..e8d1236eb1 100644 --- a/gnu/packages/c.scm +++ b/gnu/packages/c.scm @@ -21,9 +21,11 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (gnu packages bootstrap) #:use-module (gnu packages perl) - #:use-module (gnu packages texinfo)) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages guile)) (define-public tcc (package @@ -63,3 +65,63 @@ written in C. It supports ANSI C with GNU and extensions and most of the C99 standard.") (home-page "http://www.tinycc.org/") (license license:lgpl2.1+))) + +(define-public tcc-wrapper + (package + (inherit tcc) + (name "tcc-wrapper") + (build-system trivial-build-system) + (native-inputs '()) + (inputs `(("tcc" ,tcc) + ("guile" ,guile-2.0))) + + ;; By default TCC does not honor any search path environment variable. + ;; This wrapper adds them. + ;; + ;; FIXME: TCC includes its own linker so our 'ld-wrapper' hack to set the + ;; RUNPATH is ineffective here. We should modify TCC itself. + (native-search-paths + (list (search-path-specification + (variable "TCC_CPATH") + (files '("include"))) + (search-path-specification + (variable "TCC_LIBRARY_PATH") + (files '("lib" "lib64"))))) + + (arguments + '(#:builder + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (tcc (assoc-ref %build-inputs "tcc")) + (guile (assoc-ref %build-inputs "guile"))) + (mkdir out) + (mkdir bin) + (call-with-output-file (string-append bin "/cc") + (lambda (port) + (format port "#!~a/bin/guile --no-auto-compile~%!#~%" guile) + (write + `(begin + (use-modules (ice-9 match) + (srfi srfi-26)) + + (define (split path) + (string-tokenize path (char-set-complement + (char-set #\:)))) + + (apply execl ,(string-append tcc "/bin/tcc") + ,(string-append tcc "/bin/tcc") ;argv[0] + (append (cdr (command-line)) + (match (getenv "TCC_CPATH") + (#f '()) + (str + (map (cut string-append "-I" <>) + (split str)))) + (match (getenv "TCC_LIBRARY_PATH") + (#f '()) + (str + (map (cut string-append "-L" <>) + (split str))))))) + port) + (chmod port #o777))) + #t))) + (synopsis "Wrapper providing the 'cc' command for TCC"))) -- cgit 1.4.1 From 05c4b7e930cd89ca05c2b3a559236c5995f3c07f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 14 Mar 2016 20:11:51 +0800 Subject: gnu: gtk+: Enable SVG support. * gnu/packages/gtk.scm (gtk+, gtk+-2)[propagated-inputs]: Use 'gdk-pixbuf+svg' instead of 'gdk-pixbuf'. (gtk+): Remove librsvg from inputs. Remove 'wrap-gtk-encode-symbolic-svg' phase. --- gnu/packages/gtk.scm | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 255d885b27..793808f1e7 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -559,7 +559,7 @@ is part of the GNOME accessibility project.") (outputs '("out" "doc")) (propagated-inputs `(("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("pango" ,pango))) (inputs `(("cups" ,cups) @@ -619,7 +619,7 @@ application suites.") (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf) + ("gdk-pixbuf" ,gdk-pixbuf+svg) ("libepoxy" ,libepoxy) ("libxcursor" ,libxcursor) ("libxi" ,libxi) @@ -627,8 +627,7 @@ application suites.") ("libxdamage" ,libxdamage) ("pango" ,pango))) (inputs - `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg - ("libxml2" ,libxml2) + `(("libxml2" ,libxml2) ;; XXX: colord depends on mozjs (through polkit), which fails on ;; on non-intel systems now. ;;("colord" ,colord) @@ -663,18 +662,7 @@ application suites.") (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk")) #t) - (alist-cons-after - 'install 'wrap-gtk-encode-symbolic-svg - ;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know - ;; librsvg's loaders.cache to handle SVG files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/gtk-encode-symbolic-svg")) - (librsvg (assoc-ref inputs "librsvg")) - (loaders.cache (find-files librsvg "^loaders\\.cache$"))) - (wrap-program prog - `("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache)))) - %standard-phases)))) + %standard-phases))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK3_PATH") -- cgit 1.4.1 From c9171a3faa58d496a9adaade28f943536b1df68d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 16 Mar 2016 10:15:12 +0800 Subject: gnu: gtk+-2: Update to 2.24.30. * gnu/packages/gtk.scm (gtk+-2): Update to 2.24.30. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 793808f1e7..fd5ad8e722 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -545,7 +545,7 @@ is part of the GNOME accessibility project.") (define-public gtk+-2 (package (name "gtk+") - (version "2.24.28") + (version "2.24.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -553,7 +553,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj")) + "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d")) (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) -- cgit 1.4.1 From 83d6c2770ead35048c935b663d7aa5b088cf9c5a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 20 Feb 2016 19:23:14 +0800 Subject: gnu: pixman: Update to 0.34.0. * gnu/packages/xdisorg.scm (pixman): Update to 0.34.0. --- gnu/packages/xdisorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 126e997673..bb74485c76 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -196,7 +196,7 @@ following the mouse.") (define-public pixman (package (name "pixman") - (version "0.32.8") + (version "0.34.0") (source (origin (method url-fetch) (uri (string-append @@ -204,7 +204,7 @@ following the mouse.") version ".tar.gz")) (sha256 (base32 - "0pfn0247sjsi95kwjih0wwqpp28wadihqk1bn28x6iqbqhbxwnjp")))) + "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1")))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) -- cgit 1.4.1 From 33f3b97c38f4f4320cdea8385093761aa08da471 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 21 Feb 2016 09:54:49 +0800 Subject: gnu: cairo: Update to 1.14.6. * gnu/packages/gtk.scm (cairo): Update to 1.14.6. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index fd5ad8e722..f700f23c27 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -95,14 +95,14 @@ tools have full access to view and control running applications.") (define-public cairo (package (name "cairo") - (version "1.14.2") + (version "1.14.6") (source (origin (method url-fetch) (uri (string-append "http://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 (base32 - "1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9")))) + "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31")))) (build-system gnu-build-system) (propagated-inputs `(("fontconfig" ,fontconfig) -- cgit 1.4.1 From 867a62e0c7a0525c0862e9a90ecfea738246361b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 16 Mar 2016 16:36:11 +0800 Subject: gnu: gobject-introspection: Remove cairo from inputs. It's only for testing and tests are disabled. Remove it will allow building poppler with gobject-introspection. * gnu/packages/glib.scm (gobject-introspection)[inputs]: Remove cairo. --- gnu/packages/glib.scm | 1 - 1 file changed, 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index e7e9df8dff..c3c0aedbac 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -237,7 +237,6 @@ dynamic loading, and an object system.") (build-system gnu-build-system) (inputs `(("bison" ,bison) - ("cairo" ,cairo) ("flex" ,flex) ("glib" ,glib) ("python-2" ,python-2))) -- cgit 1.4.1 From c010bae3e0d21308b6252cf2d22681d09fbb245e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 16 Mar 2016 16:54:16 +0800 Subject: gnu: poppler: Enable GObject introspection. * gnu/packages/pdf.scm (poppler)[native-inputs]: Add gobject-introspection. --- gnu/packages/pdf.scm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1d33be85d5..7f228cdd89 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -60,11 +60,7 @@ (sha256 (base32 "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) (build-system gnu-build-system) - ;; FIXME: more dependencies could be added - ;; cairo output: no (requires cairo >= 1.10.0) - ;; qt4 wrapper: no - ;; introspection: no - ;; use gtk-doc: no + ;; FIXME: ;; use libcurl: no (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) @@ -83,7 +79,8 @@ ("glib" ,glib))) (native-inputs `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin"))) ; glib-mkenums, etc. + ("glib" ,glib "bin") ; glib-mkenums, etc. + ("gobject-introspection" ,gobject-introspection))) (arguments `(#:tests? #f ; no test data provided with the tarball #:configure-flags -- cgit 1.4.1 From dc9f6545645af58333d0df8d0e708862290c347d Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 24 Mar 2016 09:55:45 +0800 Subject: gnu: dbus: Update to 1.10.8. * gnu/packages/glib.scm (dbus): Update to 1.10.8. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index c3c0aedbac..d5ea9131e4 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -59,7 +59,7 @@ (define dbus (package (name "dbus") - (version "1.10.0") + (version "1.10.8") (source (origin (method url-fetch) (uri (string-append @@ -67,7 +67,7 @@ version ".tar.gz")) (sha256 (base32 - "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) + "0560y3hxpgh346w6avcrcz79c8ansmn771y5xpcvvlr6m8mx5wxs")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments -- cgit 1.4.1 From 3ede2efd202b7a425b39a0f6cfaf34826f543929 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 24 Mar 2016 18:21:50 +0800 Subject: gnu: poppler: Update to 0.42.0. * gnu/packages/pdf.scm (poppler): Update to 0.42.0. --- gnu/packages/pdf.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 7f228cdd89..74840f1c95 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,13 +52,14 @@ (define-public poppler (package (name "poppler") - (version "0.37.0") + (version "0.42.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) - (sha256 (base32 - "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) + (sha256 + (base32 + "044084dbp804flwf7bw3lbwfdigm9s0psm6sw2j1hkrazrphgvwz")))) (build-system gnu-build-system) ;; FIXME: ;; use libcurl: no -- cgit 1.4.1 From a1713f18d0e8b1349b7c4fa73d04be3e29ceadd3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 2 Apr 2016 09:47:55 +0800 Subject: gnu: freetype: Update to 2.6.3. * gnu/packages/fontutils.scm (freetype): Update to 2.6.3. --- gnu/packages/fontutils.scm | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 5f6ff15935..bbad103535 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -46,23 +46,14 @@ (define-public freetype (package (name "freetype") - (version "2.6") + (version "2.6.3") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4")))) + "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip")))) (build-system gnu-build-system) - (arguments - `(#:phases - ;; This should not be necessary; reported upstream as - ;; https://savannah.nongnu.org/bugs/index.php?44261 - (alist-cons-before - 'configure 'set-paths - (lambda _ - (setenv "CONFIG_SHELL" (which "bash"))) - %standard-phases))) (synopsis "Font rendering library") (description "Freetype is a library that can be used by applications to access the -- cgit 1.4.1 From 944504b32ded87ea539667e30d8b770d6165367e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 2 Apr 2016 10:05:19 +0800 Subject: gnu: freetype: Add libpng and zlib to propagated-inputs. * gnu/packages/fontutils.scm (freetype)[propagated-inputs]: New field. [native-inputs]: New field. --- gnu/packages/fontutils.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index bbad103535..b075353d64 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -54,6 +54,13 @@ (sha256 (base32 "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip")))) (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + ;; These are all in the Requires.private field of freetype2.pc. + ;; XXX: add harfbuzz. + `(("libpng" ,libpng) + ("zlib" ,zlib))) (synopsis "Font rendering library") (description "Freetype is a library that can be used by applications to access the -- cgit 1.4.1 From 0f795a0a539fbaed8cda95d9575a5cfdec62b83f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 2 Apr 2016 15:18:30 +0800 Subject: gnu: glib: Use modify-phases syntax. * gnu/packages/glib.scm (glib)[arguments]: Use 'modify-phases'. --- gnu/packages/glib.scm | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index d5ea9131e4..523116d8ac 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -160,29 +160,29 @@ shared NFS home directories.") ("perl" ,perl) ; needed by GIO tests ("bash" ,bash))) (arguments - '(#:phases (alist-cons-before - 'build 'pre-build - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; For tests/gdatetime.c. - (setenv "TZDIR" - (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - - ;; Some tests want write access there. - (setenv "XDG_CACHE_HOME" (getcwd)) - - (substitute* '("glib/gspawn.c" - "glib/tests/utils.c" - "tests/spawn-test.c") - (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))) - - ;; Disable a test that requires dbus. - (substitute* "gio/tests/gdbus-serialization.c" - (("g_test_add_func \ + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For tests/gdatetime.c. + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + + ;; Some tests want write access there. + (setenv "XDG_CACHE_HOME" (getcwd)) + + (substitute* '("glib/gspawn.c" + "glib/tests/utils.c" + "tests/spawn-test.c") + (("/bin/sh") + (string-append (assoc-ref inputs "bash") "/bin/sh"))) + + ;; Disable a test that requires dbus. + (substitute* "gio/tests/gdbus-serialization.c" + (("g_test_add_func \ \\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) - (string-append "/* " all " */")))) - %standard-phases) + (string-append "/* " all " */")))))) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. #:configure-flags (list (string-append "--with-html-dir=" -- cgit 1.4.1 From 7dd99e5573581d391e2318a4b1a314e593ee0541 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 2 Apr 2016 18:00:41 +0800 Subject: gnu: glib: Drop glib-tests-homedir.patch. * gnu/packages/glib.scm (glib)[source]: Remove glib-tests-homedir.patch. [arguments]: Set HOME and disable '/gdbus/codegen-peer-to-peer' test. * gnu/packages/patches/glib-tests-homedir.patch: Remove file. * gnu-system.am (dist_patch_DATA): Remove it. --- gnu-system.am | 1 - gnu/packages/glib.scm | 7 +++- gnu/packages/patches/glib-tests-homedir.patch | 59 --------------------------- 3 files changed, 5 insertions(+), 62 deletions(-) delete mode 100644 gnu/packages/patches/glib-tests-homedir.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 0165519af5..c7ba159ad5 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -486,7 +486,6 @@ dist_patch_DATA = \ gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/glib-networking-ssl-cert-file.patch \ gnu/packages/patches/glib-tests-desktop.patch \ - gnu/packages/patches/glib-tests-homedir.patch \ gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glib-tests-timer.patch \ gnu/packages/patches/glib-tests-gapplication.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 523116d8ac..13f3f3a8a2 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -138,8 +138,7 @@ shared NFS home directories.") (sha256 (base32 "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) - (patches (search-patches "glib-tests-homedir.patch" - "glib-tests-desktop.patch" + (patches (search-patches "glib-tests-desktop.patch" "glib-tests-prlimit.patch" "glib-tests-timer.patch" "glib-tests-gapplication.patch")))) @@ -170,6 +169,7 @@ shared NFS home directories.") "/share/zoneinfo")) ;; Some tests want write access there. + (setenv "HOME" (getcwd)) (setenv "XDG_CACHE_HOME" (getcwd)) (substitute* '("glib/gspawn.c" @@ -178,6 +178,9 @@ shared NFS home directories.") (("/bin/sh") (string-append (assoc-ref inputs "bash") "/bin/sh"))) + ;; Disable a test that requires /etc/machine-id. + (substitute* "gio/tests/gdbus-peer.c" + (("g_test_add_func.*/gdbus/codegen-peer-to-peer.*") "")) ;; Disable a test that requires dbus. (substitute* "gio/tests/gdbus-serialization.c" (("g_test_add_func \ diff --git a/gnu/packages/patches/glib-tests-homedir.patch b/gnu/packages/patches/glib-tests-homedir.patch deleted file mode 100644 index 0a2bcf1a23..0000000000 --- a/gnu/packages/patches/glib-tests-homedir.patch +++ /dev/null @@ -1,59 +0,0 @@ -`g_get_home_dir' looks at /etc/passwd first, which fails in chroot builds. -The gdbus tests use it to lookup .dbus-keyrings, so they cannot run in our -chroot build environment. Thus, disable them. - ---- glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:46.000000000 +0100 -+++ glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:47.000000000 +0100 -@@ -373,10 +373,6 @@ main (int argc, - g_type_init (); - g_test_init (&argc, &argv, NULL); - -- g_test_add ("/gdbus/connection/flush/busy", Fixture, NULL, -- setup, test_flush_busy, teardown); -- g_test_add ("/gdbus/connection/flush/idle", Fixture, NULL, -- setup, test_flush_idle, teardown); - - ret = g_test_run(); - ---- glib-2.38.0.orig/gio/tests/gdbus-peer.c 2013-08-08 12:00:40.000000000 +0200 -+++ glib-2.38.0/gio/tests/gdbus-peer.c 2013-09-30 19:36:40.000000000 +0200 -@@ -1746,11 +1746,6 @@ - - g_test_add_func ("/gdbus/peer-to-peer", test_peer); - g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing); -- g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp); -- -- g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous); -- g_test_add_func ("/gdbus/credentials", test_credentials); -- g_test_add_func ("/gdbus/codegen-peer-to-peer", codegen_test_peer); - - ret = g_test_run(); - ---- glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:34.000000000 +0200 -+++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:40.000000000 +0200 -@@ -211,6 +211,7 @@ main (int argc, - - g_test_init (&argc, &argv, NULL); - -+ return g_test_run(); - for (i = 0; cases[i].name != NULL; i++) - { - gchar *name; -@@ -224,5 +225,4 @@ main (int argc, - g_free (name); - } - -- return g_test_run(); - } - ---- glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:25.000000000 +0100 -+++ glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:27.000000000 +0100 -@@ -294,7 +294,6 @@ main (int argc, - g_type_init (); - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/gdbus/non-socket", test_non_socket); - - ret = g_test_run(); - - -- cgit 1.4.1 From 7c951767c09c7f97c0777d8a15d3de6559a2b4da Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 3 Apr 2016 09:43:51 +0800 Subject: gnu: glib: Disable tests in build phases instead of patches. * gnu/packages/glib.scm (glib)[sources]: Remove glib-tests-desktop.patch, glib-tests-prlimit.patch and glib-tests-gapplicatiotn.patch. [arguments]: Add 'disable-falling-tests' phase. * gnu/packages/patches/glib-tests-timer.patch: Adjust accordingly. * gnu/packages/patches/glib-tests-desktop.patch, gnu/packages/patches/glib-tests-gapplication.patch, gnu/packages/patches/glib-tests-prlimit.patch: Remove files. * gnu-system.am (dist_patch_DATA): Remove them. --- gnu-system.am | 3 - gnu/packages/glib.scm | 75 ++++++++--- gnu/packages/patches/glib-tests-desktop.patch | 138 --------------------- gnu/packages/patches/glib-tests-gapplication.patch | 28 ----- gnu/packages/patches/glib-tests-prlimit.patch | 14 --- gnu/packages/patches/glib-tests-timer.patch | 11 -- 6 files changed, 61 insertions(+), 208 deletions(-) delete mode 100644 gnu/packages/patches/glib-tests-desktop.patch delete mode 100644 gnu/packages/patches/glib-tests-gapplication.patch delete mode 100644 gnu/packages/patches/glib-tests-prlimit.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index c7ba159ad5..0c24c05d15 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -485,10 +485,7 @@ dist_patch_DATA = \ gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/glib-networking-ssl-cert-file.patch \ - gnu/packages/patches/glib-tests-desktop.patch \ - gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glib-tests-timer.patch \ - gnu/packages/patches/glib-tests-gapplication.patch \ gnu/packages/patches/glibc-CVE-2015-7547.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-hurd-extern-inline.patch \ diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 13f3f3a8a2..25b6a81d70 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -138,10 +138,7 @@ shared NFS home directories.") (sha256 (base32 "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) - (patches (search-patches "glib-tests-desktop.patch" - "glib-tests-prlimit.patch" - "glib-tests-timer.patch" - "glib-tests-gapplication.patch")))) + (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python @@ -176,16 +173,66 @@ shared NFS home directories.") "glib/tests/utils.c" "tests/spawn-test.c") (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))) - - ;; Disable a test that requires /etc/machine-id. - (substitute* "gio/tests/gdbus-peer.c" - (("g_test_add_func.*/gdbus/codegen-peer-to-peer.*") "")) - ;; Disable a test that requires dbus. - (substitute* "gio/tests/gdbus-serialization.c" - (("g_test_add_func \ -\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) - (string-append "/* " all " */")))))) + (string-append (assoc-ref inputs "bash") "/bin/sh"))))) + (add-before 'check 'disable-failing-tests + (lambda _ + (let ((disable + (lambda (test-file test-paths) + (define pattern+procs + (map (lambda (test-path) + (cons + ;; XXX: only works for single line statements. + (format #f "g_test_add_func.*\"~a\".*" test-path) + (const ""))) + test-paths)) + (substitute test-file pattern+procs))) + (failing-tests + '(("glib/tests/thread.c" + (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 + ;; as found on hydra.gnu.org, and strace(1) doesn't + ;; recognize it. + "/thread/thread4")) + + ("glib/tests/timer.c" + (;; fails if compiler optimizations are enabled, which they + ;; are by default. + "/timer/stop")) + + ("gio/tests/gapplication.c" + (;; XXX: proven to be unreliable. See: + ;; + ;; + "/gapplication/quit")) + + ("gio/tests/contenttype.c" + (;; XXX: requires shared-mime-info. + "/contenttype/guess" + "/contenttype/subtype" + "/contenttype/list" + "/contenttype/icon" + "/contenttype/symbolic-icon" + "/contenttype/tree")) + + ("gio/tests/appinfo.c" + (;; XXX: requires update-desktop-database. + "/appinfo/associations")) + + ("gio/tests/desktop-app-info.c" + (;; XXX: requires update-desktop-database. + "/desktop-app-info/delete" + "/desktop-app-info/default" + "/desktop-app-info/fallback" + "/desktop-app-info/lastused" + "/desktop-app-info/search")) + + ("gio/tests/gdbus-peer.c" + (;; Requires /etc/machine-id. + "/gdbus/codegen-peer-to-peer")) + + ("gio/tests/gdbus-unix-addresses.c" + (;; Requires /etc/machine-id. + "/gdbus/x11-autolaunch"))))) + (and-map (lambda (x) (apply disable x)) failing-tests))))) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. #:configure-flags (list (string-append "--with-html-dir=" diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch deleted file mode 100644 index 642234ebbc..0000000000 --- a/gnu/packages/patches/glib-tests-desktop.patch +++ /dev/null @@ -1,138 +0,0 @@ -Some GLib tests expect desktop things, such as an xterm, a MIME -database, the `update-desktop-database' program, which we don't provide. - ---- glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:44.000000000 +0200 -+++ glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:56.000000000 +0200 -@@ -497,16 +497,10 @@ main (int argc, char *argv[]) - - g_test_add_func ("/appinfo/basic", test_basic); - g_test_add_func ("/appinfo/text", test_text); -- g_test_add_func ("/appinfo/launch", test_launch); - g_test_add_func ("/appinfo/show-in", test_show_in); - g_test_add_func ("/appinfo/commandline", test_commandline); -- g_test_add_func ("/appinfo/launch-context", test_launch_context); -- g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals); - g_test_add_func ("/appinfo/tryexec", test_tryexec); -- g_test_add_func ("/appinfo/associations", test_associations); - g_test_add_func ("/appinfo/environment", test_environment); -- g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class); -- g_test_add_func ("/appinfo/supported-types", test_supported_types); - g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile); - - return g_test_run (); - ---- glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:29.000000000 +0100 -+++ glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:33.000000000 +0100 -@@ -207,15 +207,6 @@ main (int argc, char *argv[]) - { - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/contenttype/guess", test_guess); -- g_test_add_func ("/contenttype/unknown", test_unknown); -- g_test_add_func ("/contenttype/subtype", test_subtype); -- g_test_add_func ("/contenttype/list", test_list); -- g_test_add_func ("/contenttype/executable", test_executable); -- g_test_add_func ("/contenttype/description", test_description); -- g_test_add_func ("/contenttype/icon", test_icon); -- g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon); -- g_test_add_func ("/contenttype/tree", test_tree); - - return g_test_run (); - } - - ---- glib-2.40.0/gio/tests/desktop-app-info.c 2014-03-19 22:50:45.000000000 -0500 -+++ glib-2.40.0/gio/tests/desktop-app-info.c 2014-06-30 14:27:52.543358331 -0500 -@@ -708,6 +708,8 @@ - g_setenv ("XDG_DATA_HOME", basedir, TRUE); - cleanup_subdirs (basedir); - -+ result = g_test_run (); -+ return result; - g_test_add_func ("/desktop-app-info/delete", test_delete); - g_test_add_func ("/desktop-app-info/default", test_default); - g_test_add_func ("/desktop-app-info/fallback", test_fallback); - - ------------------------------ -The hunk below removes tests that depend on `gdbus-testserver.py', -because that script depends on python-gobject. The second hunk -disables a test that expects /etc/machine-id in the build environment. - ---- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200 -+++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200 -@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16) - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-loss \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-slow \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-error \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-exit-on-close \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-export \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-introspection \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-names \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-threads \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-well-known-name \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \ --@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \ - @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL) -@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $ - am__EXEEXT_1 = - @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \ - @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \ --@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \ - @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \ - @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \ - @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \ - - -The test below depends on the availability /etc/passwd to dbus-daemon. - ---- glib-2.40.0/gio/tests/gdbus-auth.c 2014-02-03 11:40:41.000000000 -0600 -+++ glib-2.40.0/gio/tests/gdbus-auth.c 2014-06-30 15:08:43.719421893 -0500 -@@ -286,6 +286,8 @@ - { - gint ret; - -+ g_test_init (&argc, &argv, NULL); -+ return g_test_run(); - setlocale (LC_ALL, "C"); - - temp_dbus_keyrings_setup (); - - -The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see - https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1 - ---- glib-2.40.0/gio/tests/dbus-appinfo.c 2014-02-03 11:40:41.000000000 -0600 -+++ glib-2.40.0/gio/tests/dbus-appinfo.c 2014-06-30 14:44:08.215383632 -0500 -@@ -278,7 +278,7 @@ - { - g_test_init (&argc, &argv, NULL); - -- g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo); -+ return g_test_run(); - - return session_bus_run (); - } - - -The test below fails for unknown reasons (!). - ---- glib-2.39.1/gio/tests/gsettings.c.orig 2014-01-20 00:45:04.000000000 +0100 -+++ glib-2.39.1/gio/tests/gsettings.c 2014-01-20 00:45:10.000000000 +0100 -@@ -2489,7 +2489,6 @@ main (int argc, char *argv[]) - g_test_add_func ("/gsettings/range/subprocess/high", test_range_high); - g_test_add_func ("/gsettings/range/subprocess/low", test_range_low); - g_test_add_func ("/gsettings/list-items", test_list_items); -- g_test_add_func ("/gsettings/list-schemas", test_list_schemas); - g_test_add_func ("/gsettings/mapped", test_get_mapped); - g_test_add_func ("/gsettings/get-range", test_get_range); - g_test_add_func ("/gsettings/schema-source", test_schema_source); - diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch deleted file mode 100644 index 1845fcb9b8..0000000000 --- a/gnu/packages/patches/glib-tests-gapplication.patch +++ /dev/null @@ -1,28 +0,0 @@ -This test has proven to be unreliable, often leading to things like this -in gapplication.log: - - PASS: gapplication 3 /gapplication/properties - Failed to register: The connection is closed - ** - GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) - ok 4 /gapplication/app-id - PASS: gapplication 4 /gapplication/app-id - ../../tap-test: line 5: 24133 Aborted $1 -k --tap - # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) - cleaning up pid 24154 - ERROR: gapplication - missing test plan - ERROR: gapplication - exited with status 134 (terminated by signal 6?) - -See and . - - ---- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100 -+++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100 -@@ -685,7 +685,6 @@ main (int argc, char **argv) - /* g_test_add_func ("/gapplication/non-unique", test_nonunique); */ - g_test_add_func ("/gapplication/properties", properties); - g_test_add_func ("/gapplication/app-id", appid); -- g_test_add_func ("/gapplication/quit", test_quit); - g_test_add_func ("/gapplication/local-actions", test_local_actions); - /* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */ - g_test_add_func ("/gapplication/local-command-line", test_local_command_line); diff --git a/gnu/packages/patches/glib-tests-prlimit.patch b/gnu/packages/patches/glib-tests-prlimit.patch deleted file mode 100644 index f2b2a61bee..0000000000 --- a/gnu/packages/patches/glib-tests-prlimit.patch +++ /dev/null @@ -1,14 +0,0 @@ -prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on -hydra.gnu.org, and strace(1) doesn't recognize it. - ---- glib-2.34.3/glib/tests/thread.c 2012-11-20 15:27:12.000000000 +0100 -+++ glib-2.34.3/glib/tests/thread.c 2013-03-27 14:48:31.000000000 +0100 -@@ -130,7 +130,7 @@ test_thread3 (void) - static void - test_thread4 (void) - { --#ifdef HAVE_PRLIMIT -+#if 0 - struct rlimit ol, nl; - GThread *thread; - GError *error; diff --git a/gnu/packages/patches/glib-tests-timer.patch b/gnu/packages/patches/glib-tests-timer.patch index 1ac364fcc1..e37425c0c8 100644 --- a/gnu/packages/patches/glib-tests-timer.patch +++ b/gnu/packages/patches/glib-tests-timer.patch @@ -2,9 +2,6 @@ fail depending on the elapsed microseconds. Improve rounding by adding a fractional bit. -* The /timer/stop test fails if compiler optimizations are enabled, which they - are by default. Disable that test. - --- glib-2.40.0/glib/tests/timer.c 2014-03-05 08:05:42.000000000 -0600 +++ glib-2.40.0/glib/tests/timer.c 2014-07-10 16:33:12.746862822 -0500 @@ -35,7 +35,7 @@ @@ -16,11 +13,3 @@ g_timer_destroy (timer); } -@@ -204,7 +204,6 @@ - g_test_init (&argc, &argv, NULL); - - g_test_add_func ("/timer/basic", test_timer_basic); -- g_test_add_func ("/timer/stop", test_timer_stop); - g_test_add_func ("/timer/continue", test_timer_continue); - g_test_add_func ("/timer/reset", test_timer_reset); - g_test_add_func ("/timeval/add", test_timeval_add); -- cgit 1.4.1 From 744befa51443907f0319290e32f5a4cdd82addc5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 3 Apr 2016 10:28:39 +0800 Subject: gnu: glib: Update to 2.48.0. * gnu/packages/glib.scm (glib): Update to 2.48.0. [propagated-inputs]: New field with pcre. --- gnu/packages/glib.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 25b6a81d70..813a74b4e0 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -35,6 +35,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -129,7 +130,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.46.1") + (version "2.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -137,12 +138,14 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) + "0d3w2hblrw7vvpx60l1kbvb830ygn3v8zhwdz65cc5593j9ycjvl")) (patches (search-patches "glib-tests-timer.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python "doc")) ; 20 MiB of GTK-Doc reference + (propagated-inputs + `(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc (inputs `(("coreutils" ,coreutils) ("libffi" ,libffi) -- cgit 1.4.1 From 1543fe4d1bff21da5978b1cbeea1cc0fe4e4a321 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 3 Apr 2016 19:13:06 +0800 Subject: gnu: harfbuzz: Update to 1.2.4. * gnu/packages/gtk.scm (harfbuzz): Update to 1.2.4. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f700f23c27..5e01d8a886 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -147,7 +147,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.0.6") + (version "1.2.4") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -155,7 +155,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn")))) + "14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo -- cgit 1.4.1 From ccbf8ccd325363efb267b1af83bcd2476c21ae42 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sun, 3 Apr 2016 19:14:27 +0800 Subject: gnu: shared-mime-info: Update to 1.6. * gnu/packages/gnome.scm (shared-mime-info): Update to 1.6. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0fd1d5bb29..6361eef2db 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -612,14 +612,14 @@ update-desktop-database: updates the database containing a cache of MIME types (define-public shared-mime-info (package (name "shared-mime-info") - (version "1.2") + (version "1.6") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/~hadess/" "shared-mime-info-" version ".tar.xz")) (sha256 (base32 - "0y5vi0vr6rbhvfzcfg57cfskn362bpvcpca9cy598nmr87i6lld5")))) + "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j")))) (build-system gnu-build-system) (arguments ;; The build system appears not to be parallel-safe. -- cgit 1.4.1 From 8e8454738ba6a353bf29463c52ad140f454de859 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 4 Apr 2016 13:12:50 +0800 Subject: gnu: gdk-pixbuf: Update to 2.34.0. * gnu/packages/gtk.scm (gdk-pixbuf): Update to 2.34.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 5e01d8a886..3684c12be1 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -387,7 +387,7 @@ highlighting and other features typical of a source code editor.") (define-public gdk-pixbuf (package (name "gdk-pixbuf") - (version "2.32.3") + (version "2.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -395,7 +395,7 @@ highlighting and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb")))) + "0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-x11") -- cgit 1.4.1 From bdc1cb0e86e59201148bc90fbada152db7fbb9a1 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 4 Apr 2016 13:13:22 +0800 Subject: gnu: librsvg: Update to 2.40.15. * gnu/packages/gnome.scm (librsvg): Update to 2.40.15. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6361eef2db..e081aea7a8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -867,7 +867,7 @@ dealing with different structured file formats.") (define-public librsvg (package (name "librsvg") - (version "2.40.13") + (version "2.40.15") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -875,7 +875,7 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "014q7gz6mgfa7pfn0lr13qqv568ad8j1sw9d4vksnpazq0zajvjd")))) + "1x05vd2llpmskq3prkp7kbpmshmpp9whj4kfl99ybipf4fhw9jnr")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit 1.4.1 From 4f6f76f3f9008782f1eb6e30b112377790cacc37 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 4 Apr 2016 13:57:41 +0800 Subject: gnu: gobject-introspection: Update to 1.48.0. * gnu/packages/glib.scm (gobject-introspection): Update to 1.48.0. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 813a74b4e0..347b2abad5 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -271,14 +271,14 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.46.0") + (version "1.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36")) + (base32 "0xsqwxhfqzr79av89mg766kxpb2i41bd0vwspk01xjdzrnn5l9zs")) (modules '((guix build utils))) (snippet '(substitute* "tools/g-ir-tool-template.in" -- cgit 1.4.1 From 0fc9213814d42707edf80aa42eda3d7105769bc5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 4 Apr 2016 13:58:25 +0800 Subject: gnu: pango: Update to 1.40.0. * gnu/packages/glib.scm (pango): Update to 1.40.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 3684c12be1..439749d9fa 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -185,7 +185,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.38.1") + (version "1.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -193,7 +193,7 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k")))) + "12qwa748wyady16xxdq5rqz9gki1kksj8m5bcv80gjqlydfrh5ys")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) -- cgit 1.4.1 From bc84c6f1d538eec666a1e08f384b464ef8d1e026 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 16:40:34 +0800 Subject: gnu: libsigc++: Update to 2.8.0. * gnu/packages/glib.scm (libsigc++): Update to 2.8.0. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 347b2abad5..dd71593582 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -447,7 +447,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.6.1") + (version "2.8.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -455,7 +455,7 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq")))) + "0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) -- cgit 1.4.1 From d3e80ec2c5274792fea33c0b06f6b24b75d1e97e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 16:43:01 +0800 Subject: gnu: glibmm: Update to 2.48.1. * gnu/packages/glib.scm (glibmm): Update to 2.48.1. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index dd71593582..8e9627c101 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -474,7 +474,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.46.3") + (version "2.48.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -482,7 +482,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1kw65mlabwdjw86jybxslncbnnx40hcx4z6xpq9i4ymjvsnm91n7")))) + "1pvw2mrm03p51p03179rb6fk9p42iykkwj1jcdv7jr265xymy8nw")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before -- cgit 1.4.1 From 7e53a19b5a210c3f04757984ddcd4891bba20d1c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 16:44:59 +0800 Subject: gnu: atk: Update to 2.20.0. * gnu/packages/gtk.scm (atk): Update to 2.20.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 439749d9fa..e72ba34a6b 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -63,7 +63,7 @@ (define-public atk (package (name "atk") - (version "2.18.0") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -71,7 +71,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f")))) + "1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit 1.4.1 From 5c9f085e9848fc379c9ad19c1205718846749202 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 16:55:33 +0800 Subject: gnu: gtksourceview: Update to 3.20.1. * gnu/packages/gtk.scm (gtksourceview): Update to 3.20.1. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index e72ba34a6b..42f919ca42 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -339,7 +339,7 @@ printing and other features typical of a source code editor.") (define-public gtksourceview (package (name "gtksourceview") - (version "3.18.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -347,7 +347,7 @@ printing and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "1cmplnqbyd1js5bkpi9cfc3gljilyxg5nngwh4i3mq9r02gmmxv0")))) + "0k4cmq94181l39di9z4agampg4za6bvimkvcjm3qlxmsxb09ab9j")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit 1.4.1 From ba60784f998d36bd91d94ac57584502dbca11d19 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 16:56:01 +0800 Subject: gnu: at-spi2-core: Update to 2.20.0. * gnu/packages/gtk.scm (at-spi2-core): Update to 2.20.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 42f919ca42..9d56b30fda 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -465,7 +465,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.18.1") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -473,7 +473,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap")))) + "16v09iwnd3895fshsvsci836dar21c8y9w8zn882jn4fq2vrzi6w")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit 1.4.1 From 11577957e0ef21694e256fc94ab720e3e58016e6 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 17:00:59 +0800 Subject: gnu: at-spi2-atk: Update to 2.20.0. * gnu/packages/gtk.scm (at-spi2-atk): Update to 2.20.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 9d56b30fda..028f4c9cce 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -510,7 +510,7 @@ is part of the GNOME accessibility project.") (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.18.1") + (version "2.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -518,7 +518,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4")))) + "1lis9zj4r3d5ff3chs0r93gjkbp0wgflfx35gbax47cgdqmi8jx2")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit 1.4.1 From dfa9afe076ac03e3ec9c4d85239a4dd19eebdbd9 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 17:01:38 +0800 Subject: gnu: gtk+: Update to 3.20.2. * gnu/packages/gtk.scm (gtk+): Update to 3.20.2. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 028f4c9cce..4965a856fd 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -606,7 +606,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.18.2") + (version "3.20.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -614,7 +614,7 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")) + "1xv97zrngf47hyrxz7rfrdl5xpv4y61rkmipyi300pm5iq3d3c8s")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) -- cgit 1.4.1 From 07a048f61b1356244ed81e9bddcebc80cb1d9764 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 5 Apr 2016 20:21:35 +0800 Subject: gnu: graphite2: Update to 1.3.8. * gnu/packages/fontutils.scm (graphite2): Update to 1.3.8. --- gnu/packages/fontutils.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index b075353d64..05adc71212 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -359,16 +359,15 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.6") + (version "1.3.8") (source (origin (method url-fetch) - (uri (string-append "https://github.com/silnrsi/graphite/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (string-append "https://github.com/silnrsi/graphite/releases/" + "download/" version "/" name "-" version ".tgz")) (sha256 (base32 - "1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s")))) + "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests -- cgit 1.4.1 From 343eb85899583dcb5a7a0e5530c2a71c96f586e5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 10:17:13 +0800 Subject: gnu: gdk-pixbuf: Fix tests. * gnu/packages/gtk.scm (gdk-pixbuf)[inputs]: Add shared-mime-info. --- gnu/packages/gtk.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 4965a856fd..2b3576d1fd 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -421,7 +421,8 @@ highlighting and other features typical of a source code editor.") (inputs `(("libjpeg" ,libjpeg) ("libtiff" ,libtiff) - ("libx11" ,libx11))) + ("libx11" ,libx11) + ("shared-mime-info" ,shared-mime-info))) ; for testing (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ; glib-mkenums, etc. -- cgit 1.4.1 From 8c5531a5b9fdb04f7f250f31acdf1546cf57e756 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 10:20:06 +0800 Subject: gnu: pangomm: Update to 2.40.0. * gnu/packages/gtk.scm (pangomm): Update to 2.40.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 2b3576d1fd..dbda1335e9 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -853,7 +853,7 @@ library.") (define-public pangomm (package (name "pangomm") - (version "2.38.1") + (version "2.40.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -861,7 +861,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg")))) + "03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit 1.4.1 From 400f3db26778231d2441fd162d85a31fea54e626 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 10:20:46 +0800 Subject: gnu: gtkmm: Update to 3.20.0. * gnu/packages/gtk.scm (gtkmm): Update to 3.20.0. --- gnu/packages/gtk.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index dbda1335e9..ccdda3e01d 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -902,7 +902,7 @@ toolkit.") (define-public gtkmm (package (name "gtkmm") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -910,7 +910,7 @@ toolkit.") name "-" version ".tar.xz")) (sha256 (base32 - "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) + "12h2kd22iayvjfhmgjccm33igrbvqdj7hym31fsa1y0dhwzmf8gh")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin"))) ;for 'glib-compile-resources' -- cgit 1.4.1 From 62759c544a964dd24c844ce1e3632393e4716c74 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 13:55:28 +0800 Subject: gnu: gnome-desktop: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-desktop): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e081aea7a8..4311e68ddc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -188,7 +188,7 @@ commonly used macros.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) @@ -197,7 +197,7 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc")))) + "13dhvax8fy9qkna4dphb7b5fxn3dsk818p3q8b92a7nrrwcgiiqq")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) -- cgit 1.4.1 From a466a7c788362ad32f26f795ca9417deace13c8e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 15:56:28 +0800 Subject: gnu: gcr: Update 3.20.0. * gnu/packages/gnome.scm (gcr): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4311e68ddc..9b3407aa31 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -265,7 +265,7 @@ and keep up to date translations of documentation.") (define-public gcr (package (name "gcr") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -273,7 +273,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl")))) + "0ydk9dzxx6snxza7j5ps8x932hbr3x1b8hhcaqjq4w4admi2qmwh")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does -- cgit 1.4.1 From b94a822eae710052a11523b56c125e424d31cf81 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 16:40:41 +0800 Subject: gnu: gnome-keyring: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-keyring): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9b3407aa31..35dff5b11f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -342,7 +342,7 @@ GNOME Desktop.") (define-public gnome-keyring (package (name "gnome-keyring") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -350,7 +350,7 @@ GNOME Desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "167dq1yvm080g5s38hqjl0xx5cgpkcl1xqy9p5sxmgc92zb0srrz")))) + "16gcwwcg91ipxjmiyi4c4njvnxixmv1i278p0bilc3lafk6ww5xw")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does -- cgit 1.4.1 From c1b9cd3ef895860da992a26042dd663ec4557a35 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 17:07:21 +0800 Subject: gnu: evince: Update to 3.20.0. * gnu/packages/gnome.scm (evince): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 35dff5b11f..4fb5d3a9a0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -410,7 +410,7 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -418,7 +418,7 @@ forgotten when the session ends.") name "-" version ".tar.xz")) (sha256 (base32 - "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v")))) + "1052lm4i5qq27sgk6ck5xc1cxh0qx4zzhifjhmzjlv38afj5i0yg")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") -- cgit 1.4.1 From bc41fd3499a06a81404b6d54cb14b69a77742b14 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 17:11:04 +0800 Subject: gnu: gsettings-desktop-schemas: Update to 3.20.0. * gnu/packages/gnome.scm (gsettings-desktop-schemas): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4fb5d3a9a0..abca549daf 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -474,7 +474,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -483,7 +483,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs")))) + "1hfrqqsmqscgbnaikmyq4yq8h72554wdg13algh5bf8a7i9ip92m")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) -- cgit 1.4.1 From 224276ab44cca8733a1c92e7b06c7cba783a589a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:29:03 +0800 Subject: gnu: gdk-pixbuf: Propagate shared-mime-info. * gnu/packages/gtk.scm (gdk-pixbuf): Move shared-mime-info to propagated-inputs. --- gnu/packages/gtk.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index ccdda3e01d..23e015eace 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -415,14 +415,16 @@ highlighting and other features typical of a source code editor.") ;; (gdk-pixbuf-error-quark, 0) (("pixbuf-jpeg\\$\\(EXEEXT\\) ") "")) #t))))) - (propagated-inputs ; required by gdk-pixbuf-2.0.pc - `(("glib" ,glib) - ("libpng" ,libpng))) + (propagated-inputs + `(;; Required by gdk-pixbuf-2.0.pc + ("glib" ,glib) + ("libpng" ,libpng) + ;; Used for testing and required at runtime. + ("shared-mime-info" ,shared-mime-info))) (inputs `(("libjpeg" ,libjpeg) ("libtiff" ,libtiff) - ("libx11" ,libx11) - ("shared-mime-info" ,shared-mime-info))) ; for testing + ("libx11" ,libx11))) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin") ; glib-mkenums, etc. -- cgit 1.4.1 From 20da53dd9820e7dce7ac00383e9bf8c711c84b9b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:30:38 +0800 Subject: gnu: adwaita-icon-theme: Update to 3.20. * gnu/packages/gnome.scm (adwaita-icon-theme): Update to 3.20. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index abca549daf..0adb9854d8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -599,7 +599,7 @@ update-desktop-database: updates the database containing a cache of MIME types (define-public adwaita-icon-theme (package (inherit gnome-icon-theme) (name "adwaita-icon-theme") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -607,7 +607,7 @@ update-desktop-database: updates the database containing a cache of MIME types name "-" version ".tar.xz")) (sha256 (base32 - "0n0fqlg55krw8pgn4z2vxnxh65lyvcydqkrr7klqxp8z00kfg72y")))))) + "0ddfwwqx8s63qbqimmbb015lqsab4s0rvy1j81jdsh7k95rqh2ks")))))) (define-public shared-mime-info (package -- cgit 1.4.1 From 5e09179ccd53b3c56d072bb2a1051fa5a604a838 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:32:05 +0800 Subject: gnu: libpeas: Update to 1.18.0. * gnu/packages/gnome.scm (libpeas): Update to 1.18.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0adb9854d8..a5c89dcf27 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -697,7 +697,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.16.0") + (version "1.18.0") (source (origin (method url-fetch) @@ -706,7 +706,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh")))) + "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) -- cgit 1.4.1 From 7ab947fa4ffa9650b2df8dca27b6a66c25d009a3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:33:02 +0800 Subject: gnu: glade: Update to 3.20.0. * gnu/packages/gnome.scm (glade): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a5c89dcf27..c5f4953dd4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -760,7 +760,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -768,7 +768,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") name "-" version ".tar.xz")) (sha256 (base32 - "0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc")))) + "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering -- cgit 1.4.1 From b291a0dea7b25abc0fc99465e8770a70e5ee240f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:33:48 +0800 Subject: gnu: libcroco: Update to 0.6.11. * gnu/packages/gnome.scm (libcroco): Update to 0.6.11. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c5f4953dd4..c9cf73c1f2 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -804,7 +804,7 @@ the GNOME desktop environment.") (define-public libcroco (package (name "libcroco") - (version "0.6.8") + (version "0.6.11") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -812,7 +812,7 @@ the GNOME desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa")))) + "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit 1.4.1 From 26fa2085c430893a6805e8cc5bdfc6ef71763e6b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 19:34:16 +0800 Subject: gnu: libgsf: Update to 1.14.36. * gnu/packages/gnome.scm (libgsf): Update to 1.14.36. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c9cf73c1f2..2646d57b12 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -834,7 +834,7 @@ XML/CSS rendering engine.") (define-public libgsf (package (name "libgsf") - (version "1.14.34") + (version "1.14.36") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -842,7 +842,7 @@ XML/CSS rendering engine.") name "-" version ".tar.xz")) (sha256 (base32 - "0a5m1i5gp4m2z0cn2x1rrdm8wgrr04bzv65l8pgp6jipw13s9zph")))) + "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) -- cgit 1.4.1 From 2f52438403aa711e20d53b72a4ff5ee459d42bb0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 20:54:54 +0800 Subject: gnu: glade: Use 'glib-or-gtk-build-system'. * gnu/packages/gnome.scm (gladle)[build-system]: Switch to GLIB-OR-GTK-BUILD-SYSTEM. --- gnu/packages/gnome.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2646d57b12..78398f617a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -769,7 +769,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (sha256 (base32 "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2")))) - (build-system gnu-build-system) + (build-system glib-or-gtk-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering #:phases -- cgit 1.4.1 From dbc3860cebfd52137809e543b08245e878fb636a Mon Sep 17 00:00:00 2001 From: Jookia <166291@gmail.com> Date: Wed, 6 Apr 2016 21:00:58 +0800 Subject: gnu: gtk+-2: Look in system data dirs for themes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/patches/gtk2-theme-paths.patch: New patch. * gnu/packages/gtk.scm (gtk+-2)[source]: Use it. * gnu-system.am (dist_patch_DATA): Add it. Signed-off-by: 宋文武 --- gnu-system.am | 1 + gnu/packages/gtk.scm | 3 ++- gnu/packages/patches/gtk2-theme-paths.patch | 41 +++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gtk2-theme-paths.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 0c24c05d15..02c7374569 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -513,6 +513,7 @@ dist_patch_DATA = \ gnu/packages/patches/guile-relocatable.patch \ gnu/packages/patches/guile-rsvg-pkgconfig.patch \ gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ + gnu/packages/patches/gtk2-theme-paths.patch \ gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index 23e015eace..f31a510504 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -557,7 +557,8 @@ is part of the GNOME accessibility project.") (sha256 (base32 "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d")) - (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch")))) + (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" + "gtk2-theme-paths.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs diff --git a/gnu/packages/patches/gtk2-theme-paths.patch b/gnu/packages/patches/gtk2-theme-paths.patch new file mode 100644 index 0000000000..6c1351e516 --- /dev/null +++ b/gnu/packages/patches/gtk2-theme-paths.patch @@ -0,0 +1,41 @@ +From: Jookia <166291@gmail.com> +Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles. +To: guix-devel@gnu.org +Date: Sun, 13 Mar 2016 15:17:37 +1100 +Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html + +diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c +--- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100 ++++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100 +@@ -808,6 +808,8 @@ + gchar *path = NULL; + const gchar *home_dir; + gchar *subpath; ++ const gchar * const *xdg_data_dirs; ++ gint i; + + if (type) + subpath = g_strconcat ("gtk-2.0-", type, +@@ -830,6 +832,22 @@ + } + + if (!path) ++ { ++ xdg_data_dirs = g_get_system_data_dirs (); ++ for (i = 0; xdg_data_dirs[i]; i++) ++ { ++ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL); ++ if (g_file_test (path, G_FILE_TEST_EXISTS)) ++ break; ++ else ++ { ++ g_free (path); ++ path = NULL; ++ } ++ } ++ } ++ ++ if (!path) + { + gchar *theme_dir = gtk_rc_get_theme_dir (); + path = g_build_filename (theme_dir, name, subpath, NULL); -- cgit 1.4.1 From 85a0942cff446a2bd6b8beba89c4a80d1b117004 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:09:56 +0800 Subject: gnu: libgnomeprint: Fix build. * gnu/packages/gnome.scm (libgnomeprint)[source]: Remove snippet. --- gnu/packages/gnome.scm | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 78398f617a..32f38c385a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1339,14 +1339,7 @@ widgets built in the loading process.") name "-" version ".tar.bz2")) (sha256 (base32 - "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")) - (modules '((guix build utils))) - (snippet - ;; Adapt to newer freetype. As the package is deprecated, there - ;; is no use in creating a patch and reporting it. - '(substitute* '("libgnomeprint/gnome-font-face.c" - "libgnomeprint/gnome-rfont.c") - (("freetype/") "freetype2/"))))) + "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")))) (build-system gnu-build-system) (inputs `(("popt" ,popt) -- cgit 1.4.1 From aacf6a7f279842d21a4833b2e5461ee5307a3023 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:12:18 +0800 Subject: gnu: libwnck: Update to 3.14.1. * gnu/packages/gnome.scm (libwnck): Update to 3.14.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 32f38c385a..c5105f44aa 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1436,14 +1436,14 @@ controls using the Bonobo component framework.") (define-public libwnck (package (name "libwnck") - (version "3.14.0") + (version "3.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "074jww04z8g9r1acndqap79wx4kbm3rpkf4lcg1v82b66iv0027m")))) + (base32 "1ymya8gkjygvg0i901wr3q6ihfqxx5yf4g4pb6fag2iw8af3qr5v")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 9d0c56e65803579705198977c540364ed1be6620 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:15:02 +0800 Subject: gnu: goffice: Update to 0.10.28. * gnu/packages/gnome.scm (goffice): Update to 0.10.28. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c5105f44aa..de437d2c9d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1482,14 +1482,14 @@ Hints specification (EWMH).") (define-public goffice (package (name "goffice") - (version "0.10.24") + (version "0.10.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "0nmghi26dpjcw7knkviq031crhm0zjy4k650pv1jj3hb1fmhx9yd")))) + (base32 "12rsgxrixkfpk420gv026i74pnlgqjzsvm6vffrmih54w46hd3q6")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;4.1 MiB of gtk-doc -- cgit 1.4.1 From b50e65593f959e2d42c49bbb72dcabddb2de8721 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:15:37 +0800 Subject: gnu: gnumeric: Update to 1.12.28. * gnu/packages/gnome.scm (gnumeric): Update to 1.12.28. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index de437d2c9d..85bea97825 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1547,7 +1547,7 @@ Hints specification (EWMH).") (define-public gnumeric (package (name "gnumeric") - (version "1.12.24") + (version "1.12.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1555,7 +1555,7 @@ Hints specification (EWMH).") name "-" version ".tar.xz")) (sha256 (base32 - "0lcm8k0jb8rd5y4ii803f21nv8rx6gc3mmdlrj5h0rkkn9qm57f5")))) + "1fsdp7r6fhc0m3fb4ly4xwh83v3hp2zrv9d0713g4lcy709svm02")))) (build-system gnu-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. -- cgit 1.4.1 From b04217cc9188ff1c4c1298933672be16cd8d927b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:16:14 +0800 Subject: gnu: gnome-themes-standard: Update to 3.20. * gnu/packages/gnome.scm (gnome-themes-standard): Update to 3.20. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 85bea97825..0d315c2041 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1605,7 +1605,7 @@ engineering.") (define-public gnome-themes-standard (package (name "gnome-themes-standard") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) @@ -1614,7 +1614,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6")))) + "1p1vvmzfky1ax3yv9ld10xgqwydhmglxpgq3skrfc4539nrq9phw")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) -- cgit 1.4.1 From c14a524ce550ab70af566264663d16e6689d4626 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:16:48 +0800 Subject: gnu: seahorse: Update to 3.20.0. * gnu/packages/gnome.scm (seahorse): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 0d315c2041..23feed112f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1647,7 +1647,7 @@ engineering.") (define-public seahorse (package (name "seahorse") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -1656,7 +1656,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "0rxnq47xcagmpqb63g49ay3lfiyjjnmmiay9yifx5jn406d8h32k")))) + "1py6fj19kb8aaxvg6yrpd0876azc2zjvis98aqz37a2lxmhp9c72")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) -- cgit 1.4.1 From 4ec331b2b4c9dfda3467b92093c37805d4072b9a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:37:24 +0800 Subject: gnu: gnumeric: Fix build. * gnu/packages/gnome.scm (gnumeric)[native-inputs]: Add bison. [inputs]: Replace python2-pygobject with python2-pygobject. --- gnu/packages/gnome.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 23feed112f..8e4597b2bd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1584,10 +1584,11 @@ Hints specification (EWMH).") ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("python" ,python-2) - ("python2-pygobject" ,python2-pygobject-2) + ("python2-pygobject" ,python2-pygobject) ("zlib" ,zlib))) (native-inputs - `(("intltool" ,intltool) + `(("bison" ,bison) + ("intltool" ,intltool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") -- cgit 1.4.1 From 6c2730172f161c46834db3c20d0b7b87e9221dcd Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:38:57 +0800 Subject: gnu: python-pygobject: Update to 3.20.0. * gnu/packages/glib.scm (python-pygobject): Update to 3.20.0. --- gnu/packages/glib.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 8e9627c101..5d27c781da 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -555,7 +555,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) @@ -564,7 +564,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw")))) + "0ikzh3l7g1gjh8jj8vg6mdvrb25svp63gxcam4m0i404yh0lgari")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) -- cgit 1.4.1 From 884bb4ef248174d3e0f7f26cf71c6ddac92b5327 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:39:31 +0800 Subject: gnu: vala: Update to 0.32.0. * gnu/packages/gnome.scm (vala): Update to 0.32.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8e4597b2bd..042d7a27da 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1684,7 +1684,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.30.0") + (version "0.32.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1692,7 +1692,7 @@ passwords in the GNOME keyring.") name "-" version ".tar.xz")) (sha256 (base32 - "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31")))) + "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7")))) (build-system gnu-build-system) (arguments '(#:phases -- cgit 1.4.1 From b384bfcfa43fc0b1677c03ca26fd73f54663ec6c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 21:43:16 +0800 Subject: gnu: vte: Update to 0.44.0. * gnu/packages/gnome.scm (vte): Update to 0.44.0. [arguments]: New field. --- gnu/packages/gnome.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 042d7a27da..4b96847af5 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1724,7 +1724,7 @@ libraries written in C.") (define-public vte (package (name "vte") - (version "0.42.3") + (version "0.44.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1732,8 +1732,16 @@ libraries written in C.") name "-" version ".tar.xz")) (sha256 (base32 - "1832mrw2hhgjipbsfsv2fmdnwnar4rkx589ciz008bg8x908mscn")))) + "1ahjxysiv38q91gfq2wddcbvndlggfr8ynls25m42pw83akv38wk")))) (build-system gnu-build-system) + (arguments + ;; XXX: fails to compile tests with the default flags. + ;; vteconv.cc:774:40: + ;; error: missing sentinel in function call [-Werror=format=] + ;; g_test_init (&argc, &argv, NULL); + ;; + ;; cc1plus: some warnings being treated as errors + '(#:configure-flags '("CXXFLAGS=-Wformat=0"))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) -- cgit 1.4.1 From eb771d5b9a1a6b79fa7057b06fd2daddf7f427d8 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 22:42:45 +0800 Subject: gnu: dconf: Update to 0.26.0. * gnu/packages/gnome.scm (dconf): Update to 0.26.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4b96847af5..3f986f1c74 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1808,7 +1808,7 @@ editors, IDEs, etc.") (define-public dconf (package (name "dconf") - (version "0.24.0") + (version "0.26.0") (source (origin (method url-fetch) (uri (string-append @@ -1817,7 +1817,7 @@ editors, IDEs, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "1hpy6336f0pbkyranywm4872i5in0xn7jf40a66xdmzls77f0ws3")))) + "1jaqsr1r0grpd25rbsc2v3vb0sc51lia9w31wlqswgqsncp2k0w6")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) -- cgit 1.4.1 From 272529077cc2ed95cf0a9c4325851f90d59cac13 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 22:43:19 +0800 Subject: gnu: json-glib: Update to 1.2.0. * gnu/packages/gnome.scm (json-glib): Update to 1.2.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3f986f1c74..78f7f548c0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1862,7 +1862,7 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.0.4") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1870,7 +1870,7 @@ configuration storage systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0")) + "1lx7p1c7cl21byvfgw92n8dhm09vi6qxrs0zkx9dg3y096zdzmlr")) (modules '((guix build utils))) (snippet ;; Don't duplicate test names. -- cgit 1.4.1 From 653b4758949bb620eb80d900e62236315e26d08a Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 22:45:29 +0800 Subject: gnu: glib-networking: Update to 2.48.0. * gnu/packages/gnome.scm (glib-networking): Update to 2.48.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 78f7f548c0..6b1aa9b43e 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -1969,7 +1969,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.46.1") + (version "2.48.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1977,7 +1977,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) + "094hwgnaqm0c7ggyqc9rk2603k5r9vqs3f1d9vwpmfapww9367vs")) (patches (search-patches "glib-networking-ssl-cert-file.patch")))) (build-system gnu-build-system) -- cgit 1.4.1 From 4e31b436a75bba3e88a990af477ee8d6e10ee983 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Wed, 6 Apr 2016 22:49:17 +0800 Subject: gnu: libsoup: Update to 2.54.0.1. * gnu/packages/gnome.scm (libsoup): Update to 2.54.0.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 6b1aa9b43e..a5b845becf 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2051,7 +2051,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.52.1") + (version "2.54.0.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2059,7 +2059,7 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f")))) + "1q1qds87qya5cbx4jfcmf1v8fvb86p0wsjnhj246w0xxcq0r5r5d")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit 1.4.1 From 00748a038ca4766e80087cb31589f2519cd1683f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 07:42:41 +0800 Subject: gnu: libsecret: Update to 0.18.5. * gnu/packages/gnome.scm (libsecret): Update to 0.18.5. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a5b845becf..39adabdff0 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2121,7 +2121,7 @@ and the GLib main loop, to integrate well with GNOME applications.") (define-public libsecret (package (name "libsecret") - (version "0.18.3") + (version "0.18.5") (source (origin (method url-fetch) (uri (string-append @@ -2130,7 +2130,7 @@ and the GLib main loop, to integrate well with GNOME applications.") name "-" version ".tar.xz")) (sha256 (base32 - "1jc4pw6pb5igwasj0ms1zx80w63c11myziz3ydj0cr5lb861vgzj")))) + "1cychxc3ff8fp857iikw0n2s13s2mhw2dn1mr632f7w3sn6vvrww")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments -- cgit 1.4.1 From 2c5a18f0bb45437d95de516a7c972619f67412d9 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 07:43:09 +0800 Subject: gnu: gnome-mines: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-mines): Update to 3.20.0. [arguments]: Remove 'wrap-pixbuf' phase. --- gnu/packages/gnome.scm | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 39adabdff0..7ca6799fd1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2169,7 +2169,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (define-public gnome-mines (package (name "gnome-mines") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2178,7 +2178,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") name "-" version ".tar.xz")) (sha256 (base32 - "0izkcf81rji4dj9k0k93ij4lp5iza2bh6jwlcdhbjfv2xdw0f7ky")))) + "19khp4ckqbdgk6828gprxy52fsg8klf957dnwsin75nskk8whxbp")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -2186,16 +2186,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (add-before 'configure 'patch-/bin/true (lambda _ (substitute* "configure" - (("/bin/true") (which "true"))))) - (add-after 'install 'wrap-pixbuf - ;; Use librsvg's loaders.cache to support SVG files. - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (prog (string-append out "/bin/gnome-mines")) - (rsvg (assoc-ref inputs "librsvg")) - (pixbuf (find-files rsvg "^loaders\\.cache$"))) - (wrap-program prog - `("GDK_PIXBUF_MODULE_FILE" = ,pixbuf)))))))) + (("/bin/true") (which "true")))))))) (native-inputs `(("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) -- cgit 1.4.1 From 0fb6c1ceeae89c1e8147dc8684d535a29800e6fb Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 07:54:21 +0800 Subject: gnu: gnome-terminal: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-terminal): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7ca6799fd1..8e1b4b275c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2241,7 +2241,7 @@ more fun.") (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2250,7 +2250,7 @@ more fun.") name "-" version ".tar.xz")) (sha256 (base32 - "1ylyv0mla2ypms7iyxndbdjvha0q9jzglb4mhfmqn9cm2gxc0day")))) + "0l21xcc2g56wkq83wq5wnrah2gwckqxnfgpqavhkrsd47jyzdrrg")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From 365d5cd0f6d7a7d15397be94ec8cf919bfd9a60f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 08:57:47 +0800 Subject: gnu: geocode-glib: Update to 3.20.0. * gnu/packages/gnome.scm (geocode-glib): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8e1b4b275c..256d5cd6ce 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2400,7 +2400,7 @@ permission from user.") (define-public geocode-glib (package (name "geocode-glib") - (version "3.18.0") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/geocode-glib/" @@ -2408,7 +2408,7 @@ permission from user.") name "-" version ".tar.xz")) (sha256 (base32 - "0pa9cgndycynipc6z8wzbvn2fi89ndf2gpqzm9m6krp3d7az1dwg")))) + "1fmn3gmifq8jbgnpv8jj33n4glpb5djjrfk0l9fak0cliqin88jz")))) (build-system gnu-build-system) (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't -- cgit 1.4.1 From 2e5369e2372d6f1b64d930c3a24abf4038dff103 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 08:58:23 +0800 Subject: gnu: libgweather: Update to 3.20.0. * gnu/packages/gnome.scm (libgweather): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 256d5cd6ce..24baaa3afd 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2491,7 +2491,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2499,7 +2499,7 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll")))) + "1mmqg7wf0bhk450akyj0x71x75kh1v7j68isyivr75ydky79nqjj")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit 1.4.1 From f50f23ca1c5fe514c038ab0c44e10851bf246555 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:01:32 +0800 Subject: gnu: gnome-settings-daemon: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-settings-daemon): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 24baaa3afd..cc82769741 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2541,7 +2541,7 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -2550,7 +2550,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "0vzwf875csyqx04fnra6zicmzcjc3s13bxxpcizlys12iwjwfw9h")))) + "0v1c2vnpqw5pvx62jxvjfa2g5k29yx04vz35awqi943gasrl0bmv")))) (build-system glib-or-gtk-build-system) (arguments `(;; Network manager not yet packaged. -- cgit 1.4.1 From e1ab1edc9d668cfbd4107275a012475617d493f0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:02:11 +0800 Subject: gnu: totem-pl-parser: Update to 3.10.6. * gnu/packages/gnome.scm (totem-pl-parser): Update to 3.10.6. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cc82769741..be34676ae9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2597,14 +2597,14 @@ settings, themes, mouse settings, and startup of other daemons.") (define-public totem-pl-parser (package (name "totem-pl-parser") - (version "3.10.5") + (version "3.10.6") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/totem-pl-parser/3.10/" "totem-pl-parser-" version ".tar.xz")) (sha256 (base32 - "0dw1kiwmjwdjrighri0j9nagsnj44dllm0mamnfh4y5nc47mhim7")))) + "0mv7aw9mw77w04zg95zjf0zmk6ckshpysbb9nap15h5is6zdk9cq")))) (build-system gnu-build-system) (arguments ;; FIXME: Tests require gvfs. -- cgit 1.4.1 From f97382a7d6f3e10f7827a4c4adf3a4b2810baac3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:02:48 +0800 Subject: gnu: aisleriot: Update to 3.20.1. * gnu/packages/gnome.scm (aisleriot): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index be34676ae9..8882174d65 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2632,7 +2632,7 @@ playlists in a variety of formats.") (define-public aisleriot (package (name "aisleriot") - (version "3.18.2") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2640,7 +2640,7 @@ playlists in a variety of formats.") name "-" version ".tar.xz")) (sha256 (base32 - "1qrgcj30hl0fgssspkwrad10lqy1bbsp7lfwxmxlwzp33jhqpb0b")))) + "1nipky336jj81mhm8wwxp96zilgcrarihf95dnyj3r1pw8kpg7gy")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From da91424853a4aecc44e2b3885e5de0cfc8441c22 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:03:31 +0800 Subject: gnu: devhelp: Update to 3.20.0. * gnu/packages/gnome.scm (devhelp): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8882174d65..f1beaeafec 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2668,7 +2668,7 @@ which are easy to play with the aid of a mouse.") (define-public devhelp (package (name "devhelp") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2676,7 +2676,7 @@ which are easy to play with the aid of a mouse.") name "-" version ".tar.xz")) (sha256 (base32 - "1vqsqpc51cir5qf801ibh6ljlpfw0qd513l9hjcnzp4ls8m1cfih")))) + "078zr92xs5ifp862v1vdmw1j9m6gr9zk5hjbk5065vxjwb17acx2")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) -- cgit 1.4.1 From 71a56149130e7294765e4f28f4bac7998fee6ea0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:18:51 +0800 Subject: gnu: clutter: Update to 1.26.0. * gnu/packages/gnome.scm (clutter): Update to 1.26.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f1beaeafec..8780a81d7b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2762,7 +2762,7 @@ without stepping on each others toes.") (define-public clutter (package (name "clutter") - (version "1.24.2") + (version "1.26.0") (source (origin (method url-fetch) @@ -2771,7 +2771,7 @@ without stepping on each others toes.") name "-" version ".tar.xz")) (sha256 (base32 - "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn")))) + "01nfjd4k7j2n3agpx2d9ncff86nfsqv4n23465rb9zmk4iw4wlb7")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages -- cgit 1.4.1 From 5befffd596dda48c7140a46b224171b07ee66457 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:29:50 +0800 Subject: gnu: clutter-gtk: Update to 1.8.0. * gnu/packages/gnome.scm (clutter-gtk): Update to 1.8.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8780a81d7b..9bc7a3824d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2815,7 +2815,7 @@ presentations, kiosk style applications and so on.") (define-public clutter-gtk (package (name "clutter-gtk") - (version "1.6.6") + (version "1.8.0") (source (origin (method url-fetch) @@ -2824,7 +2824,7 @@ presentations, kiosk style applications and so on.") name "-" version ".tar.xz")) (sha256 (base32 - "0a2a8ci6in82l43zak3zj3cyms23i5rq6lzk1bz013gm023ach4l")))) + "07dzvx0b3fsswxnpxgk0adjgccnrvbxsd971naqwndnfivbgjbkl")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 8a5141ecff6702b4192dd217940454b5f3edef98 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:30:25 +0800 Subject: gnu: clutter-gst: Update to 3.0.18. * gnu/packages/gnome.scm (clutter-gst): Update to 3.0.18. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9bc7a3824d..06c74c7588 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2844,7 +2844,7 @@ presentations, kiosk style applications and so on.") (define-public clutter-gst (package (name "clutter-gst") - (version "3.0.14") + (version "3.0.18") (source (origin (method url-fetch) @@ -2853,7 +2853,7 @@ presentations, kiosk style applications and so on.") name "-" version ".tar.xz")) (sha256 (base32 - "1qidm0q28q6w8gjd0gpqnk8fzqxv39dcp0vlzzawlncp8zfagj7p")))) + "14w0pi9myvcn1yxzmk9sk8dghj17m5ji3aqdpfjikk90c060vv0a")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums -- cgit 1.4.1 From 2eaa2a0c0ed48ab31bec623b8134544fcec5cbbe Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:30:57 +0800 Subject: gnu: libchamplain: Update to 0.12.13. * gnu/packages/gnome.scm (libchamplain): Update to 0.12.13. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 06c74c7588..b1f84f3ea4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2875,7 +2875,7 @@ GL based interactive canvas library.") (define-public libchamplain (package (name "libchamplain") - (version "0.12.12") + (version "0.12.13") (source (origin (method url-fetch) (uri (string-append @@ -2883,7 +2883,7 @@ GL based interactive canvas library.") version ".tar.xz")) (sha256 (base32 - "19jlhbgfn9c9g40b3fa2x373s6rfcwx5i9lbpl3vl7d901r7kpp7")))) + "1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs -- cgit 1.4.1 From 57ed8795f3a3479938cf0db3228dcdbae29be4c7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:31:32 +0800 Subject: gnu: gnome-klotski: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-klotski): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b1f84f3ea4..86ef053d1f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2939,7 +2939,7 @@ queries upon that data.") (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2947,7 +2947,7 @@ queries upon that data.") name "-" version ".tar.xz")) (sha256 (base32 - "14l1fji0860yam41x2cy72nd9bljph385ynfm6k1lsv4qhv72az2")))) + "00hs3ci8swmq12rmgidy7rf3ql9isbklhn114v8rzdfs46y5dzkp")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) -- cgit 1.4.1 From 465edc2e18a84cf7ef9ca3b8683aa3bc4c99de55 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:31:59 +0800 Subject: gnu: grilo: Update to 0.2.15. * gnu/packages/gnome.scm (grilo): Update to 0.2.15. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 86ef053d1f..7a250172a3 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2970,7 +2970,7 @@ as possible!") (define-public grilo (package (name "grilo") - (version "0.2.14") + (version "0.2.15") (source (origin (method url-fetch) @@ -2979,7 +2979,7 @@ as possible!") name "-" version ".tar.xz")) (sha256 (base32 - "1k8wj8f7xfaw5hxypnmwd34li3fq8h76dacach547rvsfjhjxj3r")))) + "05b8sqfmywg45b9frya6xmw5l3c8vf5a1nhy51nyfs0a4n1japbg")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal -- cgit 1.4.1 From 6dec728d4aee3fba0e9739a1c03e09c533d9b527 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:32:28 +0800 Subject: gnu: grilo-plugins: Update to 0.2.17. * gnu/packages/gnome.scm (grilo-plugins): Update to 0.2.17. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7a250172a3..679041c2fc 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3021,7 +3021,7 @@ for application developers.") (define-public grilo-plugins (package (name "grilo-plugins") - (version "0.2.16") + (version "0.2.17") (source (origin (method url-fetch) @@ -3030,7 +3030,7 @@ for application developers.") name "-" version ".tar.xz")) (sha256 (base32 - "00sjmkzxc8w4qn4lp5yj65c4y83mwhp0zlvk11ghvpxnklgmgd40")))) + "109pf4sz320jiqs1nzszpj2flkwrgwfsm64kza24mxnxih4njxik")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal -- cgit 1.4.1 From bbdae66bf83c62d7c392d668fe8ce284f2266ab4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:33:03 +0800 Subject: gnu: totem: Update to 3.20.0. * gnu/packages/gnome.scm (totem): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 679041c2fc..3c4cc47c63 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3073,7 +3073,7 @@ for application developers.") (define-public totem (package (name "totem") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) @@ -3082,7 +3082,7 @@ for application developers.") name "-" version ".tar.xz")) (sha256 (base32 - "18h784c77m4h359j3xnlwqlfvnhbw7m052ahzm26r106jsp6x0fp")))) + "1pq3fg4778qrylkg6lc4jcb3gvm46n5y7mfn26iihi23aj844yq7")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) -- cgit 1.4.1 From 01f5801ea7e9973a29224e942d8c2db6cffbb018 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:33:22 +0800 Subject: gnu: eog: Update to 3.20.0. * gnu/packages/gnome.scm (eog): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3c4cc47c63..4f03442389 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3239,7 +3239,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") (define-public eog (package (name "eog") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3247,7 +3247,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") name "-" version ".tar.xz")) (sha256 (base32 - "19wkawrcwjjcvlmizkj57qycnbgizhr8ck3j5qg70605d1xb8yvv")))) + "0avy7sss6rf659rxipvp3gbqw083liq627lxjpfp1ij34hbmqwfv")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases -- cgit 1.4.1 From 3aedee7424ecbbb29ffba937fb0343da655c541e Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:38:16 +0800 Subject: gnu: gvfs: Update to 1.28.0. * gnu/packages/gnome.scm (gvfs): Update to 1.28.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4f03442389..fd1da48d5c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3317,7 +3317,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (define-public gvfs (package (name "gvfs") - (version "1.26.2") + (version "1.28.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3325,7 +3325,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") name "-" version ".tar.xz")) (sha256 (base32 - "064dsjrdjcbi38zl38jhh4r9jcpiygg7x4c8s6s2rb757l7nwnv9")))) + "017pynx7rfrhgvg904kwxdw9dc26zb0v7ymkspm059qcvw5gqwng")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' -- cgit 1.4.1 From a49433bcafbc620d9929c9075a112510d2102087 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:38:51 +0800 Subject: gnu: epiphany: Update to 3.20.0. * gnu/packages/gnome.scm (epiphany): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index fd1da48d5c..980c743b3a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3469,7 +3469,7 @@ work and the interface is well tested.") (define-public epiphany (package (name "epiphany") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3477,7 +3477,7 @@ work and the interface is well tested.") name "-" version ".tar.xz")) (sha256 (base32 - "1hm6bpdcc6nf3zamzkvjhpvxnpaxzbnxnacfgl5v8swn643ifdl4")))) + "0x09dfc0zdxw93g1dcmxqpvy9vnv94bd27sfq23ix31z6i9fcs63")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: -- cgit 1.4.1 From e4793409996e4b48c09c9ac2eeede777ae670503 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:39:20 +0800 Subject: gnu: yelp-xsl: Update to 3.20.0. * gnu/packages/gnome.scm (yelp-xsl): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 980c743b3a..2d1481b765 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3575,7 +3575,7 @@ of running programs and invoke methods on those interfaces.") (define-public yelp-xsl (package (name "yelp-xsl") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3583,7 +3583,7 @@ of running programs and invoke methods on those interfaces.") name "-" version ".tar.xz")) (sha256 (base32 - "0qmsq7qkc06gmnkvbs84qj3jjzlihriy3z45nfbpgg51b6z0z1q0")))) + "0j288fw7bqbswl2vk73ihs0ngky0b3p8k1yy5lrxfh1whn3phclz")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) -- cgit 1.4.1 From e07573f83012627143f5202762b7946e754f13a2 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:40:13 +0800 Subject: gnu: yelp: Update to 3.20.0. * gnu/packages/gnome.scm (yelp): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2d1481b765..245ecba01f 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3599,7 +3599,7 @@ to format Docbook and Mallard documents.") (define-public yelp (package (name "yelp") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3607,7 +3607,7 @@ to format Docbook and Mallard documents.") name "-" version ".tar.xz")) (sha256 (base32 - "10384lr712xdr8zbi07vqh0cf4nd7ybg1vs05r5cy3kwf6s4wfms")))) + "0g404njlgr38nif9hb3krybavk56wplkafxvfibcg68iqp9465dz")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. -- cgit 1.4.1 From 350c301ae5dd83459e896c37493905c983212ac1 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:40:37 +0800 Subject: gnu: file-roller: Update to 3.20.0. * gnu/packages/gnome.scm (file-roller): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 245ecba01f..c152ccd39d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3785,7 +3785,7 @@ share them with others via social networking and more.") (define-public file-roller (package (name "file-roller") - (version "3.16.4") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3793,7 +3793,7 @@ share them with others via social networking and more.") name "-" version ".tar.xz")) (sha256 (base32 - "11a1g8f2700n2mz998wf40dz1rxjgap60mfns9iv0zlw5h5rhmal")))) + "1a5598zyzdhdyk7sq59h8hqrjlacxw6wfdmgi0cs5kvbzjr9jnhq")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) -- cgit 1.4.1 From 069c55fbd73d66604f7958dfaa8b28b5cfd7c6a4 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:41:21 +0800 Subject: gnu: gnome-session: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-session): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c152ccd39d..7fe924a7e8 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3818,7 +3818,7 @@ such as gzip tarballs.") (define-public gnome-session (package (name "gnome-session") - (version "3.18.1.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3826,7 +3826,7 @@ such as gzip tarballs.") name "-" version ".tar.xz")) (sha256 (base32 - "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) + "0d0v60lmvr8wbrswfpc4f4jg2dhxj6nkgv7wnwdf2zifk8vp5zv6")))) (arguments '(#:phases (modify-phases %standard-phases -- cgit 1.4.1 From ea7dc14c5d79ebc1f8ef84f8215927a74fec2e61 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:42:09 +0800 Subject: gnu: gedit: Update to 3.20.1. * gnu/packages/gnome.scm (gedit): Update to 3.20.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 7fe924a7e8..aa3fdbe5ee 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3942,7 +3942,7 @@ javascript engine and the GObject introspection framework.") (define-public gedit (package (name "gedit") - (version "3.18.3") + (version "3.20.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3950,7 +3950,7 @@ javascript engine and the GObject introspection framework.") name "-" version ".tar.xz")) (sha256 (base32 - "1rrjdkvwwjyj05jc9icifjm9v8sgs0wqgy555m57a3rvg46sqqk7")))) + "1i0x1jd9x1vpv8lwdlzwf0ml8jxh3b3l6nlg6pbnfjw47w3y6iws")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases -- cgit 1.4.1 From 9e8660f5148d14f39019260b4950c0a2d86c74f3 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:42:38 +0800 Subject: gnu: zenity: Update to 3.20.0. * gnu/packages/gnome.scm (zenity): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index aa3fdbe5ee..cb4877befa 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3999,7 +3999,7 @@ powerful general purpose text editor.") (define-public zenity (package (name "zenity") - (version "3.18.1.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4007,7 +4007,7 @@ powerful general purpose text editor.") name "-" version ".tar.xz")) (sha256 (base32 - "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6")))) + "0j2sy6imwp41l75hy3fwr68n35drvanbwgmr42kc04zqjy9pbs02")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gnu-gettext) -- cgit 1.4.1 From 9588a0374472234f8ff7388975b0307e455e970f Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:43:05 +0800 Subject: gnu: mutter: Update to 3.20.0. * gnu/packages/gnome.scm (mutter): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index cb4877befa..c9db1a6547 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4026,7 +4026,7 @@ to display dialog boxes from the commandline and shell scripts.") (define-public mutter (package (name "mutter") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4034,7 +4034,7 @@ to display dialog boxes from the commandline and shell scripts.") name "-" version ".tar.xz")) (sha256 (base32 - "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg")))) + "1x8nhnili1bq3pnrvr3jsgchcz36jzi9infrbr3gplwxnsbx4i2n")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From 7d393ab0a5455e35a9dd64e82c4f07d87920d6cb Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:43:29 +0800 Subject: gnu: gnome-online-accounts: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-online-accounts): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c9db1a6547..848e266d2c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4076,7 +4076,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4084,7 +4084,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc")))) + "0q546q65ba537dbxqnvs27x6pvhvi394v43kihgw4pa59j8k70n9")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. -- cgit 1.4.1 From ad1a5e52d10e2cb7aaab4635ee9582f3ef13bbdb Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:43:53 +0800 Subject: gnu: evolution-data-server: Update to 3.20.0. * gnu/packages/gnome.scm (evolution-data-server): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 848e266d2c..1f7d37016c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4114,7 +4114,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4122,7 +4122,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") name "-" version ".tar.xz")) (sha256 (base32 - "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr")))) + "0jsgzahaha6bxrm15da7c32m8ksnmx9rfm7xdx99lbxhsm7yiwh5")))) (build-system gnu-build-system) (arguments '(;; XXX: fails with: -- cgit 1.4.1 From a3ae60e8bfe2f7bec0aa5257cc8840a9ab192776 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:44:21 +0800 Subject: gnu: caribou: Update to 0.4.20. * gnu/packages/gnome.scm (caribou): Update to 0.4.20. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 1f7d37016c..efdc0a5c84 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4175,7 +4175,7 @@ Evolution (hence the name), but is now used by other packages as well.") (define-public caribou (package (name "caribou") - (version "0.4.19") + (version "0.4.20") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4183,7 +4183,7 @@ Evolution (hence the name), but is now used by other packages as well.") name "-" version ".tar.xz")) (sha256 (base32 - "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg")))) + "1nahpfs5ap9f9wsvn93kg8isqffk60v785f1q6k64awcd7an8ris")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit 1.4.1 From 09c4438aab394f4b14831071a129592d54744a5b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:44:50 +0800 Subject: gnu: gdm: Update to 3.20.0. * gnu/packages/gnome.scm (gdm): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index efdc0a5c84..5fa2e9be32 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4394,7 +4394,7 @@ libxml2.") (define-public gdm (package (name "gdm") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4402,7 +4402,7 @@ libxml2.") name "-" version ".tar.xz")) (sha256 (base32 - "08pqhslwd487nh9w0jp4d0s4s2imm4ds0jjsbl6lzmqifqj3b4jl")))) + "1hnkv4j4m6z9l2y1rzxn674ir34k57apz1ybr15m11ksn05vlky6")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From 98d2bc851e770ac55bafd365ff9e04213bad9ac7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 09:45:16 +0800 Subject: gnu: libgtop: Update to 0.34.0. * gnu/packages/gnome.scm (libgtop): Update to 0.34.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 5fa2e9be32..4aab43c6a6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4454,7 +4454,7 @@ providing graphical log-ins and managing local and remote displays.") (define-public libgtop (package (name "libgtop") - (version "2.32.0") + (version "2.34.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4462,7 +4462,7 @@ providing graphical log-ins and managing local and remote displays.") name "-" version ".tar.xz")) (sha256 (base32 - "13hpml2vfm23816qggr5fvxj75ndb1dq4rgmi7ik6azj69ij8hw4")))) + "0apfnh9k6vmbdm8ms5wxyhagrrl8r88fv48k7q5qq70df2gf72ld")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) -- cgit 1.4.1 From 65815d6c9133c0b6e2a90c3e95358095eb998300 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 10:38:18 +0800 Subject: gnu: gnome-bluetooth: Update to 3.18.3. * gnu/packages/gnome.scm (gnome-bluetooth): Update to 3.18.3. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4aab43c6a6..3bbd70ab59 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4481,7 +4481,7 @@ usage and information about running processes.") (define-public gnome-bluetooth (package (name "gnome-bluetooth") - (version "3.18.1") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4489,7 +4489,7 @@ usage and information about running processes.") name "-" version ".tar.xz")) (sha256 (base32 - "0jaa9nbygdvcqp9k4p4iy2g8x3684s4x9k5nbcmmm11jdn4mn7f5")))) + "1qwc9q7x22sc71zhqv4db78rqzxl6fqfw6d978ydqap54c2bg0g4")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. -- cgit 1.4.1 From 0dc31a81f3e56da84774b812928224583dc62a32 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 10:43:17 +0800 Subject: gnu: gnome-control-center: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-control-center): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3bbd70ab59..ae9d54f88b 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4514,7 +4514,7 @@ devices using the GNOME desktop.") (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4522,7 +4522,7 @@ devices using the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "1bgqg1sl3cp2azrwrjgwx3jzk9n3w76xpcyvk257qavx4ibn3zin")))) + "10yncjq5hmaqbr8kjf8s729kn11as705vfx32nxahi7229v31rxp")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit 1.4.1 From 133e43db809186348f44ba3e3ba990f3d408ccc0 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 10:44:32 +0800 Subject: gnu: gnome-shell: Update to 3.20.0. * gnu/packages/gnome.scm (gnome-shell): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index ae9d54f88b..e5359fe9de 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4584,7 +4584,7 @@ properties, screen resolution, and other GNOME parameters.") (define-public gnome-shell (package (name "gnome-shell") - (version "3.18.3") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4592,7 +4592,7 @@ properties, screen resolution, and other GNOME parameters.") name "-" version ".tar.xz")) (sha256 (base32 - "16sicxdp08yfaj4hiyzvbspb5jk3fpmi291272zhx5vgc3wbl5w5")))) + "125qjrbw40r8rpri9y0yrl5yqs2q4x0l5inzi3vwl0rxvmhz8sgf")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases -- cgit 1.4.1 From 32758e9d755038c87770871dce50f9c0063daa21 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 10:57:53 +0800 Subject: gnu: nautilus: Update to 3.20.0. * gnu/packages/gnome.scm (nautilus): Update to 3.20.0. [arguments]: Pass '--disable-selinux' to configure. --- gnu/packages/gnome.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index e5359fe9de..23ba330184 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4704,7 +4704,7 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") (define-public nautilus (package (name "nautilus") - (version "3.18.2") ; XXX: later version require gtk+-3.0 >= 3.18.5 + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4712,10 +4712,11 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") name "-" version ".tar.xz")) (sha256 (base32 - "0jj23n8vmmyc4gp5xhiz7slsxwksydp26blxi5m154yaw9lgdp38")))) + "14s234b4l7hsxng1n3kkj4c8sjsq2vl2l2fw0caqfxva9md9k9vw")))) (build-system glib-or-gtk-build-system) (arguments - '(#:configure-flags '("--disable-tracker") ; XXX: not packaged + '(#:configure-flags + '("--disable-tracker" "--disable-selinux") ; XXX: not packaged ;; XXX: FAIL: check-nautilus ;; Settings schema 'org.gnome.nautilus.preferences' is not installed #:tests? #f)) -- cgit 1.4.1 From 002835010c2544f613b7103218b241a5afe38c6c Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 11:01:57 +0800 Subject: gnu: baobab: Update to 3.20.0. * gnu/packages/gnome.scm (baobab): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 23ba330184..2674f7b169 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4749,7 +4749,7 @@ files.") (define-public baobab (package (name "baobab") - (version "3.18.1") + (version "3.20.0") (source (origin (method url-fetch) (uri (string-append @@ -4758,7 +4758,7 @@ files.") name "-" version ".tar.xz")) (sha256 (base32 - "1da4bdkw5bnxansl1xr4lb03d6f4h0a0qaba8i3p3rwhcd191b62")))) + "01vxc9z87i2dsvydm6p1sh4m7bpbggy70q9bx6pxz707hyr6bpaw")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) -- cgit 1.4.1 From 7929f74a990dffd5c77fa6e72dcebb786e543a9b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 11:02:33 +0800 Subject: gnu: gnome-backgrounds: Update to 3.20. * gnu/packages/gnome.scm (gnome-backgrounds): Update to 3.20. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 2674f7b169..c2a06cd309 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4781,7 +4781,7 @@ is complete it provides a graphical representation of each selected folder.") (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "3.18.0") + (version "3.20") (source (origin (method url-fetch) @@ -4790,7 +4790,7 @@ is complete it provides a graphical representation of each selected folder.") name "-" version ".tar.xz")) (sha256 (base32 - "1fd7y8dh3iy88ayb8irgsihvssli6bzjzb5a6vfhi8qjbw70ymma")))) + "09viag7q53lfwrp074a1w7j0r8izlwpi10xbwjgbf5jwbqb6wv6n")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) -- cgit 1.4.1 From 95742f717b3fc94e63bf483a05a69da8a1cf4ff9 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 7 Apr 2016 11:03:47 +0800 Subject: gnu: dconf-editor: Update to 3.20.0. * gnu/packages/gnome.scm (dconf-editor): Update to 3.20.0. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index c2a06cd309..4272493872 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -4840,7 +4840,7 @@ beautifying border effects.") (define-public dconf-editor (package (name "dconf-editor") - (version "3.18.2") + (version "3.20.0") (source (origin (method url-fetch) @@ -4849,7 +4849,7 @@ beautifying border effects.") name "-" version ".tar.xz")) (sha256 (base32 - "0xdwi7g1xdmgrc9m8ii62fp2zj114gsfpmgazlnhrcmmfi97z5d7")))) + "0q57wmlab01rmwbwlih5mh9fa1nwc2abfz0vl374lkljw9acim13")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. -- cgit 1.4.1 From 19c444f4031fde122c0f816dea2e5af6831ff389 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Fri, 15 Apr 2016 16:33:55 +0300 Subject: gnu: bootstrap: Add the location of ld.so on arm64. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add the dynamic linker for aarch64-linux. --- gnu/packages/bootstrap.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index f5bf069c20..1ada01c904 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -166,6 +166,7 @@ successful, or false to signal an error." ((string=? system "mips64el-linux") "/lib/ld.so.1") ((string=? system "i586-gnu") "/lib/ld.so.1") ((string=? system "i686-gnu") "/lib/ld.so.1") + ((string=? system "aarch64-linux") "/lib/ld-linux-aarch64.so.1") ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. -- cgit 1.4.1 From 503275e94a98af1de83f27780e5bec97b2c472c5 Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Fri, 15 Apr 2016 16:51:38 +0300 Subject: gnu: linux: Add case for arm64. * gnu/packages/linux.scm (system->linux-architecture): Add "aarch64". --- gnu/packages/linux.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e1a12045df..e4426e9e2a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -81,6 +81,7 @@ (cond ((string=? arch "i686") "i386") ((string-prefix? "mips" arch) "mips") ((string-prefix? "arm" arch) "arm") + ((string-prefix? "aarch64" arch) "arm64") (else arch)))) (define (linux-libre-urls version) -- cgit 1.4.1 From f6c8cb996b2e9095de4dc6258302e1eaac98d8bd Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sat, 16 Apr 2016 03:57:01 +0200 Subject: gnu: Add marst. * gnu/packages/marst.scm: New file. * gnu-system.am: Add it. --- gnu-system.am | 1 + gnu/packages/marst.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 gnu/packages/marst.scm (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 0165519af5..40c566c099 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -220,6 +220,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/mail.scm \ gnu/packages/make-bootstrap.scm \ gnu/packages/markdown.scm \ + gnu/packages/marst.scm \ gnu/packages/mate.scm \ gnu/packages/maths.scm \ gnu/packages/mc.scm \ diff --git a/gnu/packages/marst.scm b/gnu/packages/marst.scm new file mode 100644 index 0000000000..7d4a4f364d --- /dev/null +++ b/gnu/packages/marst.scm @@ -0,0 +1,43 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright 2016 John Darrington +;;; +;;; 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 . + +(define-module (gnu packages marst) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (gnu packages compression) + #:use-module (guix build-system gnu)) + +(define-public marst + (package + (name "marst") + (version "2.7") + (source + (origin + (method url-fetch) + (uri (string-append + "mirror://gnu/" name "/" name "-" version + ".tar.gz")) + (sha256 + (base32 "0l6swjy8fjrqw89ghc1vvakg21jmpfkpsw92yssrzkg3rg8vkrry")))) + (build-system gnu-build-system) + (home-page "http://www.gnu.org/software/marst") + (synopsis "Algol to C translator") + (description "MARST is an Algol-to-C translator. It automatically translates programs +written on the algorithmic language Algol 60 to the C programming language.") + (license gpl3+))) -- cgit 1.4.1 From 5953d2b7c0f1d502cdc3205fc296299a985ce781 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Apr 2016 21:57:11 +0300 Subject: gnu: kbd: Use 'modify-phases'. * gnu/packages/linux.scm (kbd)[arguments]: Use 'modify-phases'. --- gnu/packages/linux.scm | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e4426e9e2a..1b84242968 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1485,27 +1485,26 @@ system.") "tty")))))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-before - 'build 'pre-build - (lambda* (#:key inputs #:allow-other-keys) - (let ((gzip (assoc-ref %build-inputs "gzip")) - (bzip2 (assoc-ref %build-inputs "bzip2"))) - (substitute* "src/libkeymap/findfile.c" - (("gzip") - (string-append gzip "/bin/gzip")) - (("bzip2") - (string-append bzip2 "/bin/bzip2"))))) - (alist-cons-after - 'install 'post-install - (lambda* (#:key outputs #:allow-other-keys) - ;; Make sure these programs find their comrades. - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (for-each (lambda (prog) - (wrap-program (string-append bin "/" prog) - `("PATH" ":" prefix (,bin)))) - '("unicode_start" "unicode_stop")))) - %standard-phases)))) + '(#:phases + (modify-phases %standard-phases + (add-before 'build 'pre-build + (lambda* (#:key inputs #:allow-other-keys) + (let ((gzip (assoc-ref %build-inputs "gzip")) + (bzip2 (assoc-ref %build-inputs "bzip2"))) + (substitute* "src/libkeymap/findfile.c" + (("gzip") + (string-append gzip "/bin/gzip")) + (("bzip2") + (string-append bzip2 "/bin/bzip2")))))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Make sure these programs find their comrades. + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (for-each (lambda (prog) + (wrap-program (string-append bin "/" prog) + `("PATH" ":" prefix (,bin)))) + '("unicode_start" "unicode_stop")))))))) (inputs `(("check" ,check) ("gzip" ,gzip) ("bzip2" ,bzip2) -- cgit 1.4.1 From a78daf5e2bdd8e0b958d679c442d0f122a7d68cd Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Fri, 8 Apr 2016 21:57:56 +0300 Subject: gnu: kbd: Update to 2.0.3. * gnu/packages/linux.scm (kbd): Update to 2.0.3. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 1b84242968..d554ecc17a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -1464,14 +1464,14 @@ system.") (define-public kbd (package (name "kbd") - (version "2.0.2") + (version "2.0.3") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-" version ".tar.xz")) (sha256 (base32 - "04mrms12nm5sas0nxs94yrr3hz7gmqhnmfgb9ff34bh1jszxmzcx")) + "0ppv953gn2zylcagr4z6zg5y2x93dxrml29plypg6xgbq3hrv2bs")) (modules '((guix build utils))) (snippet '(begin -- cgit 1.4.1 From b711df02fdf921f79f6402f35491766d094d0ddb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 17 Apr 2016 10:24:15 +0200 Subject: gnu: icedtea-7: Update to 2.6.5. * gnu/packages/java.scm (icedtea-7): Update to 2.6.5. [inputs]: Add libxcomposite. --- gnu/packages/java.scm | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 9b6a647f25..4a4c214f63 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -577,7 +577,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (license license:gpl2+))) (define-public icedtea-7 - (let* ((version "2.6.4") + (let* ((version "2.6.5") (drop (lambda (name hash) (origin (method url-fetch) @@ -594,7 +594,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "0r31h8nlsrbfdkgbjbb7phwgcwglc9siznzrr40lqnm9xrgkc2nj")) + "1xskigsa1i8hycbagb0f6idyb16x8dkixcdyaacsw4dvjr230lp7")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -669,6 +669,8 @@ build process and its dependencies, whereas Make uses Makefile format.") (setenv "CC" "gcc") (setenv "CPATH" (string-append gcjinclude ":" + (assoc-ref inputs "libxcomposite") + "/include/X11/extensions" ":" (assoc-ref inputs "libxrender") "/include/X11/extensions" ":" (assoc-ref inputs "libxtst") @@ -719,26 +721,29 @@ build process and its dependencies, whereas Make uses Makefile format.") (native-inputs `(("openjdk-src" ,(drop "openjdk" - "1qjjf71nq80ac2d08hbaa8589d31vk313z3rkirnwq5df8cyf0mv")) + "1nxb8b0p1v57ix8gp22ifg9vg0p0lhr59g5vi74f7abg3almcvy6")) ("corba-drop" ,(drop "corba" - "025warxhjal3nr7w1xyd16k0f32fwkchifpaslzyidsga3hgmfr6")) + "0zz7gz8fq7qnifzm2jgir2i6rcp0d2h32lcxvlfs24w5szynjya2")) ("jaxp-drop" ,(drop "jaxp" - "0qiz6swb78w9c0mf88pf0gflgm5rp9k0l6fv6sdl7dki691b0z09")) + "0ym3bcril6507bpbw5mkkw0zmfg3s1nkbsvs2lg0c1q8kyyf3dbv")) ("jaxws-drop" ,(drop "jaxws" - "18fz4gl4fdlcmqvh1mlpd9h0gj0qizpfa7njkax97aysmsm08xns")) + "1l16x4dwhgfpnk32xbigb1kzkvgj0b6zzhdg4rpkywa7gvg9lxaf")) ("jdk-drop" ,(drop "jdk" - "0qsx5d9pgwlz9vbpapw4jwpajqc6rwk1150cjb33i4n3z709jccx")) + "1fi18ji83d0dqzg35kcm4bksg2z3fbg772p05wgw4rhh7dai0f6d")) ("langtools-drop" ,(drop "langtools" - "1k6plx96smf86z303gb30hncssa8f40qdryzsdv349iwqwacxc7r")) + "1nbqg8sw7z7f3bhxng0xdp8vl2nc5wqz0xii1j566qdgc1n6fv3c")) ("hotspot-drop" ,(drop "hotspot" - "0r9ffzyf5vxs8wg732szqcil0ksc8lcxzihdv3viz7d67dy42irp")) + "1z0w8h1jjvxlqzlrwasy323fygx90if09rvqjk4ymaqhzcr35623")) ,@(fold alist-delete (package-native-inputs icedtea-6) - '("openjdk6-src"))))))) + '("openjdk6-src")))) + (inputs + `(("libxcomposite" ,libxcomposite) + ,@(package-inputs icedtea-6)))))) (define-public icedtea icedtea-7) -- cgit 1.4.1 From 534db463060caead27c7b048cd8b3f0f450f63e5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 14 Apr 2016 17:43:27 +0200 Subject: gnu: python-pandas: Fix test failures. * gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch: New file. * gnu-system.am (dist_patch_DATA): Register it. * gnu/packages/python.scm (python-pandas)[source]: Add patch. --- gnu-system.am | 1 + .../python-pandas-fix-tslib-test-failure.patch | 141 +++++++++++++++++++++ gnu/packages/python.scm | 6 +- 3 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 40c566c099..b08812db1f 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -689,6 +689,7 @@ dist_patch_DATA = \ gnu/packages/patches/python-paste-remove-website-test.patch \ gnu/packages/patches/python-paste-remove-timing-test.patch \ gnu/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \ + gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch \ gnu/packages/patches/qemu-CVE-2015-8558.patch \ gnu/packages/patches/qemu-CVE-2015-8567.patch \ gnu/packages/patches/qemu-CVE-2015-8613.patch \ diff --git a/gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch b/gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch new file mode 100644 index 0000000000..62d6a38086 --- /dev/null +++ b/gnu/packages/patches/python-pandas-fix-tslib-test-failure.patch @@ -0,0 +1,141 @@ +This patch is required to fix a test failure when python-dateutil version +2.5.2 or later is used. It is derived from the following commits: + +80ef4e06526b9b60cf24268454c9456585a790a3 +845ff974af6f7c3b3067cce8a7149b771c2be87 + +diff --git a/pandas/tseries/tests/test_tslib.py b/pandas/tseries/tests/test_tslib.py +index f0d5bf7..863bc6f 100644 +--- a/pandas/tseries/tests/test_tslib.py ++++ b/pandas/tseries/tests/test_tslib.py +@@ -474,6 +474,11 @@ def test_does_not_convert_mixed_integer(self): + good_date_string)) + + def test_parsers(self): ++ ++ # https://github.com/dateutil/dateutil/issues/217 ++ import dateutil ++ yearfirst = dateutil.__version__ >= LooseVersion('2.5.0') ++ + cases = {'2011-01-01': datetime.datetime(2011, 1, 1), + '2Q2005': datetime.datetime(2005, 4, 1), + '2Q05': datetime.datetime(2005, 4, 1), +@@ -527,20 +532,26 @@ def test_parsers(self): + } + + for date_str, expected in compat.iteritems(cases): +- result1, _, _ = tools.parse_time_string(date_str) +- result2 = to_datetime(date_str) +- result3 = to_datetime([date_str]) +- result4 = to_datetime(np.array([date_str], dtype=object)) +- result5 = Timestamp(date_str) +- result6 = DatetimeIndex([date_str])[0] +- result7 = date_range(date_str, freq='S', periods=1) ++ result1, _, _ = tools.parse_time_string(date_str, ++ yearfirst=yearfirst) ++ result2 = to_datetime(date_str, yearfirst=yearfirst) ++ result3 = to_datetime([date_str], yearfirst=yearfirst) ++ result4 = to_datetime(np.array([date_str], dtype=object), ++ yearfirst=yearfirst) ++ result6 = DatetimeIndex([date_str], yearfirst=yearfirst)[0] + self.assertEqual(result1, expected) + self.assertEqual(result2, expected) + self.assertEqual(result3, expected) + self.assertEqual(result4, expected) +- self.assertEqual(result5, expected) + self.assertEqual(result6, expected) +- self.assertEqual(result7, expected) ++ ++ # these really need to have yearfist, but we don't support ++ if not yearfirst: ++ result5 = Timestamp(date_str) ++ self.assertEqual(result5, expected) ++ result7 = date_range(date_str, freq='S', periods=1, ++ yearfirst=yearfirst) ++ self.assertEqual(result7, expected) + + # NaT + result1, _, _ = tools.parse_time_string('NaT') +@@ -589,23 +589,62 @@ def test_parsers_quarter_invalid(self): + self.assertRaises(ValueError, tools.parse_time_string, case) + + def test_parsers_dayfirst_yearfirst(self): ++ ++ # https://github.com/dateutil/dateutil/issues/217 ++ # this issue was closed ++ import dateutil ++ is_compat_version = dateutil.__version__ >= LooseVersion('2.5.2') ++ if is_compat_version: ++ dayfirst_yearfirst1 = datetime.datetime(2010, 12, 11) ++ dayfirst_yearfirst2 = datetime.datetime(2020, 12, 21) ++ else: ++ dayfirst_yearfirst1 = datetime.datetime(2010, 11, 12) ++ dayfirst_yearfirst2 = datetime.datetime(2020, 12, 21) ++ + # str : dayfirst, yearfirst, expected +- cases = {'10-11-12': [(False, False, datetime.datetime(2012, 10, 11)), +- (True, False, datetime.datetime(2012, 11, 10)), +- (False, True, datetime.datetime(2010, 11, 12)), +- (True, True, datetime.datetime(2010, 11, 12))], +- '20/12/21': [(False, False, datetime.datetime(2021, 12, 20)), +- (True, False, datetime.datetime(2021, 12, 20)), +- (False, True, datetime.datetime(2020, 12, 21)), +- (True, True, datetime.datetime(2020, 12, 21))]} ++ cases = {'10-11-12': [(False, False, False, ++ datetime.datetime(2012, 10, 11)), ++ (True, False, False, ++ datetime.datetime(2012, 11, 10)), ++ (False, True, False, ++ datetime.datetime(2010, 11, 12)), ++ (True, True, False, dayfirst_yearfirst1)], ++ '20/12/21': [(False, False, False, ++ datetime.datetime(2021, 12, 20)), ++ (True, False, False, ++ datetime.datetime(2021, 12, 20)), ++ (False, True, False, ++ datetime.datetime(2020, 12, 21)), ++ (True, True, True, dayfirst_yearfirst2)]} + + tm._skip_if_no_dateutil() + from dateutil.parser import parse + for date_str, values in compat.iteritems(cases): +- for dayfirst, yearfirst, expected in values: +- result1, _, _ = tools.parse_time_string(date_str, +- dayfirst=dayfirst, +- yearfirst=yearfirst) ++ for dayfirst, yearfirst, is_compat, expected in values: ++ ++ f = lambda x: tools.parse_time_string(x, ++ dayfirst=dayfirst, ++ yearfirst=yearfirst) ++ ++ # we now have an invalid parse ++ if is_compat and is_compat_version: ++ self.assertRaises(tslib.DateParseError, f, date_str) ++ ++ def f(date_str): ++ return to_datetime(date_str, dayfirst=dayfirst, ++ yearfirst=yearfirst) ++ ++ self.assertRaises(ValueError, f, date_str) ++ ++ def f(date_str): ++ return DatetimeIndex([date_str], dayfirst=dayfirst, ++ yearfirst=yearfirst)[0] ++ ++ self.assertRaises(ValueError, f, date_str) ++ ++ continue ++ ++ result1, _, _ = f(date_str) + + result2 = to_datetime(date_str, dayfirst=dayfirst, + yearfirst=yearfirst) +@@ -614,7 +653,6 @@ def test_parsers_dayfirst_yearfirst(self): + yearfirst=yearfirst)[0] + + # Timestamp doesn't support dayfirst and yearfirst +- + self.assertEqual(result1, expected) + self.assertEqual(result2, expected) + self.assertEqual(result3, expected) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4238965fd0..a5c0eaad79 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2014, 2015 Federico Beffa ;;; Copyright © 2015 Omar Radwan ;;; Copyright © 2015 Pierre-Antoine Rault -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015, 2016 Christopher Allan Webber ;;; Copyright © 2015 Eric Dvorsak ;;; Copyright © 2015, 2016 David Thompson @@ -987,7 +987,9 @@ datetime module, available in Python 2.3+.") (method url-fetch) (uri (pypi-uri "pandas" version)) (sha256 - (base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9")))) + (base32 "050qw0ap5bhyv5flp78x3lcq1dlminl3xaj6kbrm0jqmx0672xf9")) + (patches (search-patches + "python-pandas-fix-tslib-test-failure.patch")))) (build-system python-build-system) (propagated-inputs `(("python-numpy" ,python-numpy) -- cgit 1.4.1 From a7d94b54c7c505f5cf9a2691f5340ae3d2acda9e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 17 Apr 2016 17:36:43 +0200 Subject: gnu: Add recordmydesktop. * gnu/packages/video.scm (recordmydesktop): New variable. --- gnu/packages/video.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7673636b15..334f843abe 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages qt) @@ -1382,3 +1383,33 @@ present in modern GPUs.") (description "Vdpauinfo is a tool to query the capabilities of a VDPAU implementation.") (license (license:x11-style "file://COPYING")))) + +(define-public recordmydesktop + (package + (name "recordmydesktop") + (version "0.3.8.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/recordmydesktop-" version ".tar.gz")) + (sha256 + (base32 + "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik")))) + (build-system gnu-build-system) + (inputs `(("popt" ,popt) + ("zlib" ,zlib) + ("libx11" ,libx11) + ("libice" ,libice) + ("libsm" ,libsm) + ("libxfixes" ,libxfixes) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("libvorbis" ,libvorbis) + ("libtheora" ,libtheora))) + (home-page "http://recordmydesktop.sourceforge.net/") + (synopsis "Desktop session video recorder") + (description + "recordMyDesktop is a command-line tool that captures the activity in +your graphical desktop and encodes it as a video. This is a useful tool for +making @dfn{screencasts}.") + (license license:gpl2+))) -- cgit 1.4.1 From 67157996e23f1d6135659d91c1a15e3ac4afd4e0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 15 Apr 2016 13:56:34 -0400 Subject: gnu: openssh: Fix CVE-2015-8325. * gnu/packages/patches/openssh-CVE-2015-8325.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/ssh.scm (openssh): Use it. --- gnu-system.am | 1 + gnu/packages/patches/openssh-CVE-2015-8325.patch | 31 ++++++++++++++++++++++++ gnu/packages/ssh.scm | 3 ++- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/openssh-CVE-2015-8325.patch (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index b08812db1f..2ec0000f2a 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -633,6 +633,7 @@ dist_patch_DATA = \ gnu/packages/patches/openimageio-boost-1.60.patch \ gnu/packages/patches/openjpeg-CVE-2015-6581.patch \ gnu/packages/patches/openjpeg-use-after-free-fix.patch \ + gnu/packages/patches/openssh-CVE-2015-8325.patch \ gnu/packages/patches/openssl-runpath.patch \ gnu/packages/patches/openssl-c-rehash-in.patch \ gnu/packages/patches/orpheus-cast-errors-and-includes.patch \ diff --git a/gnu/packages/patches/openssh-CVE-2015-8325.patch b/gnu/packages/patches/openssh-CVE-2015-8325.patch new file mode 100644 index 0000000000..8063e64ea7 --- /dev/null +++ b/gnu/packages/patches/openssh-CVE-2015-8325.patch @@ -0,0 +1,31 @@ +From 85bdcd7c92fe7ff133bbc4e10a65c91810f88755 Mon Sep 17 00:00:00 2001 +From: Damien Miller +Date: Wed, 13 Apr 2016 10:39:57 +1000 +Subject: ignore PAM environment vars when UseLogin=yes + +If PAM is configured to read user-specified environment variables +and UseLogin=yes in sshd_config, then a hostile local user may +attack /bin/login via LD_PRELOAD or similar environment variables +set via PAM. + +CVE-2015-8325, found by Shayan Sadigh, via Colin Watson +--- + session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/session.c b/session.c +index 4859245..4653b09 100644 +--- a/session.c ++++ b/session.c +@@ -1322,7 +1322,7 @@ do_setup_env(Session *s, const char *shell) + * Pull in any environment variables that may have + * been set by PAM. + */ +- if (options.use_pam) { ++ if (options.use_pam && !options.use_login) { + char **p; + + p = fetch_pam_child_environment(); +-- +cgit v0.11.2 + diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index eaf57acb3d..b8f107b111 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -126,7 +126,8 @@ a server that supports the SSH-2 protocol.") (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "132lh9aanb0wkisji1d6cmsxi520m8nh7c7i9wi6m1s3l38q29x7")))) + "132lh9aanb0wkisji1d6cmsxi520m8nh7c7i9wi6m1s3l38q29x7")) + (patches (search-patches "openssh-CVE-2015-8325.patch")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit 1.4.1 From 9bed9b150d81318fbd7b41dcddafc7d1df473825 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Apr 2016 14:32:59 -0400 Subject: gnu: python-vobject: Update to 0.9.2. * gnu/packages/python.scm (python-vobject, python2-vobject): Update to 0.9.2. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a5c0eaad79..0379352f76 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8258,13 +8258,13 @@ introspection of @code{zope.interface} instances in code.") (define-public python-vobject (package (name "python-vobject") - (version "0.9.1") + (version "0.9.2") (source (origin (method url-fetch) (uri (pypi-uri "vobject" version)) (sha256 (base32 - "1cwzjnrdr9yg2x21wbf3kf59ibnchvj33mygd69yzi178a9gs9gz")))) + "1qfnwlx8qwkgr6nf5wvl6ff1r3kll53dh3z6nyp173nmlhhhqccb")))) (build-system python-build-system) (inputs `(("python-dateutil-2" ,python-dateutil-2) -- cgit 1.4.1 From d99f6ffb4caa66fd070297838fdb6593b5c80e2d Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Apr 2016 14:32:18 -0400 Subject: gnu: khard: Update to 0.9.0. * gnu/packages/mail.scm (khard): Update to 0.9.0. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index fd379b7968..56e85712db 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1164,13 +1164,13 @@ maintained.") (define-public khard (package (name "khard") - (version "0.8.1") + (version "0.9.0") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "098gs94qmnspdfn6ar8lycx7dbsz9bcff90aps0cmn47mw7llch0")))) + "0y83rji4f270hbb41m4jpr0z3yzvpvbsl32mpg9d38hlydw8fk1s")))) (build-system python-build-system) (arguments `(#:python ,python-2 ; only python-2 is supported. -- cgit 1.4.1 From fac34dfe2a576907bf9f612d8ed8f4e9dee826be Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 29 Mar 2016 09:06:09 +0200 Subject: gnu: Add python-pyusb. * gnu/packages/libusb.scm (python-pyusb, python2-pyusb): New variables. --- gnu/packages/libusb.scm | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 61136791d3..1e72442c73 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2015 Andy Wingo -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; ;;; This file is part of GNU Guix. @@ -28,11 +28,13 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (guix build-system python) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages linux) #:use-module (gnu packages mp3) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages xiph)) (define-public libusb @@ -87,6 +89,49 @@ devices on various operating systems.") version of libusb to run with newer libusb.") (license lgpl2.1+))) +(define-public python-pyusb + (package + (name "python-pyusb") + (version "1.0.0rc1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pyusb" version)) + (sha256 + (base32 + "07cjq11qhngzjd746k7688s6y2x7lpj669fxqfsiy985rg0jsn7j")))) + (build-system python-build-system) + (arguments + `(#:tests? #f ;no tests + #:modules ((srfi srfi-26) + (guix build utils) + (guix build python-build-system)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-libusb-reference + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "usb/libloader.py" + (("lib = locate_library\\(candidates, find_library\\)") + (string-append + "lib = \"" + (car (find-files (assoc-ref inputs "libusb") + (lambda (file stat) + (and ((file-name-predicate + "^libusb-.*\\.so\\..*") file stat) + (not (symbolic-link? file)))))) + "\""))) + #t))))) + (inputs + `(("libusb" ,libusb))) + (home-page "http://walac.github.io/pyusb/") + (synopsis "Python bindings to the libusb library") + (description + "PyUSB aims to be an easy to use Python module to access USB devices.") + (license bsd-3))) + +(define-public python2-pyusb + (package-with-python2 python-pyusb)) + (define-public libmtp (package (name "libmtp") -- cgit 1.4.1 From 9bb46c155b463029f3da84d1b146efa79785a4ac Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 18 Apr 2016 14:58:43 +1000 Subject: gnu: ruby-bio-commandeer: Update to 0.1.3. * gnu/packages/ruby.scm (ruby-bio-commandeer): Update to 0.1.3. --- gnu/packages/ruby.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 0ca3415a9f..8531b9cf00 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3528,14 +3528,14 @@ subprocess.") (define-public ruby-bio-commandeer (package (name "ruby-bio-commandeer") - (version "0.1.2") + (version "0.1.3") (source (origin (method url-fetch) (uri (rubygems-uri "bio-commandeer" version)) (sha256 (base32 - "061jxa6km92qfwzl058r2gp8gfcsbyr7m643nw1pxvmjdswaf6ly")))) + "0lin6l99ldqqjc90l9ihcrv882c4xgbgqm16jqkdy6jf955jd9a8")))) (build-system ruby-build-system) (arguments `(#:phases -- cgit 1.4.1 From 940778c71c6be6987cf401a308261be6d33935a3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 18 Apr 2016 11:26:30 +0200 Subject: gnu: ffmpeg: Re-add 2.8.6. * gnu/packages/video.scm (ffmpeg-2.8): New variable. --- gnu/packages/video.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 334f843abe..4907a4174f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -536,6 +536,26 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) +(define-public ffmpeg-2.8 + (package + (inherit ffmpeg) + (version "2.8.6") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "1yh7dvm7zwdlsspdaq524s5qaggma5md9h95qc4kvb5dmyyyvg15")))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + `(map (lambda (flag) + (if (string=? flag "--disable-mipsdsp") + "--disable-mipsdspr1" + flag)) + ,flags)))))) + (define-public vlc (package (name "vlc") -- cgit 1.4.1 From b4dff935500abc5aceb3fc0e13fb7cabb5f756c0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 18 Apr 2016 11:58:15 +0200 Subject: gnu: vlc: Build against ffmpeg 2.8. Fixes . Reported by Christopher Allan Webber . * gnu/packages/video.scm (vlc): Use FFMPEG-2.8 instead of FFMPEG. --- gnu/packages/video.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 4907a4174f..7877961901 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -578,7 +578,7 @@ audio/video codec library.") ("avahi" ,avahi) ("dbus" ,dbus) ("flac" ,flac) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0 ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("gnutls" ,gnutls) -- cgit 1.4.1 From 4ef2721b52c4929aac15db4f8b39702cd37955a1 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 18 Apr 2016 12:08:31 +0200 Subject: gnu: vlc: Do not capture the build time. * gnu/packages/video.scm (vlc)[source]: Add 'snippet'. --- gnu/packages/video.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7877961901..0e80dd459c 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -567,7 +567,14 @@ audio/video codec library.") version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")))) + "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")) + (modules '((guix build utils))) + (snippet + ;; There are two occurrences where __DATE__ and __TIME__ are + ;; used to capture the build time and show it to the user. + '(substitute* (find-files "." "help\\.c(pp)?$") + (("__DATE__") "\"2016\"") + (("__TIME__") "\"00:00\""))))) (build-system gnu-build-system) (native-inputs `(("git" ,git) ; needed for a test -- cgit 1.4.1 From cd76fbde6f70a6c0087f9330c266d51e334a0679 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 18 Apr 2016 15:39:43 +0200 Subject: gnu: vlc: Make 'plugins.dat' generation reproducible. Fixes . * gnu/packages/video.scm (vlc)[arguments]: Add #:phases. --- gnu/packages/video.scm | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0e80dd459c..a227c8b39f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -619,7 +619,30 @@ audio/video codec library.") `("--disable-a52" ; FIXME: reenable once available ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") - "/lib")))) ; needed for the tests + "/lib")) ;needed for the tests + + #:phases + (modify-phases %standard-phases + (add-after 'install 'regenerate-plugin-cache + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install-exec-hook' rule in the top-level Makefile.am + ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using + ;; 'vlc-cache-gen'. This file includes the mtime of the plugins + ;; it references. Thus, we first reset the timestamps of all + ;; these files, and then regenerate the cache such that the + ;; mtimes it includes are always zero instead of being dependent + ;; on the build time. + (let* ((out (assoc-ref outputs "out")) + (pkglibdir (string-append out "/lib/vlc")) + (plugindir (string-append pkglibdir "/plugins")) + (cachegen (string-append pkglibdir "/vlc-cache-gen"))) + ;; TODO: Factorize 'reset-timestamps'. + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files plugindir)) + (zero? (system* cachegen plugindir)))))))) (home-page "https://www.videolan.org/") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework -- cgit 1.4.1 From cf1b55bd32f8cf44aa91712c8d159ad7ca515e4f Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Sat, 16 Apr 2016 22:50:41 -0400 Subject: gnu: fltk: Add Xft support. * gnu/packages/fltk.scm (fltk)[inputs]: Add libxft. Signed-off-by: Leo Famulari --- gnu/packages/fltk.scm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 4dec9bc288..a0180c0432 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2014 John Darrington ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,6 +53,7 @@ `(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 ("libpng" ,libpng) ("libx11" ,libx11) + ("libxft" ,libxft) ("mesa" ,mesa) ("zlib" ,zlib))) (arguments -- cgit 1.4.1 From c21a25627241468cb3181dc50c5abfd205bca05d Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Sun, 17 Apr 2016 10:14:55 -0400 Subject: gnu: Add dillo. * gnu/packages/dillo.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Leo Famulari --- gnu-system.am | 2 ++ gnu/packages/dillo.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 gnu/packages/dillo.scm (limited to 'gnu/packages') diff --git a/gnu-system.am b/gnu-system.am index 2b4c71d11f..d58155a1b5 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -4,6 +4,7 @@ # Copyright © 2016 Mathieu Lirzin # Copyright © 2013, 2014, 2015, 2016 Mark H Weaver # Copyright © 2016 Chris Marusich +# Copyright © 2016 Kei Yamashita # # This file is part of GNU Guix. # @@ -90,6 +91,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/dejagnu.scm \ gnu/packages/dico.scm \ gnu/packages/dictionaries.scm \ + gnu/packages/dillo.scm \ gnu/packages/disk.scm \ gnu/packages/djvu.scm \ gnu/packages/dns.scm \ diff --git a/gnu/packages/dillo.scm b/gnu/packages/dillo.scm new file mode 100644 index 0000000000..0fd84d9177 --- /dev/null +++ b/gnu/packages/dillo.scm @@ -0,0 +1,63 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Kei Yamashita +;;; +;;; 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 . + +(define-module (gnu packages dillo) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages compression) + #:use-module (gnu packages fltk) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages image) + #:use-module (gnu packages tls) + #:use-module (gnu packages xorg) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public dillo + (package + (name "dillo") + (version "3.0.5") + (source (origin + (method url-fetch) + (uri (string-append "http://www.dillo.org/download/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "12ql8n1lypv3k5zqgwjxlw1md90ixz3ag6j1gghfnhjq3inf26yv")))) + (build-system gnu-build-system) + (arguments `(#:configure-flags '("--enable-ssl" "--enable-ipv6"))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs `(("fltk" ,fltk) + ("fontconfig" ,fontconfig) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libxcursor" ,libxcursor) + ("libxft" ,libxft) + ("libxi" ,libxi) + ("libxinerama" ,libxinerama) + ("openssl" ,openssl) + ("perl" ,perl) + ("zlib" ,zlib))) + (synopsis "Very small and fast graphical web browser") + (description "Dillo is a minimalistic web browser particularly intended for +older or slower computers and embedded systems.") + (home-page "http://www.dillo.org") + (license license:gpl3+))) -- cgit 1.4.1 From 3fd4b90d1dee4547df16e1469e8dcefce1ac4f36 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sun, 17 Apr 2016 19:30:37 +0200 Subject: gnu: Add cabextract. * gnu/packages/compression.scm (cabextract): New variable. Signed-off-by: Leo Famulari --- gnu/packages/compression.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index de5d03af22..8043422f8b 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2015 Jeff Mickey ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Ben Woodcroft +;;; Copyright © 2016 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -731,3 +732,26 @@ similar in speed to deflate but offers denser compression. This package provides encoder and a decoder libraries: libbrotlienc and libbrotlidec, respectively, based on the reference implementation from Google.") (license license:expat)))) + +(define-public cabextract + (package + (name "cabextract") + (version "1.6") + (source (origin + (method url-fetch) + (uri (string-append + "http://cabextract.org.uk/cabextract-" version ".tar.gz")) + (sha256 + (base32 + "1ysmmz25fjghq7mxb2anyyvr1ljxqxzi4piwjhk0sdamcnsn3rnf")))) + (build-system gnu-build-system) + (arguments '(#:configure-flags '("--with-external-libmspack"))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libmspack" ,libmspack))) + (home-page "http://www.cabextract.org.uk/") + (synopsis "Tool to unpack Cabinet archives") + (description "Extracts files out of Microsoft Cabinet (.cab) archives") + ;; Some source files specify gpl2+, lgpl2+, however COPYING is gpl3. + (license license:gpl3+))) -- cgit 1.4.1 From 4db9433aa02ced6112170a6815377be3da6d2ef9 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 6 Apr 2016 16:34:19 +0200 Subject: gnu: Add python-twobitreader. * gnu/packages/bioinformatics.scm (python-twobitreader, python2-twobitreader): New variables. --- gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index b76aadc6a2..bcb27571a1 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -922,6 +922,34 @@ also includes an interface for tabix.") (define-public python2-pysam (package-with-python2 python-pysam)) +(define-public python-twobitreader + (package + (name "python-twobitreader") + (version "3.1.2") + (source (origin + (method url-fetch) + (uri (pypi-uri "twobitreader" version)) + (sha256 + (base32 + "0y408fp6psqzwxpcpqn0wp7fr41dwz8d54wpj6j261fj5q8vs169")))) + (properties `((python2-variant . ,(delay python2-twobitreader)))) + (build-system python-build-system) + (native-inputs + `(("python-sphinx" ,python-sphinx))) + (home-page "https://github.com/benjschiller/twobitreader") + (synopsis "Python library for reading .2bit files") + (description + "twobitreader is a Python library for reading .2bit files as used by the +UCSC genome browser.") + (license license:artistic2.0))) + +(define-public python2-twobitreader + (let ((base (package-with-python2 (strip-python2-variant python-twobitreader)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) + (define-public cd-hit (package (name "cd-hit") -- cgit 1.4.1 From f94bf1983b3da60fdbe176259b19316a547dad07 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 6 Apr 2016 16:35:09 +0200 Subject: gnu: Add python-plastid. * gnu/packages/bioinformatics.scm (python-plastid, python2-plastid): New variables. --- gnu/packages/bioinformatics.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index bcb27571a1..1d8011bf79 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -950,6 +950,46 @@ UCSC genome browser.") (native-inputs `(("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs base)))))) +(define-public python-plastid + (package + (name "python-plastid") + (version "0.4.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "plastid" version)) + (sha256 + (base32 + "1nhxw8a5gn9as58i2ih52c5cjwj48ik418pzsjwph3s66mmy9yvq")))) + (properties `((python2-variant . ,(delay python2-plastid)))) + (build-system python-build-system) + (arguments + ;; Some test files are not included. + `(#:tests? #f)) + (propagated-inputs + `(("python-numpy" ,python-numpy) + ("python-scipy" ,python-scipy) + ("python-pandas" ,python-pandas) + ("python-pysam" ,python-pysam) + ("python-matplotlib" ,python-matplotlib) + ("python-biopython" ,python-biopython) + ("python-twobitreader" ,python-twobitreader))) + (native-inputs + `(("python-cython" ,python-cython) + ("python-nose" ,python-nose))) + (home-page "https://github.com/joshuagryphon/plastid") + (synopsis "Python library for genomic analysis") + (description + "plastid is a Python library for genomic analysis – in particular, +high-throughput sequencing data – with an emphasis on simplicity.") + (license license:bsd-3))) + +(define-public python2-plastid + (let ((base (package-with-python2 (strip-python2-variant python-plastid)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) + (define-public cd-hit (package (name "cd-hit") -- cgit 1.4.1 From a4e885f626fec1798a4f4d343dddc84a136ae8a9 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 19 Apr 2016 20:02:44 +0800 Subject: glib: Fix tests. * gnu/packages/glib.scm (glib)[arguments]: Disable the "/application/local-actions" test in 'disable-failing-tests' phase. --- gnu/packages/glib.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 5d27c781da..70020520eb 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -205,7 +205,11 @@ shared NFS home directories.") (;; XXX: proven to be unreliable. See: ;; ;; - "/gapplication/quit")) + "/gapplication/quit" + + ;; XXX: fails randomly for unknown reason. See: + ;; + "/gapplication/local-actions")) ("gio/tests/contenttype.c" (;; XXX: requires shared-mime-info. -- cgit 1.4.1 From 349a31476567962d75dc6d02d339e4ffa8362801 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 12:22:37 +0200 Subject: gnu: Add icedtea-8. * gnu/packages/java.scm (icedtea-8): New variable. --- gnu/packages/java.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4a4c214f63..7d8fb4fdfb 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. @@ -746,4 +746,86 @@ build process and its dependencies, whereas Make uses Makefile format.") `(("libxcomposite" ,libxcomposite) ,@(package-inputs icedtea-6)))))) +(define-public icedtea-8 + (let* ((version "3.0.0") + (drop (lambda (name hash) + (origin + (method url-fetch) + (uri (string-append + "http://icedtea.classpath.org/download/drops/" + "/icedtea8/" version "/" name ".tar.xz")) + (sha256 (base32 hash)))))) + (package (inherit icedtea-7) + (version "3.0.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://icedtea.wildebeest.org/download/source/icedtea-" + version ".tar.xz")) + (sha256 + (base32 + "1a99hvx5d0dcinlixgy0wzv2f7jnzi8jp7hcrf2pd7dqndlxsyll")) + (modules '((guix build utils))) + (snippet + '(substitute* "Makefile.am" + ;; do not leak information about the build host + (("DISTRIBUTION_ID=\"\\$\\(DIST_ID\\)\"") + "DISTRIBUTION_ID=\"\\\"guix\\\"\""))))) + (arguments + (substitute-keyword-arguments (package-arguments icedtea-7) + ((#:configure-flags flags) + `(let ((jdk (assoc-ref %build-inputs "jdk"))) + `(;;"--disable-bootstrap" + "--enable-bootstrap" + "--enable-nss" + "--disable-downloading" + "--disable-tests" ;they are run in the check phase instead + "--with-openjdk-src-dir=./openjdk.src" + ,(string-append "--with-jdk-home=" jdk)))) + ((#:phases phases) + `(modify-phases ,phases + (delete 'fix-x11-extension-include-path) + (delete 'patch-paths) + (delete 'set-additional-paths) + (delete 'patch-patches) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/icedtea")) + (jre (assoc-ref outputs "out")) + (jdk (assoc-ref outputs "jdk"))) + (copy-recursively "openjdk.build/docs" doc) + (copy-recursively "openjdk.build/images/j2re-image" jre) + (copy-recursively "openjdk.build/images/j2sdk-image" jdk) + #t))))))) + (native-inputs + `(("jdk" ,icedtea-7 "jdk") + ("openjdk-src" + ,(drop "openjdk" + "0cchcrkj3pbjw3r6w08d8fkcjp98fyqp15bv88ljakjcsxrjc0sv")) + ("corba-drop" + ,(drop "corba" + "1k5khy8g0bk8yas81infh4l8rradpslzs0bblri0aqn9s3aq0x6p")) + ("jaxp-drop" + ,(drop "jaxp" + "1s167lwh1bxkjmbcyk1pb9r919hfbjgh2shig3d1qmj24r2fbk2c")) + ("jaxws-drop" + ,(drop "jaxws" + "0xphl8127in0634401f8v3b42mh14v1zdzd7ar10h9m5m84hcmgg")) + ("jdk-drop" + ,(drop "jdk" + "1kdi5v0vf7swkh2r4isdibw8zzsp34d1aa1sbxl5ljc9lfmbhx7s")) + ("langtools-drop" + ,(drop "langtools" + "11pa0sr4yi0nnfwhz25410zimc3jm367cvrhg5jm0xc5rykydq70")) + ("hotspot-drop" + ,(drop "hotspot" + "1my0g9snpd6619y82b4m96wc7ncvf1hw5yqrbh3n1pjgm2k7ywbn")) + ("nashorn-drop" + ,(drop "nashorn" + "1h12a61q3bw8zabhpp6aawfg3pwixjcya64595rj07sid619vidl")) + ,@(fold alist-delete (package-native-inputs icedtea-7) + '("gcj" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop" + "jdk-drop" "langtools-drop" "hotspot-drop"))))))) + (define-public icedtea icedtea-7) -- cgit 1.4.1 From 8694dca8f32e0181e5de23f4a3e79f58f18df311 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 12:46:57 +0200 Subject: gnu: r: Update to 3.2.5. * gnu/packages/statistics.scm (r): Update to 3.2.5. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d820b08eb4..b02ab560c3 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -98,7 +98,7 @@ be output in text, PostScript, PDF or HTML.") (define-public r (package (name "r") - (version "3.2.3") + (version "3.2.5") (source (origin (method url-fetch) (uri (string-append "mirror://cran/src/base/R-" @@ -106,7 +106,7 @@ be output in text, PostScript, PDF or HTML.") version ".tar.gz")) (sha256 (base32 - "1hdnv77ralzcx5k5b88jq1r8l6zqnywpq00g2qs949rqh63psfxr")))) + "1dc0iybjk9kr1nghz3fpir6mb9hb9rnrz9bgh00w5pg5vir5cx30")))) (build-system gnu-build-system) (arguments `(#:make-flags -- cgit 1.4.1 From 4d16cc51333eeb729c6fe381ebe21047f6b41087 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 16:11:15 +0200 Subject: gnu: python2-plastid: Propagate setuptools. * gnu/packages/bioinformatics.scm (python2-plastid)[native-inputs]: Move python2-setuptools from here... [propagated-inputs]: ...to here. --- gnu/packages/bioinformatics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 1d8011bf79..082cdf8eba 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -987,8 +987,9 @@ high-throughput sequencing data – with an emphasis on simplicity.") (let ((base (package-with-python2 (strip-python2-variant python-plastid)))) (package (inherit base) - (native-inputs `(("python2-setuptools" ,python2-setuptools) - ,@(package-native-inputs base)))))) + ;; setuptools is required at runtime + (propagated-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-propagated-inputs base)))))) (define-public cd-hit (package -- cgit 1.4.1 From 1ad15c1669df7dad5bc234fb4f572e341bc04561 Mon Sep 17 00:00:00 2001 From: Hartmut Goebel Date: Sat, 16 Apr 2016 10:51:23 +0200 Subject: gnu: Rename Java packages to match new naming specification. * gnu/packages/bioinformatics.scm (htsjdk): Rename to... (java-htsjdk): ...this. (ngs-java): Rename to... (java-ngs): ...this. (ncbi-vdb)[arguments,inputs]: Use new name. * gnu/packages/java.scm (swt): Rename to... (java-swt): ...this. * gnu/packages/music.scm (tuxguitar)[make-flags,inputs,arguments]: Use new name of package "swt". --- gnu/packages/bioinformatics.scm | 12 ++++++------ gnu/packages/java.scm | 4 ++-- gnu/packages/music.scm | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 082cdf8eba..c49b0a9e17 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2144,9 +2144,9 @@ HMMs).") from high-throughput sequencing assays.") (license license:gpl3+))) -(define-public htsjdk +(define-public java-htsjdk (package - (name "htsjdk") + (name "java-htsjdk") (version "1.129") (source (origin (method url-fetch) @@ -3081,9 +3081,9 @@ any particular back-end implementation, and supports use of multiple back-ends simultaneously.") (license license:public-domain))) -(define-public ngs-java +(define-public java-ngs (package (inherit ngs-sdk) - (name "ngs-java") + (name "java-ngs") (arguments `(,@(substitute-keyword-arguments `(#:modules ((guix build gnu-build-system) @@ -3146,7 +3146,7 @@ simultaneously.") (string-append "--with-ngs-sdk-prefix=" (assoc-ref inputs "ngs-sdk")) (string-append "--with-ngs-java-prefix=" - (assoc-ref inputs "ngs-java")) + (assoc-ref inputs "java-ngs")) (string-append "--with-hdf5-prefix=" (assoc-ref inputs "hdf5")))))) (alist-cons-after @@ -3172,7 +3172,7 @@ simultaneously.") (inputs `(("libxml2" ,libxml2) ("ngs-sdk" ,ngs-sdk) - ("ngs-java" ,ngs-java) + ("java-ngs" ,java-ngs) ("libmagic" ,file) ("hdf5" ,hdf5))) (native-inputs `(("perl" ,perl))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7d8fb4fdfb..02131f10d0 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -51,9 +51,9 @@ #:use-module (gnu packages texinfo) #:use-module ((srfi srfi-1) #:select (fold alist-delete))) -(define-public swt +(define-public java-swt (package - (name "swt") + (name "java-swt") (version "4.4.2") (source (origin (method url-fetch) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 280f3840bb..8f971f3614 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -775,7 +775,7 @@ is subjective.") (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "SWT_PATH=" - (assoc-ref %build-inputs "swt") + (assoc-ref %build-inputs "java-swt") "/share/java/swt.jar")) #:tests? #f ;no "check" target #:parallel-build? #f ;not supported @@ -790,11 +790,11 @@ is subjective.") (string-append "GCJFLAGS=-fsource=1.4 -fPIC " rest)) (("PROPERTIES\\?=") (string-append "PROPERTIES?= -Dswt.library.path=" - (assoc-ref inputs "swt") "/lib")) + (assoc-ref inputs "java-swt") "/lib")) (("\\$\\(GCJ\\) -o") "$(GCJ) $(LDFLAGS) -o")) #t))))) (inputs - `(("swt" ,swt))) + `(("java-swt" ,java-swt))) (native-inputs `(("gcj" ,gcj) ("pkg-config" ,pkg-config))) -- cgit 1.4.1 From ad25a1fab4669e38cb5b8a224ec3a76d812807f5 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 19 Apr 2016 23:52:42 +0300 Subject: gnu: mpv: Update to 0.17.0. * gnu/packages/video.scm (mpv): Update to 0.17.0. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index a227c8b39f..6060702022 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -747,7 +747,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.16.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (string-append @@ -755,7 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1fiqxx85s418qynq2fp0v7cpzrz8j285hwmc4fqgn5ny1vg1jdpw")) + "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs -- cgit 1.4.1 From ab39d8cbc152d0a1bf794e79312da576f441e1df Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Apr 2016 02:49:51 +0300 Subject: gnu: aria2: Update to 1.22.0. * gnu/packages/bittorrent.scm (aria2): Update to 1.22.0. --- gnu/packages/bittorrent.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index 26b0fc6fdc..d8252c8b37 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -207,7 +207,7 @@ interface, for the Transmission BitTorrent daemon.") (define-public aria2 (package (name "aria2") - (version "1.21.0") + (version "1.22.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/tatsuhiro-t/aria2/" @@ -215,7 +215,7 @@ interface, for the Transmission BitTorrent daemon.") name "-" version ".tar.xz")) (sha256 (base32 - "1035rzx9y7qv4p7cv04f461343dxha7ikprch059x2fci8n5yp12")))) + "12agwdvvkr34wqhyyfp418dj0k7nbr297qmcd3wj5kkn7brv6gxc")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-libaria2") -- cgit 1.4.1 From 083b3a0e25a5369ac663081446a2f420cd2dbd6f Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 19 Apr 2016 20:38:34 -0400 Subject: gnu: git: Update to 2.7.4 [fixes CVE-2016-2315 and CVE-2016-2324]. * gnu/packages/version-control.scm (git): Update to 2.7.4. (git-manpages)[source]: Update hash. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 3be89ce06e..117d01d5d0 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -113,14 +113,14 @@ as well as the classic centralized workflow.") ;; Keep in sync with 'git-manpages'! (package (name "git") - (version "2.7.3") + (version "2.7.4") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1di96q86fq3pdn5d5v4fw9vf58gha5i9b3r880mxlh275n8ngi49")))) + "0ys55v2xrhzj74jrrqx75xpr458klnyxshh8d8swfpp0zgg79rfy")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -292,7 +292,7 @@ everything from small to very large projects with speed and efficiency.") version ".tar.xz")) (sha256 (base32 - "0va9j0q9h44jqih38h4cmhvbmjppqq7zbiq70220m7hsqqkq824z")))) + "09ffk5c0dl1xg7xcvr0kadhspx4fr2spmlmcajzfycmap0ddhkyh")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) -- cgit 1.4.1 From 458b47e31b2a4fcd871b54a82cd5d1ff16cb46ef Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:15:40 +0200 Subject: gnu: armadillo: Update to 6.700.4. * gnu/packages/maths.scm (armadillo): Update to 6.700.4. --- gnu/packages/maths.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d009905346..7ea4ca3066 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016 Eric Bavier ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014 Mathieu Lirzin -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Sou Bunnbu ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015, 2016 Efraim Flashner @@ -1484,14 +1484,14 @@ full text searching.") (define-public armadillo (package (name "armadillo") - (version "6.400.3") + (version "6.700.4") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/arma/armadillo-" version ".tar.gz")) (sha256 (base32 - "0bsgrmldlx77w5x26n3axj1hg6iw6csyw0dwl1flrbdwl51f9701")))) + "0dsdjcps5l2nhg0455rrc708inffarzj7n435vj4sm9lxwf21wg9")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ;no test target (inputs -- cgit 1.4.1 From 4b42bd941bad43e251e107674dcc2b77cdfa3071 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Apr 2016 15:33:34 +0300 Subject: gnu: python-stevedore: Update to 1.12.0. * gnu/packages/openstack.scm (python-stevedore): Update to 1.12.0. [inputs]: Move python-setuptools, python-docutils, python-mock, python-oslotest, python-sphinx ... [native-inputs]: ... to here. --- gnu/packages/openstack.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 947abf31a4..7ae5421bba 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -266,20 +266,21 @@ portions of your testing code.") (define-public python-stevedore (package (name "python-stevedore") - (version "1.10.0") + (version "1.12.0") (source (origin (method url-fetch) (uri (pypi-uri "stevedore" version)) (sha256 (base32 - "17vpffcnk56sj86d2n3vz5bprcc9bswilgd0awnm7jp073pqkmpm")))) + "0999zvawaapzg6givjhn7vjscdwblcs73wf28wq1wb4g5mbb5phv")))) (build-system python-build-system) (propagated-inputs `(("python-six" ,python-six))) (inputs - `(("python-pbr" ,python-pbr) - ("python-setuptools" ,python-setuptools) + `(("python-pbr" ,python-pbr))) + (native-inputs + `(("python-setuptools" ,python-setuptools) ;; Tests ("python-docutils" ,python-docutils) ("python-mock" ,python-mock) @@ -289,9 +290,9 @@ portions of your testing code.") (synopsis "Manage dynamic plugins for Python applications") (description "Python makes loading code dynamically easy, allowing you to configure -and extend your application by discovering and loading extensions (“plugins”) +and extend your application by discovering and loading extensions (\"plugins\") at runtime. Many applications implement their own library for doing this, -using __import__ or importlib. stevedore avoids creating yet another extension +using __import__ or importlib. Stevedore avoids creating yet another extension mechanism by building on top of setuptools entry points. The code for managing entry points tends to be repetitive, though, so stevedore provides manager classes for implementing common patterns for using dynamically loaded -- cgit 1.4.1 From f8f83e9d219a8cf1d99749b81b06a4710ad5f09c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 20 Apr 2016 16:13:30 +0300 Subject: gnu: python-mox3: Update to 0.14.0. * gnu/packages/openstack.scm (python-mox3): Update to 0.14.0. [inputs]: Move python-fixtures, python-pbr, python-setuptools, python-six, python-testtools ... [native-inputs]: ... to here. --- gnu/packages/openstack.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/openstack.scm b/gnu/packages/openstack.scm index 7ae5421bba..780fb7f252 100644 --- a/gnu/packages/openstack.scm +++ b/gnu/packages/openstack.scm @@ -137,16 +137,16 @@ guidelines}.") (define-public python-mox3 (package (name "python-mox3") - (version "0.13.0") + (version "0.14.0") (source (origin (method url-fetch) (uri (pypi-uri "mox3" version)) (sha256 (base32 - "0hj57374r239cj1zbzpxw7mj0yfblz55jdfrc2p1h8j7xng0319j")))) + "0njmh40i1lg5mzn9hc2ax83adj6dli455j6xifilrw27c4wlkjzx")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-fixtures" ,python-fixtures) ("python-pbr" ,python-pbr) ("python-setuptools" ,python-setuptools) @@ -156,11 +156,14 @@ guidelines}.") (synopsis "Mock object framework for Python") (description "Mox3 is an unofficial port of the Google mox framework -(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible -with mox as possible, but small enhancements have been made. The library was +(http://code.google.com/p/pymox/) to Python 3. It was meant to be as compatible +with mox as possible, but small enhancements have been made. The library was tested on Python version 3.2, 2.7 and 2.6.") (license asl2.0))) +(define-public python2-mox3 + (package-with-python2 python-mox3)) + (define-public python-os-client-config (package (name "python-os-client-config") @@ -197,9 +200,6 @@ tested on Python version 3.2, 2.7 and 2.6.") (define-public python2-os-client-config (package-with-python2 python-os-client-config)) -(define-public python2-mox3 - (package-with-python2 python-mox3)) - (define-public python-os-testr (package (name "python-os-testr") -- cgit 1.4.1 From dc9bdb1e2730589ff7c2ec5f1e601f4262eac9d6 Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 18 Apr 2016 21:36:42 +0200 Subject: gnu: Add acpi. * gnu/packages/linux.scm (acpi): New variable. --- gnu/packages/linux.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index d554ecc17a..fbbefbec1d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Tobias Geerinckx-Rice ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016 Raymond Nicholson +;;; Copyright © 2016 Mathieu Lirzin ;;; ;;; This file is part of GNU Guix. ;;; @@ -2104,6 +2105,26 @@ WLAN, Bluetooth and mobile broadband.") (license (license:non-copyleft "file://COPYING" "See COPYING in the distribution.")))) +(define-public acpi + (package + (name "acpi") + (version "1.7") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/acpiclient/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "01ahldvf0gc29dmbd5zi4rrnrw2i1ajnf30sx2vyaski3jv099fp")))) + (build-system gnu-build-system) + (home-page "http://acpiclient.sourceforge.net") + (synopsis "Display information on ACPI devices") + (description "@code{acpi} attempts to replicate the functionality of the +\"old\" @code{apm} command on ACPI systems, including battery and thermal +information. It does not support ACPI suspending, only displays information +about ACPI devices.") + (license license:gpl2+))) + (define-public acpid (package (name "acpid") -- cgit 1.4.1 From a2cc073aa282ac9e7863e0cc980eedbe9fba8acb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 22 Apr 2016 21:32:14 -0400 Subject: gnu: linux-libre: Update to 4.5.2. * gnu/packages/linux.scm (linux-libre): Update to 4.5.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index fbbefbec1d..49441e512f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -222,7 +222,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.5.1") + (let* ((version "4.5.2") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -300,7 +300,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (uri (linux-libre-urls version)) (sha256 (base32 - "1x621kvaf842bzpgglfl31zi74ny9w9jgvmkz3z6m3708n8clrdh")))) + "0mw8n5pms33k3m3aamlryahrcbhfnqbzvkglgw3j4dhaja3hwr7n")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit 1.4.1 From 01963db007663cb13f4b97ac1ad9ee05784277cb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 22 Apr 2016 21:33:10 -0400 Subject: gnu: linux-libre-4.4: Update to 4.4.8. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.8. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 49441e512f..6d9f69ade0 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -337,13 +337,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.4 (package (inherit linux-libre) - (version "4.4.7") + (version "4.4.8") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "031wh2k204zvshira28bf33sk1bbk19ilgqmkvkwjp6spk5wmvpq")))) + "0zyhdy01gjglgmlrmpqa1sdnm0z91mzwspbksj6zvcamczb8ml53")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit 1.4.1 From c1ed117941f620d32ef13eaf2ddcb03fc4b6397d Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 22 Apr 2016 21:33:59 -0400 Subject: gnu: linux-libre-4.1: Update to 4.1.22. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.22. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 6d9f69ade0..a26e641342 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -354,13 +354,13 @@ It has been modified to remove all non-free binary blobs.") (define-public linux-libre-4.1 (package (inherit linux-libre) - (version "4.1.21") + (version "4.1.22") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "1gfzwiinpxzhqb5xi7b1iv7ay96nrjlhia6bvcyq8ffkx7a2r715")))) + "0bn6qba7q4i3yn3zx2p56gawnb2gczrf4vyrjggirj4d60gvng7y")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit 1.4.1 From bd2048585a948edc26b27db3a3f55554cc546398 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 22 Apr 2016 21:35:06 -0400 Subject: gnu: webkitgtk: Update to 2.12.1. * gnu/packages/webkit.scm (webkitgtk): Update to 2.12.1. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 473d2e7cdc..c52a3af540 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.12.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (string-append "http://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "19jyvyw8ss4bacq3f7ybdb0r16r84q12j2bpciyj9jqvzpw091m6")))) + "15p8dbxf8psmzddc21rcgds3b4jg725wcn5jppn3qgsm4x92s6jv")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests -- cgit 1.4.1 From 80627f51f0238b9450745f4e642172d059ca5bb5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 22 Apr 2016 21:36:03 -0400 Subject: gnu: webkitgtk-2.4: Update to 2.4.11. * gnu/packages/webkit.scm (webkitgtk-2.4): Update to 2.4.11. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index c52a3af540..67384b8fed 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -136,14 +136,14 @@ HTML/CSS applications to full-fledged web browsers.") (define-public webkitgtk-2.4 (package (inherit webkitgtk) (name "webkitgtk") - (version "2.4.10") + (version "2.4.11") (source (origin (method url-fetch) (uri (string-append "http://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "0566yx5lxi40g0wpvmwbc8y76akd7zph7flrjdp2vv3z1nra9z9k")))) + "1xsvnvyvlywwyf6m9ainpsg87jkxjmd37q6zgz9cxb7v3c2ym2jq")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit 1.4.1 From baa8be83e90e1c61aedcaad3a542316117a568ea Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 19 Apr 2016 23:26:31 -0400 Subject: gnu: imlib2: Update to 1.4.8. gnu/packages/image.scm (imlib2): Update to 1.4.8. --- gnu/packages/image.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index ba7c8c39ba..91d6af6fcc 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -459,7 +459,7 @@ compose, and analyze GIF images.") (define-public imlib2 (package (name "imlib2") - (version "1.4.7") + (version "1.4.8") (source (origin (method url-fetch) (uri (string-append @@ -467,7 +467,7 @@ compose, and analyze GIF images.") version ".tar.bz2")) (sha256 (base32 - "00a7jbwj10x3jcvxa5rplnkvhv35gv9rb400zy636zdd4g737mrm")))) + "0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) -- cgit 1.4.1 From e993fb849321b740c43d02c922101287426420fa Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 19 Apr 2016 23:29:08 -0400 Subject: gnu: imlib2: Fix CVE-2016-4024. * gnu/packages/patches/imlib2-CVE-2016-4024.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/image.scm (imlib2): Use it. --- gnu/local.mk | 1 + gnu/packages/image.scm | 3 +- gnu/packages/patches/imlib2-CVE-2016-4024.patch | 52 +++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/imlib2-CVE-2016-4024.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 1b54b3a855..74d898c116 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -531,6 +531,7 @@ dist_patch_DATA = \ 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/imlib2-CVE-2016-4024.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2008-3520.patch \ diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 91d6af6fcc..db64ea0c9b 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -467,7 +467,8 @@ compose, and analyze GIF images.") version ".tar.bz2")) (sha256 (base32 - "0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9")))) + "0xxhgkd1axlcmf3kp1d7naiygparpg8l3sg3d263rhl2z0gm7aw9")) + (patches (search-patches "imlib2-CVE-2016-4024.patch")))) (build-system gnu-build-system) (native-inputs `(("pkgconfig" ,pkg-config))) diff --git a/gnu/packages/patches/imlib2-CVE-2016-4024.patch b/gnu/packages/patches/imlib2-CVE-2016-4024.patch new file mode 100644 index 0000000000..c4f1f21b28 --- /dev/null +++ b/gnu/packages/patches/imlib2-CVE-2016-4024.patch @@ -0,0 +1,52 @@ +Fix CVE-2016-4024 (integer overflow in lib/image.h). + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-4024 + +Upstream source: +https://git.enlightenment.org/legacy/imlib2.git/commit/?id=7eba2e4c8ac0e20838947f10f29d0efe1add8227 + +From 7eba2e4c8ac0e20838947f10f29d0efe1add8227 Mon Sep 17 00:00:00 2001 +From: "Yuriy M. Kaminskiy" +Date: Wed, 6 Apr 2016 03:34:01 +0300 +Subject: Fix integer overflow resulting in insufficient heap allocation + +IMAGE_DIMENSIONS_OK ensures that image width and height are less then +46340, so that maximum number of pixels is ~2**31. + +Unfortunately, there are a lot of code that allocates image data with +something like + + malloc(w * h * sizeof(DATA32)); + +Obviously, on 32-bit machines this results in integer overflow, +insufficient heap allocation, with [massive] out-of-bounds heap +overwrite. +Either X_MAX should be reduced to 32767, or (w)*(h) should be checked to +not exceed ULONG_MAX/sizeof(DATA32). + +Security implications: +*) for 32-bit machines: insufficient heap allocation and heap overwrite +in many image loaders, with escalation potential to remote code +execution; +*) for 64-bit machines: it seems, no impact. +--- + src/lib/image.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/lib/image.h b/src/lib/image.h +index e9eb678..5fae6ed 100644 +--- a/src/lib/image.h ++++ b/src/lib/image.h +@@ -188,7 +188,8 @@ void __imlib_SaveImage(ImlibImage * im, const char *file, + + /* The maximum pixmap dimension is 65535. */ + /* However, for now, use 46340 (46340^2 < 2^31) to avoid buffer overflow issues. */ +-#define X_MAX_DIM 46340 ++/* Reduced further to 32767, so that (w * h * sizeof(DATA32)) won't exceed ULONG_MAX */ ++#define X_MAX_DIM 32767 + + #define IMAGE_DIMENSIONS_OK(w, h) \ + ( ((w) > 0) && ((h) > 0) && ((w) < X_MAX_DIM) && ((h) < X_MAX_DIM) ) +-- +cgit v0.12 + -- cgit 1.4.1 From 0118c6ab62ac90136fe877ded67869c104440ffd Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Apr 2016 02:49:15 -0400 Subject: gnu: inkscape: Fix build with glibmm-2.48. * gnu/packages/patches/inkscape-drop-wait-for-targets.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/inkscape.scm (inkscape)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/inkscape.scm | 7 ++- .../patches/inkscape-drop-wait-for-targets.patch | 68 ++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/inkscape-drop-wait-for-targets.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 74d898c116..c49e2313ab 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -532,6 +532,7 @@ dist_patch_DATA = \ gnu/packages/patches/ilmbase-fix-tests.patch \ gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/imlib2-CVE-2016-4024.patch \ + gnu/packages/patches/inkscape-drop-wait-for-targets.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2008-3520.patch \ diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index b09e84ee08..16f83fc474 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2014, 2016 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,7 +52,10 @@ version ".tar.gz")) (sha256 (base32 - "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")))) + "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")) + (patch-flags '("-p0")) + (patches + (search-patches "inkscape-drop-wait-for-targets.patch")))) (build-system gnu-build-system) (inputs `(("aspell" ,aspell) diff --git a/gnu/packages/patches/inkscape-drop-wait-for-targets.patch b/gnu/packages/patches/inkscape-drop-wait-for-targets.patch new file mode 100644 index 0000000000..3dbe6641e2 --- /dev/null +++ b/gnu/packages/patches/inkscape-drop-wait-for-targets.patch @@ -0,0 +1,68 @@ +Copied from Fedora. + +http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e + +=== modified file 'src/ui/clipboard.cpp' +--- src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000 ++++ src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000 +@@ -146,8 +146,6 @@ + void _setClipboardColor(guint32); + void _userWarn(SPDesktop *, char const *); + +- void _inkscape_wait_for_targets(std::list &); +- + // private properites + SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it + Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node +@@ -1302,9 +1300,7 @@ + */ + Glib::ustring ClipboardManagerImpl::_getBestTarget() + { +- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets() +- std::list targets; // = _clipboard->wait_for_targets(); +- _inkscape_wait_for_targets(targets); ++ std::list targets = _clipboard->wait_for_targets(); + + // clipboard target debugging snippet + /* +@@ -1456,39 +1452,6 @@ + desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg); + } + +- +-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see +-// +-// https://bugs.launchpad.net/inkscape/+bug/296778 +-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html +-// +-// for details. Until this has been fixed upstream we will use our own implementation +-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc. +-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list &listTargets) +-{ +- //Get a newly-allocated array of atoms: +- GdkAtom* targets = NULL; +- gint n_targets = 0; +- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets ); +- if (!test || (targets == NULL)) { +- return; +- } +- +- //Add the targets to the C++ container: +- for (int i = 0; i < n_targets; i++) +- { +- //Convert the atom to a string: +- gchar* const atom_name = gdk_atom_name(targets[i]); +- +- Glib::ustring target; +- if (atom_name) { +- target = Glib::ScopedPtr(atom_name).get(); //This frees the gchar*. +- } +- +- listTargets.push_back(target); +- } +-} +- + /* ####################################### + ClipboardManager class + ####################################### */ + -- cgit 1.4.1 From 71a8d3b67c1e85372f0c329b64dbebf12e2b4612 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 23 Apr 2016 19:47:50 +0800 Subject: gnu: geoclue: Update to 2.4.3. * gnu/packages/gnome.scm (geoclue): Update to 2.4.3. --- gnu/packages/gnome.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4272493872..58de21294c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2355,7 +2355,7 @@ output devices.") (define-public geoclue (package (name "geoclue") - (version "2.2.0") + (version "2.4.3") (source (origin (method url-fetch) @@ -2364,7 +2364,7 @@ output devices.") name "-" version ".tar.xz")) (sha256 (base32 - "0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454")) + "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd")) (patches (search-patches "geoclue-config.patch")))) (build-system glib-or-gtk-build-system) (arguments @@ -2385,7 +2385,8 @@ output devices.") `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs - `(("glib" ,glib) + `(("avahi" ,avahi) + ("glib" ,glib) ("json-glib" ,json-glib) ("libsoup" ,libsoup))) (home-page "http://freedesktop.org/wiki/Software/GeoClue/") -- cgit 1.4.1 From 63e7796f626ee40b8259ce56b93f5596e8a1f8c5 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 23 Apr 2016 20:10:01 +0800 Subject: gnu: gjs: Skip test_utf8_inout test. * gnu/packages/gnome.scm (gjs)[arguments]: Skip test_utf8_inout test. --- gnu/packages/gnome.scm | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 58de21294c..3bd5c95e22 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3917,6 +3917,12 @@ configuration program to choose applications starting on login.") (lambda _ ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0") + + ;; XXX: fails with: + ;; Failed to convert UTF-8 string to JS string: ... + ;; TODO: actually fix it. + (substitute* "installed-tests/js/testEverythingBasic.js" + ((".*test_utf8_inout.*") "")) #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources -- cgit 1.4.1 From c4eefd63fac3aff1d39e59af1668701630558179 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Apr 2016 13:12:49 -0400 Subject: Revert "gnu: gjs: Skip test_utf8_inout test." This reverts commit 63e7796f626ee40b8259ce56b93f5596e8a1f8c5. --- gnu/packages/gnome.scm | 6 ------ 1 file changed, 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 3bd5c95e22..58de21294c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3917,12 +3917,6 @@ configuration program to choose applications starting on login.") (lambda _ ;; For the missing /etc/machine-id. (setenv "DBUS_FATAL_WARNINGS" "0") - - ;; XXX: fails with: - ;; Failed to convert UTF-8 string to JS string: ... - ;; TODO: actually fix it. - (substitute* "installed-tests/js/testEverythingBasic.js" - ((".*test_utf8_inout.*") "")) #t))))) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-resources -- cgit 1.4.1 From e4a7039e4646989ff77bc5d998f3421252f6b7cb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Apr 2016 13:12:51 -0400 Subject: Revert "gnu: geoclue: Update to 2.4.3." This reverts commit 71a8d3b67c1e85372f0c329b64dbebf12e2b4612. --- gnu/packages/gnome.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 58de21294c..4272493872 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2355,7 +2355,7 @@ output devices.") (define-public geoclue (package (name "geoclue") - (version "2.4.3") + (version "2.2.0") (source (origin (method url-fetch) @@ -2364,7 +2364,7 @@ output devices.") name "-" version ".tar.xz")) (sha256 (base32 - "0pk07k65dlw37nz8z5spksivsv5nh96xmbi336rf2yfxf2ldpadd")) + "0inlqx0zar498fhi9hh92p2g4kp8qy3zdl4z3vw6bjwp9w6xx454")) (patches (search-patches "geoclue-config.patch")))) (build-system glib-or-gtk-build-system) (arguments @@ -2385,8 +2385,7 @@ output devices.") `(("pkg-config" ,pkg-config) ("intltool" ,intltool))) (inputs - `(("avahi" ,avahi) - ("glib" ,glib) + `(("glib" ,glib) ("json-glib" ,json-glib) ("libsoup" ,libsoup))) (home-page "http://freedesktop.org/wiki/Software/GeoClue/") -- cgit 1.4.1 From 267061ba0bc6df0d61081b97d650d95acec8178a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Apr 2016 13:12:53 -0400 Subject: Revert "gnu: inkscape: Fix build with glibmm-2.48." This reverts commit 0118c6ab62ac90136fe877ded67869c104440ffd. --- gnu/local.mk | 1 - gnu/packages/inkscape.scm | 7 +-- .../patches/inkscape-drop-wait-for-targets.patch | 68 ---------------------- 3 files changed, 2 insertions(+), 74 deletions(-) delete mode 100644 gnu/packages/patches/inkscape-drop-wait-for-targets.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index c49e2313ab..74d898c116 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -532,7 +532,6 @@ dist_patch_DATA = \ gnu/packages/patches/ilmbase-fix-tests.patch \ gnu/packages/patches/imagemagick-test-segv.patch \ gnu/packages/patches/imlib2-CVE-2016-4024.patch \ - gnu/packages/patches/inkscape-drop-wait-for-targets.patch \ gnu/packages/patches/irrlicht-mesa-10.patch \ gnu/packages/patches/jasper-CVE-2007-2721.patch \ gnu/packages/patches/jasper-CVE-2008-3520.patch \ diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index 16f83fc474..b09e84ee08 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 John Darrington -;;; Copyright © 2014, 2016 Mark H Weaver +;;; Copyright © 2014 Mark H Weaver ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,10 +52,7 @@ version ".tar.gz")) (sha256 (base32 - "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")) - (patch-flags '("-p0")) - (patches - (search-patches "inkscape-drop-wait-for-targets.patch")))) + "086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc")))) (build-system gnu-build-system) (inputs `(("aspell" ,aspell) diff --git a/gnu/packages/patches/inkscape-drop-wait-for-targets.patch b/gnu/packages/patches/inkscape-drop-wait-for-targets.patch deleted file mode 100644 index 3dbe6641e2..0000000000 --- a/gnu/packages/patches/inkscape-drop-wait-for-targets.patch +++ /dev/null @@ -1,68 +0,0 @@ -Copied from Fedora. - -http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e - -=== modified file 'src/ui/clipboard.cpp' ---- src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000 -+++ src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000 -@@ -146,8 +146,6 @@ - void _setClipboardColor(guint32); - void _userWarn(SPDesktop *, char const *); - -- void _inkscape_wait_for_targets(std::list &); -- - // private properites - SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it - Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node -@@ -1302,9 +1300,7 @@ - */ - Glib::ustring ClipboardManagerImpl::_getBestTarget() - { -- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets() -- std::list targets; // = _clipboard->wait_for_targets(); -- _inkscape_wait_for_targets(targets); -+ std::list targets = _clipboard->wait_for_targets(); - - // clipboard target debugging snippet - /* -@@ -1456,39 +1452,6 @@ - desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg); - } - -- --// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see --// --// https://bugs.launchpad.net/inkscape/+bug/296778 --// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html --// --// for details. Until this has been fixed upstream we will use our own implementation --// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc. --void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list &listTargets) --{ -- //Get a newly-allocated array of atoms: -- GdkAtom* targets = NULL; -- gint n_targets = 0; -- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets ); -- if (!test || (targets == NULL)) { -- return; -- } -- -- //Add the targets to the C++ container: -- for (int i = 0; i < n_targets; i++) -- { -- //Convert the atom to a string: -- gchar* const atom_name = gdk_atom_name(targets[i]); -- -- Glib::ustring target; -- if (atom_name) { -- target = Glib::ScopedPtr(atom_name).get(); //This frees the gchar*. -- } -- -- listTargets.push_back(target); -- } --} -- - /* ####################################### - ClipboardManager class - ####################################### */ - -- cgit 1.4.1 From e969b140a4382fd91514439a57749379cf00f86b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 23 Apr 2016 13:13:53 -0400 Subject: Revert "Merge branch 'gnome-updates'" This reverts commit 63655d459e28b09cd8d58743dae14b3460f6c9da, reversing changes made to 80627f51f0238b9450745f4e642172d059ca5bb5. --- gnu/local.mk | 5 +- gnu/packages/fontutils.scm | 29 ++- gnu/packages/glib.scm | 138 +++------- gnu/packages/gnome.scm | 286 +++++++++++---------- gnu/packages/gtk.scm | 80 +++--- gnu/packages/patches/glib-tests-desktop.patch | 138 ++++++++++ gnu/packages/patches/glib-tests-gapplication.patch | 28 ++ gnu/packages/patches/glib-tests-homedir.patch | 59 +++++ gnu/packages/patches/glib-tests-prlimit.patch | 14 + gnu/packages/patches/glib-tests-timer.patch | 11 + gnu/packages/patches/gtk2-theme-paths.patch | 41 --- gnu/packages/pdf.scm | 16 +- gnu/packages/xdisorg.scm | 4 +- 13 files changed, 512 insertions(+), 337 deletions(-) create mode 100644 gnu/packages/patches/glib-tests-desktop.patch create mode 100644 gnu/packages/patches/glib-tests-gapplication.patch create mode 100644 gnu/packages/patches/glib-tests-homedir.patch create mode 100644 gnu/packages/patches/glib-tests-prlimit.patch delete mode 100644 gnu/packages/patches/gtk2-theme-paths.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 74d898c116..3cdf5e45ed 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -489,7 +489,11 @@ dist_patch_DATA = \ gnu/packages/patches/ghostscript-CVE-2015-3228.patch \ gnu/packages/patches/ghostscript-runpath.patch \ gnu/packages/patches/glib-networking-ssl-cert-file.patch \ + gnu/packages/patches/glib-tests-desktop.patch \ + gnu/packages/patches/glib-tests-homedir.patch \ + gnu/packages/patches/glib-tests-prlimit.patch \ gnu/packages/patches/glib-tests-timer.patch \ + gnu/packages/patches/glib-tests-gapplication.patch \ gnu/packages/patches/glibc-CVE-2015-7547.patch \ gnu/packages/patches/glibc-bootstrap-system.patch \ gnu/packages/patches/glibc-hurd-extern-inline.patch \ @@ -517,7 +521,6 @@ dist_patch_DATA = \ gnu/packages/patches/guile-relocatable.patch \ gnu/packages/patches/guile-rsvg-pkgconfig.patch \ gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ - gnu/packages/patches/gtk2-theme-paths.patch \ gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \ gnu/packages/patches/hop-bigloo-4.0b.patch \ diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 05adc71212..5f6ff15935 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -46,21 +46,23 @@ (define-public freetype (package (name "freetype") - (version "2.6.3") + (version "2.6") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/freetype/freetype-" version ".tar.bz2")) (sha256 (base32 - "18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip")))) + "0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4")))) (build-system gnu-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (propagated-inputs - ;; These are all in the Requires.private field of freetype2.pc. - ;; XXX: add harfbuzz. - `(("libpng" ,libpng) - ("zlib" ,zlib))) + (arguments + `(#:phases + ;; This should not be necessary; reported upstream as + ;; https://savannah.nongnu.org/bugs/index.php?44261 + (alist-cons-before + 'configure 'set-paths + (lambda _ + (setenv "CONFIG_SHELL" (which "bash"))) + %standard-phases))) (synopsis "Font rendering library") (description "Freetype is a library that can be used by applications to access the @@ -359,15 +361,16 @@ applications should be.") (define-public graphite2 (package (name "graphite2") - (version "1.3.8") + (version "1.3.6") (source (origin (method url-fetch) - (uri (string-append "https://github.com/silnrsi/graphite/releases/" - "download/" version "/" name "-" version ".tgz")) + (uri (string-append "https://github.com/silnrsi/graphite/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz")))) + "1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s")))) (build-system cmake-build-system) (native-inputs `(("python" ,python-2) ; because of "import imap" in tests diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 70020520eb..e7e9df8dff 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -35,7 +35,6 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gtk) #:use-module (gnu packages libffi) - #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -60,7 +59,7 @@ (define dbus (package (name "dbus") - (version "1.10.8") + (version "1.10.0") (source (origin (method url-fetch) (uri (string-append @@ -68,7 +67,7 @@ version ".tar.gz")) (sha256 (base32 - "0560y3hxpgh346w6avcrcz79c8ansmn771y5xpcvvlr6m8mx5wxs")) + "0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx")) (patches (search-patches "dbus-helper-search-path.patch")))) (build-system gnu-build-system) (arguments @@ -130,7 +129,7 @@ shared NFS home directories.") (define glib (package (name "glib") - (version "2.48.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" @@ -138,14 +137,16 @@ shared NFS home directories.") name "-" version ".tar.xz")) (sha256 (base32 - "0d3w2hblrw7vvpx60l1kbvb830ygn3v8zhwdz65cc5593j9ycjvl")) - (patches (search-patches "glib-tests-timer.patch")))) + "1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss")) + (patches (search-patches "glib-tests-homedir.patch" + "glib-tests-desktop.patch" + "glib-tests-prlimit.patch" + "glib-tests-timer.patch" + "glib-tests-gapplication.patch")))) (build-system gnu-build-system) (outputs '("out" ; everything "bin" ; glib-mkenums, gtester, etc.; depends on Python "doc")) ; 20 MiB of GTK-Doc reference - (propagated-inputs - `(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc (inputs `(("coreutils" ,coreutils) ("libffi" ,libffi) @@ -159,87 +160,29 @@ shared NFS home directories.") ("perl" ,perl) ; needed by GIO tests ("bash" ,bash))) (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'build 'pre-build - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; For tests/gdatetime.c. - (setenv "TZDIR" - (string-append (assoc-ref inputs "tzdata") - "/share/zoneinfo")) - - ;; Some tests want write access there. - (setenv "HOME" (getcwd)) - (setenv "XDG_CACHE_HOME" (getcwd)) - - (substitute* '("glib/gspawn.c" - "glib/tests/utils.c" - "tests/spawn-test.c") - (("/bin/sh") - (string-append (assoc-ref inputs "bash") "/bin/sh"))))) - (add-before 'check 'disable-failing-tests - (lambda _ - (let ((disable - (lambda (test-file test-paths) - (define pattern+procs - (map (lambda (test-path) - (cons - ;; XXX: only works for single line statements. - (format #f "g_test_add_func.*\"~a\".*" test-path) - (const ""))) - test-paths)) - (substitute test-file pattern+procs))) - (failing-tests - '(("glib/tests/thread.c" - (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 - ;; as found on hydra.gnu.org, and strace(1) doesn't - ;; recognize it. - "/thread/thread4")) - - ("glib/tests/timer.c" - (;; fails if compiler optimizations are enabled, which they - ;; are by default. - "/timer/stop")) - - ("gio/tests/gapplication.c" - (;; XXX: proven to be unreliable. See: - ;; - ;; - "/gapplication/quit" - - ;; XXX: fails randomly for unknown reason. See: - ;; - "/gapplication/local-actions")) - - ("gio/tests/contenttype.c" - (;; XXX: requires shared-mime-info. - "/contenttype/guess" - "/contenttype/subtype" - "/contenttype/list" - "/contenttype/icon" - "/contenttype/symbolic-icon" - "/contenttype/tree")) - - ("gio/tests/appinfo.c" - (;; XXX: requires update-desktop-database. - "/appinfo/associations")) - - ("gio/tests/desktop-app-info.c" - (;; XXX: requires update-desktop-database. - "/desktop-app-info/delete" - "/desktop-app-info/default" - "/desktop-app-info/fallback" - "/desktop-app-info/lastused" - "/desktop-app-info/search")) - - ("gio/tests/gdbus-peer.c" - (;; Requires /etc/machine-id. - "/gdbus/codegen-peer-to-peer")) - - ("gio/tests/gdbus-unix-addresses.c" - (;; Requires /etc/machine-id. - "/gdbus/x11-autolaunch"))))) - (and-map (lambda (x) (apply disable x)) failing-tests))))) + '(#:phases (alist-cons-before + 'build 'pre-build + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; For tests/gdatetime.c. + (setenv "TZDIR" + (string-append (assoc-ref inputs "tzdata") + "/share/zoneinfo")) + + ;; Some tests want write access there. + (setenv "XDG_CACHE_HOME" (getcwd)) + + (substitute* '("glib/gspawn.c" + "glib/tests/utils.c" + "tests/spawn-test.c") + (("/bin/sh") + (string-append (assoc-ref inputs "bash") "/bin/sh"))) + + ;; Disable a test that requires dbus. + (substitute* "gio/tests/gdbus-serialization.c" + (("g_test_add_func \ +\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all) + (string-append "/* " all " */")))) + %standard-phases) ;; Note: `--docdir' and `--htmldir' are not honored, so work around it. #:configure-flags (list (string-append "--with-html-dir=" @@ -275,14 +218,14 @@ dynamic loading, and an object system.") (define gobject-introspection (package (name "gobject-introspection") - (version "1.48.0") + (version "1.46.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" "gobject-introspection/" (version-major+minor version) "/gobject-introspection-" version ".tar.xz")) (sha256 - (base32 "0xsqwxhfqzr79av89mg766kxpb2i41bd0vwspk01xjdzrnn5l9zs")) + (base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36")) (modules '((guix build utils))) (snippet '(substitute* "tools/g-ir-tool-template.in" @@ -294,6 +237,7 @@ dynamic loading, and an object system.") (build-system gnu-build-system) (inputs `(("bison" ,bison) + ("cairo" ,cairo) ("flex" ,flex) ("glib" ,glib) ("python-2" ,python-2))) @@ -451,7 +395,7 @@ by GDBus included in Glib.") (define libsigc++ (package (name "libsigc++") - (version "2.8.0") + (version "2.6.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsigc++/" @@ -459,7 +403,7 @@ by GDBus included in Glib.") name "-" version ".tar.xz")) (sha256 (base32 - "0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp")))) + "06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("m4" ,m4))) @@ -478,7 +422,7 @@ has an ease of use unmatched by other C++ callback libraries.") (define glibmm (package (name "glibmm") - (version "2.48.1") + (version "2.46.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glibmm/" @@ -486,7 +430,7 @@ has an ease of use unmatched by other C++ callback libraries.") "/glibmm-" version ".tar.xz")) (sha256 (base32 - "1pvw2mrm03p51p03179rb6fk9p42iykkwj1jcdv7jr265xymy8nw")))) + "1kw65mlabwdjw86jybxslncbnnx40hcx4z6xpq9i4ymjvsnm91n7")))) (build-system gnu-build-system) (arguments `(#:phases (alist-cons-before @@ -559,7 +503,7 @@ useful for C++.") (define-public python-pygobject (package (name "python-pygobject") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) @@ -568,7 +512,7 @@ useful for C++.") "/pygobject-" version ".tar.xz")) (sha256 (base32 - "0ikzh3l7g1gjh8jj8vg6mdvrb25svp63gxcam4m0i404yh0lgari")))) + "1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw")))) (build-system gnu-build-system) (native-inputs `(("which" ,which) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 4272493872..0fd1d5bb29 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -188,7 +188,7 @@ commonly used macros.") (define-public gnome-desktop (package (name "gnome-desktop") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) @@ -197,7 +197,7 @@ commonly used macros.") name "-" version ".tar.xz")) (sha256 (base32 - "13dhvax8fy9qkna4dphb7b5fxn3dsk818p3q8b92a7nrrwcgiiqq")))) + "0avpmyhzz5b3pyfpkp8iq5ym5r5w7zs3a396hqkdpdsiym0vrazc")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -265,7 +265,7 @@ and keep up to date translations of documentation.") (define-public gcr (package (name "gcr") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -273,7 +273,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "0ydk9dzxx6snxza7j5ps8x932hbr3x1b8hhcaqjq4w4admi2qmwh")))) + "006f6xbd3jppkf9avg83mpqdld5d0z6mr0sm81lql52mmyjnvlfl")))) (build-system gnu-build-system) (arguments '(#:tests? #f ;25 of 598 tests fail because /var/lib/dbus/machine-id does @@ -342,7 +342,7 @@ GNOME Desktop.") (define-public gnome-keyring (package (name "gnome-keyring") - (version "3.20.0") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -350,7 +350,7 @@ GNOME Desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "16gcwwcg91ipxjmiyi4c4njvnxixmv1i278p0bilc3lafk6ww5xw")))) + "167dq1yvm080g5s38hqjl0xx5cgpkcl1xqy9p5sxmgc92zb0srrz")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;48 of 603 tests fail because /var/lib/dbus/machine-id does @@ -410,7 +410,7 @@ forgotten when the session ends.") (define-public evince (package (name "evince") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -418,7 +418,7 @@ forgotten when the session ends.") name "-" version ".tar.xz")) (sha256 (base32 - "1052lm4i5qq27sgk6ck5xc1cxh0qx4zzhifjhmzjlv38afj5i0yg")))) + "0cccmbvl1b6d2976642iyfr8g3r69zf3mzl2ln6vjvvdbrv26l3v")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags '("--disable-nautilus") @@ -474,7 +474,7 @@ on the GNOME Desktop with a single simple application.") (define-public gsettings-desktop-schemas (package (name "gsettings-desktop-schemas") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) @@ -483,7 +483,7 @@ on the GNOME Desktop with a single simple application.") name "-" version ".tar.xz")) (sha256 (base32 - "1hfrqqsmqscgbnaikmyq4yq8h72554wdg13algh5bf8a7i9ip92m")))) + "1szc857f46spdhrbnq9ci3kwfqg5vwpikbf0hprq6vd94rr369xs")))) (build-system gnu-build-system) (inputs `(("glib" ,glib))) @@ -599,7 +599,7 @@ update-desktop-database: updates the database containing a cache of MIME types (define-public adwaita-icon-theme (package (inherit gnome-icon-theme) (name "adwaita-icon-theme") - (version "3.20") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -607,19 +607,19 @@ update-desktop-database: updates the database containing a cache of MIME types name "-" version ".tar.xz")) (sha256 (base32 - "0ddfwwqx8s63qbqimmbb015lqsab4s0rvy1j81jdsh7k95rqh2ks")))))) + "0n0fqlg55krw8pgn4z2vxnxh65lyvcydqkrr7klqxp8z00kfg72y")))))) (define-public shared-mime-info (package (name "shared-mime-info") - (version "1.6") + (version "1.2") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/~hadess/" "shared-mime-info-" version ".tar.xz")) (sha256 (base32 - "0k637g047gci8g69bg4g19akylpfraxm40hd30j3i4v7cidziy5j")))) + "0y5vi0vr6rbhvfzcfg57cfskn362bpvcpca9cy598nmr87i6lld5")))) (build-system gnu-build-system) (arguments ;; The build system appears not to be parallel-safe. @@ -697,7 +697,7 @@ some form of information without getting in the user's way.") (define-public libpeas (package (name "libpeas") - (version "1.18.0") + (version "1.16.0") (source (origin (method url-fetch) @@ -706,7 +706,7 @@ some form of information without getting in the user's way.") name "-" version ".tar.xz")) (sha256 (base32 - "09jy2rwwgp0xx7cnypxl56m7zzxnj3j4v58xqjxjasf3chn88jdz")))) + "0kj5n5hz93xq7qdb2r7n86nibzwqjr88jxaih1fdbxv5rn7014xh")))) (build-system gnu-build-system) (inputs `(("atk" ,atk) @@ -760,7 +760,7 @@ API add-ons to make GTK+ widgets OpenGL-capable.") (define-public glade3 (package (name "glade") - (version "3.20.0") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -768,8 +768,8 @@ API add-ons to make GTK+ widgets OpenGL-capable.") name "-" version ".tar.xz")) (sha256 (base32 - "1zhqvhagy0m85p54jfiayfl0v9af7g0lj7glw8sfwh7cbp56vnc2")))) - (build-system glib-or-gtk-build-system) + "0lk4nvd5s8px9i0pbq7bncikgn2lpx7vjh787d3cvzpvwx3cxnzc")))) + (build-system gnu-build-system) (arguments `(#:tests? #f ; needs X, GL, and software rendering #:phases @@ -804,7 +804,7 @@ the GNOME desktop environment.") (define-public libcroco (package (name "libcroco") - (version "0.6.11") + (version "0.6.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -812,7 +812,7 @@ the GNOME desktop environment.") name "-" version ".tar.xz")) (sha256 (base32 - "0mm0wldbi40am5qn0nv7psisbg01k42rwzjxl3gv11l5jj554aqk")))) + "0w453f3nnkbkrly7spx5lx5pf6mwynzmd5qhszprq8amij2invpa")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -834,7 +834,7 @@ XML/CSS rendering engine.") (define-public libgsf (package (name "libgsf") - (version "1.14.36") + (version "1.14.34") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -842,7 +842,7 @@ XML/CSS rendering engine.") name "-" version ".tar.xz")) (sha256 (base32 - "0h19ssxzz0cmznwga2xy55kjibm24mwxqarnpd0w7xy0hrzm1dvi")))) + "0a5m1i5gp4m2z0cn2x1rrdm8wgrr04bzv65l8pgp6jipw13s9zph")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -867,7 +867,7 @@ dealing with different structured file formats.") (define-public librsvg (package (name "librsvg") - (version "2.40.15") + (version "2.40.13") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -875,7 +875,7 @@ dealing with different structured file formats.") name "-" version ".tar.xz")) (sha256 (base32 - "1x05vd2llpmskq3prkp7kbpmshmpp9whj4kfl99ybipf4fhw9jnr")))) + "014q7gz6mgfa7pfn0lr13qqv568ad8j1sw9d4vksnpazq0zajvjd")))) (build-system gnu-build-system) (arguments `(#:phases @@ -1339,7 +1339,14 @@ widgets built in the loading process.") name "-" version ".tar.bz2")) (sha256 (base32 - "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")))) + "129ka3nn8gx9dlfry17ib79azxk45wzfv5rgqzw6dwx2b5ns8phm")) + (modules '((guix build utils))) + (snippet + ;; Adapt to newer freetype. As the package is deprecated, there + ;; is no use in creating a patch and reporting it. + '(substitute* '("libgnomeprint/gnome-font-face.c" + "libgnomeprint/gnome-rfont.c") + (("freetype/") "freetype2/"))))) (build-system gnu-build-system) (inputs `(("popt" ,popt) @@ -1436,14 +1443,14 @@ controls using the Bonobo component framework.") (define-public libwnck (package (name "libwnck") - (version "3.14.1") + (version "3.14.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "1ymya8gkjygvg0i901wr3q6ihfqxx5yf4g4pb6fag2iw8af3qr5v")))) + (base32 "074jww04z8g9r1acndqap79wx4kbm3rpkf4lcg1v82b66iv0027m")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -1482,14 +1489,14 @@ Hints specification (EWMH).") (define-public goffice (package (name "goffice") - (version "0.10.28") + (version "0.10.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 - (base32 "12rsgxrixkfpk420gv026i74pnlgqjzsvm6vffrmih54w46hd3q6")))) + (base32 "0nmghi26dpjcw7knkviq031crhm0zjy4k650pv1jj3hb1fmhx9yd")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;4.1 MiB of gtk-doc @@ -1547,7 +1554,7 @@ Hints specification (EWMH).") (define-public gnumeric (package (name "gnumeric") - (version "1.12.28") + (version "1.12.24") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1555,7 +1562,7 @@ Hints specification (EWMH).") name "-" version ".tar.xz")) (sha256 (base32 - "1fsdp7r6fhc0m3fb4ly4xwh83v3hp2zrv9d0713g4lcy709svm02")))) + "0lcm8k0jb8rd5y4ii803f21nv8rx6gc3mmdlrj5h0rkkn9qm57f5")))) (build-system gnu-build-system) (arguments `(;; The gnumeric developers don't worry much about failing tests. @@ -1584,11 +1591,10 @@ Hints specification (EWMH).") ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("python" ,python-2) - ("python2-pygobject" ,python2-pygobject) + ("python2-pygobject" ,python2-pygobject-2) ("zlib" ,zlib))) (native-inputs - `(("bison" ,bison) - ("intltool" ,intltool) + `(("intltool" ,intltool) ("glib:bin" ,glib "bin") ("pkg-config" ,pkg-config))) (home-page "http://www.gnumeric.org") @@ -1606,7 +1612,7 @@ engineering.") (define-public gnome-themes-standard (package (name "gnome-themes-standard") - (version "3.20") + (version "3.18.0") (source (origin (method url-fetch) @@ -1615,7 +1621,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "1p1vvmzfky1ax3yv9ld10xgqwydhmglxpgq3skrfc4539nrq9phw")))) + "1jxss8kxszhf66vic9n1sagczm5amm0mgxpzyxyjna15q82fnip6")))) (build-system gnu-build-system) (inputs `(("gtk+" ,gtk+) @@ -1648,7 +1654,7 @@ engineering.") (define-public seahorse (package (name "seahorse") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) @@ -1657,7 +1663,7 @@ engineering.") version ".tar.xz")) (sha256 (base32 - "1py6fj19kb8aaxvg6yrpd0876azc2zjvis98aqz37a2lxmhp9c72")))) + "0rxnq47xcagmpqb63g49ay3lfiyjjnmmiay9yifx5jn406d8h32k")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) @@ -1684,7 +1690,7 @@ passwords in the GNOME keyring.") (define-public vala (package (name "vala") - (version "0.32.0") + (version "0.30.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1692,7 +1698,7 @@ passwords in the GNOME keyring.") name "-" version ".tar.xz")) (sha256 (base32 - "0vpvq403vdd25irvgk7zibz3nw4x4i17m0dgnns8j1q4vr7am8h7")))) + "1pyyhfw3zzbhxfscbn8xz70dg6vx0kh8gshzikpxczhg01xk7w31")))) (build-system gnu-build-system) (arguments '(#:phases @@ -1724,7 +1730,7 @@ libraries written in C.") (define-public vte (package (name "vte") - (version "0.44.0") + (version "0.42.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1732,16 +1738,8 @@ libraries written in C.") name "-" version ".tar.xz")) (sha256 (base32 - "1ahjxysiv38q91gfq2wddcbvndlggfr8ynls25m42pw83akv38wk")))) + "1832mrw2hhgjipbsfsv2fmdnwnar4rkx589ciz008bg8x908mscn")))) (build-system gnu-build-system) - (arguments - ;; XXX: fails to compile tests with the default flags. - ;; vteconv.cc:774:40: - ;; error: missing sentinel in function call [-Werror=format=] - ;; g_test_init (&argc, &argv, NULL); - ;; - ;; cc1plus: some warnings being treated as errors - '(#:configure-flags '("CXXFLAGS=-Wformat=0"))) (native-inputs `(("pkg-config" ,pkg-config) ("intltool" ,intltool) @@ -1808,7 +1806,7 @@ editors, IDEs, etc.") (define-public dconf (package (name "dconf") - (version "0.26.0") + (version "0.24.0") (source (origin (method url-fetch) (uri (string-append @@ -1817,7 +1815,7 @@ editors, IDEs, etc.") name "-" version ".tar.xz")) (sha256 (base32 - "1jaqsr1r0grpd25rbsc2v3vb0sc51lia9w31wlqswgqsncp2k0w6")))) + "1hpy6336f0pbkyranywm4872i5in0xn7jf40a66xdmzls77f0ws3")))) (build-system glib-or-gtk-build-system) (inputs `(("gtk+" ,gtk+) @@ -1862,7 +1860,7 @@ configuration storage systems.") (define-public json-glib (package (name "json-glib") - (version "1.2.0") + (version "1.0.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -1870,7 +1868,7 @@ configuration storage systems.") name "-" version ".tar.xz")) (sha256 (base32 - "1lx7p1c7cl21byvfgw92n8dhm09vi6qxrs0zkx9dg3y096zdzmlr")) + "1k85vvb2prmk8aa8hmr2rp9rnbhffjgnmr18b13g24xxnqy5kww0")) (modules '((guix build utils))) (snippet ;; Don't duplicate test names. @@ -1969,7 +1967,7 @@ library.") (define-public glib-networking (package (name "glib-networking") - (version "2.48.0") + (version "2.46.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/glib-networking/" @@ -1977,7 +1975,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "094hwgnaqm0c7ggyqc9rk2603k5r9vqs3f1d9vwpmfapww9367vs")) + "1cchmi08jpjypgmm9i7xzh5qfg2q5k61kry9ns8mhw3z44a440ym")) (patches (search-patches "glib-networking-ssl-cert-file.patch")))) (build-system gnu-build-system) @@ -2051,7 +2049,7 @@ libxml to ease remote use of the RESTful API.") (define-public libsoup (package (name "libsoup") - (version "2.54.0.1") + (version "2.52.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/libsoup/" @@ -2059,7 +2057,7 @@ libxml to ease remote use of the RESTful API.") name "-" version ".tar.xz")) (sha256 (base32 - "1q1qds87qya5cbx4jfcmf1v8fvb86p0wsjnhj246w0xxcq0r5r5d")))) + "0j6cnnpqqgnb9nj2r0j8j6898np4z503hrnpis7b4l5d8yhbq68f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2121,7 +2119,7 @@ and the GLib main loop, to integrate well with GNOME applications.") (define-public libsecret (package (name "libsecret") - (version "0.18.5") + (version "0.18.3") (source (origin (method url-fetch) (uri (string-append @@ -2130,7 +2128,7 @@ and the GLib main loop, to integrate well with GNOME applications.") name "-" version ".tar.xz")) (sha256 (base32 - "1cychxc3ff8fp857iikw0n2s13s2mhw2dn1mr632f7w3sn6vvrww")))) + "1jc4pw6pb5igwasj0ms1zx80w63c11myziz3ydj0cr5lb861vgzj")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -2169,7 +2167,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (define-public gnome-mines (package (name "gnome-mines") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) @@ -2178,7 +2176,7 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") name "-" version ".tar.xz")) (sha256 (base32 - "19khp4ckqbdgk6828gprxy52fsg8klf957dnwsin75nskk8whxbp")))) + "0izkcf81rji4dj9k0k93ij4lp5iza2bh6jwlcdhbjfv2xdw0f7ky")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -2186,7 +2184,16 @@ and other secrets. It communicates with the \"Secret Service\" using DBus.") (add-before 'configure 'patch-/bin/true (lambda _ (substitute* "configure" - (("/bin/true") (which "true")))))))) + (("/bin/true") (which "true"))))) + (add-after 'install 'wrap-pixbuf + ;; Use librsvg's loaders.cache to support SVG files. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (prog (string-append out "/bin/gnome-mines")) + (rsvg (assoc-ref inputs "librsvg")) + (pixbuf (find-files rsvg "^loaders\\.cache$"))) + (wrap-program prog + `("GDK_PIXBUF_MODULE_FILE" = ,pixbuf)))))))) (native-inputs `(("pkg-config" ,pkg-config) ("desktop-file-utils" ,desktop-file-utils) @@ -2241,7 +2248,7 @@ more fun.") (define-public gnome-terminal (package (name "gnome-terminal") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) @@ -2250,7 +2257,7 @@ more fun.") name "-" version ".tar.xz")) (sha256 (base32 - "0l21xcc2g56wkq83wq5wnrah2gwckqxnfgpqavhkrsd47jyzdrrg")))) + "1ylyv0mla2ypms7iyxndbdjvha0q9jzglb4mhfmqn9cm2gxc0day")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2400,7 +2407,7 @@ permission from user.") (define-public geocode-glib (package (name "geocode-glib") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/geocode-glib/" @@ -2408,7 +2415,7 @@ permission from user.") name "-" version ".tar.xz")) (sha256 (base32 - "1fmn3gmifq8jbgnpv8jj33n4glpb5djjrfk0l9fak0cliqin88jz")))) + "0pa9cgndycynipc6z8wzbvn2fi89ndf2gpqzm9m6krp3d7az1dwg")))) (build-system gnu-build-system) (arguments `(;; The tests want to write to $HOME/.cache/geocode-glib, which doesn't @@ -2491,7 +2498,7 @@ service via the system message bus.") (define-public libgweather (package (name "libgweather") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2499,7 +2506,7 @@ service via the system message bus.") name "-" version ".tar.xz")) (sha256 (base32 - "1mmqg7wf0bhk450akyj0x71x75kh1v7j68isyivr75ydky79nqjj")))) + "1l3sra84k5dnavbdbjyf1ar84xmjszpnnldih6mf45kniwpjkcll")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -2541,7 +2548,7 @@ services for numerous locations.") (define-public gnome-settings-daemon (package (name "gnome-settings-daemon") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) @@ -2550,7 +2557,7 @@ services for numerous locations.") name "-" version ".tar.xz")) (sha256 (base32 - "0v1c2vnpqw5pvx62jxvjfa2g5k29yx04vz35awqi943gasrl0bmv")))) + "0vzwf875csyqx04fnra6zicmzcjc3s13bxxpcizlys12iwjwfw9h")))) (build-system glib-or-gtk-build-system) (arguments `(;; Network manager not yet packaged. @@ -2597,14 +2604,14 @@ settings, themes, mouse settings, and startup of other daemons.") (define-public totem-pl-parser (package (name "totem-pl-parser") - (version "3.10.6") + (version "3.10.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/totem-pl-parser/3.10/" "totem-pl-parser-" version ".tar.xz")) (sha256 (base32 - "0mv7aw9mw77w04zg95zjf0zmk6ckshpysbb9nap15h5is6zdk9cq")))) + "0dw1kiwmjwdjrighri0j9nagsnj44dllm0mamnfh4y5nc47mhim7")))) (build-system gnu-build-system) (arguments ;; FIXME: Tests require gvfs. @@ -2632,7 +2639,7 @@ playlists in a variety of formats.") (define-public aisleriot (package (name "aisleriot") - (version "3.20.1") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2640,7 +2647,7 @@ playlists in a variety of formats.") name "-" version ".tar.xz")) (sha256 (base32 - "1nipky336jj81mhm8wwxp96zilgcrarihf95dnyj3r1pw8kpg7gy")))) + "1qrgcj30hl0fgssspkwrad10lqy1bbsp7lfwxmxlwzp33jhqpb0b")))) (build-system glib-or-gtk-build-system) (arguments '(#:configure-flags @@ -2668,7 +2675,7 @@ which are easy to play with the aid of a mouse.") (define-public devhelp (package (name "devhelp") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2676,7 +2683,7 @@ which are easy to play with the aid of a mouse.") name "-" version ".tar.xz")) (sha256 (base32 - "078zr92xs5ifp862v1vdmw1j9m6gr9zk5hjbk5065vxjwb17acx2")))) + "1vqsqpc51cir5qf801ibh6ljlpfw0qd513l9hjcnzp4ls8m1cfih")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -2762,7 +2769,7 @@ without stepping on each others toes.") (define-public clutter (package (name "clutter") - (version "1.26.0") + (version "1.24.2") (source (origin (method url-fetch) @@ -2771,7 +2778,7 @@ without stepping on each others toes.") name "-" version ".tar.xz")) (sha256 (base32 - "01nfjd4k7j2n3agpx2d9ncff86nfsqv4n23465rb9zmk4iw4wlb7")))) + "0qyd0cw17wi8gl6y9z2j2lh2gwghxskfmsdvw4ayrgxwnj6cjccn")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;9 MiB of gtk-doc HTML pages @@ -2815,7 +2822,7 @@ presentations, kiosk style applications and so on.") (define-public clutter-gtk (package (name "clutter-gtk") - (version "1.8.0") + (version "1.6.6") (source (origin (method url-fetch) @@ -2824,7 +2831,7 @@ presentations, kiosk style applications and so on.") name "-" version ".tar.xz")) (sha256 (base32 - "07dzvx0b3fsswxnpxgk0adjgccnrvbxsd971naqwndnfivbgjbkl")))) + "0a2a8ci6in82l43zak3zj3cyms23i5rq6lzk1bz013gm023ach4l")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -2844,7 +2851,7 @@ presentations, kiosk style applications and so on.") (define-public clutter-gst (package (name "clutter-gst") - (version "3.0.18") + (version "3.0.14") (source (origin (method url-fetch) @@ -2853,7 +2860,7 @@ presentations, kiosk style applications and so on.") name "-" version ".tar.xz")) (sha256 (base32 - "14w0pi9myvcn1yxzmk9sk8dghj17m5ji3aqdpfjikk90c060vv0a")))) + "1qidm0q28q6w8gjd0gpqnk8fzqxv39dcp0vlzzawlncp8zfagj7p")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums @@ -2875,7 +2882,7 @@ GL based interactive canvas library.") (define-public libchamplain (package (name "libchamplain") - (version "0.12.13") + (version "0.12.12") (source (origin (method url-fetch) (uri (string-append @@ -2883,7 +2890,7 @@ GL based interactive canvas library.") version ".tar.xz")) (sha256 (base32 - "1arzd1hsgq14rbiwa1ih2g250x6ljna2s2kiqfrw155c612s9cxk")))) + "19jlhbgfn9c9g40b3fa2x373s6rfcwx5i9lbpl3vl7d901r7kpp7")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -2939,7 +2946,7 @@ queries upon that data.") (define-public gnome-klotski (package (name "gnome-klotski") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -2947,7 +2954,7 @@ queries upon that data.") name "-" version ".tar.xz")) (sha256 (base32 - "00hs3ci8swmq12rmgidy7rf3ql9isbklhn114v8rzdfs46y5dzkp")))) + "14l1fji0860yam41x2cy72nd9bljph385ynfm6k1lsv4qhv72az2")))) (build-system glib-or-gtk-build-system) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) @@ -2970,7 +2977,7 @@ as possible!") (define-public grilo (package (name "grilo") - (version "0.2.15") + (version "0.2.14") (source (origin (method url-fetch) @@ -2979,7 +2986,7 @@ as possible!") name "-" version ".tar.xz")) (sha256 (base32 - "05b8sqfmywg45b9frya6xmw5l3c8vf5a1nhy51nyfs0a4n1japbg")))) + "1k8wj8f7xfaw5hxypnmwd34li3fq8h76dacach547rvsfjhjxj3r")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -3021,7 +3028,7 @@ for application developers.") (define-public grilo-plugins (package (name "grilo-plugins") - (version "0.2.17") + (version "0.2.16") (source (origin (method url-fetch) @@ -3030,7 +3037,7 @@ for application developers.") name "-" version ".tar.xz")) (sha256 (base32 - "109pf4sz320jiqs1nzszpj2flkwrgwfsm64kza24mxnxih4njxik")))) + "00sjmkzxc8w4qn4lp5yj65c4y83mwhp0zlvk11ghvpxnklgmgd40")))) (build-system gnu-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-mkenums and glib-genmarshal @@ -3073,7 +3080,7 @@ for application developers.") (define-public totem (package (name "totem") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) @@ -3082,7 +3089,7 @@ for application developers.") name "-" version ".tar.xz")) (sha256 (base32 - "1pq3fg4778qrylkg6lc4jcb3gvm46n5y7mfn26iihi23aj844yq7")))) + "18h784c77m4h359j3xnlwqlfvnhbw7m052ahzm26r106jsp6x0fp")))) (build-system glib-or-gtk-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -3239,7 +3246,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") (define-public eog (package (name "eog") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3247,7 +3254,7 @@ supports playlists, song ratings, and any codecs installed through gstreamer.") name "-" version ".tar.xz")) (sha256 (base32 - "0avy7sss6rf659rxipvp3gbqw083liq627lxjpfp1ij34hbmqwfv")))) + "19wkawrcwjjcvlmizkj57qycnbgizhr8ck3j5qg70605d1xb8yvv")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -3317,7 +3324,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") (define-public gvfs (package (name "gvfs") - (version "1.28.0") + (version "1.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3325,7 +3332,7 @@ part of udev-extras, then udev, then systemd. It's now a project on its own.") name "-" version ".tar.xz")) (sha256 (base32 - "017pynx7rfrhgvg904kwxdw9dc26zb0v7ymkspm059qcvw5gqwng")))) + "064dsjrdjcbi38zl38jhh4r9jcpiygg7x4c8s6s2rb757l7nwnv9")))) (build-system gnu-build-system) (arguments '(#:tests? #f)) ; XXX: requiring `pidof' @@ -3469,7 +3476,7 @@ work and the interface is well tested.") (define-public epiphany (package (name "epiphany") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3477,7 +3484,7 @@ work and the interface is well tested.") name "-" version ".tar.xz")) (sha256 (base32 - "0x09dfc0zdxw93g1dcmxqpvy9vnv94bd27sfq23ix31z6i9fcs63")))) + "1hm6bpdcc6nf3zamzkvjhpvxnpaxzbnxnacfgl5v8swn643ifdl4")))) (build-system glib-or-gtk-build-system) (arguments ;; FIXME: tests run under Xvfb, but fail with: @@ -3575,7 +3582,7 @@ of running programs and invoke methods on those interfaces.") (define-public yelp-xsl (package (name "yelp-xsl") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3583,7 +3590,7 @@ of running programs and invoke methods on those interfaces.") name "-" version ".tar.xz")) (sha256 (base32 - "0j288fw7bqbswl2vk73ihs0ngky0b3p8k1yy5lrxfh1whn3phclz")))) + "0qmsq7qkc06gmnkvbs84qj3jjzlihriy3z45nfbpgg51b6z0z1q0")))) (build-system gnu-build-system) (native-inputs `(("intltool" ,intltool) @@ -3599,7 +3606,7 @@ to format Docbook and Mallard documents.") (define-public yelp (package (name "yelp") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3607,7 +3614,7 @@ to format Docbook and Mallard documents.") name "-" version ".tar.xz")) (sha256 (base32 - "0g404njlgr38nif9hb3krybavk56wplkafxvfibcg68iqp9465dz")))) + "10384lr712xdr8zbi07vqh0cf4nd7ybg1vs05r5cy3kwf6s4wfms")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-genmarshal, etc. @@ -3785,7 +3792,7 @@ share them with others via social networking and more.") (define-public file-roller (package (name "file-roller") - (version "3.20.0") + (version "3.16.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3793,7 +3800,7 @@ share them with others via social networking and more.") name "-" version ".tar.xz")) (sha256 (base32 - "1a5598zyzdhdyk7sq59h8hqrjlacxw6wfdmgi0cs5kvbzjr9jnhq")))) + "11a1g8f2700n2mz998wf40dz1rxjgap60mfns9iv0zlw5h5rhmal")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -3818,7 +3825,7 @@ such as gzip tarballs.") (define-public gnome-session (package (name "gnome-session") - (version "3.20.0") + (version "3.18.1.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3826,7 +3833,7 @@ such as gzip tarballs.") name "-" version ".tar.xz")) (sha256 (base32 - "0d0v60lmvr8wbrswfpc4f4jg2dhxj6nkgv7wnwdf2zifk8vp5zv6")))) + "0icajbzqf5llvp5s8nafwkhwz6a6jmwn4hhs81bk0bpzawyq4zdk")))) (arguments '(#:phases (modify-phases %standard-phases @@ -3942,7 +3949,7 @@ javascript engine and the GObject introspection framework.") (define-public gedit (package (name "gedit") - (version "3.20.1") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3950,7 +3957,7 @@ javascript engine and the GObject introspection framework.") name "-" version ".tar.xz")) (sha256 (base32 - "1i0x1jd9x1vpv8lwdlzwf0ml8jxh3b3l6nlg6pbnfjw47w3y6iws")))) + "1rrjdkvwwjyj05jc9icifjm9v8sgs0wqgy555m57a3rvg46sqqk7")))) (build-system glib-or-gtk-build-system) (arguments `(#:phases @@ -3999,7 +4006,7 @@ powerful general purpose text editor.") (define-public zenity (package (name "zenity") - (version "3.20.0") + (version "3.18.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4007,7 +4014,7 @@ powerful general purpose text editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0j2sy6imwp41l75hy3fwr68n35drvanbwgmr42kc04zqjy9pbs02")))) + "02m88dfm1rziqk2ywakwib06wl1rxangbzih6cp8wllbyl1plcg6")))) (build-system gnu-build-system) (native-inputs `(("gettext" ,gnu-gettext) @@ -4026,7 +4033,7 @@ to display dialog boxes from the commandline and shell scripts.") (define-public mutter (package (name "mutter") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4034,7 +4041,7 @@ to display dialog boxes from the commandline and shell scripts.") name "-" version ".tar.xz")) (sha256 (base32 - "1x8nhnili1bq3pnrvr3jsgchcz36jzi9infrbr3gplwxnsbx4i2n")))) + "1ab959z5fgi4rq0ifxdqvpdbv99a2b1lfgvj327s9crdvk4ygpjg")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4076,7 +4083,7 @@ window manager.") (define-public gnome-online-accounts (package (name "gnome-online-accounts") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4084,7 +4091,7 @@ window manager.") name "-" version ".tar.xz")) (sha256 (base32 - "0q546q65ba537dbxqnvs27x6pvhvi394v43kihgw4pa59j8k70n9")))) + "1hn2fvkr1f4qh4gix03avnvk7pklvv5272ns8ws56v4kcq4nppkc")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. @@ -4114,7 +4121,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") (define-public evolution-data-server (package (name "evolution-data-server") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4122,7 +4129,7 @@ Exchange, Last.fm, IMAP/SMTP, Jabber, SIP and Kerberos.") name "-" version ".tar.xz")) (sha256 (base32 - "0jsgzahaha6bxrm15da7c32m8ksnmx9rfm7xdx99lbxhsm7yiwh5")))) + "16yfd2a00xqxikyf6pi2awfd0qfq4hwdhfar88axrb4mycfgqhjr")))) (build-system gnu-build-system) (arguments '(;; XXX: fails with: @@ -4175,7 +4182,7 @@ Evolution (hence the name), but is now used by other packages as well.") (define-public caribou (package (name "caribou") - (version "0.4.20") + (version "0.4.19") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4183,7 +4190,7 @@ Evolution (hence the name), but is now used by other packages as well.") name "-" version ".tar.xz")) (sha256 (base32 - "1nahpfs5ap9f9wsvn93kg8isqffk60v785f1q6k64awcd7an8ris")))) + "0i2s2xy9ami3wslam15cajhggpcsj4c70qm7qddcz52z9k0x02rg")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4394,7 +4401,7 @@ libxml2.") (define-public gdm (package (name "gdm") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4402,7 +4409,7 @@ libxml2.") name "-" version ".tar.xz")) (sha256 (base32 - "1hnkv4j4m6z9l2y1rzxn674ir34k57apz1ybr15m11ksn05vlky6")))) + "08pqhslwd487nh9w0jp4d0s4s2imm4ds0jjsbl6lzmqifqj3b4jl")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -4454,7 +4461,7 @@ providing graphical log-ins and managing local and remote displays.") (define-public libgtop (package (name "libgtop") - (version "2.34.0") + (version "2.32.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4462,7 +4469,7 @@ providing graphical log-ins and managing local and remote displays.") name "-" version ".tar.xz")) (sha256 (base32 - "0apfnh9k6vmbdm8ms5wxyhagrrl8r88fv48k7q5qq70df2gf72ld")))) + "13hpml2vfm23816qggr5fvxj75ndb1dq4rgmi7ik6azj69ij8hw4")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) @@ -4481,7 +4488,7 @@ usage and information about running processes.") (define-public gnome-bluetooth (package (name "gnome-bluetooth") - (version "3.18.3") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4489,7 +4496,7 @@ usage and information about running processes.") name "-" version ".tar.xz")) (sha256 (base32 - "1qwc9q7x22sc71zhqv4db78rqzxl6fqfw6d978ydqap54c2bg0g4")))) + "0jaa9nbygdvcqp9k4p4iy2g8x3684s4x9k5nbcmmm11jdn4mn7f5")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for gdbus-codegen, etc. @@ -4514,7 +4521,7 @@ devices using the GNOME desktop.") (define-public gnome-control-center (package (name "gnome-control-center") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4522,7 +4529,7 @@ devices using the GNOME desktop.") name "-" version ".tar.xz")) (sha256 (base32 - "10yncjq5hmaqbr8kjf8s729kn11as705vfx32nxahi7229v31rxp")))) + "1bgqg1sl3cp2azrwrjgwx3jzk9n3w76xpcyvk257qavx4ibn3zin")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4584,7 +4591,7 @@ properties, screen resolution, and other GNOME parameters.") (define-public gnome-shell (package (name "gnome-shell") - (version "3.20.0") + (version "3.18.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4592,7 +4599,7 @@ properties, screen resolution, and other GNOME parameters.") name "-" version ".tar.xz")) (sha256 (base32 - "125qjrbw40r8rpri9y0yrl5yqs2q4x0l5inzi3vwl0rxvmhz8sgf")))) + "16sicxdp08yfaj4hiyzvbspb5jk3fpmi291272zhx5vgc3wbl5w5")))) (build-system glib-or-gtk-build-system) (arguments '(#:phases @@ -4704,7 +4711,7 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") (define-public nautilus (package (name "nautilus") - (version "3.20.0") + (version "3.18.2") ; XXX: later version require gtk+-3.0 >= 3.18.5 (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -4712,11 +4719,10 @@ as SASL, TLS and VeNCrypt. Additionally it supports encoding extensions.") name "-" version ".tar.xz")) (sha256 (base32 - "14s234b4l7hsxng1n3kkj4c8sjsq2vl2l2fw0caqfxva9md9k9vw")))) + "0jj23n8vmmyc4gp5xhiz7slsxwksydp26blxi5m154yaw9lgdp38")))) (build-system glib-or-gtk-build-system) (arguments - '(#:configure-flags - '("--disable-tracker" "--disable-selinux") ; XXX: not packaged + '(#:configure-flags '("--disable-tracker") ; XXX: not packaged ;; XXX: FAIL: check-nautilus ;; Settings schema 'org.gnome.nautilus.preferences' is not installed #:tests? #f)) @@ -4749,7 +4755,7 @@ files.") (define-public baobab (package (name "baobab") - (version "3.20.0") + (version "3.18.1") (source (origin (method url-fetch) (uri (string-append @@ -4758,7 +4764,7 @@ files.") name "-" version ".tar.xz")) (sha256 (base32 - "01vxc9z87i2dsvydm6p1sh4m7bpbggy70q9bx6pxz707hyr6bpaw")))) + "1da4bdkw5bnxansl1xr4lb03d6f4h0a0qaba8i3p3rwhcd191b62")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool) @@ -4781,7 +4787,7 @@ is complete it provides a graphical representation of each selected folder.") (define-public gnome-backgrounds (package (name "gnome-backgrounds") - (version "3.20") + (version "3.18.0") (source (origin (method url-fetch) @@ -4790,7 +4796,7 @@ is complete it provides a graphical representation of each selected folder.") name "-" version ".tar.xz")) (sha256 (base32 - "09viag7q53lfwrp074a1w7j0r8izlwpi10xbwjgbf5jwbqb6wv6n")))) + "1fd7y8dh3iy88ayb8irgsihvssli6bzjzb5a6vfhi8qjbw70ymma")))) (build-system glib-or-gtk-build-system) (native-inputs `(("intltool" ,intltool))) @@ -4840,7 +4846,7 @@ beautifying border effects.") (define-public dconf-editor (package (name "dconf-editor") - (version "3.20.0") + (version "3.18.2") (source (origin (method url-fetch) @@ -4849,7 +4855,7 @@ beautifying border effects.") name "-" version ".tar.xz")) (sha256 (base32 - "0q57wmlab01rmwbwlih5mh9fa1nwc2abfz0vl374lkljw9acim13")))) + "0xdwi7g1xdmgrc9m8ii62fp2zj114gsfpmgazlnhrcmmfi97z5d7")))) (build-system glib-or-gtk-build-system) (native-inputs `(("glib:bin" ,glib "bin") ; for glib-compile-schemas, gio-2.0. diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm index f31a510504..255d885b27 100644 --- a/gnu/packages/gtk.scm +++ b/gnu/packages/gtk.scm @@ -63,7 +63,7 @@ (define-public atk (package (name "atk") - (version "2.20.0") + (version "2.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -71,7 +71,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9")))) + "0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -95,14 +95,14 @@ tools have full access to view and control running applications.") (define-public cairo (package (name "cairo") - (version "1.14.6") + (version "1.14.2") (source (origin (method url-fetch) (uri (string-append "http://cairographics.org/releases/cairo-" version ".tar.xz")) (sha256 (base32 - "0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31")))) + "1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9")))) (build-system gnu-build-system) (propagated-inputs `(("fontconfig" ,fontconfig) @@ -147,7 +147,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public harfbuzz (package (name "harfbuzz") - (version "1.2.4") + (version "1.0.6") (source (origin (method url-fetch) (uri (string-append "https://www.freedesktop.org/software/" @@ -155,7 +155,7 @@ affine transformation (scale, rotation, shear, etc.).") version ".tar.bz2")) (sha256 (base32 - "14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4")))) + "09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn")))) (build-system gnu-build-system) (outputs '("out" "bin")) ; 160K, only hb-view depend on cairo @@ -185,7 +185,7 @@ affine transformation (scale, rotation, shear, etc.).") (define-public pango (package (name "pango") - (version "1.40.0") + (version "1.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/pango/" @@ -193,7 +193,7 @@ affine transformation (scale, rotation, shear, etc.).") name "-" version ".tar.xz")) (sha256 (base32 - "12qwa748wyady16xxdq5rqz9gki1kksj8m5bcv80gjqlydfrh5ys")))) + "1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k")))) (build-system gnu-build-system) (propagated-inputs `(("cairo" ,cairo) @@ -339,7 +339,7 @@ printing and other features typical of a source code editor.") (define-public gtksourceview (package (name "gtksourceview") - (version "3.20.1") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -347,7 +347,7 @@ printing and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0k4cmq94181l39di9z4agampg4za6bvimkvcjm3qlxmsxb09ab9j")))) + "1cmplnqbyd1js5bkpi9cfc3gljilyxg5nngwh4i3mq9r02gmmxv0")))) (build-system gnu-build-system) (arguments '(#:phases @@ -387,7 +387,7 @@ highlighting and other features typical of a source code editor.") (define-public gdk-pixbuf (package (name "gdk-pixbuf") - (version "2.34.0") + (version "2.32.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -395,7 +395,7 @@ highlighting and other features typical of a source code editor.") name "-" version ".tar.xz")) (sha256 (base32 - "0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm")))) + "0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--with-x11") @@ -415,12 +415,9 @@ highlighting and other features typical of a source code editor.") ;; (gdk-pixbuf-error-quark, 0) (("pixbuf-jpeg\\$\\(EXEEXT\\) ") "")) #t))))) - (propagated-inputs - `(;; Required by gdk-pixbuf-2.0.pc - ("glib" ,glib) - ("libpng" ,libpng) - ;; Used for testing and required at runtime. - ("shared-mime-info" ,shared-mime-info))) + (propagated-inputs ; required by gdk-pixbuf-2.0.pc + `(("glib" ,glib) + ("libpng" ,libpng))) (inputs `(("libjpeg" ,libjpeg) ("libtiff" ,libtiff) @@ -468,7 +465,7 @@ in the GNOME project.") (define-public at-spi2-core (package (name "at-spi2-core") - (version "2.20.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -476,7 +473,7 @@ in the GNOME project.") name "-" version ".tar.xz")) (sha256 (base32 - "16v09iwnd3895fshsvsci836dar21c8y9w8zn882jn4fq2vrzi6w")))) + "1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap")))) (build-system gnu-build-system) (outputs '("out" "doc")) (arguments @@ -513,7 +510,7 @@ is part of the GNOME accessibility project.") (define-public at-spi2-atk (package (name "at-spi2-atk") - (version "2.20.0") + (version "2.18.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -521,7 +518,7 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "1lis9zj4r3d5ff3chs0r93gjkbp0wgflfx35gbax47cgdqmi8jx2")))) + "0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4")))) (build-system gnu-build-system) (arguments '(#:phases @@ -548,7 +545,7 @@ is part of the GNOME accessibility project.") (define-public gtk+-2 (package (name "gtk+") - (version "2.24.30") + (version "2.24.28") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -556,14 +553,13 @@ is part of the GNOME accessibility project.") name "-" version ".tar.xz")) (sha256 (base32 - "0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d")) - (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch" - "gtk2-theme-paths.patch")))) + "0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj")) + (patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch")))) (build-system gnu-build-system) (outputs '("out" "doc")) (propagated-inputs `(("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("pango" ,pango))) (inputs `(("cups" ,cups) @@ -610,7 +606,7 @@ application suites.") (define-public gtk+ (package (inherit gtk+-2) (name "gtk+") - (version "3.20.2") + (version "3.18.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -618,12 +614,12 @@ application suites.") name "-" version ".tar.xz")) (sha256 (base32 - "1xv97zrngf47hyrxz7rfrdl5xpv4y61rkmipyi300pm5iq3d3c8s")) + "0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx")) (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch")))) (propagated-inputs `(("at-spi2-atk" ,at-spi2-atk) ("atk" ,atk) - ("gdk-pixbuf" ,gdk-pixbuf+svg) + ("gdk-pixbuf" ,gdk-pixbuf) ("libepoxy" ,libepoxy) ("libxcursor" ,libxcursor) ("libxi" ,libxi) @@ -631,7 +627,8 @@ application suites.") ("libxdamage" ,libxdamage) ("pango" ,pango))) (inputs - `(("libxml2" ,libxml2) + `(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg + ("libxml2" ,libxml2) ;; XXX: colord depends on mozjs (through polkit), which fails on ;; on non-intel systems now. ;;("colord" ,colord) @@ -666,7 +663,18 @@ application suites.") (("SUBDIRS = gdk gtk a11y css reftests") "SUBDIRS = gdk")) #t) - %standard-phases))) + (alist-cons-after + 'install 'wrap-gtk-encode-symbolic-svg + ;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know + ;; librsvg's loaders.cache to handle SVG files. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (prog (string-append out "/bin/gtk-encode-symbolic-svg")) + (librsvg (assoc-ref inputs "librsvg")) + (loaders.cache (find-files librsvg "^loaders\\.cache$"))) + (wrap-program prog + `("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache)))) + %standard-phases)))) (native-search-paths (list (search-path-specification (variable "GUIX_GTK3_PATH") @@ -856,7 +864,7 @@ library.") (define-public pangomm (package (name "pangomm") - (version "2.40.0") + (version "2.38.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -864,7 +872,7 @@ library.") name "-" version ".tar.xz")) (sha256 (base32 - "03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x")))) + "12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (propagated-inputs @@ -905,7 +913,7 @@ toolkit.") (define-public gtkmm (package (name "gtkmm") - (version "3.20.0") + (version "3.18.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -913,7 +921,7 @@ toolkit.") name "-" version ".tar.xz")) (sha256 (base32 - "12h2kd22iayvjfhmgjccm33igrbvqdj7hym31fsa1y0dhwzmf8gh")))) + "0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("glib" ,glib "bin"))) ;for 'glib-compile-resources' diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch new file mode 100644 index 0000000000..642234ebbc --- /dev/null +++ b/gnu/packages/patches/glib-tests-desktop.patch @@ -0,0 +1,138 @@ +Some GLib tests expect desktop things, such as an xterm, a MIME +database, the `update-desktop-database' program, which we don't provide. + +--- glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:44.000000000 +0200 ++++ glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:56.000000000 +0200 +@@ -497,16 +497,10 @@ main (int argc, char *argv[]) + + g_test_add_func ("/appinfo/basic", test_basic); + g_test_add_func ("/appinfo/text", test_text); +- g_test_add_func ("/appinfo/launch", test_launch); + g_test_add_func ("/appinfo/show-in", test_show_in); + g_test_add_func ("/appinfo/commandline", test_commandline); +- g_test_add_func ("/appinfo/launch-context", test_launch_context); +- g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals); + g_test_add_func ("/appinfo/tryexec", test_tryexec); +- g_test_add_func ("/appinfo/associations", test_associations); + g_test_add_func ("/appinfo/environment", test_environment); +- g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class); +- g_test_add_func ("/appinfo/supported-types", test_supported_types); + g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile); + + return g_test_run (); + +--- glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:29.000000000 +0100 ++++ glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:33.000000000 +0100 +@@ -207,15 +207,6 @@ main (int argc, char *argv[]) + { + g_test_init (&argc, &argv, NULL); + +- g_test_add_func ("/contenttype/guess", test_guess); +- g_test_add_func ("/contenttype/unknown", test_unknown); +- g_test_add_func ("/contenttype/subtype", test_subtype); +- g_test_add_func ("/contenttype/list", test_list); +- g_test_add_func ("/contenttype/executable", test_executable); +- g_test_add_func ("/contenttype/description", test_description); +- g_test_add_func ("/contenttype/icon", test_icon); +- g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon); +- g_test_add_func ("/contenttype/tree", test_tree); + + return g_test_run (); + } + + +--- glib-2.40.0/gio/tests/desktop-app-info.c 2014-03-19 22:50:45.000000000 -0500 ++++ glib-2.40.0/gio/tests/desktop-app-info.c 2014-06-30 14:27:52.543358331 -0500 +@@ -708,6 +708,8 @@ + g_setenv ("XDG_DATA_HOME", basedir, TRUE); + cleanup_subdirs (basedir); + ++ result = g_test_run (); ++ return result; + g_test_add_func ("/desktop-app-info/delete", test_delete); + g_test_add_func ("/desktop-app-info/default", test_default); + g_test_add_func ("/desktop-app-info/fallback", test_fallback); + + +----------------------------- +The hunk below removes tests that depend on `gdbus-testserver.py', +because that script depends on python-gobject. The second hunk +disables a test that expects /etc/machine-id in the build environment. + +--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200 ++++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200 +@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16) + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-loss \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-slow \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-error \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-exit-on-close \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-export \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-introspection \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-names \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-threads \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-well-known-name \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \ +-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \ + @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL) +@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $ + am__EXEEXT_1 = + @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \ + @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \ +-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \ + @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \ + @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \ + @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \ + + +The test below depends on the availability /etc/passwd to dbus-daemon. + +--- glib-2.40.0/gio/tests/gdbus-auth.c 2014-02-03 11:40:41.000000000 -0600 ++++ glib-2.40.0/gio/tests/gdbus-auth.c 2014-06-30 15:08:43.719421893 -0500 +@@ -286,6 +286,8 @@ + { + gint ret; + ++ g_test_init (&argc, &argv, NULL); ++ return g_test_run(); + setlocale (LC_ALL, "C"); + + temp_dbus_keyrings_setup (); + + +The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see + https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1 + +--- glib-2.40.0/gio/tests/dbus-appinfo.c 2014-02-03 11:40:41.000000000 -0600 ++++ glib-2.40.0/gio/tests/dbus-appinfo.c 2014-06-30 14:44:08.215383632 -0500 +@@ -278,7 +278,7 @@ + { + g_test_init (&argc, &argv, NULL); + +- g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo); ++ return g_test_run(); + + return session_bus_run (); + } + + +The test below fails for unknown reasons (!). + +--- glib-2.39.1/gio/tests/gsettings.c.orig 2014-01-20 00:45:04.000000000 +0100 ++++ glib-2.39.1/gio/tests/gsettings.c 2014-01-20 00:45:10.000000000 +0100 +@@ -2489,7 +2489,6 @@ main (int argc, char *argv[]) + g_test_add_func ("/gsettings/range/subprocess/high", test_range_high); + g_test_add_func ("/gsettings/range/subprocess/low", test_range_low); + g_test_add_func ("/gsettings/list-items", test_list_items); +- g_test_add_func ("/gsettings/list-schemas", test_list_schemas); + g_test_add_func ("/gsettings/mapped", test_get_mapped); + g_test_add_func ("/gsettings/get-range", test_get_range); + g_test_add_func ("/gsettings/schema-source", test_schema_source); + diff --git a/gnu/packages/patches/glib-tests-gapplication.patch b/gnu/packages/patches/glib-tests-gapplication.patch new file mode 100644 index 0000000000..1845fcb9b8 --- /dev/null +++ b/gnu/packages/patches/glib-tests-gapplication.patch @@ -0,0 +1,28 @@ +This test has proven to be unreliable, often leading to things like this +in gapplication.log: + + PASS: gapplication 3 /gapplication/properties + Failed to register: The connection is closed + ** + GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) + ok 4 /gapplication/app-id + PASS: gapplication 4 /gapplication/app-id + ../../tap-test: line 5: 24133 Aborted $1 -k --tap + # GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated) + cleaning up pid 24154 + ERROR: gapplication - missing test plan + ERROR: gapplication - exited with status 134 (terminated by signal 6?) + +See and . + + +--- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100 ++++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100 +@@ -685,7 +685,6 @@ main (int argc, char **argv) + /* g_test_add_func ("/gapplication/non-unique", test_nonunique); */ + g_test_add_func ("/gapplication/properties", properties); + g_test_add_func ("/gapplication/app-id", appid); +- g_test_add_func ("/gapplication/quit", test_quit); + g_test_add_func ("/gapplication/local-actions", test_local_actions); + /* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */ + g_test_add_func ("/gapplication/local-command-line", test_local_command_line); diff --git a/gnu/packages/patches/glib-tests-homedir.patch b/gnu/packages/patches/glib-tests-homedir.patch new file mode 100644 index 0000000000..0a2bcf1a23 --- /dev/null +++ b/gnu/packages/patches/glib-tests-homedir.patch @@ -0,0 +1,59 @@ +`g_get_home_dir' looks at /etc/passwd first, which fails in chroot builds. +The gdbus tests use it to lookup .dbus-keyrings, so they cannot run in our +chroot build environment. Thus, disable them. + +--- glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:46.000000000 +0100 ++++ glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:47.000000000 +0100 +@@ -373,10 +373,6 @@ main (int argc, + g_type_init (); + g_test_init (&argc, &argv, NULL); + +- g_test_add ("/gdbus/connection/flush/busy", Fixture, NULL, +- setup, test_flush_busy, teardown); +- g_test_add ("/gdbus/connection/flush/idle", Fixture, NULL, +- setup, test_flush_idle, teardown); + + ret = g_test_run(); + +--- glib-2.38.0.orig/gio/tests/gdbus-peer.c 2013-08-08 12:00:40.000000000 +0200 ++++ glib-2.38.0/gio/tests/gdbus-peer.c 2013-09-30 19:36:40.000000000 +0200 +@@ -1746,11 +1746,6 @@ + + g_test_add_func ("/gdbus/peer-to-peer", test_peer); + g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing); +- g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp); +- +- g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous); +- g_test_add_func ("/gdbus/credentials", test_credentials); +- g_test_add_func ("/gdbus/codegen-peer-to-peer", codegen_test_peer); + + ret = g_test_run(); + +--- glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:34.000000000 +0200 ++++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:40.000000000 +0200 +@@ -211,6 +211,7 @@ main (int argc, + + g_test_init (&argc, &argv, NULL); + ++ return g_test_run(); + for (i = 0; cases[i].name != NULL; i++) + { + gchar *name; +@@ -224,5 +225,4 @@ main (int argc, + g_free (name); + } + +- return g_test_run(); + } + +--- glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:25.000000000 +0100 ++++ glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:27.000000000 +0100 +@@ -294,7 +294,6 @@ main (int argc, + g_type_init (); + g_test_init (&argc, &argv, NULL); + +- g_test_add_func ("/gdbus/non-socket", test_non_socket); + + ret = g_test_run(); + + diff --git a/gnu/packages/patches/glib-tests-prlimit.patch b/gnu/packages/patches/glib-tests-prlimit.patch new file mode 100644 index 0000000000..f2b2a61bee --- /dev/null +++ b/gnu/packages/patches/glib-tests-prlimit.patch @@ -0,0 +1,14 @@ +prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on +hydra.gnu.org, and strace(1) doesn't recognize it. + +--- glib-2.34.3/glib/tests/thread.c 2012-11-20 15:27:12.000000000 +0100 ++++ glib-2.34.3/glib/tests/thread.c 2013-03-27 14:48:31.000000000 +0100 +@@ -130,7 +130,7 @@ test_thread3 (void) + static void + test_thread4 (void) + { +-#ifdef HAVE_PRLIMIT ++#if 0 + struct rlimit ol, nl; + GThread *thread; + GError *error; diff --git a/gnu/packages/patches/glib-tests-timer.patch b/gnu/packages/patches/glib-tests-timer.patch index e37425c0c8..1ac364fcc1 100644 --- a/gnu/packages/patches/glib-tests-timer.patch +++ b/gnu/packages/patches/glib-tests-timer.patch @@ -2,6 +2,9 @@ fail depending on the elapsed microseconds. Improve rounding by adding a fractional bit. +* The /timer/stop test fails if compiler optimizations are enabled, which they + are by default. Disable that test. + --- glib-2.40.0/glib/tests/timer.c 2014-03-05 08:05:42.000000000 -0600 +++ glib-2.40.0/glib/tests/timer.c 2014-07-10 16:33:12.746862822 -0500 @@ -35,7 +35,7 @@ @@ -13,3 +16,11 @@ g_timer_destroy (timer); } +@@ -204,7 +204,6 @@ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/timer/basic", test_timer_basic); +- g_test_add_func ("/timer/stop", test_timer_stop); + g_test_add_func ("/timer/continue", test_timer_continue); + g_test_add_func ("/timer/reset", test_timer_reset); + g_test_add_func ("/timeval/add", test_timeval_add); diff --git a/gnu/packages/patches/gtk2-theme-paths.patch b/gnu/packages/patches/gtk2-theme-paths.patch deleted file mode 100644 index 6c1351e516..0000000000 --- a/gnu/packages/patches/gtk2-theme-paths.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Jookia <166291@gmail.com> -Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles. -To: guix-devel@gnu.org -Date: Sun, 13 Mar 2016 15:17:37 +1100 -Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html - -diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c ---- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100 -+++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100 -@@ -808,6 +808,8 @@ - gchar *path = NULL; - const gchar *home_dir; - gchar *subpath; -+ const gchar * const *xdg_data_dirs; -+ gint i; - - if (type) - subpath = g_strconcat ("gtk-2.0-", type, -@@ -830,6 +832,22 @@ - } - - if (!path) -+ { -+ xdg_data_dirs = g_get_system_data_dirs (); -+ for (i = 0; xdg_data_dirs[i]; i++) -+ { -+ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL); -+ if (g_file_test (path, G_FILE_TEST_EXISTS)) -+ break; -+ else -+ { -+ g_free (path); -+ path = NULL; -+ } -+ } -+ } -+ -+ if (!path) - { - gchar *theme_dir = gtk_rc_get_theme_dir (); - path = g_build_filename (theme_dir, name, subpath, NULL); diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 74840f1c95..1d33be85d5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -52,16 +52,19 @@ (define-public poppler (package (name "poppler") - (version "0.42.0") + (version "0.37.0") (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" version ".tar.xz")) - (sha256 - (base32 - "044084dbp804flwf7bw3lbwfdigm9s0psm6sw2j1hkrazrphgvwz")))) + (sha256 (base32 + "1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq")))) (build-system gnu-build-system) - ;; FIXME: + ;; FIXME: more dependencies could be added + ;; cairo output: no (requires cairo >= 1.10.0) + ;; qt4 wrapper: no + ;; introspection: no + ;; use gtk-doc: no ;; use libcurl: no (inputs `(("fontconfig" ,fontconfig) ("freetype" ,freetype) @@ -80,8 +83,7 @@ ("glib" ,glib))) (native-inputs `(("pkg-config" ,pkg-config) - ("glib" ,glib "bin") ; glib-mkenums, etc. - ("gobject-introspection" ,gobject-introspection))) + ("glib" ,glib "bin"))) ; glib-mkenums, etc. (arguments `(#:tests? #f ; no test data provided with the tarball #:configure-flags diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index bb74485c76..126e997673 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -196,7 +196,7 @@ following the mouse.") (define-public pixman (package (name "pixman") - (version "0.34.0") + (version "0.32.8") (source (origin (method url-fetch) (uri (string-append @@ -204,7 +204,7 @@ following the mouse.") version ".tar.gz")) (sha256 (base32 - "13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1")))) + "0pfn0247sjsi95kwjih0wwqpp28wadihqk1bn28x6iqbqhbxwnjp")))) (build-system gnu-build-system) (inputs `(("libpng" ,libpng) -- cgit 1.4.1 From 79b555edeb469b4d92ef31b66d9b5961001e1a68 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sun, 24 Apr 2016 09:45:07 +1000 Subject: gnu: samtools: Update to 1.3.1. * gnu/packages/bioinformatics.scm (samtools): Update to 1.3.1. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index c49b0a9e17..899ce1ca0c 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2902,7 +2902,7 @@ distribution, coverage uniformity, strand specificity, etc.") (define-public samtools (package (name "samtools") - (version "1.3") + (version "1.3.1") (source (origin (method url-fetch) @@ -2911,7 +2911,7 @@ distribution, coverage uniformity, strand specificity, etc.") version "/samtools-" version ".tar.bz2")) (sha256 (base32 - "03mnf0mhbfwhqlqfslrhfnw68s3g0fs1as354i9a584mqw1l1smy")))) + "0znnnxc467jbf1as2dpskrjhfh8mbll760j6w6rdkwlwbqsp8gbc")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 ftw) -- cgit 1.4.1 From 59f151ec54fab4822cd0c41cfc99ed3614d67239 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Apr 2016 20:31:23 +0300 Subject: gnu: python2-oauthlib: Use python2-variant. * gnu/packages/python.scm (python2-oauthlib): Use 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. (python-oauthlib)[inputs]: Remove python-setuptools. [properties]: Define python2-variant for python2-oauthlib. --- gnu/packages/python.scm | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 0379352f76..296f51ab59 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2364,8 +2364,7 @@ somewhat intelligeble.") "1bfrj70vdjxjw74khbyh6f0dksv7p5rh2346jnlrffyacd3gwjzg")))) (build-system python-build-system) (native-inputs - `(("python-setuptools" ,python-setuptools) - ("python-coverage" ,python-coverage) + `(("python-coverage" ,python-coverage) ("python-nose" ,python-nose) ("python-mock" ,python-mock))) (inputs @@ -2377,17 +2376,16 @@ somewhat intelligeble.") (description "Oauthlib is a generic, spec-compliant, thorough implementation of the OAuth request-signing logic.") - (license bsd-3))) + (license bsd-3) + (properties `((python2-variant . ,(delay python2-oauthlib)))))) (define-public python2-oauthlib - (let ((base (package-with-python2 python-oauthlib))) + (let ((base (package-with-python2 (strip-python2-variant python-oauthlib)))) (package (inherit base) - (inputs - `(("python2-unittest2" ,python2-unittest2) - ("python2-cryptography" ,python2-cryptography) - ,@(alist-delete "python-cryptography" - (package-inputs base))))))) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ("python2-unittest2" ,python2-unittest2) + ,@(package-native-inputs base)))))) (define-public python-itsdangerous (package -- cgit 1.4.1 From 194d0d9843c515b4aa33a89994b64a583cf0a86a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Apr 2016 20:41:15 +0300 Subject: gnu: python2-itsdangerous: Use 'strip-python2-variant'. * gnu/packages/python.scm (python2-itsdangerous): Use 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. (python-itsdangerous)[inputs]: Remove python-setuptools. [properties]: Define python2-variant. --- gnu/packages/python.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 296f51ab59..4fbbb7ff2a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2401,17 +2401,21 @@ OAuth request-signing logic.") (base32 "06856q6x675ly542ig0plbqcyab6ksfzijlyf1hzhgg3sgwgrcyb")))) (build-system python-build-system) - (inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://github.com/mitsuhiko/itsdangerous") (synopsis "Python library for passing data to/from untrusted environments") (description "Itsdangerous provides various helpers to pass trusted data to untrusted environments and back.") - (license bsd-3))) + (license bsd-3) + (properties `((python2-variant . ,(delay python2-itsdangerous)))))) (define-public python2-itsdangerous - (package-with-python2 python-itsdangerous)) + (let ((base (package-with-python2 + (strip-python2-variant python-itsdangerous)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-pyyaml (package -- cgit 1.4.1 From d9f2dece1f60dc858981b6be9fbac999d90b2526 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Apr 2016 21:20:42 +0300 Subject: gnu: pelican: Rearrange inputs. * gnu/packages/python.scm (pelican)[native-inputs]: Remove python-setuptools. [propagated-inputs]: Move python-feedgenerator, python-jinja2, python-pygments, python-docutils, python-pytz, python-blinker, python-unidecode, python-six, python-dateutil-2 ... [inputs]: ... to here. --- gnu/packages/python.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 4fbbb7ff2a..7767204cd0 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2772,9 +2772,7 @@ interested parties to subscribe to events, or \"signals\".") (base32 "1hn94rb4q3zmcq16in055xikal4dba5hfx3zznq7warllcgc9f8k")))) (build-system python-build-system) - (native-inputs - `(("python-setuptools" ,python-setuptools))) - (propagated-inputs + (inputs `(("python-feedgenerator" ,python-feedgenerator) ("python-jinja2" ,python-jinja2) ("python-pygments" ,python-pygments) -- cgit 1.4.1 From f0412aa2bd2f8b9532e170c29c4c82ae8134968c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 24 Apr 2016 21:49:42 +0300 Subject: gnu: python-feedgenerator: Update to 1.8. * gnu/packages/python.scm (python-feedgenerator): Update to 1.8. [arguments]: Remove configure flags. [inputs]: Move python-setuptools, python-pytz, python-six ... [native-inputs]: ... to here. [home-page]: Update project's home-page. --- gnu/packages/python.scm | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7767204cd0..7c3b5fa3bc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -2698,31 +2698,20 @@ sources.") (define-public python-feedgenerator (package (name "python-feedgenerator") - (version "20150710.97185b7") + (version "1.8") (source - ;; Using the git checkout for now because license file not added till - ;; https://github.com/dmdm/feedgenerator-py3k/commit/97185b7566c240c4bf5ed80db7d6c271204dab39 (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dmdm/feedgenerator-py3k.git") - (commit "97185b7566c240c4bf5ed80db7d6c271204dab39"))) + (method url-fetch) + (uri (pypi-uri "feedgenerator" version)) (sha256 (base32 - "0dbd6apij5j1923ib905x0srgcyls4wlabqlwp4dzkwmksvnrr2a")))) - (arguments - `(;; With standard flags, the install phase attempts to create a zip'd - ;; egg file, and fails with an error: 'ZIP does not support timestamps - ;; before 1980' - #:configure-flags '("--single-version-externally-managed" - "--record=feedgenerator.txt"))) + "0mkimp1fpdan4p3882vzcws4l594k71ich4g0wq97jbra7p602n0")))) (build-system python-build-system) - (inputs + (native-inputs `(("python-setuptools" ,python-setuptools) ("python-pytz" ,python-pytz) ("python-six" ,python-six))) - (home-page - "https://github.com/dmdm/feedgenerator-py3k.git") + (home-page "https://github.com/getpelican/feedgenerator") (synopsis "Standalone version of Django's Atom/RSS feed generator") (description -- cgit 1.4.1 From 80c1375974566133fe694047d47fe4c80e7d4186 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 21 Apr 2016 12:49:48 -0400 Subject: gnu: openldap: Update to 2.4.44 [fixes CVE-2015-6908]. * gnu/packages/openldap.scm (openldap)[replacement]: New field. (openldap-2.4.44): New variable. --- gnu/packages/openldap.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/openldap.scm b/gnu/packages/openldap.scm index d416a43857..429078fc92 100644 --- a/gnu/packages/openldap.scm +++ b/gnu/packages/openldap.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015 Ludovic Courtès ;;; Copyright © 2013 Andreas Enge +;;; Copyright © 2016 Leo Famulari ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,6 +34,7 @@ (define-public openldap (package + (replacement openldap-2.4.44) (name "openldap") (version "2.4.42") (source (origin @@ -76,3 +78,24 @@ "OpenLDAP is a free implementation of the Lightweight Directory Access Protocol.") (license openldap2.8) (home-page "http://www.openldap.org/"))) + +(define openldap-2.4.44 + (package + (inherit openldap) + (replacement #f) + (source + (let ((version "2.4.44")) + (origin + (method url-fetch) + (uri (list (string-append + "ftp://mirror.switch.ch/mirror/OpenLDAP/" + "openldap-release/openldap-" version ".tgz") + (string-append + "ftp://ftp.OpenLDAP.org/pub/OpenLDAP/" + "openldap-release/openldap-" version ".tgz") + (string-append + "ftp://ftp.dti.ad.jp/pub/net/OpenLDAP/" + "openldap-release/openldap-" version ".tgz"))) + (sha256 + (base32 + "0044p20hx07fwgw2mbwj1fkx04615hhs1qyx4mawj2bhqvrnppnp"))))))) -- cgit 1.4.1 From ae2018968186018c1331fde983b7078c0e6e4ca2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 24 Apr 2016 23:46:06 +0200 Subject: gnu: guix: Update development snapshot. * gnu/packages/package-management.scm (guix-devel): Update to 80627f5. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 46ebde80ca..0a765cd080 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -203,7 +203,7 @@ the Nix package manager.") ;; ;; Note: use a very short commit id; with a longer one, the limit on ;; hash-bang lines would be exceeded while running the tests. - (let ((commit "761139354798303c605964b896c250a01486b00a")) + (let ((commit "80627f51f0238b9450745f4e642172d059ca5bb5")) (package (inherit guix-0.10.0) (version (string-append "0.10.0-0." (string-take commit 4))) (source (origin @@ -213,7 +213,7 @@ the Nix package manager.") (commit commit))) (sha256 (base32 - "1wvy9kms3v6k7cybw6489mqk161lv8d03qgmmxbmdgiwjmjxbzbn")) + "102gdbx5imx0zab7i5dwa1z9j1diblinaaja09dp3q30770iyxj9")) (file-name (string-append "guix-" version "-checkout")))) (arguments (substitute-keyword-arguments (package-arguments guix-0.10.0) -- cgit 1.4.1 From 76e6e663f5e96357b2928570b94f8f1bc3a26bb0 Mon Sep 17 00:00:00 2001 From: Erik Edrosa Date: Wed, 20 Apr 2016 16:22:36 -0400 Subject: gnu: guile-minikanren: Remove extra .scm on files. * gnu/packages/guile.scm (guile-minikanren): Remove extra .scm appended to files. --- gnu/packages/guile.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index e247634e04..f978a42c84 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Christopher Allan Webber ;;; Copyright © 2016 Alex Sassmannshausen ;;; Copyright © 2016 Ricardo Wurmus +;;; Copyright © 2016 Erik Edrosa ;;; ;;; This file is part of GNU Guix. ;;; @@ -529,7 +530,7 @@ http:://json.org specification. These are the main features: (setenv "GUILE_AUTO_COMPILE" "0") (for-each (lambda (file) (let* ((dest-file (string-append module-dir "/" - file ".scm")) + file)) (go-file (match (string-split file #\.) ((base _) (string-append module-dir "/" -- cgit 1.4.1 From 4960beaa23965877b578c1e54e735bba639e96ee Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 24 Apr 2016 14:01:15 -0400 Subject: gnu: haunt: Update to 0.2. * gnu/packages/guile.scm (haunt): Update to 0.2. [native-inputs]: Add pkg-config and texinfo. [propagated-inputs]: Add guile-reader. --- gnu/packages/guile.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index f978a42c84..53ea3e53bb 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -712,14 +712,14 @@ Guile's foreign function interface.") (define-public haunt (package (name "haunt") - (version "0.1") + (version "0.2") (source (origin (method url-fetch) - (uri (string-append "http://files.dthompson.us/haunt/haunt-" + (uri (string-append "https://files.dthompson.us/haunt/haunt-" version ".tar.gz")) (sha256 (base32 - "15q1qwjnay7k90ppqrzqsmikvwyj61mjvf1zahyd9gm4vi2fgb3x")))) + "1id83n8fs7jxys1d8jy70vylg8gzcvlw1y7hb41y3qxv5zi4671m")))) (build-system gnu-build-system) (arguments `(#:modules ((ice-9 match) (ice-9 ftw) @@ -743,8 +743,13 @@ Guile's foreign function interface.") `("GUILE_LOAD_COMPILED_PATH" ":" prefix (,modules))) #t))))))))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("texinfo" ,texinfo))) (inputs `(("guile" ,guile-2.0))) + (propagated-inputs + `(("guile-reader" ,guile-reader))) (synopsis "Functional static site generator") (description "Haunt is a static site generator written in Guile Scheme. Haunt features a functional build system and an extensible -- cgit 1.4.1 From 74182c4f31f65365436428f7ab65646c66ede5dd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 17 Apr 2016 14:53:18 -0400 Subject: gnu: borg: Update to 1.0.2. * gnu/packages/backup.scm (borg): Update to 1.0.2. --- gnu/packages/backup.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm index 4bdb9ca059..a7b48f1154 100644 --- a/gnu/packages/backup.scm +++ b/gnu/packages/backup.scm @@ -409,13 +409,13 @@ detection, and lossless compression.") (define-public borg (package (name "borg") - (version "1.0.1") + (version "1.0.2") (source (origin (method url-fetch) (uri (pypi-uri "borgbackup" version)) (sha256 (base32 - "1fhzsj66fnyz8059k0zx8ldhyjqj73980qrz48aqwz1097kc58jq")))) + "1myz10pwxnac9z59gw1w3xjhz6ghx03vngpl97ca527pj0r39shi")))) (build-system python-build-system) (arguments `(#:phases -- cgit 1.4.1 From 763dd00b7232724081fbf16da4d1a463ea0532f8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 24 Apr 2016 19:04:00 -0400 Subject: gnu: ncmpcpp: Update to 0.7.4. * gnu/packages/mpd.scm (ncmpcpp): Update to 0.7.4. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 1af66e039c..63cb16fccb 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -181,7 +181,7 @@ terminal using ncurses.") (define-public ncmpcpp (package (name "ncmpcpp") - (version "0.7.3") + (version "0.7.4") (source (origin (method url-fetch) (uri @@ -189,7 +189,7 @@ terminal using ncurses.") version ".tar.bz2")) (sha256 (base32 - "04mj6r0whikliblxfbz92pibwcd7a3ywkryf01a89zd4bi1jk2rc")))) + "0qqy3w2vw3i9rxz0z8n0plmwwfv6gzrxip86l894l1xbvzqja16p")))) (build-system gnu-build-system) (inputs `(("libmpdclient" ,libmpdclient) ("boost" ,boost) -- cgit 1.4.1 From 8e6352870d4ecd0d9fcbfe745dda69552d3d07be Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Sun, 24 Apr 2016 16:50:36 -0400 Subject: gnu: Add ristretto. * gnu/packages/xfce.scm (ristretto): Add variable. --- gnu/packages/xfce.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 89071e991d..2d15731510 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver ;;; Copyright © 2016 Andreas Enge ;;; Copyright © 2016 Florian Paul Schmidt +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -756,3 +757,34 @@ freedesktop-compliant DBus interfaces to inform other applications about current power level so that they can adjust their power consumption, and it provides the inhibit interface which allows applications to prevent automatic sleep.") (license gpl2+))) + +(define-public ristretto + (package + (name "ristretto") + (version "0.8.0") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.xfce.org/src/apps/ristretto/" + (version-major+minor version) "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0a7kwhx51fd2kqh7l7kp13wcn39d2fjkwnn9rfd1k9ydrqj56qki")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("desktop-file-utils" ,desktop-file-utils) + ("libexif" ,libexif) + ("libxfce4ui" ,libxfce4ui) + ("librsvg" ,librsvg) + ("tumbler" ,tumbler))) + (home-page "http://docs.xfce.org/apps/ristretto/start") + (synopsis "Fast and lightweight picture-viewer") + (description + "The Ristretto Image Viewer is an application that can be used to view, +and scroll through images. It can be used to run a slideshow of images, open +images with other applications like an image-editor or configure an image as +the desktop wallpaper.") + (license gpl2+))) -- cgit 1.4.1 From 85f09459162d12e7ce7874995ae2837164ed17ee Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Mon, 25 Apr 2016 08:30:54 +0800 Subject: gnu: xfce: Add ristretto. * gnu/packages/xfce.scm (xfce)[propagated-inputs]: Add ristretto. --- gnu/packages/xfce.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages') diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index 2d15731510..bd4992eb02 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -699,6 +699,7 @@ on your desktop.") ("gnome-icon-theme" ,gnome-icon-theme) ("gtk-xfce-engine" ,gtk-xfce-engine) ("hicolor-icon-theme" ,hicolor-icon-theme) + ("ristretto" ,ristretto) ("shared-mime-info" ,shared-mime-info) ("thunar" ,thunar) ("thunar-volman" ,thunar-volman) -- cgit 1.4.1 From 426037267122c5b7671f6492ff277bbffe3bc6fb Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 05:17:27 +0300 Subject: gnu: python-pandas: Rearrange inputs. * gnu/packages/python.scm (python-pandas)[propagated-inputs]: Move python-pytz, python-dateutil-2 ... [inputs]: ... to here. --- gnu/packages/python.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 7c3b5fa3bc..f1093da65f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -992,8 +992,9 @@ datetime module, available in Python 2.3+.") "python-pandas-fix-tslib-test-failure.patch")))) (build-system python-build-system) (propagated-inputs - `(("python-numpy" ,python-numpy) - ("python-pytz" ,python-pytz) + `(("python-numpy" ,python-numpy))) + (inputs + `(("python-pytz" ,python-pytz) ("python-dateutil" ,python-dateutil-2))) (native-inputs `(("python-nose" ,python-nose) -- cgit 1.4.1 From fc899d4f73a9af38af5c1b11ddd150e4c21341a0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 15:17:14 +0300 Subject: gnu: python-seaborn: Update to 0.7.0. * gnu/packages/python.scm (python-seaborn): Update to 0.7.0. [native-inputs]: Remove python-setuptools. (python2-seaborn): Build with 'strip-python2-variant'. [propagated-inputs]: Add python2-pytz. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f1093da65f..a798934eca 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4752,22 +4752,18 @@ Python style, together with a fast and comfortable execution environment.") (define-public python-seaborn (package (name "python-seaborn") - (version "0.5.1") + (version "0.7.0") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/seaborn/seaborn-" - version ".tar.gz")) + (uri (pypi-uri "seaborn" version)) (sha256 - (base32 "1236abw18ijjglmv60q85ckqrvgf5qyy4zlq7nz5aqfg6q87z3wc")))) + (base32 "0ibi3xsfm2kysph61mnfy0pf8d5rkgxgrdb0z9nbizgcgdsb5a0m")))) (build-system python-build-system) (propagated-inputs `(("python-pandas" ,python-pandas) ("python-matplotlib" ,python-matplotlib) ("python-scipy" ,python-scipy))) - (native-inputs - `(("python-setuptools" ,python-setuptools))) (home-page "http://stanford.edu/~mwaskom/software/seaborn/") (synopsis "Statistical data visualization") (description @@ -4775,16 +4771,17 @@ Python style, together with a fast and comfortable execution environment.") graphics in Python. It is built on top of matplotlib and tightly integrated with the PyData stack, including support for numpy and pandas data structures and statistical routines from scipy and statsmodels.") - (license bsd-3))) + (license bsd-3) + (properties `((python2-variant . ,(delay python2-seaborn)))))) (define-public python2-seaborn - (let ((seaborn (package-with-python2 python-seaborn))) - (package (inherit seaborn) - (propagated-inputs - `(("python2-pytz" ,python2-pytz) - ("python2-pandas" ,python2-pandas) - ("python2-matplotlib" ,python2-matplotlib) - ("python2-scipy" ,python2-scipy)))))) + (let ((base (package-with-python2 (strip-python2-variant python-seaborn)))) + (package + (inherit base) + (propagated-inputs `(("python2-pytz" ,python2-pytz) + ,@(package-propagated-inputs base))) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs base)))))) (define-public python-sympy (package -- cgit 1.4.1 From b455439bcd6c3adb2b07e0ef6d385986e901f57f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 15:48:12 +0300 Subject: gnu: python-tornado: Rearrange inputs. * gnu/packages/python.scm (python-tornado)[properties]: Define python2-variant. [inputs]: Remove python-certifi, move python-backports-abc here from native-inputs. [native-inputs]: Remove python-setuptools. (python2-tornado): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index a798934eca..418ba7fc28 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4910,11 +4910,10 @@ It is written entirely in Python.") (sha256 (base32 "1gzgwayl6hmc9jfcl88bni4jcsk2jcca9dn1rvrfsvnijcjx7hn9")))) (build-system python-build-system) - (inputs - `(("python-certifi" ,python-certifi))) (native-inputs - `(("python-backports-abc" ,python-backports-abc) - ("python-setuptools" ,python-setuptools))) + `(("python-certifi" ,python-certifi))) + (inputs + `(("python-backports-abc" ,python-backports-abc))) (home-page "http://www.tornadoweb.org/") (synopsis "Python web framework and asynchronous networking library") (description @@ -4923,16 +4922,20 @@ originally developed at FriendFeed. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user.") - (license asl2.0))) + (license asl2.0) + (properties `((python2-variant . ,(delay python2-tornado)))))) (define-public python2-tornado - (let ((tornado (package-with-python2 python-tornado))) + (let ((tornado (package-with-python2 (strip-python2-variant python-tornado)))) (package (inherit tornado) (inputs `(("python2-backport-ssl-match-hostname" ,python2-backport-ssl-match-hostname) - ("python2-singledispatch", python2-singledispatch) - ,@(package-inputs tornado)))))) + ("python2-singledispatch" ,python2-singledispatch) + ,@(package-inputs tornado))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs tornado)))))) ;; the python- version can be removed with python-3.5 (define-public python-backports-abc -- cgit 1.4.1 From bdb67d846cf6c1c3aefdc85611854a5db0416e66 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 16:29:17 +0300 Subject: gnu: python-singledispatch: Rearrange inputs. * gnu/packages/python.scm (python-singledispatch)[propagated-inputs]: Move python-six ... [inputs]: ... to here. --- gnu/packages/python.scm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 418ba7fc28..2e9d1f026a 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4877,16 +4877,14 @@ It is written entirely in Python.") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/s/singledispatch/" - "singledispatch-" version ".tar.gz")) + (uri (pypi-uri "singledispatch" version)) (sha256 (base32 "171b7ip0hsq5qm83np40h3phlr36ym18w0lay0a8v08kvy3sy1jv")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) - (propagated-inputs + (inputs `(("python-six" ,python-six))) (home-page "http://docs.python.org/3/library/functools.html#functools.singledispatch") -- cgit 1.4.1 From 783fb0a3a29cfc7283729bfb6ea0dce9b9e0b293 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 17:19:54 +0300 Subject: gnu: python-terminado: Update to 0.6. * gnu/packages/python.scm (python-terminado): Update to 0.6. [inputs]: Remove python-setuptools. Move python-nose ... [native-inputs]: ... to here. [properties]: Define python2-variant. (python2-terminado): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2e9d1f026a..2a6bac79fc 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5304,23 +5304,20 @@ pseudo terminal (pty), and interact with both the process and its pty.") (define-public python-terminado (package (name "python-terminado") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/t/terminado/terminado-" - version ".tar.gz")) + (uri (pypi-uri "terminado" version)) (sha256 (base32 - "1dkmp1n8dj5v1jl9mfrq8lwyc7dsfrvcmz2bgkpg315sy7pr7s33")))) + "09h1kwi86g5mrk14s4pgbhshd602zry29lnpxamcqz864kva22rc")))) (build-system python-build-system) (propagated-inputs `(("python-tornado" ,python-tornado) ("python-ptyprocess" ,python-ptyprocess))) - (inputs - `(("python-setuptools" ,python-setuptools) - ("python-nose" ,python-nose))) + (native-inputs + `(("python-nose" ,python-nose))) (arguments `(#:phases (modify-phases %standard-phases @@ -5331,17 +5328,19 @@ pseudo terminal (pty), and interact with both the process and its pty.") (synopsis "Terminals served to term.js using Tornado websockets") (description "This package provides a Tornado websocket backend for the term.js Javascript terminal emulator library.") - (license bsd-2))) + (license bsd-2) + (properties `((python2-variant . ,(delay python2-terminado)))))) (define-public python2-terminado - (let ((terminado (package-with-python2 python-terminado))) + (let ((terminado (package-with-python2 (strip-python2-variant python-terminado)))) (package (inherit terminado) - (propagated-inputs - `(("python2-tornado" ,python2-tornado) - ("python2-backport-ssl-match-hostname" - ,python2-backport-ssl-match-hostname) - ,@(alist-delete "python-tornado" - (package-propagated-inputs terminado))))))) + (propagated-inputs + `(("python2-backport-ssl-match-hostname" + ,python2-backport-ssl-match-hostname) + ,@(package-propagated-inputs terminado))) + (native-inputs + `(("python2-setuptools" ,python2-setuptools) + ,@(package-native-inputs terminado)))))) (define-public python-fonttools (package -- cgit 1.4.1 From a800018e03a5dab0c8577b89c820760b0b44ed8e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 25 Apr 2016 23:33:36 +0300 Subject: gnu: python2-pysnptools: Update to 0.3.9. * gnu/packages/python.scm (python2-pysnptools): Update to 0.3.9. [propagated-inputs]: Add python2-pytz. Move python2-pandas ... [inputs]: ... to here. Add python2-dateutil-2, python2-six. --- gnu/packages/python.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 2a6bac79fc..3266613b97 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3419,22 +3419,26 @@ toolkits.") (define-public python2-pysnptools (package (name "python2-pysnptools") - (version "0.3.5") + (version "0.3.9") (source (origin (method url-fetch) (uri (pypi-uri "pysnptools" version ".zip")) (sha256 (base32 - "15f4j4w5q603i7mlphb5r6mb1mn33pqg81595fpjp158140yqx7b")))) + "1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2")))) (build-system python-build-system) (arguments `(#:python ,python-2)) ; only Python 2.7 is supported (propagated-inputs `(("python2-numpy" ,python2-numpy) ("python2-scipy" ,python2-scipy) - ("python2-pandas" ,python2-pandas) + ("python2-pytz" ,python2-pytz) ("python2-cython" ,python2-cython))) + (inputs + `(("python2-dateutil-2" ,python2-dateutil-2) + ("python2-pandas" ,python2-pandas) + ("python2-six" ,python2-six))) (native-inputs `(("unzip" ,unzip) ("python2-setuptools" ,python2-setuptools))) -- cgit 1.4.1 From f79ee25f32e9eb165e34c8748a93006205d87f94 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 25 Apr 2016 18:38:50 -0500 Subject: gnu: woff2: Fix build parallelism. * gnu/packages/patches/woff2-libbrotli.patch: Add dependency of executables on object files. --- gnu/packages/patches/woff2-libbrotli.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/patches/woff2-libbrotli.patch b/gnu/packages/patches/woff2-libbrotli.patch index 47539c8070..ffa941cf92 100644 --- a/gnu/packages/patches/woff2-libbrotli.patch +++ b/gnu/packages/patches/woff2-libbrotli.patch @@ -46,7 +46,7 @@ index 92b8d54..618a751 100644 -deps : - $(MAKE) -C $(BROTLI)/dec - $(MAKE) -C $(BROTLI)/enc -+$(EXECUTABLES) : $(EXE_OBJS) ++$(EXECUTABLES) : $(EXE_OBJS) $(OBJS) + $(CXX) $(LDFLAGS) $(OBJS) $(SRCDIR)/$@.o -o $@ $(BROTLI_LIBS) $(LIBS) clean : -- cgit 1.4.1 From f674439433da47efd7253b59dbd27641c3aa6fbc Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Mon, 25 Apr 2016 17:33:06 -0400 Subject: gnu: Add xfce4-taskmanager. * gnu/packages/xfce.scm (xfce4-taskmanager): Add variable. --- gnu/packages/xfce.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm index bd4992eb02..c164c66a18 100644 --- a/gnu/packages/xfce.scm +++ b/gnu/packages/xfce.scm @@ -789,3 +789,29 @@ and scroll through images. It can be used to run a slideshow of images, open images with other applications like an image-editor or configure an image as the desktop wallpaper.") (license gpl2+))) + +(define-public xfce4-taskmanager + (package + (name "xfce4-taskmanager") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.xfce.org/src/apps/" + name "/" (version-major+minor version) "/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "1jwywmkkkmz7406m1jq40w6apiav25cznafhigbgpjv6z5hv27if")))) + (build-system gnu-build-system) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (inputs + `(("libwnck" ,libwnck-2) + ("gtk+" ,gtk+-2))) + (home-page "http://goodies.xfce.org/projects/applications/xfce4-taskmanager") + (synopsis "Easy to use task manager") + (description + "This is a task manager for the Xfce desktop. It displays the CPU and +memory usage graphically, and it can display processes as a tree.") + (license gpl2+))) -- cgit 1.4.1 From edf6015c7dddaa673bed576061549205cc4516dc Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Tue, 19 Apr 2016 13:52:05 +0300 Subject: gnu: magit: Update to 2.6.1. * gnu/packages/emacs.scm (magit): Update to 2.6.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c496c5e261..3adcc4c6a4 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -379,7 +379,7 @@ on stdout instead of using a socket as the Emacsclient does.") (define-public magit (package (name "magit") - (version "2.6.0") + (version "2.6.1") (source (origin (method url-fetch) (uri (string-append @@ -387,7 +387,7 @@ on stdout instead of using a socket as the Emacsclient does.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "04km5j6118yqz7h3dyfd4ijjd6w3pb76pjlaj25wh1bchf1yilir")))) + "1gjyb78jcfv57l9nz06n56f16qf8732a3krbqy5m7xwmilb12aml")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) -- cgit 1.4.1 From ffefa3da1aec0f197c1167667c495ebc4a52f84a Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 25 Apr 2016 19:16:01 +0300 Subject: gnu: emacs-with-editor: Update to 2.5.1. * gnu/packages/emacs.scm (emacs-with-editor): Update to 2.5.1. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3adcc4c6a4..c5bc70b301 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -354,7 +354,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (define-public emacs-with-editor (package (name "emacs-with-editor") - (version "2.5.0") + (version "2.5.1") (source (origin (method url-fetch) (uri (string-append @@ -363,7 +363,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "19gb381z61l2icg5v5pymgi1a11g3zdp5aysl2j5fh7fxxg4d4c0")))) + "1lqm0msc9lzb05ys96bsx8bf2y1qrw27dh5h6qz8lf5i4cbhflw2")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) -- cgit 1.4.1 From d1dfa22f9f704f11f1ce797957de1504a70179a2 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 25 Apr 2016 19:16:52 +0300 Subject: gnu: git-modes: Update to 1.2.2. * gnu/packages/emacs.scm (git-modes): Update to 1.2.2. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index c5bc70b301..6c53622c60 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -309,7 +309,7 @@ when typing parentheses directly or commenting out code line by line.") (define-public git-modes (package (name "git-modes") - (version "1.2.1") + (version "1.2.2") (source (origin (method url-fetch) (uri (string-append @@ -318,7 +318,7 @@ when typing parentheses directly or commenting out code line by line.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "088wyddh8y0yw77i0hx449n9zg4wzyc90h63wlmxba1ijg4dzm0p")))) + "0gb9c18jib8rpm14vig9774104lwmd8353ps0259m861syf6664d")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) -- cgit 1.4.1 From 82f4414271ce3dc412e8586e465dd4a81830aa97 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Mon, 25 Apr 2016 20:38:24 +0300 Subject: gnu: manaplus: Update to 1.6.4.23. * gnu/packages/games.scm (manaplus): Update to 1.6.4.23. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index c514671c35..d7b2f2ff89 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1187,7 +1187,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.6.3.12") + (version "1.6.4.23") (source (origin (method url-fetch) (uri (string-append @@ -1195,7 +1195,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "02bnd4nk1qzrfqckqkwb6sbjzsmacv968ih74cdgcykslpsr684d")))) + "1ja2w86rz3pliq0sdc7yxppsdjg3d1ymcx9fdsiwnw6fv5a8nbzj")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From 547cb17dafff07a8438f0155e5608f5178a8605a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 26 Apr 2016 15:28:54 +0300 Subject: gnu: pinentry: Update to 0.9.7. * gnu/packages/gnupg.scm (pinentry): Update to 0.9.7. --- gnu/packages/gnupg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index b6c1233497..d447007260 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -571,14 +571,14 @@ including tools for signing keys, keyring analysis, and party preparation. (define-public pinentry (package (name "pinentry") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) (uri (string-append "mirror://gnupg/pinentry/pinentry-" version ".tar.bz2")) (sha256 (base32 - "0rhyw1vk28kgasjp22myf7m2q8kycw82d65pr9kgh93z17lj849a")))) + "1cp7wjqr6nx31mdclr61s2h84ijqjl0ph99kgj4vyawpjj1j1633")))) (build-system gnu-build-system) (inputs `(("ncurses" ,ncurses) @@ -588,7 +588,7 @@ including tools for signing keys, keyring analysis, and party preparation. ("glib" ,glib))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://gnupg.org/aegypten2/") + (home-page "https://gnupg.org/aegypten2/") (synopsis "GnuPG's interface to passphrase input") (description "Pinentry provides a console and a GTK+ GUI that allows users to -- cgit 1.4.1 From 6b49a37e6b653797e3335198203dec884798d037 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Mon, 25 Apr 2016 11:17:21 +0200 Subject: gnu: Add filevercmp. * gnu/packages/bioinformatics.scm (filevercmp): New variable. --- gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 899ce1ca0c..e973fff409 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -5074,3 +5074,31 @@ 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+))) + +(define-public filevercmp + (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")) + (package + (name "filevercmp") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/filevercmp/archive/" + commit ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "filevercmp" bin))))))) + (home-page "https://github.com/ekg/filevercmp") + (synopsis "This program compares version strings") + (description "This program compares version strings. It intends to be a +replacement for strverscmp.") + (license license:gpl3+)))) -- cgit 1.4.1 From c587725a69b7160518fd32a56f08833754e333fb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:43:02 +0200 Subject: gnu: r-rcpp: Update to 0.12.4. * gnu/packages/statistics.scm (r-rcpp): Update to 0.12.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b02ab560c3..616eb14354 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -326,13 +326,13 @@ Munsell colour system.") (define-public r-rcpp (package (name "r-rcpp") - (version "0.12.0") + (version "0.12.4") (source (origin (method url-fetch) (uri (cran-uri "Rcpp" version)) (sha256 - (base32 "182109z0yc1snqgd833ssl2cix6cbq83bcxmy5344b15ym820y38")))) + (base32 "1lyhyaxrnb5w4igi3l1p378s4jblcnrv6h7h5ym42ljm54mm44w3")))) (build-system r-build-system) (home-page "http://www.rcpp.org") (synopsis "Seamless R and C++ Integration") -- cgit 1.4.1 From 73d5d4aa6398153927d01f4e808f2d43088e8bd6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:43:38 +0200 Subject: gnu: r-jsonlite: Update to 0.9.19. * gnu/packages/web.scm (r-jsonlite): Update to 0.9.19. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 58de65ce39..68a7869359 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -2960,13 +2960,13 @@ particularly easy to create complete web applications using httpuv alone.") (define-public r-jsonlite (package (name "r-jsonlite") - (version "0.9.17") + (version "0.9.19") (source (origin (method url-fetch) (uri (cran-uri "jsonlite" version)) (sha256 (base32 - "07s11m8z43dh5pyci5rpjqj5js69q8prjar42qhhxbvdmcrjk4z7")))) + "1hbdraj3xv2l2gs9f205j8z054ycy0bfdvwdhvpa9qlji588sz7g")))) (build-system r-build-system) (home-page "http://arxiv.org/abs/1403.2805") (synopsis "Robust, high performance JSON parser and generator for R") -- cgit 1.4.1 From 46a2d1b66f994ac880e4b5194c1a308889b0f961 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:44:04 +0200 Subject: gnu: r-servr: Update to 0.4. * gnu/packages/web.scm (r-servr): Update to 0.4. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 68a7869359..1ff809715d 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -2984,13 +2984,13 @@ in systems and applications.") (define-public r-servr (package (name "r-servr") - (version "0.2") + (version "0.4") (source (origin (method url-fetch) (uri (cran-uri "servr" version)) (sha256 (base32 - "0gah99snaj8lk5zfzbxi3jwvpnlff9diz9gqv4qalfxpmb7fp6lc")))) + "1fkqf5ynd1g0932qwv5nr70bw42m8vxpc9rhi0qxmdamwqcw8qjn")))) (build-system r-build-system) (propagated-inputs `(("r-httpuv" ,r-httpuv) -- cgit 1.4.1 From c0bfa472bdcc9639aa0547ccf3bd15f3b915fe5e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:44:35 +0200 Subject: gnu: r-htmlwidgets: Update to 0.6. * gnu/packages/web.scm (r-htmlwidgets): Update to 0.6. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 1ff809715d..bb2640ad33 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3029,13 +3029,13 @@ directory.") (define-public r-htmlwidgets (package (name "r-htmlwidgets") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) (uri (cran-uri "htmlwidgets" version)) (sha256 (base32 - "1d583kk7g29r4sq0y1scri7fs48z6q17c051nyjywcvnpy4lvi8j")))) + "1sljs7zajzj1lsrrvqv7anpma4plzs79mqwmw7b2c5d7mn9py8lw")))) (build-system r-build-system) (propagated-inputs `(("r-htmltools" ,r-htmltools) -- cgit 1.4.1 From 2ff8212eb99c40a2160936d62d0722e329dcaef5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:45:12 +0200 Subject: gnu: r-curl: Update to 0.9.7. * gnu/packages/web.scm (r-curl): Update to 0.9.7. --- gnu/packages/web.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index bb2640ad33..035c90bc95 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -3052,13 +3052,13 @@ applications.") (define-public r-curl (package (name "r-curl") - (version "0.9.3") + (version "0.9.7") (source (origin (method url-fetch) (uri (cran-uri "curl" version)) (sha256 (base32 - "02p9s1jlk8dcbvn71ivn4xnrqh9dwqyhgn4s1fzcfmnmfxhl5gld")))) + "1p24bcaf1wbfdi1r9ibyyp0l0zp4kzs4g3srv8vikz93hycm1qa6")))) (build-system r-build-system) (inputs `(("libcurl" ,curl))) -- cgit 1.4.1 From e1c2ad6777aeab06ed28c9b775168cdb86e5a273 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:45:55 +0200 Subject: gnu: r-qtl: Update to 1.39-5. * gnu/packages/bioinformatics.scm (r-qtl): Update to 1.39-5. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index e973fff409..744744e99f 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -4993,7 +4993,7 @@ throughput genetic sequencing data sets using regression methods.") (define-public r-qtl (package (name "r-qtl") - (version "1.38-4") + (version "1.39-5") (source (origin (method url-fetch) @@ -5001,7 +5001,7 @@ throughput genetic sequencing data sets using regression methods.") version ".tar.gz")) (sha256 (base32 - "0rv9xhp8lyldpgwxqirhyjqvg07dr5x4x1x2jpyj37dada9ccyx3")))) + "1grwgvyv7x0dgay1858bg7qf4wk47gpnq7qkqpcda9cn0h970d6f")))) (build-system r-build-system) (home-page "http://rqtl.org/") (synopsis "R package for analyzing QTL experiments in genetics") -- cgit 1.4.1 From fb868e33955755a95bb1db4aedd30172037136bb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 19 Apr 2016 17:46:27 +0200 Subject: gnu: r-acsnminer: Update to 0.16.01.29. * gnu/packages/bioinformatics.scm (r-acsnminer): Update to 0.16.01.29. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 744744e99f..620439f144 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3957,13 +3957,13 @@ BLAST, KEGG, GenBank, MEDLINE and GO.") (define-public r-acsnminer (package (name "r-acsnminer") - (version "0.15.11") + (version "0.16.01.29") (source (origin (method url-fetch) (uri (cran-uri "ACSNMineR" version)) (sha256 (base32 - "1dl4drhjyazwm9wxlm8yfppwvvj4h6jxwmz8kfw5bxpb3jdnsqvy")))) + "1b1243wkncanm1blkqzicjgzb576vzcg4iwinsgn2xqr7f264amf")))) (properties `((upstream-name . "ACSNMineR"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 35b2001a14b1ac71eb6e8e4226f26177abf8b7c7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:12:40 +0200 Subject: gnu: Add r-praise. * gnu/packages/statistics.scm (r-praise): New variable. --- gnu/packages/statistics.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 616eb14354..25065c9917 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -863,6 +863,25 @@ New styles can also be created easily. This package was inspired by the \"chalk\" JavaScript project.") (license license:expat))) +(define-public r-praise + (package + (name "r-praise") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "praise" version)) + (sha256 + (base32 + "1gfyypnvmih97p2r0php9qa39grzqpsdbq5g0fdsbpq5zms5w0sw")))) + (build-system r-build-system) + (home-page "https://github.com/gaborcsardi/praise") + (synopsis "Functions to praise users") + (description + "This package provides template functions to assist in building friendly +R packages that praise their users.") + (license license:expat))) + (define-public r-testthat (package (name "r-testthat") -- cgit 1.4.1 From c26c062838ac1a4f7cce9f6e4c8f0f8ada043c28 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:13:06 +0200 Subject: gnu: Add r-openssl. * gnu/packages/statistics.scm (r-openssl): New variable. --- gnu/packages/statistics.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 25065c9917..781620ca31 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1345,6 +1345,35 @@ module, Java Server Pages, and Python's psp module.") collation, and NAMESPACE files.") (license license:gpl2+))) +(define-public r-openssl + (package + (name "r-openssl") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "openssl" version)) + (sha256 + (base32 + "1dbsaciz39zvsmcyxkmpfm5yxzrpw2iv2nb86525wn80q0cyv0cb")))) + (build-system r-build-system) + (inputs + `(("openssl" ,openssl))) + (home-page "https://github.com/jeroenooms/openssl") + (synopsis "Toolkit for encryption, signatures and certificates") + (description + "This package provides R bindings to OpenSSL libssl and libcrypto, plus +custom SSH pubkey parsers. It supports RSA, DSA and NIST curves P-256, P-384 +and P-521. Cryptographic signatures can either be created and verified +manually or via x509 certificates. AES block cipher is used in CBC mode for +symmetric encryption; RSA for asymmetric (public key) encryption. High-level +envelope functions combine RSA and AES for encrypting arbitrary sized data. +Other utilities include key generators, hash functions (md5, sha1, sha256, +etc), base64 encoder, a secure random number generator, and @code{bignum} math +methods for manually performing crypto calculations on large multibyte +integers.") + (license license:expat))) + (define-public r-httr (package (name "r-httr") -- cgit 1.4.1 From 94b7e9b7b4d03a5dd42b6514c346062ea0f198a1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:14:17 +0200 Subject: gnu: Add r-tidyr. * gnu/packages/statistics.scm (r-tidyr): New variable. --- gnu/packages/statistics.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 781620ca31..44553d54e4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2413,6 +2413,35 @@ black-and-white. They are also designed to be perceived by readers with the most common form of color blindness.") (license license:x11))) +(define-public r-tidyr + (package + (name "r-tidyr") + (version "0.4.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "tidyr" version)) + (sha256 + (base32 + "0xp6lyr2l4ix2mrilx4qmca7wm5qmbhvi24m4nf7qsgwp54gnv2h")))) + (build-system r-build-system) + (propagated-inputs + `(("r-dplyr" ,r-dplyr) + ("r-lazyeval" ,r-lazyeval) + ("r-magrittr" ,r-magrittr) + ("r-rcpp" ,r-rcpp) + ("r-stringi" ,r-stringi))) + (home-page "https://github.com/hadley/tidyr") + (synopsis "Tidy data with `spread()` and `gather()` functions") + (description + "tidyr is a reframing of the reshape2 package designed to accompany the +tidy data framework, and to work hand-in-hand with magrittr and dplyr to build +a solid pipeline for data analysis. It is designed specifically for tidying +data, not the general reshaping that reshape2 does, or the general aggregation +that reshape did. In particular, built-in methods only work for data frames, +and tidyr provides no margins or aggregation.") + (license license:expat))) + (define-public r-plotly (package (name "r-plotly") -- cgit 1.4.1 From bae79538528ce20139d18bc3ee68dba405e0a612 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:14:41 +0200 Subject: gnu: Add r-hexbin. * gnu/packages/statistics.scm (r-hexbin): New variable. --- gnu/packages/statistics.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 44553d54e4..8992024729 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2442,6 +2442,29 @@ that reshape did. In particular, built-in methods only work for data frames, and tidyr provides no margins or aggregation.") (license license:expat))) +(define-public r-hexbin + (package + (name "r-hexbin") + (version "1.27.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "hexbin" version)) + (sha256 + (base32 + "0xi6fbf1fvyn2gffr052n3viibqzpr3603sgi4xaminbzja4syjh")))) + (build-system r-build-system) + (propagated-inputs + `(("r-lattice" ,r-lattice))) + (native-inputs + `(("gfortran" ,gfortran))) + (home-page "http://github.com/edzer/hexbin") + (synopsis "Hexagonal binning routines") + (description + "This package provides binning and plotting functions for hexagonal bins. +It uses and relies on grid graphics and formal (S4) classes and methods.") + (license license:gpl2+))) + (define-public r-plotly (package (name "r-plotly") -- cgit 1.4.1 From fe2087ccd8bc63eb3e02ada892b32b2120266f98 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:22:56 +0200 Subject: gnu: r-digest: Update to 0.6.9. * gnu/packages/statistics.scm (r-digest): Update to 0.6.9. [arguments]: Disable tests and vignettes. --- gnu/packages/statistics.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 8992024729..c2fe62d538 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -225,14 +225,19 @@ effects of different types of color-blindness.") (define-public r-digest (package (name "r-digest") - (version "0.6.8") + (version "0.6.9") (source (origin (method url-fetch) (uri (cran-uri "digest" version)) (sha256 - (base32 "0m9grqv67hhf51lz10whymhw0g0d98466ka694kya5x95hn44qih")))) + (base32 "0ixy1mb7kfl20lkckqiilpw03g1ip4ibihs03gicz7w625hc7zcm")))) (build-system r-build-system) + ;; Vignettes require r-knitr, which requires r-digest, so we have to + ;; disable them and the tests. + (arguments + `(#:tests? #f + #:configure-flags (list "--no-build-vignettes"))) (home-page "http://dirk.eddelbuettel.com/code/digest.html") (synopsis "Create cryptographic hash digests of R objects") (description -- cgit 1.4.1 From a99bed8cf3fbccb3a75d591ea9c3ca0fb02efef8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:23:48 +0200 Subject: gnu: r-munsell: Update to 0.4.3. * gnu/packages/statistics.scm (r-munsell): Update to 0.4.3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index c2fe62d538..b743fd83f8 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -311,13 +311,13 @@ see package vignette. To quote Rene Magritte, \"Ceci n'est pas un pipe.\"") (define-public r-munsell (package (name "r-munsell") - (version "0.4.2") + (version "0.4.3") (source (origin (method url-fetch) (uri (cran-uri "munsell" version)) (sha256 - (base32 "1bi5yi0i80778bbzx2rm4f0glpc34kvh24pwwfhm4v32izsqgrw4")))) + (base32 "0jdxlbjslkzaqgp058da1cgm85qvqi09wpcgpvp4hvwnmy83qz1r")))) (build-system r-build-system) (propagated-inputs `(("r-colorspace" ,r-colorspace))) -- cgit 1.4.1 From 9ee6d314c4b08e9f9c5f5ba368549df230a653ef Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:24:32 +0200 Subject: gnu: r-stringi: Update to 1.0-1. * gnu/packages/statistics.scm (r-stringi): Update to 1.0-1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b743fd83f8..67ff869e44 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -414,14 +414,14 @@ designed by Cynthia Brewer as described at http://colorbrewer2.org") (define-public r-stringi (package (name "r-stringi") - (version "0.5-5") + (version "1.0-1") (source (origin (method url-fetch) (uri (cran-uri "stringi" version)) (sha256 (base32 - "183wrrjhpgl1wbnn9lhghyvhz7l2mc64mpcmzplckal7y9j7pmhw")))) + "1ld38536sswyywp6pyys3v8vkngbk5cksrhdxp8jyr6bz7qf8j77")))) (build-system r-build-system) (inputs `(("icu4c" ,icu4c))) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit 1.4.1 From cf2e19a95a5f9c295460d9a96c38e77480dd16bd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:25:05 +0200 Subject: gnu: r-scales: Update to 0.4.0. * gnu/packages/statistics.scm (r-scales): Update to 0.4.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 67ff869e44..0efdbd26b1 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -486,13 +486,13 @@ using just two functions: melt and dcast (or acast).") (define-public r-scales (package (name "r-scales") - (version "0.3.0") + (version "0.4.0") (source (origin (method url-fetch) (uri (cran-uri "scales" version)) (sha256 - (base32 "1kkgpqzb0a6lnpblhcprr4qzyfk5lhicdv4639xs5cq16n7bkqgl")))) + (base32 "19y6q4j8vpmc73dnn4ncp5wj44gri7m77ys3z2rn3crrcc9zc7l5")))) (build-system r-build-system) (propagated-inputs `(("r-dichromat" ,r-dichromat) -- cgit 1.4.1 From b268e49691da4361ac7c9f0f01e1ad1236a19c78 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:25:33 +0200 Subject: gnu: r-ggplot2: Update to 2.1.0. * gnu/packages/statistics.scm (r-ggplot2): Update to 2.1.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 0efdbd26b1..938022b58c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -512,13 +512,13 @@ legends.") (define-public r-ggplot2 (package (name "r-ggplot2") - (version "2.0.0") + (version "2.1.0") (source (origin (method url-fetch) (uri (cran-uri "ggplot2" version)) (sha256 - (base32 "07r5zw0ccv4sf1mdxcz9wa86p2c6j61cnnq18qdjrh3zhhcbmdp2")))) + (base32 "0s9rvp0f736ji6p9xpxq54agxf95pjkql4sj7ag0hv2xhnp27hzj")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) -- cgit 1.4.1 From 2c8fa9d702a4482655372d89f925eac4218d54a7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:26:06 +0200 Subject: gnu: r-bh: Update to 1.60.0-1. * gnu/packages/statistics.scm (r-bh): Update to 1.60.0-1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 938022b58c..e59bece3e9 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -599,13 +599,13 @@ R/DBMS implementations.") (define-public r-bh (package (name "r-bh") - (version "1.58.0-1") + (version "1.60.0-1") (source (origin (method url-fetch) (uri (cran-uri "BH" version)) (sha256 (base32 - "17rnwyw9ib2pvm60iixzkbz7ff4fslpifp1nlx4czp42hy67kqpf")))) + "08gc3b0irgvpjl59irdxs8jhlbky4yp4fvs3zi4pq0wdwj43cfsk")))) (build-system r-build-system) (home-page "https://github.com/eddelbuettel/bh") (synopsis "R package providing subset of Boost headers") -- cgit 1.4.1 From 49089e06ecc6249df6122660a13fc069b8b97a43 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:26:51 +0200 Subject: gnu: r-evaluate: Update to 0.8.3. * gnu/packages/statistics.scm (r-evaluate): Update to 0.8.3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e59bece3e9..ab7338b736 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -617,13 +617,13 @@ for template use among CRAN packages.") (define-public r-evaluate (package (name "r-evaluate") - (version "0.8") + (version "0.8.3") (source (origin (method url-fetch) (uri (cran-uri "evaluate" version)) (sha256 (base32 - "137gc35jlizhqnx19mxim3llrkm403abj8ghb2b7v5ls9rvd40pq")))) + "08d6164m9wqf9qq6yh1s9a0qxwqzqpsq7312hilzy79gxf9gixzr")))) (build-system r-build-system) (propagated-inputs `(("r-stringr" ,r-stringr))) -- cgit 1.4.1 From 1cfa88e988ff950678a0ddccb86e2eef4cd068d8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:27:29 +0200 Subject: gnu: r-formatr: Update to 1.3. * gnu/packages/statistics.scm (r-formatr): Update to 1.3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ab7338b736..1aa584bb77 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -639,13 +639,13 @@ adapted for other output formats, such as HTML or LaTeX.") (define-public r-formatr (package (name "r-formatr") - (version "1.2.1") + (version "1.3") (source (origin (method url-fetch) (uri (cran-uri "formatR" version)) (sha256 (base32 - "0f4cv2zv5wayyqx99ybfyl0p83kgjvnsv8dhcwa4s49kw6jsx1lr")))) + "09fsd0z6nhksc1h921h8q28f87hr6d1q8d6dmpxphjylb9r5xmj4")))) (build-system r-build-system) (home-page "http://yihui.name/formatR") (synopsis "Format R code automatically") -- cgit 1.4.1 From bb61b765c090f4f0c836f89711accf0016420f5a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:27:52 +0200 Subject: gnu: r-knitr: Update to 1.12.3. * gnu/packages/statistics.scm (r-knitr): Update to 1.12.3. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1aa584bb77..abc0e16530 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -740,13 +740,13 @@ emitter (http://pyyaml.org/wiki/LibYAML) for R.") (define-public r-knitr (package (name "r-knitr") - (version "1.11") + (version "1.12.3") (source (origin (method url-fetch) (uri (cran-uri "knitr" version)) (sha256 (base32 - "1ikjla0hnpjfkdbydqhhqypc0aiizbi4nyn8c694sdk9ca4jasdd")))) + "1v3rzv6wq8mvpdrljsaqk4z3f8323jnv385js24wmn4fglqly6dz")))) (build-system r-build-system) (propagated-inputs `(("r-evaluate" ,r-evaluate) -- cgit 1.4.1 From 8e4edf0802955f0b44f16f82d869fe31c71108ba Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:28:20 +0200 Subject: gnu: r-microbenchmark: Update to 1.4-2.1. * gnu/packages/statistics.scm (r-microbenchmark): Update to 1.4-2.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index abc0e16530..05140bdb5f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -769,13 +769,13 @@ generation in R using Literate Programming techniques.") (define-public r-microbenchmark (package (name "r-microbenchmark") - (version "1.4-2") + (version "1.4-2.1") (source (origin (method url-fetch) (uri (cran-uri "microbenchmark" version)) (sha256 (base32 - "05yxvdnkxr2ll94h6f2m5sn3gg7vrlm9nbdxgmj2g8cp8gfxpfkg")))) + "0qn5r1a6qidghcisc2hpbdmj62pnixc3zz6p4ipk8mvakf0hdsvg")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2))) -- cgit 1.4.1 From 618dbdd7c0ec1a2f0cd74a098695a410ef4c520a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:28:59 +0200 Subject: gnu: r-memoise: Update to 1.0.0. * gnu/packages/statistics.scm (r-memoise): Update to 1.0.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 05140bdb5f..9afc02e505 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -828,13 +828,13 @@ understand the language at a deeper level.") (define-public r-memoise (package (name "r-memoise") - (version "0.2.1") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "memoise" version)) (sha256 (base32 - "19wm4b3kq6xva43kga3xydnl7ybl5mq7b4y2fczgzzjz63jd75y4")))) + "0sq2dhpvxy17v1baj256r0jnygdy3m5a8x4zh6vhv29957qnq6zx")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest))) -- cgit 1.4.1 From 2448c723b7fe419211b6dcaa1aeb2249425ab9ee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:29:35 +0200 Subject: gnu: r-cluster: Update to 2.0.4. * gnu/packages/statistics.scm (r-cluster): Update to 2.0.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 9afc02e505..aea3ea21d3 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -993,14 +993,14 @@ transformations.") (define-public r-cluster (package (name "r-cluster") - (version "2.0.3") + (version "2.0.4") (source (origin (method url-fetch) (uri (cran-uri "cluster" version)) (sha256 (base32 - "03jfczb3dwg57f164pya0b762xgyswyb9a7s33lw9i0s5dq72ri8")))) + "1r669aaaia05i8sv8hxiig1ddah7hm8qw869wgig5i0zzk22bnfl")))) (build-system r-build-system) (inputs `(("gfortran" ,gfortran))) -- cgit 1.4.1 From 904fa49de62664289e4e165c60b274d19d10bf39 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:30:04 +0200 Subject: gnu: r-roxygen2: Update to 5.0.1. * gnu/packages/statistics.scm (r-roxygen2): Update to 5.0.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index aea3ea21d3..d2291cd165 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1329,13 +1329,13 @@ module, Java Server Pages, and Python's psp module.") (define-public r-roxygen2 (package (name "r-roxygen2") - (version "5.0.0") + (version "5.0.1") (source (origin (method url-fetch) (uri (cran-uri "roxygen2" version)) (sha256 (base32 - "0xjdphjs7l1v71lylmqgp76cbcxzvm9z1a40jgkdwvz072nn08vr")))) + "19gblyrrn29msbpawcb1hn5m1rshiqwxy0lby0vf92rm13fmsxcz")))) (build-system r-build-system) (propagated-inputs `(("r-brew" ,r-brew) -- cgit 1.4.1 From 06a4af12834fe0c8e57ffa1fc3cf46979f148fdd Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:30:56 +0200 Subject: gnu: r-git2r: Update to 0.14.0. * gnu/packages/statistics.scm (r-git2r): Update to 0.14.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index d2291cd165..cb11d14250 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1409,13 +1409,13 @@ functions make it easy to control additional request components.") (define-public r-git2r (package (name "r-git2r") - (version "0.11.0") + (version "0.14.0") (source (origin (method url-fetch) (uri (cran-uri "git2r" version)) (sha256 (base32 - "1h5ag8sm512jsn2sp4yhiqspc7hjq5y8z0kqz24sdznxa3b7rpn9")))) + "0jkkrggffpflaaw0gn2hnm1wz83xs31amriim481g73zf30g2bpr")))) (build-system r-build-system) ;; This R package contains modified sources of libgit2. This modified ;; version of libgit2 is built as the package is built. Hence libgit2 is -- cgit 1.4.1 From b5c574c61d6fca78c7423b7d00096c8c1093bd43 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:31:30 +0200 Subject: gnu: r-rstudioapi: Update to 0.5. * gnu/packages/statistics.scm (r-rstudioapi): Update to 0.5. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index cb11d14250..a222ff46ac 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1435,13 +1435,13 @@ pure C implementation of the Git core methods.") (define-public r-rstudioapi (package (name "r-rstudioapi") - (version "0.3.1") + (version "0.5") (source (origin (method url-fetch) (uri (cran-uri "rstudioapi" version)) (sha256 (base32 - "0q7671d924nzqsqhs8d9p7l907bcam56wjwm7vvz44xgj0saj8bs")))) + "0sgnqfx0m3hzh57k10s7ndrbw7yqjjjcgfikafya98jcc7wmpwym")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/rstudioapi") (synopsis "Safely access the RStudio API") -- cgit 1.4.1 From cf3568a05d08161f46b6a2ddfa117048a6521ab2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:31:58 +0200 Subject: gnu: r-devtools: Update to 1.11.0. * gnu/packages/statistics.scm (r-devtools): Update to 1.11.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a222ff46ac..7e7bde9e22 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1453,13 +1453,13 @@ informative error messages when it's not available.") (define-public r-devtools (package (name "r-devtools") - (version "1.10.0") + (version "1.11.0") (source (origin (method url-fetch) (uri (cran-uri "devtools" version)) (sha256 (base32 - "11x51bqhjwypbxv5sfnrnxx06b92k8kzmmx7zrwk3537r072b6pa")))) + "101j15d0f9107pnmdpdwqyvk2ncykq48336rl8lnqp6idiq8id2q")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) -- cgit 1.4.1 From 408c2d6937a3f8d4ba3814af48ddf633772b840e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:32:28 +0200 Subject: gnu: r-plotrix: Update to 3.6-1. * gnu/packages/statistics.scm (r-plotrix): Update to 3.6-1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 7e7bde9e22..1a0b4a1018 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1524,13 +1524,13 @@ disk (or a connection).") (define-public r-plotrix (package (name "r-plotrix") - (version "3.6") + (version "3.6-1") (source (origin (method url-fetch) (uri (cran-uri "plotrix" version)) (sha256 (base32 - "0zn6k8azh40v0lg7q9yd4sy30a26bcc0fjvndn4z7k36avlw4i25")))) + "1y8xnlpy4zba70af9lwj2sshvfdfcmfdh92wamyzj8z9gciailfr")))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/plotrix") (synopsis "Various plotting functions") -- cgit 1.4.1 From 0d1ffadc1dd9267c6249c0e1cd9d2390ce5d348d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:32:57 +0200 Subject: gnu: r-rmarkdown: Update to 0.9.5. * gnu/packages/statistics.scm (r-rmarkdown): Update to 0.9.5. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 1a0b4a1018..05f9189a3c 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1687,14 +1687,14 @@ encoder/decoder, round-off-error-free sum and cumsum, etc.") (define-public r-rmarkdown (package (name "r-rmarkdown") - (version "0.8.1") + (version "0.9.5") (source (origin (method url-fetch) (uri (cran-uri "rmarkdown" version)) (sha256 (base32 - "07q5g9dvac5j3vnf4sjc60mnkij1k6y7vnzjz6anf499rwdwbxza")))) + "1zz98jxvw3lzva5kkj1n37gbhjwqd96gjs04y6h37pqy6qmkhk8c")))) (properties `((upstream-name . "rmarkdown"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 810e4195fdcb68f342e97cdf6e89e467a2cffda3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:33:33 +0200 Subject: gnu: r-gtable: Update to 0.2.0. * gnu/packages/statistics.scm (r-gtable): Update to 0.2.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 05f9189a3c..987e282e6f 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1713,13 +1713,13 @@ variety of formats.") (define-public r-gtable (package (name "r-gtable") - (version "0.1.2") + (version "0.2.0") (source (origin (method url-fetch) (uri (cran-uri "gtable" version)) (sha256 (base32 - "0k9hfj6r5y238gqh92s3cbdn34biczx3zfh79ix5xq0c5vkai2xh")))) + "0vz7073m0a2q12qzzihrfh5c2kx5jqi5l7z470fxmwqghdllh7l0")))) (properties `((upstream-name . "gtable"))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/gtable") -- cgit 1.4.1 From 1647e10ebdbb720721ae7e50ef27430ba1f54dd1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:34:00 +0200 Subject: gnu: r-gridextra: Update to 2.2.1. * gnu/packages/statistics.scm (r-gridextra): Update to 2.2.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 987e282e6f..48e3285674 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1732,13 +1732,13 @@ grobs.") (define-public r-gridextra (package (name "r-gridextra") - (version "2.0.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (cran-uri "gridExtra" version)) (sha256 (base32 - "19yyrfd37c5hxlavb9lca9l26wjhc80rlqhgmfj9k3xhbvvpdp17")))) + "0638ihwl00j76ivaxxhxvi8z573lwy1jym3srr78mx6dbdd4bzj4")))) (properties `((upstream-name . "gridExtra"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 1e4abc0feea91aef84137ef97a88ccd192fbb26b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:34:28 +0200 Subject: gnu: r-xml: Update to 3.98-1.4. * gnu/packages/statistics.scm (r-xml): Update to 3.98-1.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 48e3285674..2f09c06542 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1809,13 +1809,13 @@ ldap, and also supports cookies, redirects, authentication, etc.") (define-public r-xml (package (name "r-xml") - (version "3.98-1.3") + (version "3.98-1.4") (source (origin (method url-fetch) (uri (cran-uri "XML" version)) (sha256 (base32 - "0j9ayp8a35g0227a4zd8nbmvnbfnj5w687jal6qvj4lbhi3va7sy")))) + "09hiy5a875v2fhsgrsfymrwccn9249wnnsr6ck2slrig65svq2lw")))) (properties `((upstream-name . "XML"))) (build-system r-build-system) -- cgit 1.4.1 From 887d45d466cf4c18546fa41dc177ab5623113f58 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:35:00 +0200 Subject: gnu: r-r-methodss3: Update to 1.7.1. * gnu/packages/statistics.scm (r-r-methodss3): Update to 1.7.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2f09c06542..5d13ee8a98 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2245,13 +2245,13 @@ more.") (define-public r-r-methodss3 (package (name "r-r-methodss3") - (version "1.7.0") + (version "1.7.1") (source (origin (method url-fetch) (uri (cran-uri "R.methodsS3" version)) (sha256 (base32 - "1dg4bbrwr8jcsqisjrrwxs942mrjq72zw8yvl2br4djdm0md8zz5")))) + "11z6v2i7jl647wxi9p5z66yvfnnqv6s7fxqmz7w2gkb6j8wl1f24")))) (properties `((upstream-name . "R.methodsS3"))) (build-system r-build-system) (home-page "http://cran.r-project.org/web/packages/R.methodsS3") -- cgit 1.4.1 From b2436f6af9bf28aa15bf8022f60ca3c107ad78b5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:35:29 +0200 Subject: gnu: r-r-oo: Update to 1.20.0. * gnu/packages/statistics.scm (r-r-oo): Update to 1.20.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 5d13ee8a98..a4e9080c5d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2269,13 +2269,13 @@ want to migrate to S4.") (define-public r-r-oo (package (name "r-r-oo") - (version "1.19.0") + (version "1.20.0") (source (origin (method url-fetch) (uri (cran-uri "R.oo" version)) (sha256 (base32 - "15rm1qb9a212bqazhcpk7m48hcp7jq8rh4yhd9c6zfyvdqszfmsb")))) + "1l1x4r69mdchjyi6sq52p580fz3b3bqv6dpn1706y9n4vq47qx24")))) (properties `((upstream-name . "R.oo"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 801e9e73991d8b6fb93fca8fc2eb595a39155260 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:35:55 +0200 Subject: gnu: r-r-utils: Update to 2.3.0. * gnu/packages/statistics.scm (r-r-utils): Update to 2.3.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a4e9080c5d..7791253c09 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2292,13 +2292,13 @@ maintenance for package developers.") (define-public r-r-utils (package (name "r-r-utils") - (version "2.1.0") + (version "2.3.0") (source (origin (method url-fetch) (uri (cran-uri "R.utils" version)) (sha256 (base32 - "03pi6pkcsq65fv7cn4x74cj050dc8x5d4xyg930p6f7flk788xaz")))) + "0f4z7ka1wb7bgxc5wyqihqxsnqwgyyzbglwvfwmx0gn8i0wzi647")))) (properties `((upstream-name . "R.utils"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 799ef55b15817395815bbb51f274f90136299c69 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:36:35 +0200 Subject: gnu: r-r-rsp: Update to 0.21.0. * gnu/packages/statistics.scm (r-r-rsp): Update to 0.21.0. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 7791253c09..a1a9eaffba 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2340,13 +2340,13 @@ persistent (on the file system).") (define-public r-r-rsp (package (name "r-r-rsp") - (version "0.20.0") + (version "0.21.0") (source (origin (method url-fetch) (uri (cran-uri "R.rsp" version)) (sha256 (base32 - "06vq9qq5hdz3hqc99q82622mab6ix7jwap20h4za6ap6gnwqs0fv")))) + "0snc6ps75s3ci6sy8mil1wg2i9xmlr1ygh9n244y1brdvp43dfsw")))) (properties `((upstream-name . "R.rsp"))) (build-system r-build-system) (propagated-inputs -- cgit 1.4.1 From 3646bf20823fa0ea28430a302205d9ecd7f97470 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:37:01 +0200 Subject: gnu: r-matrixstats: Update to 0.50.1. * gnu/packages/statistics.scm (r-matrixstats): Update to 0.50.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index a1a9eaffba..7e03955e76 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2371,13 +2371,13 @@ vignettes.") (define-public r-matrixstats (package (name "r-matrixstats") - (version "0.15.0") + (version "0.50.1") (source (origin (method url-fetch) (uri (cran-uri "matrixStats" version)) (sha256 (base32 - "1068k85s6rlwfzlszw790c2rndydvrsw7rpck6k6z17896m8drfa")))) + "08l32abp7dfnsc49ca4hzznh934y60n5z01x5ga2ixky5961s57c")))) (properties `((upstream-name . "matrixStats"))) (build-system r-build-system) (native-inputs -- cgit 1.4.1 From 0fc4213642b6b78734d484d9045ad46de75d6ddb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:37:38 +0200 Subject: gnu: r-viridis: Update to 0.3.4. * gnu/packages/statistics.scm (r-viridis): Update to 0.3.4. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 7e03955e76..6b45edbbcf 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2395,13 +2395,13 @@ memory usage.") (define-public r-viridis (package (name "r-viridis") - (version "0.3.1") + (version "0.3.4") (source (origin (method url-fetch) (uri (cran-uri "viridis" version)) (sha256 (base32 - "0zz9i874s1fwhl9bcbiprlzaz7zsy1rj6c729zn3k525d63qbnj7")))) + "1a9hqn2pccpc51vh8ghw698ni6xzdnp8v0n8kgjh51nlz5hhc87j")))) (build-system r-build-system) (propagated-inputs `(("r-ggplot2" ,r-ggplot2) -- cgit 1.4.1 From 99eca2b18b9cc32e418f7cdb0f380b9df128ff6e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:38:13 +0200 Subject: gnu: r-testthat: Update to 1.0.0. * gnu/packages/statistics.scm (r-testthat): Update to 1.0.0. [propagated-inputs]: Add r-magrittr, r-praise, and r-r6. --- gnu/packages/statistics.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 6b45edbbcf..bd10fa1acd 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -890,17 +890,20 @@ R packages that praise their users.") (define-public r-testthat (package (name "r-testthat") - (version "0.10.0") + (version "1.0.0") (source (origin (method url-fetch) (uri (cran-uri "testthat" version)) (sha256 (base32 - "0b3akwcx5mv9dmi8vssbk91hr3yrrdxd2fm6zhr31fnyz8kjx4pw")))) + "1ci1y54kaz7g4di79fcibp0m0wkkxn2glchhs6v8jfg6374ka410")))) (build-system r-build-system) (propagated-inputs `(("r-digest" ,r-digest) - ("r-crayon" ,r-crayon))) + ("r-crayon" ,r-crayon) + ("r-magrittr" ,r-magrittr) + ("r-praise" ,r-praise) + ("r-r6" ,r-r6))) (home-page "https://github.com/hadley/testthat") (synopsis "Unit testing for R") (description -- cgit 1.4.1 From 44d792c2e93390d1264ecbdbd5598a1a6eba39f7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:39:12 +0200 Subject: gnu: r-r6: Update to 2.1.2. * gnu/packages/statistics.scm (r-r6): Update to 2.1.2. [propagated-inputs]: Remove. --- gnu/packages/statistics.scm | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index bd10fa1acd..e2a2d644d2 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -914,21 +914,14 @@ flexible and easy to set up.") (define-public r-r6 (package (name "r-r6") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) (uri (cran-uri "R6" version)) (sha256 (base32 - "16qq35bgxgswf989yvsqkb6fv7srpf8n8dv2s2c0z9n6zgmwq66m")))) + "0yad91i9p4r8bbz6nq8zny39y767n9an7ak5p275ynx8km6v3yqv")))) (build-system r-build-system) - (propagated-inputs - `(("r-knitr" ,r-knitr) - ("r-microbenchmark" ,r-microbenchmark) - ("r-pryr" ,r-pryr) - ("r-testthat" ,r-testthat) - ("r-ggplot2" ,r-ggplot2) - ("r-scales" ,r-scales))) (home-page "https://github.com/wch/R6/") (synopsis "Classes with reference semantics in R") (description -- cgit 1.4.1 From 59bf9f4e6b0514c063dccbffac682c11b2dc7772 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:39:55 +0200 Subject: gnu: r-httr: Update to 1.1.0. * gnu/packages/statistics.scm (r-httr): Update to 1.1.0. [propagated-inputs]: Add r-openssl. --- gnu/packages/statistics.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index e2a2d644d2..3999c5f305 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1378,18 +1378,19 @@ integers.") (define-public r-httr (package (name "r-httr") - (version "1.0.0") + (version "1.1.0") (source (origin (method url-fetch) (uri (cran-uri "httr" version)) (sha256 (base32 - "1yprw8p4g8026jhravgg1hdwj1g51cpdgycyr5a58jwm4i5f79cq")))) + "08sq34pknsfcy8lm06nydi12mbaxpqpgb025ahr33v9d3g0wvh6p")))) (build-system r-build-system) (propagated-inputs `(("r-curl" ,r-curl) ("r-digest" ,r-digest) ("r-jsonlite" ,r-jsonlite) + ("r-openssl" ,r-openssl) ("r-mime" ,r-mime) ("r-r6" ,r-r6) ("r-stringr" ,r-stringr))) -- cgit 1.4.1 From 2c81794ed9bfefbfaa59b5f2630a9082da67c0af Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:40:35 +0200 Subject: gnu: r-plotly: Update to 3.4.13. * gnu/packages/statistics.scm (r-plotly): Update to 3.4.13. [propagated-inputs]: Add r-hexbin, r-scales, and r-tidyr. --- gnu/packages/statistics.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 3999c5f305..bb2e09d2fe 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2470,23 +2470,26 @@ It uses and relies on grid graphics and formal (S4) classes and methods.") (define-public r-plotly (package (name "r-plotly") - (version "2.0.3") + (version "3.4.13") (source (origin (method url-fetch) (uri (cran-uri "plotly" version)) (sha256 (base32 - "16pqycns8qf0y1j21n009qf242lv0izwyidlx40zv88izxhg1vs0")))) + "1pfl9w35iwin8a1hfwcihajyps2ngjbyrmvi61b9lspcdbk39lf8")))) (build-system r-build-system) (propagated-inputs `(("r-base64enc" ,r-base64enc) ("r-digest" ,r-digest) ("r-ggplot2" ,r-ggplot2) + ("r-hexbin" ,r-hexbin) ("r-htmlwidgets" ,r-htmlwidgets) ("r-httr" ,r-httr) ("r-jsonlite" ,r-jsonlite) ("r-magrittr" ,r-magrittr) ("r-plyr" ,r-plyr) + ("r-scales" ,r-scales) + ("r-tidyr" ,r-tidyr) ("r-viridis" ,r-viridis))) (home-page "https://plot.ly/r") (synopsis "Create interactive web graphics") -- cgit 1.4.1 From c5ad883b160fbd55990d96977ebb3f6e98325e5b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 20 Apr 2016 14:41:40 +0200 Subject: gnu: r-rcpparmadillo: Update to 0.6.700.3.0. * gnu/packages/maths.scm (armadillo-for-rcpparmadillo): Update to 6.700.3. * gnu/packages/statistics.scm (r-rcpparmadillo): Update to 0.6.700.3.0. --- gnu/packages/maths.scm | 4 ++-- gnu/packages/statistics.scm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 7ea4ca3066..d37897da20 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1512,14 +1512,14 @@ associated functions (eg. contiguous and non-contiguous submatrix views).") (define-public armadillo-for-rcpparmadillo (package (inherit armadillo) - (version "6.200.2") + (version "6.700.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/arma/armadillo-" version ".tar.gz")) (sha256 (base32 - "1f69rlqhnf2wv8khyn2a8vi6gx1i72qgfy8b9b760ssk85dcl763")))))) + "1vnhifa7d0aij3kv5bxf6m91d99h3y2fyj48jrx7jcvwyb1q5wwq")))))) (define-public muparser (package diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index bb2e09d2fe..2178984d04 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1600,13 +1600,13 @@ well as additional utilities such as panel and axis annotation functions.") (define-public r-rcpparmadillo (package (name "r-rcpparmadillo") - (version "0.6.200.2.0") + (version "0.6.700.3.0") (source (origin (method url-fetch) (uri (cran-uri "RcppArmadillo" version)) (sha256 (base32 - "137wqqga776yj6synx5awhrzgkz7mmqnvgmggh9l4k6d99vwp9gj")) + "1mc62b6my568ni18w4clgs6l6ggqrwzsm3lgx0c1prf4rap69s8w")) (modules '((guix build utils))) ;; Remove bundled armadillo sources (snippet -- cgit 1.4.1 From 4b2eede485891bb29cc0794a298056feb295cae3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 26 Apr 2016 21:11:07 +0200 Subject: gnu: frescobaldi: Update to 2.19.0. * gnu/packages/music.scm (frescobaldi): Update to 2.19.0. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 8f971f3614..fc4e57c1e2 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -866,7 +866,7 @@ projects.") (define-public frescobaldi (package (name "frescobaldi") - (version "2.18.2") + (version "2.19.0") (source (origin (method url-fetch) (uri (string-append @@ -874,7 +874,7 @@ projects.") version "/frescobaldi-" version ".tar.gz")) (sha256 (base32 - "1yns7nq2a2hz5rv4xjp21bgcdi1xj6fq48lqjrld7ypqqi5nfjp5")))) + "1rnk8i8dlshzx16n2qxcsqcs7kywgyazzyzw2vy4vp2gsm9vs9ml")))) (build-system python-build-system) (inputs `(("lilypond" ,lilypond) -- cgit 1.4.1 From 272950900362742c3e410a26aa41335281f029c3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 26 Apr 2016 21:20:02 +0200 Subject: gnu: java-swt: Update to 4.5. * gnu/packages/java.scm (java-swt): Update to 4.5. --- gnu/packages/java.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 02131f10d0..a81312b6a5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -54,16 +54,16 @@ (define-public java-swt (package (name "java-swt") - (version "4.4.2") + (version "4.5") (source (origin (method url-fetch) (uri (string-append "http://ftp-stud.fht-esslingen.de/pub/Mirrors/" "eclipse/eclipse/downloads/drops4/R-" version - "-201502041700/swt-" version "-gtk-linux-x86.zip")) + "-201506032000/swt-" version "-gtk-linux-x86.zip")) (sha256 (base32 - "0lzyqr8k2zm5s8fmnrx5kxpslxfs0i73y26fwfms483x45izzwj8")))) + "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q")))) (build-system gnu-build-system) (arguments `(#:make-flags '("-f" "make_linux.mak") -- cgit 1.4.1 From fc7c74e43d49d73298fe6df992041044f2fc92c2 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 28 Mar 2016 13:19:18 +0200 Subject: gnu: wxwidgets: Enable webview support. * gnu/packages/wxwidgets.scm (wxwidgets)[inputs]: Add webkitgtk-2.4. [arguments]: Add configure flags to enable webview via the webkitgtk backend. --- gnu/packages/wxwidgets.scm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index b49fb2fe84..2c4a26aeac 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer +;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -31,6 +32,7 @@ #:use-module (gnu packages image) #:use-module (gnu packages pkg-config) #:use-module (gnu packages sdl) + #:use-module (gnu packages webkit) #:use-module (gnu packages xorg)) (define-public wxwidgets @@ -45,7 +47,6 @@ (sha256 (base32 "0paq27brw4lv8kspxh9iklpa415mxi8zc117vbbbhfjgapf7js1l")))) (build-system glib-or-gtk-build-system) - ;; TODO: add WebKit (inputs `(("glu" ,glu) ;; XXX gstreamer-0.10 builds fail @@ -56,12 +57,17 @@ ("libsm" ,libsm) ("libtiff" ,libtiff) ("mesa" ,mesa) + ("webkitgtk" ,webkitgtk-2.4) ("sdl" ,sdl))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments '(#:configure-flags - '("--with-regex=sys" "--with-libmspack" "--with-sdl") + '("--with-regex=sys" "--with-libmspack" + "--with-sdl" + "--enable-webview" + "--enable-webkit" + "--enable-webviewwebkit") #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib")) -- cgit 1.4.1 From c30a66dedba48d1e60d2b04b84c8dbcaa513c6f0 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 28 Mar 2016 16:52:50 +0200 Subject: gnu: Add Aria Maestosa. * gnu/packages/music.scm (aria-maestosa): New variable. --- gnu/packages/music.scm | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index fc4e57c1e2..2fede0ae12 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -86,12 +86,79 @@ #:use-module (gnu packages texlive) #:use-module (gnu packages video) #:use-module (gnu packages web) + #:use-module (gnu packages wxwidgets) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages xiph) #:use-module (gnu packages zip) #:use-module ((srfi srfi-1) #:select (last))) +(define-public aria-maestosa + (package + (name "aria-maestosa") + (version "1.4.11") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/ariamaestosa/ariamaestosa/" + version "/AriaSrc-" version ".tar.bz2")) + (sha256 + (base32 + "0gf9z96z83jiabxhpl856j15vl9flfgs6x1r0r6hc7g2xvwag0vy")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + ;; TODO: Add scons-build-system and use it here. + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'scons-propagate-environment + (lambda _ + ;; By design, SCons does not, by default, propagate + ;; environment variables to subprocesses. See: + ;; + ;; Here, we modify the SConstruct file to arrange for + ;; environment variables to be propagated. + (substitute* "SConstruct" + (("env = Environment\\(\\)") + "env = Environment(ENV=os.environ)") + ;; Scons errors out when copying subdirectories from Resources, + ;; so we move them instead. + (("Copy") "Move") + ;; We move the "score" and "Documentation" directories at once, + ;; so we have to ignore files contained therein. + (("if \".svn\" in file" line) + (string-append line + " or \"score/\" in file" + " or \"Documentation/\" in file"))) + #t)) + (replace 'build (lambda _ (zero? (system* "scons")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (and + (zero? (system* "scons" + (string-append "prefix=" out) + "install")) + ;; Fix directory permissions + (begin + (chmod (string-append out "/share/Aria/Documentation") #o555) + (chmod (string-append out "/share/Aria/score") #o555) + #t)))))))) + (inputs + `(("wxwidgets" ,wxwidgets) + ("glib" ,glib) + ("alsa-lib" ,alsa-lib))) + (native-inputs + `(("scons" ,scons) + ("pkg-config" ,pkg-config))) + (home-page "http://ariamaestosa.sourceforge.net/") + (synopsis "MIDI sequencer and editor") + (description + "Aria Maestosa is a MIDI sequencer and editor. It lets you compose, edit +and play MIDI files with a few clicks in a user-friendly interface offering +score, keyboard, guitar, drum and controller views.") + (license license:gpl3+))) + (define-public cmus (package (name "cmus") -- cgit 1.4.1 From 1d6c6af0e2196819160222a617682516966824f7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sat, 2 Apr 2016 08:12:32 +0200 Subject: gnu: Add gimp-fourier. * gnu/packages/gimp.scm (gimp-fourier): New variable. --- gnu/packages/gimp.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index 00feb1c131..bd2794305b 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès +;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,9 +20,11 @@ (define-module (gnu packages gimp) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) + #:use-module (gnu packages algebra) #:use-module (gnu packages pkg-config) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) @@ -157,3 +160,53 @@ retouching, composition and authoring. It supports all common image formats as well as specialized ones. It features a highly customizable interface that is extensible via a plugin system.") (license license:gpl3+))) ; some files are lgplv3 + +(define-public gimp-fourier + (package + (name "gimp-fourier") + (version "0.4.3-2") + (source (origin + (method url-fetch) + (uri (string-append "http://registry.gimp.org/files/fourier-" + version ".tar.gz")) + (sha256 + (base32 + "1rpacyad678lqgxa3hh2n0zpg4azs8dpa8q079bqsl12812k9184")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'set-prefix + (lambda* (#:key outputs #:allow-other-keys) + ;; gimptool-2.0 does not allow us to install to any target + ;; directory. + (let ((target (string-append (assoc-ref outputs "out") + "/lib/gimp/" + (car (string-split ,(package-version gimp) #\.)) + ".0/plug-ins"))) + (substitute* "Makefile" + (("\\$\\(PLUGIN_INSTALL\\) fourier") + (string-append "cp fourier " target))) + (mkdir-p target)) + #t))))) + (inputs + `(("fftw" ,fftw) + ("gimp" ,gimp) + ;; needed by gimp-2.0.pc + ("gdk-pixbuf" ,gdk-pixbuf) + ("cairo" ,cairo) + ("glib" ,glib) + ;; needed by gimpui-2.0.pc + ("gtk+" ,gtk+-2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://registry.gimp.org/node/19596") + (synopsis "GIMP plug-in to edit image in fourier space") + (description + "This package provides a simple plug-in to apply the fourier transform on +an image, allowing you to work with the transformed image inside GIMP. You +can draw or apply filters in fourier space and get the modified image with an +inverse fourier transform.") + (license license:gpl3+))) -- cgit 1.4.1 From 0a0b5ebed25d397bffae016f9b470dc970196e1a Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Apr 2016 00:15:33 -0400 Subject: gnu: icedtea-7: Update to 2.6.6. Fixes CVE-2016-0686, CVE-2016-0687, CVE-2016-0695, CVE-2016-3425, CVE-2016-3427. * gnu/packages/java.scm (icedtea-7): Update to 2.6.6. --- gnu/packages/java.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a81312b6a5..3d8b3cd96e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -577,7 +577,7 @@ build process and its dependencies, whereas Make uses Makefile format.") (license license:gpl2+))) (define-public icedtea-7 - (let* ((version "2.6.5") + (let* ((version "2.6.6") (drop (lambda (name hash) (origin (method url-fetch) @@ -594,7 +594,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "1xskigsa1i8hycbagb0f6idyb16x8dkixcdyaacsw4dvjr230lp7")) + "0jjldnig382yqvzzsflilcz897v2lwnw4n57sggdjn318d29g53r")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.in" @@ -721,25 +721,25 @@ build process and its dependencies, whereas Make uses Makefile format.") (native-inputs `(("openjdk-src" ,(drop "openjdk" - "1nxb8b0p1v57ix8gp22ifg9vg0p0lhr59g5vi74f7abg3almcvy6")) + "1wxd5kbsmd4gdiz78iq7pq9hp0l6m946pd1pvaj750lkrgk17y14")) ("corba-drop" ,(drop "corba" - "0zz7gz8fq7qnifzm2jgir2i6rcp0d2h32lcxvlfs24w5szynjya2")) + "0bba7drdpbggzgn7cnqv10myxa3bygaq2hkclgrmsijhl6bnr26f")) ("jaxp-drop" ,(drop "jaxp" - "0ym3bcril6507bpbw5mkkw0zmfg3s1nkbsvs2lg0c1q8kyyf3dbv")) + "0c1d4yjaxzh9fi9bx50yi2psb9f475bfivivf6c31smgaihb97k7")) ("jaxws-drop" ,(drop "jaxws" - "1l16x4dwhgfpnk32xbigb1kzkvgj0b6zzhdg4rpkywa7gvg9lxaf")) + "0662wzws45jwzwfc4pgizxdywz737vflkj9w3hw1xlgljs017bzr")) ("jdk-drop" ,(drop "jdk" - "1fi18ji83d0dqzg35kcm4bksg2z3fbg772p05wgw4rhh7dai0f6d")) + "17qaf5mdijsn6jzyxv7rgn9g5mazkva6p8lcy7zq06yvfb595ahv")) ("langtools-drop" ,(drop "langtools" - "1nbqg8sw7z7f3bhxng0xdp8vl2nc5wqz0xii1j566qdgc1n6fv3c")) + "1wv34cyba1f4wynjkwf765agf4ifc04717ac7b3bpiagggp2rfsl")) ("hotspot-drop" ,(drop "hotspot" - "1z0w8h1jjvxlqzlrwasy323fygx90if09rvqjk4ymaqhzcr35623")) + "1hhd5q2g7mnw3pqqv72labki5zv09vgc3hp3xig4x8r4yzzg9s54")) ,@(fold alist-delete (package-native-inputs icedtea-6) '("openjdk6-src")))) (inputs -- cgit 1.4.1 From 8e740bca651f9b01b97994177b3afa81b4a672ac Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 27 Apr 2016 00:26:19 -0400 Subject: gnu: icedtea-8: Update to 3.0.1. Fixes CVE-2016-0686, CVE-2016-0687, CVE-2016-0695, CVE-2016-3425, CVE-2016-3426, CVE-2016-3427. * gnu/packages/java.scm (icedtea-8): Update to 3.0.1. --- gnu/packages/java.scm | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 3d8b3cd96e..d6ad28fd1b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -747,7 +747,7 @@ build process and its dependencies, whereas Make uses Makefile format.") ,@(package-inputs icedtea-6)))))) (define-public icedtea-8 - (let* ((version "3.0.0") + (let* ((version "3.0.1") (drop (lambda (name hash) (origin (method url-fetch) @@ -756,7 +756,7 @@ build process and its dependencies, whereas Make uses Makefile format.") "/icedtea8/" version "/" name ".tar.xz")) (sha256 (base32 hash)))))) (package (inherit icedtea-7) - (version "3.0.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append @@ -764,7 +764,7 @@ build process and its dependencies, whereas Make uses Makefile format.") version ".tar.xz")) (sha256 (base32 - "1a99hvx5d0dcinlixgy0wzv2f7jnzi8jp7hcrf2pd7dqndlxsyll")) + "1wislw090zx955rf9sppimdzqf044mpj96xp54vljv6yw46y6v1l")) (modules '((guix build utils))) (snippet '(substitute* "Makefile.am" @@ -802,28 +802,28 @@ build process and its dependencies, whereas Make uses Makefile format.") `(("jdk" ,icedtea-7 "jdk") ("openjdk-src" ,(drop "openjdk" - "0cchcrkj3pbjw3r6w08d8fkcjp98fyqp15bv88ljakjcsxrjc0sv")) + "1141wfz6vz889f5naj7zdbyw42ibw0ixvkd808lfcrwxlgznyxlb")) ("corba-drop" ,(drop "corba" - "1k5khy8g0bk8yas81infh4l8rradpslzs0bblri0aqn9s3aq0x6p")) + "0l3fmfw88hf8709z033az1x6wzmcb0jnakj2br1r721zw01i0da2")) ("jaxp-drop" ,(drop "jaxp" - "1s167lwh1bxkjmbcyk1pb9r919hfbjgh2shig3d1qmj24r2fbk2c")) + "1i1pvyrdkk3w8vcnk6kfcbsjkfpbbrcywiypdl39bf2ishixbaf0")) ("jaxws-drop" ,(drop "jaxws" - "0xphl8127in0634401f8v3b42mh14v1zdzd7ar10h9m5m84hcmgg")) + "0f1kglci65zsfy8ygw5w2zza7v1280znihvls4kraz06dgsc2y73")) ("jdk-drop" ,(drop "jdk" - "1kdi5v0vf7swkh2r4isdibw8zzsp34d1aa1sbxl5ljc9lfmbhx7s")) + "1pcwb1kjd1ph4jbv07icgk0fb8jqnck2y24qjfd7dzg7gm45c1am")) ("langtools-drop" ,(drop "langtools" - "11pa0sr4yi0nnfwhz25410zimc3jm367cvrhg5jm0xc5rykydq70")) + "1jjil9s244wp0blj1qkzk7sy7y1jrxb4wq18c1rj2q2pa88n00i6")) ("hotspot-drop" ,(drop "hotspot" - "1my0g9snpd6619y82b4m96wc7ncvf1hw5yqrbh3n1pjgm2k7ywbn")) + "1pl0cz1gja6z5zbywni1x1pj4qkh745fpj55fcmj4lpfj2p98my1")) ("nashorn-drop" ,(drop "nashorn" - "1h12a61q3bw8zabhpp6aawfg3pwixjcya64595rj07sid619vidl")) + "1p0ynm2caraq1sal38qrrf42yah7j14c9vfwdv6h5h4rliahs177")) ,@(fold alist-delete (package-native-inputs icedtea-7) '("gcj" "openjdk-src" "corba-drop" "jaxp-drop" "jaxws-drop" "jdk-drop" "langtools-drop" "hotspot-drop"))))))) -- cgit 1.4.1 From 416381daa2f73a06a7af324032413d9de46bbfb3 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Wed, 27 Apr 2016 17:39:05 +1000 Subject: gnu: ruby-2.2: Update to 2.2.5. * gnu/packages/ruby.scm (ruby-2.2): Update to 2.2.5. [origin]: Remove snippet. --- gnu/packages/ruby.scm | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 8531b9cf00..bafa7e3181 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -102,7 +102,7 @@ a focus on simplicity and productivity.") (define-public ruby-2.2 (package (inherit ruby) - (version "2.2.4") + (version "2.2.5") (source (origin (method url-fetch) @@ -111,13 +111,7 @@ a focus on simplicity and productivity.") "/ruby-" version ".tar.xz")) (sha256 (base32 - "0g3ps4q3iz7wj9m45n8xyxzw8nh29ljdqb87b0f6i0p3853gz2yj")) - (modules '((guix build utils))) - (snippet `(begin - ;; Remove bundled libffi - (delete-file-recursively - (string-append "ext/fiddle/libffi-3.2.1")) - #t)))))) + "1mw7bzw76g5w37cwhb57r6gxcl2vn9lfrlyf4h4xms3qlnhflvzq")))))) (define-public ruby-2.1 (package (inherit ruby) -- cgit 1.4.1 From 5135354f62765ec41edaab541f519888b8e197f8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 10:38:55 +0200 Subject: gnu: python-ly: Update to 0.9.4. * gnu/packages/python.scm (python-ly): Update to 0.9.4. --- gnu/packages/python.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 3266613b97..f79fd744be 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5380,16 +5380,16 @@ from an XML-based format.") (define-public python-ly (package (name "python-ly") - (version "0.9.3") + (version "0.9.4") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/python-ly/python-ly-" - version ".tar.gz")) + (uri (string-append "https://pypi.python.org/packages/57/4f/" + "889579244947368f28eda66b782331b1e75f83fd72e63f9ece93cd7a18f9" + "/python-ly-" version ".tar.gz")) (sha256 (base32 - "1y6ananq8fia4y4m5id6gvsrm68bzpzd1y46pfzvawic0wjg2l0l")))) + "0g6n288l83sfwavxh1aryi0aqvsr3sp7v6f903mckwqa4scpky62")))) (build-system python-build-system) (native-inputs `(("python-setuptools" ,python-setuptools))) -- cgit 1.4.1 From 068e476f68dd6eea9cb90269997d862025fbd696 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 27 Apr 2016 00:00:44 +0200 Subject: gnu: Add java-xz. * gnu/packages/java.scm (java-xz): New variable. --- gnu/packages/java.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index d6ad28fd1b..c94f2e4b28 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2016 Leo Famulari +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) + #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages attr) @@ -829,3 +831,31 @@ build process and its dependencies, whereas Make uses Makefile format.") "jdk-drop" "langtools-drop" "hotspot-drop"))))))) (define-public icedtea icedtea-7) + +(define-public java-xz + (package + (name "java-xz") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "http://tukaani.org/xz/xz-java-" version ".zip")) + (sha256 + (base32 + "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:jar-name ,(string-append "xz-" version ".jar") + #:phases + (modify-phases %standard-phases + ;; The unpack phase enters the "maven" directory by accident. + (add-after 'unpack 'chdir + (lambda _ (chdir "..") #t))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://tukaani.org/xz/java.html") + (synopsis "Implementation of XZ data compression in pure Java") + (description "This library aims to be a complete implementation of XZ data +compression in pure Java. Single-threaded streamed compression and +decompression and random access decompression have been fully implemented.") + (license license:public-domain))) -- cgit 1.4.1 From 7de1f10363bab159c77b5728743703b4c1614848 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Apr 2016 10:08:00 +0200 Subject: gnu: Add missing synopses and descriptions. * gnu/packages/bootstrap.scm (package-from-tarball) (%bootstrap-glibc, %bootstrap-gcc): Set 'description' field. * gnu/packages/make-bootstrap.scm (%bootstrap-tarballs): Set 'synopsis' and 'description'. --- gnu/packages/bootstrap.scm | 8 ++++---- gnu/packages/make-bootstrap.scm | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 1ada01c904..3f3770d89b 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014, 2015 Mark H Weaver ;;; ;;; This file is part of GNU Guix. @@ -125,7 +125,7 @@ successful, or false to signal an error." ("tarball" ,(bootstrap-origin (source (%current-system)))))) (source #f) (synopsis description) - (description #f) + (description description) (home-page #f) (license gpl3+))) @@ -411,7 +411,7 @@ $out/bin/guile --version~%" (base32 "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg"))))))))) (synopsis "Bootstrap binaries and headers of the GNU C Library") - (description #f) + (description synopsis) (home-page #f) (license lgpl2.1+))) @@ -496,7 +496,7 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ (variable "LIBRARY_PATH") (files '("lib" "lib64"))))) (synopsis "Bootstrap binaries of the GNU Compiler Collection") - (description #f) + (description synopsis) (home-page #f) (license gpl3+))) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index b3c86dbebf..85dfaa6b6f 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -683,8 +683,8 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." ("binutils-tarball" ,%binutils-bootstrap-tarball) ("glibc-tarball" ,%glibc-bootstrap-tarball) ("coreutils&co-tarball" ,%bootstrap-binaries-tarball))) - (synopsis #f) - (description #f) + (synopsis "Tarballs containing all the bootstrap binaries") + (description synopsis) (home-page #f) (license gpl3+))) -- cgit 1.4.1 From f0b8689884d913fa8af8f2c7a7962ab6dbd78bd3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Apr 2016 14:15:46 +0200 Subject: gnu: blender: Build against ffmpeg 2.8. Reported by Danny Milosavljevic . * gnu/packages/graphics.scm (blender)[inputs]: Use FFMPEG-2.8 instead of FFMPEG. --- gnu/packages/graphics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index c01eb39038..f46dee36d2 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Tomáš Čech ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Ricardo Wurmus @@ -118,7 +118,7 @@ ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libtiff" ,libtiff) - ("ffmpeg" ,ffmpeg) + ("ffmpeg-2.8" ,ffmpeg-2.8) ; ("fftw" ,fftw) ("jack" ,jack-1) ("libsndfile" ,libsndfile) -- cgit 1.4.1 From 5d88b4f8a8d92d8b66755f6e15dad3a88732adf9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 26 Apr 2016 23:25:36 -0400 Subject: gnu: mysql: Update to 5.7.12. Fixes CVE-2016-0639, CVE-2016-0642, CVE-2016-0643, CVE-2016-0647, CVE-2016-0648, CVE-2016-0655, CVE-2016-0657, CVE-2016-0659, CVE-2016-0662, CVE-2016-0666, CVE-2016-0667, CVE-2016-0705, CVE-2016-2047. * gnu/packages/databases.scm (mysql): Update to 5.7.12. --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index a96b00399c..9aee7b796a 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -133,7 +133,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") (define-public mysql (package (name "mysql") - (version "5.7.11") + (version "5.7.12") (source (origin (method url-fetch) (uri (list (string-append @@ -145,7 +145,7 @@ SQL, Key/Value, XML/XQuery or Java Object storage for their data model.") name "-" version ".tar.gz"))) (sha256 (base32 - "03hzd2ikabxhh5ch2yvml2nks2wpv3qbkqmx3520in6khypwgy2l")))) + "11qwbid666fspq143ymi86yva2b01lybaqh26k92rciasav3r11j")))) (build-system cmake-build-system) (arguments '(#:configure-flags -- cgit 1.4.1 From 38e2104c5d9b860c0e41c036895dcf178eca2ce0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 26 Apr 2016 03:05:41 -0400 Subject: gnu: vdirsyncer: Update to 0.10.0. * gnu/packages/dav.scm (vdirsyncer): Update to 0.10.0. [propagated-inputs]: Remove python-lxml. --- gnu/packages/dav.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/dav.scm b/gnu/packages/dav.scm index 6815a6b250..2bbc069472 100644 --- a/gnu/packages/dav.scm +++ b/gnu/packages/dav.scm @@ -52,13 +52,16 @@ clients.") (define-public vdirsyncer (package (name "vdirsyncer") - (version "0.9.3") + (version "0.10.0") (source (origin (method url-fetch) - (uri (pypi-uri "vdirsyncer" version)) + (uri (string-append "https://pypi.python.org/packages/0b/fb/" + "c42223e1e9169e4770194e62143d431755724b080d8cb" + "77f14705b634815/" + "vdirsyncer-" version ".tar.gz")) (sha256 (base32 - "1wjhzjfcvwz68j6wc5cmjsw69ggwcpfy7jp7z7q6fnwwp4dr98lc")))) + "1gf86sbd6w0w4zayh9r3irlp5jwrzbjikjc0vs5zkdpa5c199f78")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -100,7 +103,6 @@ clients.") ("python-click" ,python-click) ("python-click-log" ,python-click-log) ("python-click-threading" ,python-click-threading) - ("python-lxml" ,python-lxml) ("python-requests-toolbelt" ,python-requests-toolbelt))) (synopsis "Synchronize calendars and contacts") (description "Vdirsyncer synchronizes your calendars and addressbooks -- cgit 1.4.1 From 5304e6f2c9202c5bcc760c3cc31553b20c581402 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 27 Apr 2016 14:11:55 -0400 Subject: gnu: libuv: Update to 1.9.0. * gnu/packages/libevent.scm (libuv): Update to 1.9.0. --- gnu/packages/libevent.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index fab6b5c993..c9e57d6331 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -89,7 +89,7 @@ programs.") (define-public libuv (package (name "libuv") - (version "1.8.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/libuv/libuv/archive/v" @@ -97,7 +97,7 @@ programs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1plwz98ljdi161gxhl4wgj7llnx611rxpb6y38kcp59wcxf1lvlh")))) + "1sx5lahhg2w92y6mgyg7c7nrx2biyyxd5yiqkmq8n4w01lm2gf7q")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after -- cgit 1.4.1 From 34879162bc106a6ce22372908de3b4f89bce7642 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 27 Apr 2016 14:12:28 -0400 Subject: gnu: node: Update to 6.0.0. * gnu/packages/node.scm (node): Update to 6.0.0. --- gnu/packages/node.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index 7a55ac5b8f..2f269d08b1 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -36,14 +36,14 @@ (define-public node (package (name "node") - (version "5.10.0") + (version "6.0.0") (source (origin (method url-fetch) (uri (string-append "http://nodejs.org/dist/v" version "/node-v" version ".tar.gz")) (sha256 (base32 - "0avn25j04q172ri8mksrryyg4g95k7x2pqzsbmp1nr6ybfpvkblg")))) + "0cpw7ng193jgfbw2g1fd0kcglmjjkbj4xb89g00z8zz0lj0nvdbd")))) (build-system gnu-build-system) (arguments ;; TODO: Package http_parser and add --shared-http-parser. -- cgit 1.4.1 From 957ba692906544fc0e174f90bfc8a78ed155522f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Apr 2016 16:42:36 +0300 Subject: gnu: quassel: Update to 0.12.4. * gnu/packages/irc.scm (quassel): Update to 0.12.4. --- gnu/packages/irc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 5744c0dcdc..64edf652f8 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -52,7 +52,7 @@ (define-public quassel (package (name "quassel") - (version "0.12.3") + (version "0.12.4") (source (origin (method url-fetch) @@ -60,7 +60,7 @@ version ".tar.bz2")) (sha256 (base32 - "0d6lwf6qblj1ia5j9mjy112zrmpbbg9mmxgscbgxiqychldyjgjd")))) + "0ka456fb8ha3w7g74xlzfg6w4azxjjxgrhl4aqpbwg3lnd6fbr4k")))) (build-system cmake-build-system) (arguments ;; The three binaries are not mutually exlusive, and are all built -- cgit 1.4.1 From 151065d02a75dde396fd537f09fb89fa4b8821c2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Apr 2016 19:06:59 +0300 Subject: gnu: kde-frameworks: Update to 5.21.0. * gnu/packages/kde-frameworks.scm (extra-cmake-modules, kwindowsystem, oxygen-icons): Update to 5.21.0. --- gnu/packages/kde-frameworks.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index 2f49dc098a..0b747def14 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -27,7 +27,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages xorg)) -(define kde-frameworks-version "5.19.0") +(define kde-frameworks-version "5.21.0") (define-public extra-cmake-modules (package @@ -41,7 +41,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1dl3hhbara7iswb5wsc5dp17ar3ljw5f0nrncl8vry9smaz2zl63")))) + "1kbc5fkcbz9vkg0jpz10vsfgwajlrsmbl0vrbls5qvrdgbgrwlm3")))) ;; The package looks for Qt5LinguistTools provided by Qt, but apparently ;; compiles without it; it might be needed for building the ;; documentation, which requires the additional Sphinx package. @@ -66,7 +66,7 @@ common build settings used in software produced by the KDE community.") name "-" version ".tar.xz")) (sha256 (base32 - "115xs34r74j9zcsw69glnh8w59iyh764n3gniawwrk23c6yb8fch")))) + "13lfwpw5a4in0mp5y8d15jg6xhhrka2qmw73wrdzcvj22n6ldzzi")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -104,7 +104,7 @@ lower level classes for interaction with the X Windowing System.") name "5-"version ".tar.xz")) (sha256 (base32 - "09vfwcyidj3bl0qr4sq78bkc69zp9x8dwp8bsay5y05q8591dkg0")))) + "00qh1h3xx392hh73zdlknc1j9i2sck9ys74a9ffkf6an4rl0hws5")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit 1.4.1 From 5ca54f41a03f9116822fbe51bb598cc18188bd0d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 27 Apr 2016 23:43:36 +0200 Subject: gnu: patches: Update to latest revision. * gnu/packages/patchutils.scm (patches): Change URL to the repository of Stefan Hajnoczi, and update to latest revision. --- gnu/packages/patchutils.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/patchutils.scm b/gnu/packages/patchutils.scm index c4232cc8a7..42da56194c 100644 --- a/gnu/packages/patchutils.scm +++ b/gnu/packages/patchutils.scm @@ -177,24 +177,25 @@ refreshed, and more.") (license gpl2+))) (define-public patches - (let ((commit "26d7dbc")) + (let ((commit "ef1b8a7d954b82ed4af3a08fd63d2085d19090ef")) (package (name "patches") - (version (string-append "0.0." commit)) + (home-page "https://github.com/stefanha/patches") + (version (string-append "0.0-1." (string-take commit 7))) (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/aliguori/patches") + (url home-page) (commit commit))) (sha256 (base32 - "1bah6y84nlii5yif189ns28dz1m9vmsyw66jyk2vr5yf0njf7mzh")))) + "11rdmhv0l1s8nqb20ywmw2zqizczch2p62qf9apyx5wqgxlnjshk")) + (file-name (string-append name "-"version "-checkout")))) (build-system python-build-system) (inputs `(("python-notmuch" ,python2-notmuch))) (arguments `(#:tests? #f ;no "test" target - #:python ,python-2)) ;not compatible with Python 3 - (home-page "https://github.com/aliguori/patches") + #:python ,python-2)) ;not compatible with Python 3 (synopsis "Patch tracking tool") (description "'Patches' is a patch-tracking tool initially written for the QEMU -- cgit 1.4.1 From 6fdc73e099fd92bbdc4419b810a807afce4a8771 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 28 Apr 2016 10:42:52 +0800 Subject: gnu: fltk: Fix undefined symbol `Fl_XFont_On_Demand::value'. * gnu/packages/patches/fltk-xfont-on-demand.patch: New patch. * gnu/packages/fltk.scm (fltk)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/fltk.scm | 3 +- gnu/packages/patches/fltk-xfont-on-demand.patch | 45 +++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/fltk-xfont-on-demand.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 3cdf5e45ed..80017ea354 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -477,6 +477,7 @@ dist_patch_DATA = \ gnu/packages/patches/flashrom-use-libftdi1.patch \ gnu/packages/patches/flint-ldconfig.patch \ gnu/packages/patches/fltk-shared-lib-defines.patch \ + gnu/packages/patches/fltk-xfont-on-demand.patch \ gnu/packages/patches/fontforge-svg-modtime.patch \ gnu/packages/patches/freeimage-CVE-2015-0852.patch \ gnu/packages/patches/gawk-fts-test.patch \ diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index a0180c0432..bc6b4ab5e6 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -47,7 +47,8 @@ (sha256 (base32 "15qd7lkz5d5ynz70xhxhigpz3wns39v9xcf7ggkl0792syc8sfgq")) - (patches (search-patches "fltk-shared-lib-defines.patch")))) + (patches (search-patches "fltk-shared-lib-defines.patch" + "fltk-xfont-on-demand.patch")))) (build-system gnu-build-system) (inputs `(("libjpeg" ,libjpeg-8) ;jpeg_read_header argument error in libjpeg-9 diff --git a/gnu/packages/patches/fltk-xfont-on-demand.patch b/gnu/packages/patches/fltk-xfont-on-demand.patch new file mode 100644 index 0000000000..cdcdd9af05 --- /dev/null +++ b/gnu/packages/patches/fltk-xfont-on-demand.patch @@ -0,0 +1,45 @@ +Fixes undefined reference to `Fl_XFont_On_Demand::value()'. +From . + +Index: src/fl_font.cxx +=================================================================== +--- fltk-1.3.3/src/fl_font.cxx (revision 10503) ++++ fltk-1.3.3/src/fl_font.cxx (revision 10504) +@@ -55,6 +55,12 @@ + # include "fl_font_x.cxx" + #endif // WIN32 + ++#if ! (defined(WIN32) || defined(__APPLE__)) ++XFontStruct *fl_X_core_font() ++{ ++ return fl_xfont.value(); ++} ++#endif + + double fl_width(const char* c) { + if (c) return fl_width(c, (int) strlen(c)); +Index: src/gl_draw.cxx +=================================================================== +--- fltk-1.3.3/src/gl_draw.cxx (revision 10503) ++++ fltk-1.3.3/src/gl_draw.cxx (revision 10504) +@@ -81,7 +81,7 @@ + * then sorting through them at draw time (for normal X rendering) to find which one can + * render the current glyph... But for now, just use the first font in the list for GL... + */ +- XFontStruct *font = fl_xfont; ++ XFontStruct *font = fl_X_core_font(); + int base = font->min_char_or_byte2; + int count = font->max_char_or_byte2-base+1; + fl_fontsize->listbase = glGenLists(256); +Index: FL/x.H +=================================================================== +--- fltk-1.3.3/FL/x.H (revision 10503) ++++ fltk-1.3.3/FL/x.H (revision 10504) +@@ -132,6 +132,7 @@ + XFontStruct *ptr; + }; + extern FL_EXPORT Fl_XFont_On_Demand fl_xfont; ++extern FL_EXPORT XFontStruct* fl_X_core_font(); + + // this object contains all X-specific stuff about a window: + // Warning: this object is highly subject to change! -- cgit 1.4.1 From acf2320b22b5ceb625ba16ac40db5f6bd0073ada Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 22:10:47 +0200 Subject: gnu: zynaddsubfx: Update to 2.5.4. * gnu/packages/music.scm (zynaddsubfx): Update to 2.5.4. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 2fede0ae12..038ed6f09c 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1053,7 +1053,7 @@ instrument or MIDI file player.") (define-public zynaddsubfx (package (name "zynaddsubfx") - (version "2.5.3") + (version "2.5.4") (source (origin (method url-fetch) (uri (string-append @@ -1061,7 +1061,7 @@ instrument or MIDI file player.") version "/zynaddsubfx-" version ".tar.bz2")) (sha256 (base32 - "04da54p19p7f5wm6vm7abbjbsil1qf7n5f4adj01jm6b0wqigvgb")))) + "16llaa2wg2gbgjhwp3632b2vx9jvanj4csv7d41k233ms6d1sjq1")))) (build-system cmake-build-system) (arguments `(#:phases -- cgit 1.4.1 From a39f48b80d9c42b9fa2b1c238ab291ad73d7735c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 22:11:54 +0200 Subject: gnu: setbfree: Update to 0.8.1. * gnu/packages/music.scm (setbfree): Update to 0.8.1. --- gnu/packages/music.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 038ed6f09c..cea685f705 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -692,16 +692,16 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (define-public setbfree (package (name "setbfree") - (version "0.8.0") + (version "0.8.1") (source (origin (method url-fetch) (uri - (string-append - "https://github.com/pantherb/setBfree/releases/download/v" - version "/setbfree-" version ".tar.gz")) + (string-append "https://github.com/pantherb/setBfree/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "045bgp7qsigpbrhk7qvgvliwiy26sajifwn7f2jvk90ckfqnlw4b")))) + "0hj0rqk5yd4fzs7bwy6a6nhqgrmcggkjcr4il76rxy92r7nwabf3")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit 1.4.1 From b3107888aa448d9441cb4ee17dcba784beb2405c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 27 Apr 2016 23:26:31 -0400 Subject: gnu: nspr: Update to 4.12. * gnu/packages/gnuzilla.scm (nspr): Update to 4.12. --- gnu/packages/gnuzilla.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index bf20a4e05f..f8c3b6ebc9 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -144,7 +144,7 @@ in C/C++.") (define-public nspr (package (name "nspr") - (version "4.10.10") + (version "4.12") (source (origin (method url-fetch) (uri (string-append @@ -152,7 +152,7 @@ in C/C++.") version "/src/nspr-" version ".tar.gz")) (sha256 (base32 - "01ria9wk6329hxqsy75p9dkxiqkq4nkz0jjzll7hslih3jbi8dil")))) + "1pk98bmc5xzbl62q5wf2d6mryf0v95z6rsmxz27nclwiaqg0mcg0")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) -- cgit 1.4.1 From 3161f6a4eca3225778a76eb5c21cfc150e6dce0a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 27 Apr 2016 22:04:05 -0400 Subject: gnu: nss: Update to 3.23. * gnu/packages/gnuzilla.scm (nss): Update to 3.23. [arguments]: In the 'install' phase, remove libgtest1.so from the output. --- gnu/packages/gnuzilla.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index f8c3b6ebc9..e774ed1ad2 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -178,7 +178,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.21.1") + (version "3.23") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -189,7 +189,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "0knr99yc8sba2ga6x1gwhg9gr1dmgcl344g3bmxm8c364i2vpxns")) + "1kqidv91icq96m9m8zx50n7px08km2l88458rkgyjwcn3kiq7cwl")) ;; Create nss.pc and nss-config. (patches (search-patches "nss-pkgconfig.patch")))) (build-system gnu-build-system) @@ -251,7 +251,16 @@ in the Mozilla clients.") ;; Install other files. (copy-recursively "dist/public/nss" inc) (copy-recursively (string-append obj "/bin") bin) - (copy-recursively (string-append obj "/lib") lib))) + (copy-recursively (string-append obj "/lib") lib) + + ;; FIXME: libgtest1.so is installed in the above step, and it's + ;; (unnecessarily) linked with several NSS libraries, but + ;; without the needed rpaths, causing the 'validate-runpath' + ;; phase to fail. Here we simply delete libgtest1.so, since it + ;; seems to be used only during the tests. + (delete-file (string-append lib "/libgtest1.so")) + + #t)) %standard-phases))))) (inputs `(("sqlite" ,sqlite) -- cgit 1.4.1 From dde2a94c095f840578c307ebf23cd7c3ba5ec858 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 27 Apr 2016 22:33:02 -0400 Subject: gnu: icecat: Add fixes for CVE-2016-{2805,2807,2808,2814} etc. * gnu/packages/patches/icecat-CVE-2016-2805.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch, gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch, gnu/packages/patches/icecat-CVE-2016-2808.patch, gnu/packages/patches/icecat-CVE-2016-2814.patch, gnu/packages/patches/icecat-update-bundled-graphite2: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/gnuzilla.scm (icecat)[source]: Add patches. icecat fixup --- gnu/local.mk | 9 + gnu/packages/gnuzilla.scm | 11 +- gnu/packages/patches/icecat-CVE-2016-2805.patch | 75 + .../patches/icecat-CVE-2016-2807-pt1.patch | 35 + .../patches/icecat-CVE-2016-2807-pt2.patch | 69 + .../patches/icecat-CVE-2016-2807-pt3.patch | 33 + .../patches/icecat-CVE-2016-2807-pt4.patch | 37 + .../patches/icecat-CVE-2016-2807-pt5.patch | 35 + gnu/packages/patches/icecat-CVE-2016-2808.patch | 389 +++ gnu/packages/patches/icecat-CVE-2016-2814.patch | 35 + .../patches/icecat-update-bundled-graphite2.patch | 2488 ++++++++++++++++++++ 11 files changed, 3215 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/icecat-CVE-2016-2805.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2808.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2814.patch create mode 100644 gnu/packages/patches/icecat-update-bundled-graphite2.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 80017ea354..9e31ef9a4b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -530,6 +530,15 @@ dist_patch_DATA = \ gnu/packages/patches/hydra-disable-darcs-test.patch \ gnu/packages/patches/icecat-avoid-bundled-includes.patch \ gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \ + gnu/packages/patches/icecat-update-bundled-graphite2.patch \ + gnu/packages/patches/icecat-CVE-2016-2805.patch \ + gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch \ + gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch \ + gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch \ + gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch \ + gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch \ + gnu/packages/patches/icecat-CVE-2016-2808.patch \ + gnu/packages/patches/icecat-CVE-2016-2814.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 \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index e774ed1ad2..abefd90304 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -299,7 +299,16 @@ standards.") "1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g")) (patches (search-patches "icecat-avoid-bundled-includes.patch" - "icecat-re-enable-DHE-cipher-suites.patch")) + "icecat-re-enable-DHE-cipher-suites.patch" + "icecat-update-bundled-graphite2.patch" + "icecat-CVE-2016-2805.patch" + "icecat-CVE-2016-2807-pt1.patch" + "icecat-CVE-2016-2807-pt2.patch" + "icecat-CVE-2016-2807-pt3.patch" + "icecat-CVE-2016-2807-pt4.patch" + "icecat-CVE-2016-2807-pt5.patch" + "icecat-CVE-2016-2808.patch" + "icecat-CVE-2016-2814.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2016-2805.patch b/gnu/packages/patches/icecat-CVE-2016-2805.patch new file mode 100644 index 0000000000..5e4150f00c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2805.patch @@ -0,0 +1,75 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/bf34b97757b3 + +# HG changeset patch +# User Jon Coppeard +# Date 1453890675 0 +# Node ID bf34b97757b334af1f9f53b9b59e0b6902e7ed6f +# Parent 228ca3f46cabaf3f388f6c6640690772aa13c1a5 +Bug 1241731 - Handle incomplete buffer in DiscardTransferables r=sfink a=abillings a=sylvestre + +diff --git a/js/src/jit-test/tests/gc/bug-1241731.js b/js/src/jit-test/tests/gc/bug-1241731.js +new file mode 100644 +--- /dev/null ++++ b/js/src/jit-test/tests/gc/bug-1241731.js +@@ -0,0 +1,4 @@ ++if (!('oomTest' in this)) ++ quit(); ++ ++oomTest(() => serialize(0, [{}])); +diff --git a/js/src/vm/StructuredClone.cpp b/js/src/vm/StructuredClone.cpp +--- a/js/src/vm/StructuredClone.cpp ++++ b/js/src/vm/StructuredClone.cpp +@@ -379,39 +379,50 @@ ReadStructuredClone(JSContext* cx, uint6 + + // If the given buffer contains Transferables, free them. Note that custom + // Transferables will use the JSStructuredCloneCallbacks::freeTransfer() to + // delete their transferables. + static void + Discard(uint64_t* buffer, size_t nbytes, const JSStructuredCloneCallbacks* cb, void* cbClosure) + { + MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0); +- if (nbytes < sizeof(uint64_t)) ++ uint64_t* end = buffer + nbytes / sizeof(uint64_t); ++ uint64_t* point = buffer; ++ if (point == end) + return; // Empty buffer + +- uint64_t* point = buffer; + uint32_t tag, data; + SCInput::getPair(point++, &tag, &data); + if (tag != SCTAG_TRANSFER_MAP_HEADER) + return; + + if (TransferableMapHeader(data) == SCTAG_TM_TRANSFERRED) + return; + + // freeTransfer should not GC + JS::AutoSuppressGCAnalysis nogc; + ++ if (point == end) ++ return; ++ + uint64_t numTransferables = LittleEndian::readUint64(point++); + while (numTransferables--) { ++ if (point == end) ++ return; ++ + uint32_t ownership; + SCInput::getPair(point++, &tag, &ownership); + MOZ_ASSERT(tag >= SCTAG_TRANSFER_MAP_PENDING_ENTRY); ++ if (point == end) ++ return; + + void* content; + SCInput::getPtr(point++, &content); ++ if (point == end) ++ return; + + uint64_t extraData = LittleEndian::readUint64(point++); + + if (ownership < JS::SCTAG_TMO_FIRST_OWNED) + continue; + + if (ownership == JS::SCTAG_TMO_ALLOC_DATA) { + js_free(content); + diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch new file mode 100644 index 0000000000..0a6bee378b --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch @@ -0,0 +1,35 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e7c23c08bf84 + +# HG changeset patch +# User Randell Jesup +# Date 1458543433 14400 +# Node ID e7c23c08bf84a02d9154f31e0c5d121a45884a69 +# Parent a6de1f453712edabff597879398606708c191098 +Bug 1254876: assert windows recording is shut down r=pkerr a=ritu + +MozReview-Commit-ID: JRqxBb5TgrE + +diff --git a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc +--- a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc ++++ b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc +@@ -567,16 +567,19 @@ AudioDeviceWindowsCore::AudioDeviceWindo + // ---------------------------------------------------------------------------- + + AudioDeviceWindowsCore::~AudioDeviceWindowsCore() + { + WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__); + + Terminate(); + ++ // Recording thread should be shut down before this! ++ assert(_hRecThread == NULL); ++ + // The IMMDeviceEnumerator is created during construction. Must release + // it here and not in Terminate() since we don't recreate it in Init(). + SAFE_RELEASE(_ptrEnumerator); + + _ptrAudioBuffer = NULL; + + if (NULL != _hRenderSamplesReadyEvent) + { + diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch new file mode 100644 index 0000000000..f4b4c0d4eb --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch @@ -0,0 +1,69 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3d2b62083a6a + +# HG changeset patch +# User Shu-yu Guo +# Date 1459741387 -7200 +# Node ID 3d2b62083a6a4fb43cb330d77142f9dce0959a23 +# Parent 9d4364f6b55c6ee65c13c491292c3abe1ee2c993 +Bug 1254164 - Make aliasedBodyLevelLexicalBegin a uint32. r=Waldo, a=ritu + +diff --git a/js/src/jit-test/tests/parser/bug-1254164.js b/js/src/jit-test/tests/parser/bug-1254164.js +new file mode 100644 +--- /dev/null ++++ b/js/src/jit-test/tests/parser/bug-1254164.js +@@ -0,0 +1,6 @@ ++// |jit-test| slow; ++ ++var s = ''; ++for (var i = 0; i < 70000; i++) ++ s += 'function x' + i + '() { x' + i + '(); }\n'; ++eval("(function() { " + s + " })();"); +diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp +--- a/js/src/jsscript.cpp ++++ b/js/src/jsscript.cpp +@@ -111,17 +111,20 @@ Bindings::initWithTemporaryStorage(Exclu + // JITs when interpreting/compiling aliasedvar ops.) + + // Since unaliased variables are, by definition, only accessed by local + // operations and never through the scope chain, only give shapes to + // aliased variables. While the debugger may observe any scope object at + // any time, such accesses are mediated by DebugScopeProxy (see + // DebugScopeProxy::handleUnaliasedAccess). + uint32_t nslots = CallObject::RESERVED_SLOTS; +- uint32_t aliasedBodyLevelLexicalBegin = UINT16_MAX; ++ ++ // Unless there are aliased body-level lexical bindings at all, set the ++ // begin index to an impossible slot number. ++ uint32_t aliasedBodyLevelLexicalBegin = LOCALNO_LIMIT; + for (BindingIter bi(self); bi; bi++) { + if (bi->aliased()) { + // Per ES6, lexical bindings cannot be accessed until + // initialized. Remember the first aliased slot that is a + // body-level lexical, so that they may be initialized to sentinel + // magic values. + if (numBodyLevelLexicals > 0 && + nslots < aliasedBodyLevelLexicalBegin && +diff --git a/js/src/jsscript.h b/js/src/jsscript.h +--- a/js/src/jsscript.h ++++ b/js/src/jsscript.h +@@ -201,18 +201,18 @@ class Bindings + friend class BindingIter; + friend class AliasedFormalIter; + + RelocatablePtrShape callObjShape_; + uintptr_t bindingArrayAndFlag_; + uint16_t numArgs_; + uint16_t numBlockScoped_; + uint16_t numBodyLevelLexicals_; +- uint16_t aliasedBodyLevelLexicalBegin_; + uint16_t numUnaliasedBodyLevelLexicals_; ++ uint32_t aliasedBodyLevelLexicalBegin_; + uint32_t numVars_; + uint32_t numUnaliasedVars_; + + #if JS_BITS_PER_WORD == 32 + // Bindings is allocated inline inside JSScript, which needs to be + // gc::Cell aligned. + uint32_t padding_; + #endif + diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch new file mode 100644 index 0000000000..a5a4212c28 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch @@ -0,0 +1,33 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/88f1eb2c3f4b + +# HG changeset patch +# User Timothy Nikkel +# Date 1457637807 21600 +# Node ID 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610 +# Parent bf34b97757b334af1f9f53b9b59e0b6902e7ed6f +Bug 1187420. r=drc r=jmuizelaar a=sylvestre + +MozReview-Commit-ID: Hh0Khqfj8Bf + +diff --git a/media/libjpeg/jstdhuff.c b/media/libjpeg/jstdhuff.c +--- a/media/libjpeg/jstdhuff.c ++++ b/media/libjpeg/jstdhuff.c +@@ -36,16 +36,17 @@ add_huff_table (j_common_ptr cinfo, + */ + nsymbols = 0; + for (len = 1; len <= 16; len++) + nsymbols += bits[len]; + if (nsymbols < 1 || nsymbols > 256) + ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); + + MEMCOPY((*htblptr)->huffval, val, nsymbols * sizeof(UINT8)); ++ MEMZERO(&((*htblptr)->huffval[nsymbols]), (256 - nsymbols) * sizeof(UINT8)); + + /* Initialize sent_table FALSE so table will be written to JPEG file. */ + (*htblptr)->sent_table = FALSE; + } + + + LOCAL(void) + std_huff_tables (j_common_ptr cinfo) + diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch new file mode 100644 index 0000000000..5eff4fe99c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch @@ -0,0 +1,37 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/5c312182da90 + +# HG changeset patch +# User Jan de Mooij +# Date 1458828581 -3600 +# Node ID 5c312182da9020504103aa329360abaffa7e232d +# Parent fa4efccde9b7efde8763a178a6cf422b6d37a0e9 +Bug 1254622 - Relookup group->newScript in CreateThisForFunctionWithGroup. r=bhackett a=sylvestre + +MozReview-Commit-ID: KXd7kB70f1Z + +diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp +--- a/js/src/jsobj.cpp ++++ b/js/src/jsobj.cpp +@@ -1574,18 +1574,19 @@ CreateThisForFunctionWithGroup(JSContext + // Not enough objects with this group have been created yet, so make a + // plain object and register it with the group. Use the maximum number + // of fixed slots, as is also required by the TypeNewScript. + gc::AllocKind allocKind = GuessObjectGCKind(NativeObject::MAX_FIXED_SLOTS); + PlainObject* res = NewObjectWithGroup(cx, group, parent, allocKind, newKind); + if (!res) + return nullptr; + +- if (newKind != SingletonObject) +- newScript->registerNewObject(res); ++ // Make sure group->newScript is still there. ++ if (newKind != SingletonObject && group->newScript()) ++ group->newScript()->registerNewObject(res); + + return res; + } + + gc::AllocKind allocKind = NewObjectGCKind(&PlainObject::class_); + + if (newKind == SingletonObject) { + Rooted protoRoot(cx, group->proto()); + diff --git a/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch b/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch new file mode 100644 index 0000000000..00718ebaac --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch @@ -0,0 +1,35 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3fdd280fa099 + +# HG changeset patch +# User Carsten "Tomcat" Book +# Date 1461123938 -7200 +# Node ID 3fdd280fa099b6453ce9fd9905af883bc2ebce24 +# Parent 52dfdd37150d62f708dc5bf61dd28f3967596788 +Bug 1252707 - a=sylvestre + +diff --git a/js/src/vm/Shape.cpp b/js/src/vm/Shape.cpp +--- a/js/src/vm/Shape.cpp ++++ b/js/src/vm/Shape.cpp +@@ -382,18 +382,20 @@ NativeObject::getChildPropertyOnDictiona + + if (obj->inDictionaryMode()) { + MOZ_ASSERT(parent == obj->lastProperty()); + RootedGeneric childRoot(cx, &child); + shape = childRoot->isAccessorShape() ? NewGCAccessorShape(cx) : NewGCShape(cx); + if (!shape) + return nullptr; + if (childRoot->hasSlot() && childRoot->slot() >= obj->lastProperty()->base()->slotSpan()) { +- if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) ++ if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) { ++ new (shape) Shape(obj->lastProperty()->base()->unowned(), 0); + return nullptr; ++ } + } + shape->initDictionaryShape(*childRoot, obj->numFixedSlots(), &obj->shape_); + } + + return shape; + } + + /* static */ Shape* + diff --git a/gnu/packages/patches/icecat-CVE-2016-2808.patch b/gnu/packages/patches/icecat-CVE-2016-2808.patch new file mode 100644 index 0000000000..ae190b8b4c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2808.patch @@ -0,0 +1,389 @@ +Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/71f611fd27c7 + +# HG changeset patch +# User Jeff Walden +# Date 1458941573 25200 +# Node ID 71f611fd27c7d6cb7d6dab9895c2922948042543 +# Parent 861f6b83ce1deade2a976cabe059776ad51ce370 +Bug 1246061. r=luke, r=froydnj, a=sylvestre + +diff --git a/js/public/HashTable.h b/js/public/HashTable.h +--- a/js/public/HashTable.h ++++ b/js/public/HashTable.h +@@ -8,16 +8,17 @@ + #define js_HashTable_h + + #include "mozilla/Alignment.h" + #include "mozilla/Assertions.h" + #include "mozilla/Attributes.h" + #include "mozilla/Casting.h" + #include "mozilla/MemoryReporting.h" + #include "mozilla/Move.h" ++#include "mozilla/Opaque.h" + #include "mozilla/PodOperations.h" + #include "mozilla/ReentrancyGuard.h" + #include "mozilla/TemplateLib.h" + #include "mozilla/TypeTraits.h" + + #include "js/Utility.h" + + namespace js { +@@ -27,16 +28,18 @@ template struct DefaultHasher; + template class HashMapEntry; + namespace detail { + template class HashTableEntry; + template class HashTable; + } + + /*****************************************************************************/ + ++using Generation = mozilla::Opaque; ++ + // A JS-friendly, STL-like container providing a hash-based map from keys to + // values. In particular, HashMap calls constructors and destructors of all + // objects added so non-PODs may be used safely. + // + // Key/Value requirements: + // - movable, destructible, assignable + // HashPolicy requirements: + // - see Hash Policy section below +@@ -200,17 +203,19 @@ class HashMap + return impl.sizeOfExcludingThis(mallocSizeOf); + } + size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf); + } + + // If |generation()| is the same before and after a HashMap operation, + // pointers into the table remain valid. +- uint32_t generation() const { return impl.generation(); } ++ Generation generation() const { ++ return impl.generation(); ++ } + + /************************************************** Shorthand operations */ + + bool has(const Lookup& l) const { + return impl.lookup(l).found(); + } + + // Overwrite existing value with v. Return false on oom. +@@ -431,17 +436,19 @@ class HashSet + return impl.sizeOfExcludingThis(mallocSizeOf); + } + size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf); + } + + // If |generation()| is the same before and after a HashSet operation, + // pointers into the table remain valid. +- uint32_t generation() const { return impl.generation(); } ++ Generation generation() const { ++ return impl.generation(); ++ } + + /************************************************** Shorthand operations */ + + bool has(const Lookup& l) const { + return impl.lookup(l).found(); + } + + // Add |u| if it is not present already. Return false on oom. +@@ -766,17 +773,17 @@ class HashTable : private AllocPolicy + // table operations unless |generation()| is tested. + class Ptr + { + friend class HashTable; + + Entry* entry_; + #ifdef JS_DEBUG + const HashTable* table_; +- uint32_t generation; ++ Generation generation; + #endif + + protected: + Ptr(Entry& entry, const HashTable& tableArg) + : entry_(&entry) + #ifdef JS_DEBUG + , table_(&tableArg) + , generation(tableArg.generation()) +@@ -873,17 +880,17 @@ class HashTable : private AllocPolicy + while (cur < end && !cur->isLive()) + ++cur; + } + + Entry* cur, *end; + #ifdef JS_DEBUG + const HashTable* table_; + uint64_t mutationCount; +- uint32_t generation; ++ Generation generation; + bool validEntry; + #endif + + public: + Range() + : cur(nullptr) + , end(nullptr) + #ifdef JS_DEBUG +@@ -1012,18 +1019,18 @@ class HashTable : private AllocPolicy + // HashTable is not copyable or assignable + HashTable(const HashTable&) = delete; + void operator=(const HashTable&) = delete; + + private: + static const size_t CAP_BITS = 24; + + public: +- Entry* table; // entry storage +- uint32_t gen; // entry storage generation number ++ uint64_t gen; // entry storage generation number ++ Entry* table; // entry storage + uint32_t entryCount; // number of entries in table + uint32_t removedCount:CAP_BITS; // removed entry sentinels in table + uint32_t hashShift:8; // multiplicative hash shift + + #ifdef JS_DEBUG + uint64_t mutationCount; + mutable bool mEntered; + mutable struct Stats +@@ -1097,18 +1104,18 @@ class HashTable : private AllocPolicy + for (Entry* e = oldTable, *end = e + capacity; e < end; ++e) + e->destroyIfLive(); + alloc.free_(oldTable); + } + + public: + explicit HashTable(AllocPolicy ap) + : AllocPolicy(ap) ++ , gen(0) + , table(nullptr) +- , gen(0) + , entryCount(0) + , removedCount(0) + , hashShift(sHashBits) + #ifdef JS_DEBUG + , mutationCount(0) + , mEntered(false) + #endif + {} +@@ -1524,20 +1531,20 @@ class HashTable : private AllocPolicy + } + + uint32_t capacity() const + { + MOZ_ASSERT(table); + return JS_BIT(sHashBits - hashShift); + } + +- uint32_t generation() const ++ Generation generation() const + { + MOZ_ASSERT(table); +- return gen; ++ return Generation(gen); + } + + size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const + { + return mallocSizeOf(table); + } + + size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const +diff --git a/js/src/jsapi.h b/js/src/jsapi.h +--- a/js/src/jsapi.h ++++ b/js/src/jsapi.h +@@ -270,20 +270,16 @@ class AutoHashMapRooter : protected Auto + + size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return map.sizeOfExcludingThis(mallocSizeOf); + } + size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return map.sizeOfIncludingThis(mallocSizeOf); + } + +- uint32_t generation() const { +- return map.generation(); +- } +- + /************************************************** Shorthand operations */ + + bool has(const Lookup& l) const { + return map.has(l); + } + + template + bool put(const KeyInput& k, const ValueInput& v) { +@@ -385,20 +381,16 @@ class AutoHashSetRooter : protected Auto + + size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return set.sizeOfExcludingThis(mallocSizeOf); + } + size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { + return set.sizeOfIncludingThis(mallocSizeOf); + } + +- uint32_t generation() const { +- return set.generation(); +- } +- + /************************************************** Shorthand operations */ + + bool has(const Lookup& l) const { + return set.has(l); + } + + bool put(const T& t) { + return set.put(t); +diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h +--- a/js/src/jscntxt.h ++++ b/js/src/jscntxt.h +@@ -30,21 +30,21 @@ class DebugModeOSRVolatileJitFrameIterat + } + + typedef HashSet ObjectSet; + typedef HashSet ShapeSet; + + /* Detects cycles when traversing an object graph. */ + class AutoCycleDetector + { ++ Generation hashsetGenerationAtInit; + JSContext* cx; + RootedObject obj; ++ ObjectSet::AddPtr hashsetAddPointer; + bool cyclic; +- uint32_t hashsetGenerationAtInit; +- ObjectSet::AddPtr hashsetAddPointer; + MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER + + public: + AutoCycleDetector(JSContext* cx, HandleObject objArg + MOZ_GUARD_OBJECT_NOTIFIER_PARAM) + : cx(cx), obj(cx, objArg), cyclic(true) + { + MOZ_GUARD_OBJECT_NOTIFIER_INIT; +diff --git a/js/src/jswatchpoint.cpp b/js/src/jswatchpoint.cpp +--- a/js/src/jswatchpoint.cpp ++++ b/js/src/jswatchpoint.cpp +@@ -22,25 +22,25 @@ DefaultHasher::hash(const Look + { + return DefaultHasher::hash(key.object.get()) ^ HashId(key.id.get()); + } + + namespace { + + class AutoEntryHolder { + typedef WatchpointMap::Map Map; ++ Generation gen; + Map& map; + Map::Ptr p; +- uint32_t gen; + RootedObject obj; + RootedId id; + + public: + AutoEntryHolder(JSContext* cx, Map& map, Map::Ptr p) +- : map(map), p(p), gen(map.generation()), obj(cx, p->key().object), id(cx, p->key().id) ++ : gen(map.generation()), map(map), p(p), obj(cx, p->key().object), id(cx, p->key().id) + { + MOZ_ASSERT(!p->value().held); + p->value().held = true; + } + + ~AutoEntryHolder() { + if (gen != map.generation()) + p = map.lookup(WatchKey(obj, id)); +diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp +--- a/js/src/shell/jsheaptools.cpp ++++ b/js/src/shell/jsheaptools.cpp +@@ -267,17 +267,17 @@ HeapReverser::traverseEdge(void* cell, J + Map::AddPtr a = map.lookupForAdd(cell); + if (!a) { + /* + * We've never visited this cell before. Add it to the map (thus + * marking it as visited), and put it on the work stack, to be + * visited from the main loop. + */ + Node n(kind); +- uint32_t generation = map.generation(); ++ Generation generation = map.generation(); + if (!map.add(a, cell, Move(n)) || + !work.append(Child(cell, kind))) + return false; + /* If the map has been resized, re-check the pointer. */ + if (map.generation() != generation) + a = map.lookupForAdd(cell); + } + +diff --git a/mfbt/Opaque.h b/mfbt/Opaque.h +new file mode 100644 +--- /dev/null ++++ b/mfbt/Opaque.h +@@ -0,0 +1,44 @@ ++/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ ++/* vim: set ts=8 sts=2 et sw=2 tw=80: */ ++/* 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/. */ ++ ++/* An opaque integral type supporting only comparison operators. */ ++ ++#ifndef mozilla_Opaque_h ++#define mozilla_Opaque_h ++ ++#include "mozilla/TypeTraits.h" ++ ++namespace mozilla { ++ ++/** ++ * Opaque is a replacement for integral T in cases where only comparisons ++ * must be supported, and it's desirable to prevent accidental dependency on ++ * exact values. ++ */ ++template ++class Opaque final ++{ ++ static_assert(mozilla::IsIntegral::value, ++ "mozilla::Opaque only supports integral types"); ++ ++ T mValue; ++ ++public: ++ Opaque() {} ++ explicit Opaque(T aValue) : mValue(aValue) {} ++ ++ bool operator==(const Opaque& aOther) const { ++ return mValue == aOther.mValue; ++ } ++ ++ bool operator!=(const Opaque& aOther) const { ++ return !(*this == aOther); ++ } ++}; ++ ++} // namespace mozilla ++ ++#endif /* mozilla_Opaque_h */ +diff --git a/mfbt/moz.build b/mfbt/moz.build +--- a/mfbt/moz.build ++++ b/mfbt/moz.build +@@ -48,16 +48,17 @@ EXPORTS.mozilla = [ + 'MathAlgorithms.h', + 'Maybe.h', + 'MaybeOneOf.h', + 'MemoryChecking.h', + 'MemoryReporting.h', + 'Move.h', + 'NullPtr.h', + 'NumericLimits.h', ++ 'Opaque.h', + 'Pair.h', + 'PodOperations.h', + 'Poison.h', + 'Range.h', + 'RangedPtr.h', + 'RefCountType.h', + 'ReentrancyGuard.h', + 'RefPtr.h', + diff --git a/gnu/packages/patches/icecat-CVE-2016-2814.patch b/gnu/packages/patches/icecat-CVE-2016-2814.patch new file mode 100644 index 0000000000..5f197f25e6 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2814.patch @@ -0,0 +1,35 @@ + +# HG changeset patch +# User Jean-Yves Avenard +# Date 1460655260 25200 +# Node ID a13c0bc84d6eb132f4199f563fbe228d2d3b3a51 +# Parent 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610 +Bug 1254721: Ensure consistency between Cenc offsets and sizes table. r=gerald a=sylvestre + +MozReview-Commit-ID: E1KbKIIBR87 + +diff --git a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp +--- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp ++++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp +@@ -612,18 +612,18 @@ status_t + SampleTable::parseSampleCencInfo() { + if ((!mCencDefaultSize && !mCencInfoCount) || mCencOffsets.isEmpty()) { + // We don't have all the cenc information we need yet. Quietly fail and + // hope we get the data we need later in the track header. + ALOGV("Got half of cenc saio/saiz pair. Deferring parse until we get the other half."); + return OK; + } + +- if (!mCencSizes.isEmpty() && mCencOffsets.size() > 1 && +- mCencSizes.size() != mCencOffsets.size()) { ++ if ((mCencOffsets.size() > 1 && mCencOffsets.size() < mCencInfoCount) || ++ (!mCencDefaultSize && mCencSizes.size() < mCencInfoCount)) { + return ERROR_MALFORMED; + } + + if (mCencInfoCount > kMAX_ALLOCATION / sizeof(SampleCencInfo)) { + // Avoid future OOM. + return ERROR_MALFORMED; + } + + diff --git a/gnu/packages/patches/icecat-update-bundled-graphite2.patch b/gnu/packages/patches/icecat-update-bundled-graphite2.patch new file mode 100644 index 0000000000..c3ab920335 --- /dev/null +++ b/gnu/packages/patches/icecat-update-bundled-graphite2.patch @@ -0,0 +1,2488 @@ + +# HG changeset patch +# User Jonathan Kew +# Date 1460660890 -3600 +# Node ID 7330633d20ffb33941e41ea0666c4099b6e6d317 +# Parent 5c312182da9020504103aa329360abaffa7e232d +Bug 1262846 (patch for ESR trees) - Update Graphite2 library to 1.3.8. 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,3 +1,3 @@ +-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 ++This directory contains the Graphite2 library release 1.3.8 from ++https://github.com/silnrsi/graphite/releases/download/1.3.8/graphite2-minimal-1.3.8.tgz + See gfx/graphite2/moz-gr-update.sh for update procedure. +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 6 ++#define GR2_VERSION_BUGFIX 8 + + #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/graphite-minimal-$RELEASE.tgz" ++TARBALL="https://github.com/silnrsi/graphite/releases/download/$RELEASE/graphite2-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/CachedFace.cpp b/gfx/graphite2/src/CachedFace.cpp +--- a/gfx/graphite2/src/CachedFace.cpp ++++ b/gfx/graphite2/src/CachedFace.cpp +@@ -64,20 +64,20 @@ bool CachedFace::runGraphite(Segment *se + return false; + + assert(m_cacheStore); + // find where the segment can be broken + Slot * subSegStartSlot = seg->first(); + Slot * subSegEndSlot = subSegStartSlot; + uint16 cmapGlyphs[eMaxSpliceSize]; + int subSegStart = 0; +- for (unsigned int i = 0; i < seg->charInfoCount(); ++i) ++ for (unsigned int i = 0; i < seg->charInfoCount() && subSegEndSlot; ++i) + { + const unsigned int length = i - subSegStart + 1; +- if (length < eMaxSpliceSize) ++ if (length < eMaxSpliceSize && subSegEndSlot->gid() < m_cacheStore->maxCmapGid()) + cmapGlyphs[length-1] = subSegEndSlot->gid(); + else return false; + const bool spaceOnly = m_cacheStore->isSpaceGlyph(subSegEndSlot->gid()); + // at this stage the character to slot mapping is still 1 to 1 + const int breakWeight = seg->charinfo(i)->breakWeight(), + nextBreakWeight = (i + 1 < seg->charInfoCount())? + seg->charinfo(i+1)->breakWeight() : 0; + const uint8 f = seg->charinfo(i)->flags(); +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 +@@ -61,93 +61,88 @@ inline bool is_return(const instr i) { + const instr pop_ret = *opmap[POP_RET].impl, + ret_zero = *opmap[RET_ZERO].impl, + ret_true = *opmap[RET_TRUE].impl; + return i == pop_ret || i == ret_zero || i == ret_true; + } + + struct context + { +- context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false; flags.inserted=false;} ++ context(uint8 ref=0) : codeRef(ref) {flags.changed=false; flags.referenced=false;} + struct { + uint8 changed:1, +- referenced:1, +- inserted:1; ++ referenced:1; + } flags; + uint8 codeRef; + }; + + } // end namespace + + + class Machine::Code::decoder + { + public: + struct limits; +- struct analysis +- { +- static const int NUMCONTEXTS = 256; +- uint8 slotref; +- 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(); +- +- }; ++ static const int NUMCONTEXTS = 256; + + decoder(limits & lims, Code &code, enum passtype pt) throw(); + + bool load(const byte * bc_begin, const byte * bc_end); + void apply_analysis(instr * const code, instr * code_end); +- byte max_ref() { return _analysis.max_ref; } +- int pre_context() const { return _pre_context; } ++ byte max_ref() { return _max_ref; } ++ int out_index() const { return _out_index; } + + private: ++ void set_ref(int index) throw(); ++ void set_noref(int index) throw(); ++ void set_changed(int index) throw(); + opcode fetch_opcode(const byte * bc); + void analyse_opcode(const opcode, const int8 * const dp) throw(); + bool emit_opcode(opcode opc, const byte * & bc); +- bool validate_opcode(const opcode opc, const byte * const bc); ++ bool validate_opcode(const byte opc, const byte * const bc); + bool valid_upto(const uint16 limit, const uint16 x) const throw(); + bool test_context() const throw(); ++ bool test_ref(int8 index) const throw(); + void failure(const status_t s) const throw() { _code.failure(s); } + + Code & _code; +- int _pre_context; +- uint16 _rule_length; ++ int _out_index; ++ uint16 _out_length; + instr * _instr; + byte * _data; + limits & _max; +- analysis _analysis; + enum passtype _passtype; + int _stack_depth; + bool _in_ctxt_item; ++ int16 _slotref; ++ context _contexts[NUMCONTEXTS]; ++ byte _max_ref; + }; + + + struct Machine::Code::decoder::limits + { + const byte * bytecode; + const uint8 pre_context; + const uint16 rule_length, + classes, + glyf_attrs, + features; + const byte attrid[gr_slatMax]; + }; + + inline Machine::Code::decoder::decoder(limits & lims, Code &code, enum passtype pt) throw() + : _code(code), +- _pre_context(code._constraint ? 0 : lims.pre_context), +- _rule_length(code._constraint ? 1 : lims.rule_length), ++ _out_index(code._constraint ? 0 : lims.pre_context), ++ _out_length(code._constraint ? 1 : lims.rule_length), + _instr(code._code), _data(code._data), _max(lims), _passtype(pt), + _stack_depth(0), +- _in_ctxt_item(false) ++ _in_ctxt_item(false), ++ _slotref(0), ++ _max_ref(0) + { } + + + + Machine::Code::Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, + uint8 pre_context, uint16 rule_length, const Silf & silf, const Face & face, + enum passtype pt, byte * * const _out) + : _code(0), _data(0), _data_size(0), _instr_count(0), _max_ref(0), _status(loaded), +@@ -163,17 +158,17 @@ Machine::Code::Code(bool is_constraint, + return; + } + assert(bytecode_end > bytecode_begin); + const opcode_t * op_to_fn = Machine::getOpcodeTable(); + + // Allocate code and data target buffers, these sizes are a worst case + // estimate. Once we know their real sizes the we'll shrink them. + if (_out) _code = reinterpret_cast(*_out); +- else _code = static_cast(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin))); ++ else _code = static_cast(malloc(estimateCodeDataOut(bytecode_end-bytecode_begin, 1, is_constraint ? 0 : rule_length))); + _data = reinterpret_cast(_code + (bytecode_end - bytecode_begin)); + + if (!_code || !_data) { + failure(alloc_failed); + return; + } + + decoder::limits lims = { +@@ -266,23 +261,23 @@ bool Machine::Code::decoder::load(const + return bool(_code); + } + + // Validation check and fixups. + // + + opcode Machine::Code::decoder::fetch_opcode(const byte * bc) + { +- const opcode opc = opcode(*bc++); ++ const byte opc = *bc++; + + // Do some basic sanity checks based on what we know about the opcode + if (!validate_opcode(opc, bc)) return MAX_OPCODE; + + // And check it's arguments as far as possible +- switch (opc) ++ switch (opcode(opc)) + { + case NOP : + break; + case PUSH_BYTE : + case PUSH_BYTEU : + case PUSH_SHORT : + case PUSH_SHORTU : + case PUSH_LONG : +@@ -319,47 +314,57 @@ opcode Machine::Code::decoder::fetch_opc + case COND : + _stack_depth -= 2; + if (_stack_depth <= 0) + failure(underfull_stack); + break; + case NEXT : + case NEXT_N : // runtime checked + case COPY_NEXT : +- test_context(); +- ++_pre_context; ++ ++_out_index; ++ if (_out_index < -1 || _out_index > _out_length || _slotref > _max.rule_length) ++ failure(out_of_range_data); + break; + case PUT_GLYPH_8BIT_OBS : + valid_upto(_max.classes, bc[0]); + test_context(); + break; + case PUT_SUBS_8BIT_OBS : +- valid_upto(_rule_length, _pre_context + int8(bc[0])); ++ test_ref(int8(bc[0])); + valid_upto(_max.classes, bc[1]); + valid_upto(_max.classes, bc[2]); + test_context(); + break; + case PUT_COPY : +- valid_upto(_rule_length, _pre_context + int8(bc[0])); ++ test_ref(int8(bc[0])); + test_context(); + break; + case INSERT : + if (_passtype >= PASS_TYPE_POSITIONING) + failure(invalid_opcode); +- else +- --_pre_context; ++ ++_out_length; ++ if (_out_index < 0) ++_out_index; ++ if (_out_index < -1 || _out_index >= _out_length) ++ failure(out_of_range_data); + break; + case DELETE : + if (_passtype >= PASS_TYPE_POSITIONING) + failure(invalid_opcode); +- test_context(); ++ if (_out_index < _max.pre_context) ++ failure(out_of_range_data); ++ --_out_index; ++ --_out_length; ++ if (_out_index < -1 || _out_index > _out_length) ++ failure(out_of_range_data); + break; + case ASSOC : ++ if (bc[0] == 0) ++ failure(out_of_range_data); + for (uint8 num = bc[0]; num; --num) +- valid_upto(_rule_length, _pre_context + int8(bc[num])); ++ test_ref(int8(bc[num])); + test_context(); + break; + case CNTXT_ITEM : + valid_upto(_max.rule_length, _max.pre_context + int8(bc[0])); + if (bc + 2 + bc[1] >= _max.bytecode) failure(jump_past_end); + if (_in_ctxt_item) failure(nested_context_item); + break; + case ATTR_SET : +@@ -378,52 +383,43 @@ opcode Machine::Code::decoder::fetch_opc + 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])); ++ test_ref(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 : ++ case PUSH_ATT_TO_GATTR_OBS : + ++_stack_depth; + valid_upto(_max.glyf_attrs, bc[0]); +- valid_upto(_rule_length, _pre_context + int8(bc[1])); ++ test_ref(int8(bc[1])); + break; ++ case PUSH_ATT_TO_GLYPH_METRIC : + case PUSH_GLYPH_METRIC : + ++_stack_depth; + valid_upto(kgmetDescent, bc[0]); +- valid_upto(_rule_length, _pre_context + int8(bc[1])); ++ test_ref(int8(bc[1])); + // level: dp[2] no check necessary + break; + case PUSH_FEAT : + ++_stack_depth; + valid_upto(_max.features, bc[0]); +- valid_upto(_rule_length, _pre_context + int8(bc[1])); +- break; +- case PUSH_ATT_TO_GATTR_OBS : +- ++_stack_depth; +- valid_upto(_max.glyf_attrs, bc[0]); +- valid_upto(_rule_length, _pre_context + int8(bc[1])); +- break; +- case PUSH_ATT_TO_GLYPH_METRIC : +- ++_stack_depth; +- valid_upto(kgmetDescent, bc[0]); +- valid_upto(_rule_length, _pre_context + int8(bc[1])); +- // level: dp[2] no check necessary ++ test_ref(int8(bc[1])); + break; + case PUSH_ISLOT_ATTR : + ++_stack_depth; + if (valid_upto(gr_slatMax, bc[0])) + { +- valid_upto(_rule_length, _pre_context + int8(bc[1])); ++ test_ref(int8(bc[1])); + valid_upto(_max.attrid[bc[0]], bc[2]); + } + break; + case PUSH_IGLYPH_ATTR :// not implemented + ++_stack_depth; + break; + case POP_RET : + if (--_stack_depth < 0) +@@ -442,118 +438,107 @@ opcode Machine::Code::decoder::fetch_opc + valid_upto(_max.attrid[bc[0]], bc[1]); + test_context(); + break; + case PUSH_PROC_STATE : // dummy: dp[0] no check necessary + case PUSH_VERSION : + ++_stack_depth; + break; + case PUT_SUBS : +- valid_upto(_rule_length, _pre_context + int8(bc[0])); ++ test_ref(int8(bc[0])); + valid_upto(_max.classes, uint16(bc[1]<< 8) | bc[2]); + valid_upto(_max.classes, uint16(bc[3]<< 8) | bc[4]); + test_context(); + break; + case PUT_SUBS2 : // not implemented + case PUT_SUBS3 : // not implemented + break; + case PUT_GLYPH : + valid_upto(_max.classes, uint16(bc[0]<< 8) | bc[1]); + test_context(); + break; + case PUSH_GLYPH_ATTR : + case PUSH_ATT_TO_GLYPH_ATTR : + ++_stack_depth; + valid_upto(_max.glyf_attrs, uint16(bc[0]<< 8) | bc[1]); +- valid_upto(_rule_length, _pre_context + int8(bc[2])); ++ test_ref(int8(bc[2])); ++ break; ++ case SET_FEAT : ++ valid_upto(_max.features, bc[0]); ++ test_ref(int8(bc[1])); + break; + default: + failure(invalid_opcode); + break; + } + +- return bool(_code) ? opc : MAX_OPCODE; ++ return bool(_code) ? opcode(opc) : MAX_OPCODE; + } + + + void Machine::Code::decoder::analyse_opcode(const opcode opc, const int8 * arg) throw() + { +- if (_code._constraint) return; +- + switch (opc) + { + case DELETE : + _code._delete = true; + break; ++ case ASSOC : ++ set_changed(0); ++// for (uint8 num = arg[0]; num; --num) ++// _analysis.set_noref(num); ++ break; + case PUT_GLYPH_8BIT_OBS : + case PUT_GLYPH : + _code._modify = true; +- _analysis.set_changed(0); ++ set_changed(0); + break; + case ATTR_SET : + case ATTR_ADD : ++ case ATTR_SUB : + case ATTR_SET_SLOT : + case IATTR_SET_SLOT : + case IATTR_SET : + case IATTR_ADD : + case IATTR_SUB : +- _analysis.set_noref(0); ++ set_noref(0); + break; + case NEXT : + case COPY_NEXT : +- if (!_analysis.contexts[_analysis.slotref].flags.inserted) +- ++_analysis.slotref; +- _analysis.contexts[_analysis.slotref] = context(_code._instr_count+1); ++ ++_slotref; ++ _contexts[_slotref] = context(_code._instr_count+1); + // if (_analysis.slotref > _analysis.max_ref) _analysis.max_ref = _analysis.slotref; + break; + case INSERT : +- _analysis.contexts[_analysis.slotref].flags.inserted = true; ++ if (_slotref >= 0) --_slotref; + _code._modify = true; + break; + case PUT_SUBS_8BIT_OBS : // slotref on 1st parameter + case PUT_SUBS : + _code._modify = true; +- _analysis.set_changed(0); ++ set_changed(0); + GR_FALLTHROUGH; + // no break + case PUT_COPY : +- { +- if (arg[0] != 0) { _analysis.set_changed(0); _code._modify = true; } +- if (arg[0] <= 0 && -arg[0] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) +- _analysis.set_ref(arg[0], true); +- else if (arg[0] > 0) +- _analysis.set_ref(arg[0], true); ++ if (arg[0] != 0) { set_changed(0); _code._modify = true; } ++ set_ref(arg[0]); + break; +- } +- case PUSH_ATT_TO_GATTR_OBS : // slotref on 2nd parameter +- if (_code._constraint) return; +- GR_FALLTHROUGH; +- // no break + case PUSH_GLYPH_ATTR_OBS : + case PUSH_SLOT_ATTR : + case PUSH_GLYPH_METRIC : ++ case PUSH_ATT_TO_GATTR_OBS : + case PUSH_ATT_TO_GLYPH_METRIC : + case PUSH_ISLOT_ATTR : + case PUSH_FEAT : +- if (arg[1] <= 0 && -arg[1] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) +- _analysis.set_ref(arg[1], true); +- else if (arg[1] > 0) +- _analysis.set_ref(arg[1], true); ++ case SET_FEAT : ++ set_ref(arg[1]); + break; + case PUSH_ATT_TO_GLYPH_ATTR : +- if (_code._constraint) return; +- GR_FALLTHROUGH; +- // no break + case PUSH_GLYPH_ATTR : +- if (arg[2] <= 0 && -arg[2] <= _analysis.slotref - _analysis.contexts[_analysis.slotref].flags.inserted) +- _analysis.set_ref(arg[2], true); +- else if (arg[2] > 0) +- _analysis.set_ref(arg[2], true); +- break; +- case ASSOC : // slotrefs in varargs ++ set_ref(arg[2]); + break; + default: + break; + } + } + + + bool Machine::Code::decoder::emit_opcode(opcode opc, const byte * & bc) +@@ -579,81 +564,89 @@ bool Machine::Code::decoder::emit_opcode + _data += param_sz; + _code._data_size += param_sz; + } + + // recursively decode a context item so we can split the skip into + // instruction and data portions. + if (opc == CNTXT_ITEM) + { +- assert(_pre_context == 0); ++ assert(_out_index == 0); + _in_ctxt_item = true; +- _pre_context = _max.pre_context + int8(_data[-2]); +- _rule_length = _max.rule_length; ++ _out_index = _max.pre_context + int8(_data[-2]); ++ _slotref = int8(_data[-2]); ++ _out_length = _max.rule_length; + + const size_t ctxt_start = _code._instr_count; + byte & instr_skip = _data[-1]; + byte & data_skip = *_data++; + ++_code._data_size; + const byte *curr_end = _max.bytecode; + + if (load(bc, bc + instr_skip)) + { + bc += instr_skip; + data_skip = instr_skip - (_code._instr_count - ctxt_start); + instr_skip = _code._instr_count - ctxt_start; + _max.bytecode = curr_end; + +- _rule_length = 1; +- _pre_context = 0; ++ _out_length = 1; ++ _out_index = 0; ++ _slotref = 0; + _in_ctxt_item = false; + } + else + { +- _pre_context = 0; ++ _out_index = 0; ++ _slotref = 0; + return false; + } + } + + return bool(_code); + } + + + void Machine::Code::decoder::apply_analysis(instr * const code, instr * code_end) + { + // insert TEMP_COPY commands for slots that need them (that change and are referenced later) + int tempcount = 0; + if (_code._constraint) return; + + const instr temp_copy = Machine::getOpcodeTable()[TEMP_COPY].impl[0]; +- for (const context * c = _analysis.contexts, * const ce = c + _analysis.slotref; c != ce; ++c) ++ for (const context * c = _contexts, * const ce = c + _slotref; c < ce; ++c) + { + if (!c->flags.referenced || !c->flags.changed) continue; + + instr * const tip = code + c->codeRef + tempcount; + memmove(tip+1, tip, (code_end - tip) * sizeof(instr)); + *tip = temp_copy; + ++code_end; + ++tempcount; + _code._delete = true; + } + + _code._instr_count = code_end - code; + } + + + inline +-bool Machine::Code::decoder::validate_opcode(const opcode opc, const byte * const bc) ++bool Machine::Code::decoder::validate_opcode(const byte opc, const byte * const bc) + { + if (opc >= MAX_OPCODE) + { + failure(invalid_opcode); + return false; + } + const opcode_t & op = Machine::getOpcodeTable()[opc]; ++ if (op.impl[_code._constraint] == 0) ++ { ++ failure(unimplemented_opcode_used); ++ return false; ++ } + if (op.param_sz == VARARGS && bc >= _max.bytecode) + { + failure(arguments_exhausted); + return false; + } + const size_t param_sz = op.param_sz == VARARGS ? bc[0] + 1 : op.param_sz; + if (bc - 1 + param_sz >= _max.bytecode) + { +@@ -666,56 +659,69 @@ bool Machine::Code::decoder::validate_op + + bool Machine::Code::decoder::valid_upto(const uint16 limit, const uint16 x) const throw() + { + const bool t = (limit != 0) && (x < limit); + if (!t) failure(out_of_range_data); + return t; + } + ++inline ++bool Machine::Code::decoder::test_ref(int8 index) const throw() ++{ ++ if (_code._constraint && !_in_ctxt_item) ++ { ++ if (index > 0 || -index > _max.pre_context) ++ { ++ failure(out_of_range_data); ++ return false; ++ } ++ } ++ else ++ return valid_upto(_max.rule_length, _slotref + _max.pre_context + index); ++ return true; ++} ++ + bool Machine::Code::decoder::test_context() const throw() + { +- if (_pre_context >= _rule_length || _analysis.slotref >= analysis::NUMCONTEXTS - 1) ++ if (_out_index >= _out_length || _out_index < 0 || _slotref >= NUMCONTEXTS - 1) + { + failure(out_of_range_data); + return false; + } + return true; + } + + inline + void Machine::Code::failure(const status_t s) throw() { + 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 || 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; ++void Machine::Code::decoder::set_ref(int index) throw() { ++ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; ++ _contexts[index + _slotref].flags.referenced = true; ++ if (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 || index + slotref >= NUMCONTEXTS) return; +- if ((index > 0 || !contexts[index + slotref].flags.inserted) && index + slotref > max_ref) max_ref = index + slotref; ++void Machine::Code::decoder::set_noref(int index) throw() { ++ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; ++ if (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 || 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::decoder::set_changed(int index) throw() { ++ if (index + _slotref < 0 || index + _slotref >= NUMCONTEXTS) return; ++ _contexts[index + _slotref].flags.changed= true; ++ if (index + _slotref > _max_ref) _max_ref = index + _slotref; + } + + + void Machine::Code::release_buffers() throw() + { + if (_own) + free(_code); + _code = 0; +diff --git a/gfx/graphite2/src/Collider.cpp b/gfx/graphite2/src/Collider.cpp +--- a/gfx/graphite2/src/Collider.cpp ++++ b/gfx/graphite2/src/Collider.cpp +@@ -21,17 +21,17 @@ + + Alternatively, the contents of this file may be used under the terms of the + Mozilla Public License (http://mozilla.org/MPL) or the GNU General Public + License, as published by the Free Software Foundation, either version 2 + of the License or (at your option) any later version. + */ + #include + #include +-#include ++#include + #include + #include + #include "inc/Collider.h" + #include "inc/Segment.h" + #include "inc/Slot.h" + #include "inc/GlyphCache.h" + #include "inc/Sparse.h" + +@@ -824,43 +824,43 @@ bool KernCollider::initSlot(Segment *seg + if (margin < 10) margin = 10; + + _limit = limit; + _offsetPrev = offsetPrev; // kern from a previous pass + + // Calculate the height of the glyph and how many horizontal slices to use. + if (_maxy >= 1e37f) + { +- _maxy = ymax; +- _miny = ymin; + _sliceWidth = margin / 1.5f; ++ _maxy = ymax + margin; ++ _miny = ymin - margin; + numSlices = int((_maxy - _miny + 2) / (_sliceWidth / 1.5f) + 1.f); // +2 helps with rounding errors + _edges.clear(); + _edges.insert(_edges.begin(), numSlices, (dir & 1) ? 1e38f : -1e38f); + _xbound = (dir & 1) ? (float)1e38f : (float)-1e38f; + } + else if (_maxy != ymax || _miny != ymin) + { + if (_miny != ymin) + { +- numSlices = int((ymin - _miny) / _sliceWidth - 1); ++ numSlices = int((ymin - margin - _miny) / _sliceWidth - 1); + _miny += numSlices * _sliceWidth; + if (numSlices < 0) + _edges.insert(_edges.begin(), -numSlices, (dir & 1) ? 1e38f : -1e38f); + else if ((unsigned)numSlices < _edges.size()) // this shouldn't fire since we always grow the range + { + Vector::iterator e = _edges.begin(); + while (numSlices--) + ++e; + _edges.erase(_edges.begin(), e); + } + } + if (_maxy != ymax) + { +- numSlices = int((ymax - _miny) / _sliceWidth + 1); ++ numSlices = int((ymax + margin - _miny) / _sliceWidth + 1); + _maxy = numSlices * _sliceWidth + _miny; + if (numSlices > (int)_edges.size()) + _edges.insert(_edges.end(), numSlices - _edges.size(), (dir & 1) ? 1e38f : -1e38f); + else if (numSlices < (int)_edges.size()) // this shouldn't fire since we always grow the range + { + while ((int)_edges.size() > numSlices) + _edges.pop_back(); + } +@@ -930,53 +930,60 @@ bool KernCollider::initSlot(Segment *seg + // Return false if we know there is no collision, true if we think there might be one. + bool KernCollider::mergeSlot(Segment *seg, Slot *slot, const Position &currShift, float currSpace, int dir, GR_MAYBE_UNUSED json * const dbgout) + { + int rtl = (dir & 1) * 2 - 1; + if (!seg->getFace()->glyphs().check(slot->gid())) + return false; + const Rect &bb = seg->theGlyphBBoxTemporary(slot->gid()); + const float sx = slot->origin().x + currShift.x; +- float x = sx + (rtl > 0 ? bb.tr.x : bb.bl.x); ++ float x = (sx + (rtl > 0 ? bb.tr.x : bb.bl.x)) * rtl; + // this isn't going to reduce _mingap so skip +- if ((rtl > 0 && x < _xbound - _mingap - currSpace) || (rtl <= 0 && x > _xbound + _mingap + currSpace)) ++ if (x < rtl * (_xbound - _mingap - currSpace)) + return false; + + const float sy = slot->origin().y + currShift.y; +- int smin = max(0, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)); +- int smax = min((int)_edges.size() - 1, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)); ++ int smin = max(1, int((bb.bl.y + (1 - _miny + sy)) / _sliceWidth + 1)) - 1; ++ int smax = min((int)_edges.size() - 2, int((bb.tr.y + (1 - _miny + sy)) / _sliceWidth + 1)) + 1; ++ if (smin > smax) ++ return false; + bool collides = false; ++ float below = smin > 0 ? _edges[smin-1] * rtl : 1e38f; ++ float here = _edges[smin] * rtl; ++ float above = smin < (int)_edges.size() - 1 ? _edges[smin+1] * rtl : 1e38f; + + for (int i = smin; i <= smax; ++i) + { + float t; + float y = (float)(_miny - 1 + (i + .5f) * _sliceWidth); // vertical center of slice +- if (x * rtl > _edges[i] * rtl - _mingap - currSpace) ++ if ( (x > here - _mingap - currSpace) ++ || (x > below - _mingap - currSpace) ++ || (x > above - _mingap - currSpace)) + { + // 2 * currSpace to account for the space that is already separating them and the space we want to add +- float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) + 2 * rtl * currSpace; +- t = rtl * (_edges[i] - m); ++ float m = get_edge(seg, slot, currShift, y, _sliceWidth, rtl > 0) * rtl + 2 * currSpace; + // Check slices above and below (if any). +- if (i < (int)_edges.size() - 1) t = min(t, rtl * (_edges[i+1] - m)); +- if (i > 0) t = min(t, rtl * (_edges[i-1] - m)); ++ t = min(min(here, below), above) - m; + // _mingap is positive to shrink + if (t < _mingap) + { + _mingap = t; + collides = true; + } + #if !defined GRAPHITE2_NTRACING + // Debugging - remember the closest neighboring edge for this slice. +- if (rtl * m > rtl * _nearEdges[i]) ++ if (m > rtl * _nearEdges[i]) + { + _slotNear[i] = slot; +- _nearEdges[i] = m; ++ _nearEdges[i] = m * rtl; + } + #endif + } ++ below = here; here = above; ++ above = i < (int)_edges.size() - 2 ? _edges[i+2] * rtl : 1e38f; + } + return collides; // note that true is not a necessarily reliable value + + } // end of KernCollider::mergeSlot + + + // Return the amount to kern by. + Position KernCollider::resolve(GR_MAYBE_UNUSED Segment *seg, GR_MAYBE_UNUSED Slot *slot, +diff --git a/gfx/graphite2/src/Face.cpp b/gfx/graphite2/src/Face.cpp +--- a/gfx/graphite2/src/Face.cpp ++++ b/gfx/graphite2/src/Face.cpp +@@ -178,17 +178,18 @@ bool Face::runGraphite(Segment *seg, con + if ((seg->dir() & 3) == 3 && aSilf->bidiPass() == 0xFF) + seg->doMirror(aSilf->aMirror()); + bool res = aSilf->runGraphite(seg, 0, aSilf->positionPass(), true); + if (res) + { + seg->associateChars(0, seg->charInfoCount()); + if (aSilf->flags() & 0x20) + res &= seg->initCollisions(); +- res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); ++ if (res) ++ res &= aSilf->runGraphite(seg, aSilf->positionPass(), aSilf->numPasses(), false); + } + + #if !defined GRAPHITE2_NTRACING + if (dbgout) + { + seg->positionSlots(0, 0, 0, aSilf->dir()); + *dbgout << json::item + << json::close // Close up the passes array +@@ -226,17 +227,17 @@ const Silf *Face::chooseSilf(uint32 scri + return m_silfs; + } + + uint16 Face::findPseudo(uint32 uid) const + { + return (m_numSilf) ? m_silfs[0].findPseudo(uid) : 0; + } + +-uint16 Face::getGlyphMetric(uint16 gid, uint8 metric) const ++int32 Face::getGlyphMetric(uint16 gid, uint8 metric) const + { + switch (metrics(metric)) + { + case kgmetAscent : return m_ascent; + case kgmetDescent : return m_descent; + default: + if (gid >= glyphs().numGlyphs()) return 0; + return glyphs().glyph(gid)->getMetric(metric); +@@ -277,17 +278,17 @@ Face::Table::Table(const Face & face, co + : _f(&face), _compressed(false) + { + size_t sz = 0; + _p = static_cast((*_f->m_ops.get_table)(_f->m_appFaceHandle, n, &sz)); + _sz = uint32(sz); + + if (!TtfUtil::CheckTable(n, _p, _sz)) + { +- this->~Table(); // Make sure we release the table buffer even if the table filed it's checks ++ releaseBuffers(); // Make sure we release the table buffer even if the table failed it's checks + return; + } + + if (be::peek(_p) >= version) + decompress(); + } + + void Face::Table::releaseBuffers() +@@ -324,17 +325,18 @@ Error Face::Table::decompress() + switch(compression(hdr >> 27)) + { + case NONE: return e; + + case LZ4: + { + uncompressed_size = hdr & 0x07ffffff; + uncompressed_table = gralloc(uncompressed_size); +- if (!e.test(!uncompressed_table, E_OUTOFMEM)) ++ if (!e.test(!uncompressed_table || uncompressed_size < 4, E_OUTOFMEM)) ++ memset(uncompressed_table, 0, 4); // make sure version number is initialised + // coverity[forward_null : FALSE] - uncompressed_table has been checked so can't be null + // coverity[checked_return : FALSE] - we test e later + e.test(lz4::decompress(p, _sz - 2*sizeof(uint32), uncompressed_table, uncompressed_size) != signed(uncompressed_size), E_SHRINKERFAILED); + break; + } + + default: + e.error(E_BADSCHEME); +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 +@@ -111,18 +111,20 @@ private: + _num_glyphs_attributes, + _num_attrs; // number of glyph attributes per glyph + }; + + + + GlyphCache::GlyphCache(const Face & face, const uint32 face_options) + : _glyph_loader(new Loader(face, bool(face_options & gr_face_dumbRendering))), +- _glyphs(_glyph_loader && *_glyph_loader ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), +- _boxes(_glyph_loader && _glyph_loader->has_boxes() ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), ++ _glyphs(_glyph_loader && *_glyph_loader && _glyph_loader->num_glyphs() ++ ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), ++ _boxes(_glyph_loader && _glyph_loader->has_boxes() && _glyph_loader->num_glyphs() ++ ? grzeroalloc(_glyph_loader->num_glyphs()) : 0), + _num_glyphs(_glyphs ? _glyph_loader->num_glyphs() : 0), + _num_attrs(_glyphs ? _glyph_loader->num_attrs() : 0), + _upem(_glyphs ? _glyph_loader->units_per_em() : 0) + { + if ((face_options & gr_face_preloadGlyphs) && _glyph_loader && _glyphs) + { + int numsubs = 0; + GlyphFace * const glyphs = new GlyphFace [_num_glyphs]; +@@ -139,17 +141,17 @@ GlyphCache::GlyphCache(const Face & face + for (uint16 gid = 1; loaded && gid != _num_glyphs; ++gid) + _glyphs[gid] = loaded = _glyph_loader->read_glyph(gid, glyphs[gid], &numsubs); + + if (!loaded) + { + _glyphs[0] = 0; + delete [] glyphs; + } +- else if (numsubs > 0) ++ else if (numsubs > 0 && _boxes) + { + GlyphBox * boxes = (GlyphBox *)gralloc(_num_glyphs * sizeof(GlyphBox) + numsubs * 8 * sizeof(float)); + GlyphBox * currbox = boxes; + + for (uint16 gid = 0; currbox && gid != _num_glyphs; ++gid) + { + _boxes[gid] = currbox; + currbox = _glyph_loader->read_box(gid, currbox, *_glyphs[gid]); +@@ -204,16 +206,18 @@ GlyphCache::~GlyphCache() + free(_boxes[0]); + free(_boxes); + } + delete _glyph_loader; + } + + const GlyphFace *GlyphCache::glyph(unsigned short glyphid) const //result may be changed by subsequent call with a different glyphid + { ++ if (glyphid >= numGlyphs()) ++ return _glyphs[0]; + const GlyphFace * & p = _glyphs[glyphid]; + if (p == 0 && _glyph_loader) + { + int numsubs = 0; + GlyphFace * g = new GlyphFace(); + if (g) p = _glyph_loader->read_glyph(glyphid, *g, &numsubs); + if (!p) + { +@@ -280,26 +284,27 @@ GlyphCache::Loader::Loader(const Face & + _long_fmt = flags & 1; + int tmpnumgattrs = (m_pGloc.size() + - (p - m_pGloc) + - sizeof(uint16)*(flags & 0x2 ? _num_attrs : 0)) + / (_long_fmt ? sizeof(uint32) : sizeof(uint16)) - 1; + + if (version >= 0x00020000 || tmpnumgattrs < 0 || tmpnumgattrs > 65535 + || _num_attrs == 0 || _num_attrs > 0x3000 // is this hard limit appropriate? +- || _num_glyphs_graphics > tmpnumgattrs) ++ || _num_glyphs_graphics > tmpnumgattrs ++ || m_pGlat.size() < 4) + { + _head = Face::Table(); + return; + } + + _num_glyphs_attributes = static_cast(tmpnumgattrs); + p = m_pGlat; + version = be::read(p); +- if (version >= 0x00040000) // reject Glat tables that are too new ++ if (version >= 0x00040000 || (version >= 0x00030000 && m_pGlat.size() < 8)) // reject Glat tables that are too new + { + _head = Face::Table(); + return; + } + else if (version >= 0x00030000) + { + unsigned int glatflags = be::read(p); + _has_boxes = glatflags & 1; +@@ -381,22 +386,24 @@ const GlyphFace * GlyphCache::Loader::re + } + else + { + be::skip(gloc, glyphid); + glocs = be::read(gloc); + gloce = be::peek(gloc); + } + +- if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) ++ if (glocs >= m_pGlat.size() - 1 || gloce > m_pGlat.size()) + return 0; + + const uint32 glat_version = be::peek(m_pGlat); +- if (glat_version == 0x00030000) ++ if (glat_version >= 0x00030000) + { ++ if (glocs >= gloce) ++ return 0; + const byte * p = m_pGlat + glocs; + uint16 bmap = be::read(p); + int num = bit_set_count((uint32)bmap); + if (numsubs) *numsubs += num; + glocs += 6 + 8 * num; + if (glocs > gloce) + return 0; + } +@@ -449,29 +456,31 @@ GlyphBox * GlyphCache::Loader::read_box( + } + else + { + be::skip(gloc, gid); + glocs = be::read(gloc); + gloce = be::peek(gloc); + } + +- if (glocs >= m_pGlat.size() || gloce > m_pGlat.size()) ++ if (gloce > m_pGlat.size() || glocs + 6 >= gloce) + return 0; + + const byte * p = m_pGlat + glocs; + uint16 bmap = be::read(p); + int num = bit_set_count((uint32)bmap); + + Rect bbox = glyph.theBBox(); + Rect diamax(Position(bbox.bl.x + bbox.bl.y, bbox.bl.x - bbox.tr.y), + Position(bbox.tr.x + bbox.tr.y, bbox.tr.x - bbox.bl.y)); + Rect diabound = readbox(diamax, p[0], p[2], p[1], p[3]); + ::new (curr) GlyphBox(num, bmap, &diabound); + be::skip(p, 4); ++ if (glocs + 6 + num * 8 >= gloce) ++ return 0; + + for (int i = 0; i < num * 2; ++i) + { + Rect box = readbox((i & 1) ? diamax : bbox, p[0], p[2], p[1], p[3]); + curr->addSubBox(i >> 1, i & 1, &box); + be::skip(p, 4); + } + return (GlyphBox *)((char *)(curr) + sizeof(GlyphBox) + 2 * num * sizeof(Rect)); +diff --git a/gfx/graphite2/src/GlyphFace.cpp b/gfx/graphite2/src/GlyphFace.cpp +--- a/gfx/graphite2/src/GlyphFace.cpp ++++ b/gfx/graphite2/src/GlyphFace.cpp +@@ -24,25 +24,25 @@ Mozilla Public License (http://mozilla.o + License, as published by the Free Software Foundation, either version 2 + of the License or (at your option) any later version. + */ + #include "inc/GlyphFace.h" + + + using namespace graphite2; + +-uint16 GlyphFace::getMetric(uint8 metric) const ++int32 GlyphFace::getMetric(uint8 metric) const + { + switch (metrics(metric)) + { +- case kgmetLsb : return static_cast(m_bbox.bl.x); +- case kgmetRsb : return static_cast(m_advance.x - m_bbox.tr.x); +- case kgmetBbTop : return static_cast(m_bbox.tr.y); +- case kgmetBbBottom : return static_cast(m_bbox.bl.y); +- case kgmetBbLeft : return static_cast(m_bbox.bl.x); +- case kgmetBbRight : return static_cast(m_bbox.tr.x); +- case kgmetBbHeight : return static_cast(m_bbox.tr.y - m_bbox.bl.y); +- case kgmetBbWidth : return static_cast(m_bbox.tr.x - m_bbox.bl.x); +- case kgmetAdvWidth : return static_cast(m_advance.x); +- case kgmetAdvHeight : return static_cast(m_advance.y); ++ case kgmetLsb : return m_bbox.bl.x; ++ case kgmetRsb : return m_advance.x - m_bbox.tr.x; ++ case kgmetBbTop : return m_bbox.tr.y; ++ case kgmetBbBottom : return m_bbox.bl.y; ++ case kgmetBbLeft : return m_bbox.bl.x; ++ case kgmetBbRight : return m_bbox.tr.x; ++ case kgmetBbHeight : return m_bbox.tr.y - m_bbox.bl.y; ++ case kgmetBbWidth : return m_bbox.tr.x - m_bbox.bl.x; ++ case kgmetAdvWidth : return m_advance.x; ++ case kgmetAdvHeight : return m_advance.y; + default : return 0; + } + } +diff --git a/gfx/graphite2/src/Justifier.cpp b/gfx/graphite2/src/Justifier.cpp +--- a/gfx/graphite2/src/Justifier.cpp ++++ b/gfx/graphite2/src/Justifier.cpp +@@ -95,62 +95,63 @@ float Segment::justify(Slot *pSlot, cons + + end = pLast->nextSibling(); + pFirst = pFirst->nextSibling(); + + int icount = 0; + int numLevels = silf()->numJustLevels(); + if (!numLevels) + { +- for (s = pSlot; s != end; s = s->next()) ++ for (s = pSlot; s && s != end; s = s->nextSibling()) + { + CharInfo *c = charinfo(s->before()); + if (isWhitespace(c->unicodeChar())) + { + s->setJustify(this, 0, 3, 1); + s->setJustify(this, 0, 2, 1); + s->setJustify(this, 0, 0, -1); + ++icount; + } + } + if (!icount) + { +- for (s = pSlot; s != end; s = s->nextSibling()) ++ for (s = pSlot; s && s != end; s = s->nextSibling()) + { + s->setJustify(this, 0, 3, 1); + s->setJustify(this, 0, 2, 1); + s->setJustify(this, 0, 0, -1); + } + } + ++numLevels; + } + + Vector stats(numLevels); +- for (s = pFirst; s != end; s = s->nextSibling()) ++ for (s = pFirst; s && s != end; s = s->nextSibling()) + { + float w = s->origin().x / scale + s->advance() - base; + if (w > currWidth) currWidth = w; + for (int j = 0; j < numLevels; ++j) + stats[j].accumulate(s, this, j); + s->just(0); + } + + for (int i = (width < 0.0f) ? -1 : numLevels - 1; i >= 0; --i) + { + float diff; + float error = 0.; + float diffpw; + int tWeight = stats[i].weight(); ++ if (tWeight == 0) continue; + + do { + error = 0.; + diff = width - currWidth; + diffpw = diff / tWeight; + tWeight = 0; +- for (s = pFirst; s != end; s = s->nextSibling()) // don't include final glyph ++ for (s = pFirst; s && s != end; s = s->nextSibling()) // don't include final glyph + { + int w = s->getJustify(this, i, 3); + float pref = diffpw * w + error; + int step = s->getJustify(this, i, 2); + if (!step) step = 1; // handle lazy font developers + if (pref > 0) + { + float max = uint16(s->getJustify(this, i, 0)); +diff --git a/gfx/graphite2/src/NameTable.cpp b/gfx/graphite2/src/NameTable.cpp +--- a/gfx/graphite2/src/NameTable.cpp ++++ b/gfx/graphite2/src/NameTable.cpp +@@ -42,25 +42,26 @@ NameTable::NameTable(const void* data, s + memcpy(pdata, data, length); + m_table = reinterpret_cast(pdata); + + if ((length > sizeof(TtfUtil::Sfnt::FontNames)) && + (length > sizeof(TtfUtil::Sfnt::FontNames) + + sizeof(TtfUtil::Sfnt::NameRecord) * ( be::swap(m_table->count) - 1))) + { + uint16 offset = be::swap(m_table->string_offset); +- m_nameData = reinterpret_cast(pdata) + offset; +- setPlatformEncoding(platformId, encodingID); +- m_nameDataLength = length - offset; ++ if (offset < length) ++ { ++ m_nameData = reinterpret_cast(pdata) + offset; ++ setPlatformEncoding(platformId, encodingID); ++ m_nameDataLength = length - offset; ++ return; ++ } + } +- else +- { +- free(const_cast(m_table)); +- m_table = NULL; +- } ++ free(const_cast(m_table)); ++ m_table = NULL; + } + + uint16 NameTable::setPlatformEncoding(uint16 platformId, uint16 encodingID) + { + if (!m_nameData) return 0; + uint16 i = 0; + uint16 count = be::swap(m_table->count); + for (; i < count; i++) +@@ -139,28 +140,36 @@ void* NameTable::getName(uint16& languag + uint16 offset = be::swap(nameRecord.offset); + if(offset + utf16Length > m_nameDataLength) + { + languageId = 0; + length = 0; + return NULL; + } + utf16Length >>= 1; // in utf16 units +- utf16::codeunit_t * utf16Name = gralloc(utf16Length); ++ utf16::codeunit_t * utf16Name = gralloc(utf16Length + 1); + if (!utf16Name) + { + languageId = 0; + length = 0; + return NULL; + } + const uint8* pName = m_nameData + offset; + for (size_t i = 0; i < utf16Length; i++) + { + utf16Name[i] = be::read(pName); + } ++ utf16Name[utf16Length] = 0; ++ if (!utf16::validate(utf16Name, utf16Name + utf16Length)) ++ { ++ free(utf16Name); ++ languageId = 0; ++ length = 0; ++ return NULL; ++ } + switch (enc) + { + case gr_utf8: + { + utf8::codeunit_t* uniBuffer = gralloc(3 * utf16Length + 1); + if (!uniBuffer) + { + free(utf16Name); +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 +@@ -96,17 +96,17 @@ bool Pass::readPass(const byte * const p + const byte * p = pass_start, + * const pass_end = p + pass_length; + size_t numRanges; + + if (e.test(pass_length < 40, E_BADPASSLENGTH)) return face.error(e); + // Read in basic values + const byte flags = be::read(p); + if (e.test((flags & 0x1f) && +- (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes()), ++ (pt < PASS_TYPE_POSITIONING || !m_silf->aCollision() || !face.glyphs().hasBoxes() || !(m_silf->flags() & 0x20)), + E_BADCOLLISIONPASS)) + return face.error(e); + m_numCollRuns = flags & 0x7; + m_kernColls = (flags >> 3) & 0x3; + m_isReverseDir = (flags >> 5) & 0x1; + m_iMaxLoop = be::read(p); + if (m_iMaxLoop < 1) m_iMaxLoop = 1; + be::skip(p,2); // skip maxContext & maxBackup +@@ -226,17 +226,21 @@ bool Pass::readRules(const byte * rule_m + // Load rules. + const byte * ac_begin = 0, * rc_begin = 0, + * ac_end = ac_data + be::peek(o_action), + * rc_end = rc_data + be::peek(o_constraint); + + // Allocate pools + m_rules = new Rule [m_numRules]; + 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); ++ int totalSlots = 0; ++ const uint16 *tsort = sort_key; ++ for (int i = 0; i < m_numRules; ++i) ++ totalSlots += be::peek(--tsort); ++ const size_t prog_pool_sz = vm::Machine::Code::estimateCodeDataOut(ac_end - ac_data + rc_end - rc_data, 2 * m_numRules, totalSlots); + m_progs = gralloc(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; r >= m_rules; --n, --r, ac_end = ac_begin, rc_end = rc_begin) + { +@@ -249,17 +253,17 @@ bool Pass::readRules(const byte * rule_m + if (r->sort > 63 || r->preContext >= r->sort || r->preContext > m_maxPreCtxt || r->preContext < m_minPreCtxt) + return false; + ac_begin = ac_data + be::peek(--o_action); + --o_constraint; + rc_begin = be::peek(o_constraint) ? rc_data + be::peek(o_constraint) : rc_end; + + if (ac_begin > ac_end || ac_begin > ac_data_end || ac_end > ac_data_end + || rc_begin > rc_end || rc_begin > rc_data_end || rc_end > rc_data_end +- || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin) > size_t(prog_pool_end - prog_pool_free)) ++ || vm::Machine::Code::estimateCodeDataOut(ac_end - ac_begin + rc_end - rc_begin, 2, r->sort) > size_t(prog_pool_end - prog_pool_free)) + return false; + r->action = new (m_codes+n*2-2) vm::Machine::Code(false, ac_begin, ac_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); + r->constraint = new (m_codes+n*2-1) vm::Machine::Code(true, rc_begin, rc_end, r->preContext, r->sort, *m_silf, face, pt, &prog_pool_free); + + if (e.test(!r->action || !r->constraint, E_OUTOFMEM) + || e.test(r->action->status() != Code::loaded, r->action->status() + E_CODEFAILURE) + || e.test(r->constraint->status() != Code::loaded, r->constraint->status() + E_CODEFAILURE) + || e.test(!r->constraint->immutable(), E_MUTABLECCODE)) +@@ -330,17 +334,17 @@ bool Pass::readStates(const byte * start + + // load state transition table. + for (uint16 * t = m_transitions, + * const t_end = t + m_numTransition*m_numColumns; t != t_end; ++t) + { + *t = be::read(states); + if (e.test(*t >= m_numStates, E_BADSTATE)) + { +- face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 24)); ++ face.error_context((face.error_context() & 0xFFFF00) + EC_ATRANS + (((t - m_transitions) / m_numColumns) << 8)); + return face.error(e); + } + } + + State * s = m_states, + * const success_begin = m_states + m_numStates - m_numSuccess; + const RuleEntry * rule_map_end = m_ruleMap + be::peek(o_rule_map + m_numSuccess*sizeof(uint16)); + for (size_t n = m_numStates; n; --n, ++s) +@@ -351,17 +355,18 @@ bool Pass::readStates(const byte * start + if (e.test(begin >= rule_map_end || end > rule_map_end || begin > end, E_BADRULEMAPPING)) + { + face.error_context((face.error_context() & 0xFFFF00) + EC_ARULEMAP + (n << 24)); + return face.error(e); + } + s->rules = begin; + s->rules_end = (end - begin <= FiniteStateMachine::MAX_RULES)? end : + begin + FiniteStateMachine::MAX_RULES; +- qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry); ++ if (begin) // keep UBSan happy can't call qsort with null begin ++ qsort(begin, end - begin, sizeof(RuleEntry), &cmpRuleEntry); + } + + return true; + } + + bool Pass::readRanges(const byte * ranges, size_t num_ranges, Error &e) + { + m_cols = gralloc(m_numGlyphs); +@@ -449,19 +454,19 @@ bool Pass::runFSM(FiniteStateMachine& fs + if (fsm.slots.context() < m_minPreCtxt) + return false; + + uint16 state = m_startStates[m_maxPreCtxt - fsm.slots.context()]; + uint8 free_slots = SlotMap::MAX_SLOTS; + do + { + fsm.slots.pushSlot(slot); +- if (--free_slots == 0 +- || slot->gid() >= m_numGlyphs ++ if (slot->gid() >= m_numGlyphs + || m_cols[slot->gid()] == 0xffffU ++ || --free_slots == 0 + || state >= m_numTransition) + return free_slots != 0; + + const uint16 * transitions = m_transitions + state*m_numColumns; + state = transitions[m_cols[slot->gid()]]; + if (state >= m_successStart) + fsm.rules.accumulate_rules(m_states[state]); + +@@ -627,37 +632,40 @@ bool Pass::testPassConstraint(Machine & + } + + + bool Pass::testConstraint(const Rule & r, Machine & m) const + { + const uint16 curr_context = m.slotMap().context(); + if (unsigned(r.sort - r.preContext) > m.slotMap().size() - curr_context + || curr_context - r.preContext < 0) return false; ++ ++ vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext; ++ if (map[r.sort - 1] == 0) ++ return false; ++ + if (!*r.constraint) return true; + assert(r.constraint->constraint()); +- +- vm::slotref * map = m.slotMap().begin() + curr_context - r.preContext; + for (int n = r.sort; n && map; --n, ++map) + { + if (!*map) continue; + const int32 ret = r.constraint->run(m, map); + if (!ret || m.status() != Machine::finished) + return false; + } + + return true; + } + + + void SlotMap::collectGarbage(Slot * &aSlot) + { + for(Slot **s = begin(), *const *const se = end() - 1; s != se; ++s) { + Slot *& slot = *s; +- if(slot->isDeleted() || slot->isCopied()) ++ if(slot && (slot->isDeleted() || slot->isCopied())) + { + if (slot == aSlot) + aSlot = slot->prev() ? slot->prev() : slot->next(); + segment.freeSlot(slot); + } + } + } + +@@ -848,17 +856,16 @@ bool Pass::collisionShift(Segment *seg, + } + } + } + return true; + } + + bool Pass::collisionKern(Segment *seg, int dir, json * const dbgout) const + { +- KernCollider kerncoll(dbgout); + Slot *start = seg->first(); + float ymin = 1e38f; + float ymax = -1e38f; + const GlyphCache &gc = seg->getFace()->glyphs(); + + // phase 3 : handle kerning of clusters + #if !defined GRAPHITE2_NTRACING + if (dbgout) +@@ -871,17 +878,17 @@ bool Pass::collisionKern(Segment *seg, i + return false; + const SlotCollision * c = seg->collisionInfo(s); + const Rect &bbox = seg->theGlyphBBoxTemporary(s->gid()); + float y = s->origin().y + c->shift().y; + ymax = max(y + bbox.tr.y, ymax); + ymin = min(y + bbox.bl.y, ymin); + if (start && (c->flags() & (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) + == (SlotCollision::COLL_KERN | SlotCollision::COLL_FIX)) +- resolveKern(seg, s, start, kerncoll, dir, ymin, ymax, dbgout); ++ resolveKern(seg, s, start, dir, ymin, ymax, dbgout); + if (c->flags() & SlotCollision::COLL_END) + start = NULL; + if (c->flags() & SlotCollision::COLL_START) + start = s; + } + + #if !defined GRAPHITE2_NTRACING + if (dbgout) +@@ -1010,17 +1017,17 @@ bool Pass::resolveCollisions(Segment *se + if (isCol) + { cFix->setFlags(cFix->flags() | SlotCollision::COLL_ISCOL | SlotCollision::COLL_KNOWN); } + else + { cFix->setFlags((cFix->flags() & ~SlotCollision::COLL_ISCOL) | SlotCollision::COLL_KNOWN); } + hasCol |= isCol; + return true; + } + +-float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, KernCollider &coll, int dir, ++float Pass::resolveKern(Segment *seg, Slot *slotFix, GR_MAYBE_UNUSED Slot *start, int dir, + float &ymin, float &ymax, json *const dbgout) const + { + Slot *nbor; // neighboring slot + float currSpace = 0.; + bool collides = false; + unsigned int space_count = 0; + Slot *base = slotFix; + while (base->attachedTo()) +@@ -1030,16 +1037,17 @@ float Pass::resolveKern(Segment *seg, Sl + + if (base != slotFix) + { + cFix->setFlags(cFix->flags() | SlotCollision::COLL_KERN | SlotCollision::COLL_FIX); + return 0; + } + bool seenEnd = (cFix->flags() & SlotCollision::COLL_END) != 0; + bool isInit = false; ++ KernCollider coll(dbgout); + + for (nbor = slotFix->next(); nbor; nbor = nbor->next()) + { + if (nbor->isChildOf(base)) + continue; + if (!gc.check(nbor->gid())) + return 0.; + const Rect &bb = seg->theGlyphBBoxTemporary(nbor->gid()); +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 +@@ -419,16 +419,19 @@ Position Segment::positionSlots(const Fo + reverseSlots(); + temp = iStart; + iStart = iEnd; + iEnd = temp; + } + if (!iStart) iStart = m_first; + if (!iEnd) iEnd = m_last; + ++ if (!iStart || !iEnd) // only true for empty segments ++ return currpos; ++ + if (isRtl) + { + for (Slot * s = iEnd, * const end = iStart->prev(); s && s != end; s = s->prev()) + { + if (s->isBase()) + currpos = s->finalise(this, font, currpos, bbox, 0, clusterMin = currpos.x, isRtl, isFinal); + } + } +@@ -526,11 +529,14 @@ void Segment::doMirror(uint16 aMirror) + } + + bool Segment::initCollisions() + { + m_collisions = grzeroalloc(slotCount()); + if (!m_collisions) return false; + + for (Slot *p = m_first; p; p = p->next()) +- ::new (collisionInfo(p)) SlotCollision(this, p); ++ if (p->index() < slotCount()) ++ ::new (collisionInfo(p)) SlotCollision(this, p); ++ else ++ return false; + return true; + } +diff --git a/gfx/graphite2/src/Silf.cpp b/gfx/graphite2/src/Silf.cpp +--- a/gfx/graphite2/src/Silf.cpp ++++ b/gfx/graphite2/src/Silf.cpp +@@ -350,20 +350,20 @@ uint16 Silf::getClassGlyph(uint16 cid, u + } + return 0; + } + + + bool Silf::runGraphite(Segment *seg, uint8 firstPass, uint8 lastPass, int dobidi) const + { + assert(seg != 0); +- SlotMap map(*seg, m_dir); ++ unsigned int maxSize = seg->slotCount() * MAX_SEG_GROWTH_FACTOR; ++ SlotMap map(*seg, m_dir, maxSize); + FiniteStateMachine fsm(map, seg->getFace()->logger()); + vm::Machine m(map); +- unsigned int initSize = seg->slotCount(); + uint8 lbidi = m_bPass; + #if !defined GRAPHITE2_NTRACING + json * const dbgout = seg->getFace()->logger(); + #endif + + if (lastPass == 0) + { + if (firstPass == lastPass && lbidi == 0xFF) +@@ -419,13 +419,13 @@ bool Silf::runGraphite(Segment *seg, uin + + // test whether to reorder, prepare for positioning + bool reverse = (lbidi == 0xFF) && (seg->currdir() != ((m_dir & 1) ^ m_passes[i].reverseDir())); + if ((i >= 32 || (seg->passBits() & (1 << i)) == 0 || m_passes[i].collisionLoops()) + && !m_passes[i].runGraphite(m, fsm, reverse)) + return false; + // only subsitution passes can change segment length, cached subsegments are short for their text + if (m.status() != vm::Machine::finished +- || (seg->slotCount() && seg->slotCount() * MAX_SEG_GROWTH_FACTOR < initSize)) ++ || (seg->slotCount() && seg->slotCount() > maxSize)) + return false; + } + return true; + } +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 +@@ -80,20 +80,20 @@ void Slot::set(const Slot & orig, int ch + + void Slot::update(int /*numGrSlots*/, int numCharInfo, Position &relpos) + { + m_before += numCharInfo; + m_after += numCharInfo; + m_position = m_position + relpos; + } + +-Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal) ++Position Slot::finalise(const Segment *seg, const Font *font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth) + { + SlotCollision *coll = NULL; +- if (attrLevel && m_attLevel > attrLevel) return Position(0, 0); ++ if (depth > 100 || (attrLevel && m_attLevel > attrLevel)) return Position(0, 0); + float scale = font ? font->scale() : 1.0f; + Position shift(m_shift.x * (rtl * -2 + 1) + m_just, m_shift.y); + float tAdvance = m_advance.x + m_just; + if (isFinal && (coll = seg->collisionInfo(this))) + { + const Position &collshift = coll->offset(); + if (!(coll->flags() & SlotCollision::COLL_KERN) || rtl) + shift = shift + collshift; +@@ -128,23 +128,23 @@ Position Slot::finalise(const Segment *s + if (glyphFace) + { + Rect ourBbox = glyphFace->theBBox() * scale + m_position; + bbox = bbox.widen(ourBbox); + } + + if (m_child && m_child != this && m_child->attachedTo() == this) + { +- Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal); ++ Position tRes = m_child->finalise(seg, font, m_position, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1); + if ((!m_parent || m_advance.x >= 0.5f) && tRes.x > res.x) res = tRes; + } + + if (m_parent && m_sibling && m_sibling != this && m_sibling->attachedTo() == m_parent) + { +- Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal); ++ Position tRes = m_sibling->finalise(seg, font, base, bbox, attrLevel, clusterMin, rtl, isFinal, depth + 1); + if (tRes.x > res.x) res = tRes; + } + + if (!m_parent && clusterMin < base.x) + { + Position adj = Position(m_position.x - clusterMin, 0.); + res += adj; + m_position += adj; +@@ -160,35 +160,35 @@ int32 Slot::clusterMetric(const Segment + return 0; + Rect bbox = seg->theGlyphBBoxTemporary(glyph()); + float clusterMin = 0.; + Position res = finalise(seg, NULL, base, bbox, attrLevel, clusterMin, rtl, false); + + switch (metrics(metric)) + { + case kgmetLsb : +- return static_cast(bbox.bl.x); ++ return bbox.bl.x; + case kgmetRsb : +- return static_cast(res.x - bbox.tr.x); ++ return res.x - bbox.tr.x; + case kgmetBbTop : +- return static_cast(bbox.tr.y); ++ return bbox.tr.y; + case kgmetBbBottom : +- return static_cast(bbox.bl.y); ++ return bbox.bl.y; + case kgmetBbLeft : +- return static_cast(bbox.bl.x); ++ return bbox.bl.x; + case kgmetBbRight : +- return static_cast(bbox.tr.x); ++ return bbox.tr.x; + case kgmetBbWidth : +- return static_cast(bbox.tr.x - bbox.bl.x); ++ return bbox.tr.x - bbox.bl.x; + case kgmetBbHeight : +- return static_cast(bbox.tr.y - bbox.bl.y); ++ return bbox.tr.y - bbox.bl.y; + case kgmetAdvWidth : +- return static_cast(res.x); ++ return res.x; + case kgmetAdvHeight : +- return static_cast(res.y); ++ return res.y; + default : + return 0; + } + } + + #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 +@@ -290,19 +290,32 @@ void Slot::setAttr(Segment *seg, attrCod + case gr_slatAdvX : m_advance.x = value; break; + case gr_slatAdvY : m_advance.y = value; break; + case gr_slatAttTo : + { + const uint16 idx = uint16(value); + if (idx < map.size() && map[idx]) + { + Slot *other = map[idx]; +- if (other == this || other == m_parent) break; +- if (m_parent) m_parent->removeChild(this); +- if (!other->isChildOf(this) && other->child(this)) ++ if (other == this || other == m_parent || other->isCopied()) break; ++ if (m_parent) { m_parent->removeChild(this); attachTo(NULL); } ++ Slot *pOther = other; ++ int count = 0; ++ bool foundOther = false; ++ while (pOther) ++ { ++ ++count; ++ if (pOther == this) foundOther = true; ++ pOther = pOther->attachedTo(); ++ } ++ for (pOther = m_child; pOther; pOther = pOther->m_child) ++ ++count; ++ for (pOther = m_sibling; pOther; pOther = pOther->m_sibling) ++ ++count; ++ if (count < 100 && !foundOther && other->child(this)) + { + attachTo(other); + if ((map.dir() != 0) ^ (idx > subindex)) + m_with = Position(advance(), 0); + else // normal match to previous root + m_attach = Position(other->advance(), 0); + } + } +@@ -416,41 +429,34 @@ bool Slot::sibling(Slot *ap) + m_sibling = ap; + else + return m_sibling->sibling(ap); + return true; + } + + bool Slot::removeChild(Slot *ap) + { +- if (this == ap || !m_child) return false; ++ if (this == ap || !m_child || !ap) return false; + else if (ap == m_child) + { + Slot *nSibling = m_child->nextSibling(); +- m_child->removeSibling(nSibling); ++ m_child->nextSibling(NULL); + 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) ++ for (Slot *p = m_child; p; p = p->m_sibling) + { +- m_sibling = m_sibling->nextSibling(); +- if (m_sibling) ap->removeSibling(m_sibling); +- return true; ++ if (p->m_sibling && p->m_sibling == ap) ++ { ++ p->m_sibling = p->m_sibling->m_sibling; ++ ap->nextSibling(NULL); ++ return true; ++ } + } +- else +- return m_sibling->removeSibling(ap); +- return true; ++ return false; + } + + void Slot::setGlyph(Segment *seg, uint16 glyphid, const GlyphFace * theGlyph) + { + m_glyphid = glyphid; + m_bidiCls = -1; + if (!theGlyph) + { +@@ -475,21 +481,23 @@ void Slot::setGlyph(Segment *seg, uint16 + if (seg->silf()->aPassBits()) + { + seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()]); + if (seg->silf()->numPasses() > 16) + seg->mergePassBits(theGlyph->attrs()[seg->silf()->aPassBits()+1] << 16); + } + } + +-void Slot::floodShift(Position adj) ++void Slot::floodShift(Position adj, int depth) + { ++ if (depth > 100) ++ return; + m_position += adj; +- if (m_child) m_child->floodShift(adj); +- if (m_sibling) m_sibling->floodShift(adj); ++ if (m_child) m_child->floodShift(adj, depth + 1); ++ if (m_sibling) m_sibling->floodShift(adj, depth + 1); + } + + void SlotJustify::LoadSlot(const Slot *s, const Segment *seg) + { + for (int i = seg->silf()->numJustLevels() - 1; i >= 0; --i) + { + Justinfo *justs = seg->silf()->justAttrs() + i; + int16 *v = values + i * NUMJUSTPARAMS; +@@ -514,15 +522,14 @@ Slot * Slot::nextInCluster(const Slot *s + return base->nextSibling(); + s = base; + } + return NULL; + } + + bool Slot::isChildOf(const Slot *base) const + { +- if (m_parent == base) +- return true; +- else if (!m_parent) +- return false; +- else +- return m_parent->isChildOf(base); ++ for (Slot *p = m_parent; p; p = p->m_parent) ++ if (p == base) ++ return true; ++ return false; + } ++ +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 +@@ -891,25 +891,27 @@ const void * FindCmapSubtable(const void + ----------------------------------------------------------------------------------------------*/ + 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(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; ++ if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 4) return false; + const Sfnt::CmapSubTableFormat4 * pTable4 = reinterpret_cast(pCmapSubtable4); ++ if (table_len < sizeof(*pTable4)) ++ return false; + uint16 length = be::swap(pTable4->length); + if (length > table_len) + return false; + if (length < sizeof(Sfnt::CmapSubTableFormat4)) + return false; + uint16 nRanges = be::swap(pTable4->seg_count_x2) >> 1; +- if (length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16)) ++ if (!nRanges || length < sizeof(Sfnt::CmapSubTableFormat4) + 4 * nRanges * sizeof(uint16)) + return false; + // check last range is properly terminated + uint16 chEnd = be::peek(pTable4->end_code + nRanges - 1); + if (chEnd != 0xFFFF) + return false; + #if 0 + int lastend = -1; + for (int i = 0; i < nRanges; ++i) +@@ -999,17 +1001,17 @@ gid16 CmapSubtable4Lookup(const void * p + uint16 idRangeOffset = be::peek(pMid += nSeg); + + if (idRangeOffset == 0) + return (uint16)(idDelta + nUnicodeId); // must use modulus 2^16 + + // Look up value in glyphIdArray + const ptrdiff_t offset = (nUnicodeId - chStart) + (idRangeOffset >> 1) + + (pMid - reinterpret_cast(pTable)); +- if (offset * 2 >= be::swap(pTable->length)) ++ if (offset * 2 + 1 >= be::swap(pTable->length)) + return 0; + gid16 nGlyphId = be::peek(reinterpret_cast(pTable)+offset); + // If this value is 0, return 0. Else add the idDelta + return nGlyphId ? nGlyphId + idDelta : 0; + } + + return 0; + } +@@ -1081,19 +1083,21 @@ unsigned int CmapSubtable4NextCodepoint( + /*---------------------------------------------------------------------------------------------- + Check the Microsoft UCS-4 subtable for expected values. + ----------------------------------------------------------------------------------------------*/ + 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(pCmapSubtable12); +- if (be::swap(pTable->format) != 12) ++ if (table_len < sizeof(*pTable) || be::swap(pTable->format) != 12) + return false; + const Sfnt::CmapSubTableFormat12 * pTable12 = reinterpret_cast(pCmapSubtable12); ++ if (table_len < sizeof(*pTable12)) ++ return false; + 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 (num_groups > 0x10000000 || length != (sizeof(Sfnt::CmapSubTableFormat12) + (num_groups - 1) * sizeof(uint32) * 3)) + return false; +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 +@@ -81,17 +81,17 @@ private: + _modify, + _delete; + mutable bool _own; + + void release_buffers() throw (); + void failure(const status_t) throw(); + + public: +- static size_t estimateCodeDataOut(size_t num_bytecodes); ++ static size_t estimateCodeDataOut(size_t num_bytecodes, int nRules, int nSlots); + + Code() throw(); + Code(bool is_constraint, const byte * bytecode_begin, const byte * const bytecode_end, + uint8 pre_context, uint16 rule_length, const Silf &, const Face &, + enum passtype pt, byte * * const _out = 0); + Code(const Machine::Code &) throw(); + ~Code() throw(); + +@@ -107,19 +107,21 @@ public: + void externalProgramMoved(ptrdiff_t) throw(); + + int32 run(Machine &m, slotref * & map) const; + + CLASS_NEW_DELETE; + }; + + inline +-size_t Machine::Code::estimateCodeDataOut(size_t n_bc) ++size_t Machine::Code::estimateCodeDataOut(size_t n_bc, int nRules, int nSlots) + { +- return (n_bc + 1) * (sizeof(instr)+sizeof(byte)); ++ // max is: all codes are instructions + 1 for each rule + max tempcopies ++ // allocate space for separate maximal code and data then merge them later ++ return (n_bc + nRules + nSlots) * sizeof(instr) + n_bc * 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/Face.h b/gfx/graphite2/src/inc/Face.h +--- a/gfx/graphite2/src/inc/Face.h ++++ b/gfx/graphite2/src/inc/Face.h +@@ -82,17 +82,17 @@ public: + uint16 languageForLocale(const char * locale) const; + + // Features + uint16 numFeatures() const; + const FeatureRef * featureById(uint32 id) const; + const FeatureRef * feature(uint16 index) const; + + // Glyph related +- uint16 getGlyphMetric(uint16 gid, uint8 metric) const; ++ int32 getGlyphMetric(uint16 gid, uint8 metric) const; + uint16 findPseudo(uint32 uid) const; + + // Errors + unsigned int error() const { return m_error; } + bool error(Error e) { m_error = e.error(); return false; } + unsigned int error_context() const { return m_error; } + void error_context(unsigned int errcntxt) { m_errcntxt = errcntxt; } + +diff --git a/gfx/graphite2/src/inc/GlyphFace.h b/gfx/graphite2/src/inc/GlyphFace.h +--- a/gfx/graphite2/src/inc/GlyphFace.h ++++ b/gfx/graphite2/src/inc/GlyphFace.h +@@ -46,17 +46,17 @@ class GlyphFace + public: + GlyphFace(); + template + GlyphFace(const Rect & bbox, const Position & adv, I first, const I last); + + const Position & theAdvance() const; + const Rect & theBBox() const { return m_bbox; } + const sparse & attrs() const { return m_attrs; } +- uint16 getMetric(uint8 metric) const; ++ int32 getMetric(uint8 metric) const; + + CLASS_NEW_DELETE; + private: + Rect m_bbox; // bounding box metrics in design units + Position m_advance; // Advance width and height in design units + sparse m_attrs; + }; + +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 +@@ -179,17 +179,17 @@ inline SlotMap& Machine::slotMap() const + return _map; + } + + inline Machine::status_t Machine::status() const throw() + { + return _status; + } + +-inline void Machine::check_final_stack(const int32 * const sp) ++inline void Machine::check_final_stack(const stack_t * const sp) + { + stack_t const * const base = _stack + STACK_GUARD, + * const limit = base + STACK_MAX; + if (sp < base) _status = stack_underflow; // This should be impossible now. + else if (sp >= limit) _status = stack_overflow; // So should this. + else if (sp != base) _status = stack_not_empty; + } + +diff --git a/gfx/graphite2/src/inc/Pass.h b/gfx/graphite2/src/inc/Pass.h +--- a/gfx/graphite2/src/inc/Pass.h ++++ b/gfx/graphite2/src/inc/Pass.h +@@ -76,17 +76,17 @@ private: + void dumpRuleEventConsidered(const FiniteStateMachine & fsm, const RuleEntry & re) const; + void dumpRuleEventOutput(const FiniteStateMachine & fsm, vm::Machine & m, const Rule & r, Slot * os) const; + void adjustSlot(int delta, Slot * & slot_out, SlotMap &) const; + bool collisionShift(Segment *seg, int dir, json * const dbgout) const; + bool collisionKern(Segment *seg, int dir, json * const dbgout) const; + bool collisionFinish(Segment *seg, GR_MAYBE_UNUSED json * const dbgout) const; + bool resolveCollisions(Segment *seg, Slot *slot, Slot *start, ShiftCollider &coll, bool isRev, + int dir, bool &moved, bool &hasCol, json * const dbgout) const; +- float resolveKern(Segment *seg, Slot *slot, Slot *start, KernCollider &coll, int dir, ++ float resolveKern(Segment *seg, Slot *slot, Slot *start, int dir, + float &ymin, float &ymax, json *const dbgout) const; + + const Silf * m_silf; + uint16 * m_cols; + Rule * m_rules; // rules + RuleEntry * m_ruleMap; + uint16 * m_startStates; // prectxt length + uint16 * m_transitions; +diff --git a/gfx/graphite2/src/inc/Rule.h b/gfx/graphite2/src/inc/Rule.h +--- a/gfx/graphite2/src/inc/Rule.h ++++ b/gfx/graphite2/src/inc/Rule.h +@@ -97,17 +97,17 @@ bool State::empty() const + return rules_end == rules; + } + + + class SlotMap + { + public: + enum {MAX_SLOTS=64}; +- SlotMap(Segment & seg, uint8 direction); ++ SlotMap(Segment & seg, uint8 direction, int maxSize); + + Slot * * begin(); + Slot * * end(); + size_t size() const; + unsigned short context() const; + void reset(Slot &, unsigned short); + + Slot * const & operator[](int n) const; +@@ -116,23 +116,25 @@ public: + void collectGarbage(Slot *& aSlot); + + Slot * highwater() { return m_highwater; } + void highwater(Slot *s) { m_highwater = s; m_highpassed = false; } + bool highpassed() const { return m_highpassed; } + void highpassed(bool v) { m_highpassed = v; } + + uint8 dir() const { return m_dir; } ++ int decMax() { return --m_maxSize; } + + Segment & segment; + private: + Slot * m_slot_map[MAX_SLOTS+1]; + unsigned short m_size; + unsigned short m_precontext; + Slot * m_highwater; ++ int m_maxSize; + uint8 m_dir; + bool m_highpassed; + }; + + + class FiniteStateMachine + { + public: +@@ -237,18 +239,19 @@ void FiniteStateMachine::Rules::accumula + return; + } + } + while (rre != rrend && out != lrend) { *out++ = *rre++; } + m_end = out; + } + + inline +-SlotMap::SlotMap(Segment & seg, uint8 direction) +-: segment(seg), m_size(0), m_precontext(0), m_highwater(0), m_dir(direction), m_highpassed(false) ++SlotMap::SlotMap(Segment & seg, uint8 direction, int maxSize) ++: segment(seg), m_size(0), m_precontext(0), m_highwater(0), ++ m_maxSize(maxSize), m_dir(direction), m_highpassed(false) + { + m_slot_map[0] = 0; + } + + inline + Slot * * SlotMap::begin() + { + return &m_slot_map[1]; // allow map to go 1 before slot_map when inserting +diff --git a/gfx/graphite2/src/inc/Segment.h b/gfx/graphite2/src/inc/Segment.h +--- a/gfx/graphite2/src/inc/Segment.h ++++ b/gfx/graphite2/src/inc/Segment.h +@@ -35,17 +35,17 @@ of the License or (at your option) any l + #include "inc/FeatureVal.h" + #include "inc/GlyphCache.h" + #include "inc/GlyphFace.h" + #include "inc/Slot.h" + #include "inc/Position.h" + #include "inc/List.h" + #include "inc/Collider.h" + +-#define MAX_SEG_GROWTH_FACTOR 256 ++#define MAX_SEG_GROWTH_FACTOR 64 + + namespace graphite2 { + + typedef Vector FeatureList; + typedef Vector SlotRope; + typedef Vector AttributeRope; + typedef Vector JustifyRope; + +@@ -154,17 +154,17 @@ public: + int8 getSlotBidiClass(Slot *s) const; + void doMirror(uint16 aMirror); + Slot *addLineEnd(Slot *nSlot); + void delLineEnd(Slot *s); + bool hasJustification() const { return m_justifies.size() != 0; } + void reverseSlots(); + + bool isWhitespace(const int cid) const; +- bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS); } ++ bool hasCollisionInfo() const { return (m_flags & SEG_HASCOLLISIONS) && m_collisions; } + SlotCollision *collisionInfo(const Slot *s) const { return m_collisions ? m_collisions + s->index() : 0; } + CLASS_NEW_DELETE + + public: //only used by: GrSegment* makeAndInitialize(const GrFont *font, const GrFace *face, uint32 script, const FeaturesHandle& pFeats/*must not be IsNull*/, encform enc, const void* pStart, size_t nChars, int dir); + bool read_text(const Face *face, const Features* pFeats/*must not be NULL*/, gr_encform enc, const void*pStart, size_t nChars); + void finalise(const Font *font, bool reverse=false); + float justify(Slot *pSlot, const Font *font, float width, enum justFlags flags, Slot *pFirst, Slot *pLast); + bool initCollisions(); +diff --git a/gfx/graphite2/src/inc/Slot.h b/gfx/graphite2/src/inc/Slot.h +--- a/gfx/graphite2/src/inc/Slot.h ++++ b/gfx/graphite2/src/inc/Slot.h +@@ -92,17 +92,17 @@ public: + void adjKern(const Position &pos) { m_shift = m_shift + pos; m_advance = m_advance + pos; } + void origin(const Position &pos) { m_position = pos + m_shift; } + void originate(int ind) { m_original = ind; } + int original() const { return m_original; } + void before(int ind) { m_before = ind; } + void after(int ind) { m_after = ind; } + bool isBase() const { return (!m_parent); } + void update(int numSlots, int numCharInfo, Position &relpos); +- Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal); ++ Position finalise(const Segment* seg, const Font* font, Position & base, Rect & bbox, uint8 attrLevel, float & clusterMin, bool rtl, bool isFinal, int depth = 0); + bool isDeleted() const { return (m_flags & DELETED) ? true : false; } + void markDeleted(bool state) { if (state) m_flags |= DELETED; else m_flags &= ~DELETED; } + bool isCopied() const { return (m_flags & COPIED) ? true : false; } + void markCopied(bool state) { if (state) m_flags |= COPIED; else m_flags &= ~COPIED; } + bool isPositioned() const { return (m_flags & POSITIONED) ? true : false; } + void markPositioned(bool state) { if (state) m_flags |= POSITIONED; else m_flags &= ~POSITIONED; } + bool isInsertBefore() const { return !(m_flags & INSERTED); } + uint8 getBidiLevel() const { return m_bidiLevel; } +@@ -123,20 +123,19 @@ public: + Position attachOffset() const { return m_attach - m_with; } + Slot* firstChild() const { return m_child; } + void firstChild(Slot *ap) { m_child = ap; } + bool child(Slot *ap); + Slot* nextSibling() const { return m_sibling; } + void nextSibling(Slot *ap) { m_sibling = ap; } + bool sibling(Slot *ap); + bool removeChild(Slot *ap); +- bool removeSibling(Slot *ap); + int32 clusterMetric(const Segment* seg, uint8 metric, uint8 attrLevel, bool rtl); + void positionShift(Position a) { m_position += a; } +- void floodShift(Position adj); ++ void floodShift(Position adj, int depth = 0); + float just() const { return m_just; } + void just(float j) { m_just = j; } + Slot *nextInCluster(const Slot *s) const; + bool isChildOf(const Slot *base) const; + + CLASS_NEW_DELETE + + private: +diff --git a/gfx/graphite2/src/inc/UtfCodec.h b/gfx/graphite2/src/inc/UtfCodec.h +--- a/gfx/graphite2/src/inc/UtfCodec.h ++++ b/gfx/graphite2/src/inc/UtfCodec.h +@@ -35,16 +35,17 @@ typedef uint32 uchar_t; + + template + struct _utf_codec + { + typedef uchar_t codeunit_t; + + static void put(codeunit_t * cp, const uchar_t , int8 & len) throw(); + static uchar_t get(const codeunit_t * cp, int8 & len) throw(); ++ static bool validate(const codeunit_t * s, const codeunit_t * e) throw(); + }; + + + template <> + struct _utf_codec<32> + { + private: + static const uchar_t limit = 0x110000; +@@ -58,16 +59,22 @@ public: + } + + inline + static uchar_t get(const codeunit_t * cp, int8 & l) throw() + { + if (cp[0] < limit) { l = 1; return cp[0]; } + else { l = -1; return 0xFFFD; } + } ++ ++ inline ++ static bool validate(codeunit_t * s, codeunit_t * e) throw() ++ { ++ return e > s; ++ } + }; + + + template <> + struct _utf_codec<16> + { + private: + static const int32 lead_offset = 0xD800 - (0x10000 >> 10); +@@ -88,22 +95,31 @@ public: + } + + inline + static uchar_t get(const codeunit_t * cp, int8 & l) throw() + { + const uint32 uh = cp[0]; + l = 1; + +- if (0xD800 > uh || uh > 0xDFFF) { return uh; } ++ if (uh < 0xD800|| uh > 0xDFFF) { return uh; } + const uint32 ul = cp[1]; +- if (uh > 0xDBFF || 0xDC00 > ul || ul > 0xDFFF) { l = -1; return 0xFFFD; } ++ if (uh > 0xDBFF || ul < 0xDC00 || ul > 0xDFFF) { l = -1; return 0xFFFD; } + ++l; + return (uh<<10) + ul + surrogate_offset; + } ++ ++ inline ++ static bool validate(codeunit_t * s, codeunit_t * e) throw() ++ { ++ const ptrdiff_t n = e-s; ++ if (n <= 0) return n == 0; ++ const uint32 u = *(s+(n-1)); // Get the last codepoint ++ return (u < 0xD800 || u > 0xDBFF); ++ } + }; + + + template <> + struct _utf_codec<8> + { + private: + static const int8 sz_lut[16]; +@@ -143,16 +159,34 @@ public: + + if (l != seq_sz || toolong) + { + l = -l; + return 0xFFFD; + } + return u; + } ++ ++ inline ++ static bool validate(codeunit_t * s, codeunit_t * e) throw() ++ { ++ const ptrdiff_t n = e-s; ++ if (n <= 0) return n == 0; ++ s += (n-1); ++ if (*s < 0x80) return true; ++ if (*s >= 0xC0) return false; ++ if (n == 1) return true; ++ if (*--s < 0x80) return true; ++ if (*s >= 0xe0) return false; ++ if (n == 2 || *s >= 0xC0) return true; ++ if (*--s < 0x80) return true; ++ if (*s >= 0xF0) return false; ++ return true; ++ } ++ + }; + + + template + class _utf_iterator + { + typedef _utf_codec codec; + +@@ -195,16 +229,21 @@ public: + + template + struct utf + { + typedef typename _utf_codec::codeunit_t codeunit_t; + + typedef _utf_iterator iterator; + typedef _utf_iterator const_iterator; ++ ++ inline ++ static bool validate(codeunit_t * s, codeunit_t * e) throw() { ++ return _utf_codec::validate(s,e); ++ } + }; + + + typedef utf utf32; + typedef utf utf16; + typedef utf utf8; + + } // namespace graphite2 +diff --git a/gfx/graphite2/src/inc/opcode_table.h b/gfx/graphite2/src/inc/opcode_table.h +--- a/gfx/graphite2/src/inc/opcode_table.h ++++ b/gfx/graphite2/src/inc/opcode_table.h +@@ -113,13 +113,13 @@ static const opcode_t opcode_table[] = + {{NILOP,NILOP}, 0, "PUT_SUBS3"}, + {{do_(put_glyph), NILOP}, 2, "PUT_GLYPH"}, // output_class output_class + {{do2(push_glyph_attr)}, 3, "PUSH_GLYPH_ATTR"}, // gattrnum gattrnum slot + {{do2(push_att_to_glyph_attr)}, 3, "PUSH_ATT_TO_GLYPH_ATTR"}, // gattrnum gattrnum slot + {{do2(bor)}, 0, "BITOR"}, + {{do2(band)}, 0, "BITAND"}, + {{do2(bnot)}, 0, "BITNOT"}, // 0x40 + {{do2(setbits)}, 4, "BITSET"}, +- {{do2(set_feat)}, 2, "SET_FEAT"}, ++ {{do_(set_feat), NILOP}, 2, "SET_FEAT"}, // featidx slot + // private opcodes for internal use only, comes after all other on disk opcodes. + {{do_(temp_copy), NILOP}, 0, "TEMP_COPY"} + }; + +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 +@@ -62,17 +62,18 @@ of the License or (at your option) any l + // ip = The current instruction pointer + // endPos = Position of advance of last cluster + // dir = writing system directionality of the font + + + // #define NOT_IMPLEMENTED assert(false) + #define NOT_IMPLEMENTED + +-#define binop(op) const int32 a = pop(); *sp = int32(*sp) op a ++#define binop(op) const uint32 a = pop(); *sp = uint32(*sp) op a ++#define sbinop(op) const int32 a = pop(); *sp = int32(*sp) op a + #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)]) +@@ -125,17 +126,17 @@ STARTOP(sub) + ENDOP + + STARTOP(mul) + binop(*); + ENDOP + + STARTOP(div_) + if (*sp == 0) DIE; +- binop(/); ++ sbinop(/); + ENDOP + + STARTOP(min_) + const int32 a = pop(), b = *sp; + if (a < b) *sp = a; + ENDOP + + STARTOP(max_) +@@ -176,29 +177,29 @@ STARTOP(equal) + binop(==); + ENDOP + + STARTOP(not_eq_) + binop(!=); + ENDOP + + STARTOP(less) +- binop(<); ++ sbinop(<); + ENDOP + + STARTOP(gtr) +- binop(>); ++ sbinop(>); + ENDOP + + STARTOP(less_eq) +- binop(<=); ++ sbinop(<=); + ENDOP + + STARTOP(gtr_eq) +- binop(>=); ++ sbinop(>=); + ENDOP + + STARTOP(next) + if (map - &smap[0] >= int(smap.size())) DIE + if (is) + { + if (is == smap.highwater()) + smap.highpassed(true); +@@ -237,17 +238,17 @@ STARTOP(put_subs_8bit_obs) + index = seg.findClassIndex(input_class, slot->gid()); + is->setGlyph(&seg, seg.getClassGlyph(output_class, index)); + } + ENDOP + + STARTOP(put_copy) + declare_params(1); + const int slot_ref = int8(*param); +- if (is) ++ if (is && !is->isDeleted()) + { + slotref ref = slotat(slot_ref); + if (ref && ref != is) + { + int16 *tempUserAttrs = is->userAttrs(); + if (is->attachedTo() || is->firstChild()) DIE + Slot *prev = is->prev(); + Slot *next = is->next(); +@@ -262,16 +263,17 @@ STARTOP(put_copy) + is->attachedTo()->child(is); + } + is->markCopied(false); + is->markDeleted(false); + } + ENDOP + + STARTOP(insert) ++ if (smap.decMax() <= 0) DIE; + Slot *newSlot = seg.newSlot(); + if (!newSlot) DIE; + Slot *iss = is; + while (iss && iss->isDeleted()) iss = iss->next(); + if (!iss) + { + if (seg.last()) + { +@@ -550,31 +552,31 @@ ENDOP + + STARTOP(iattr_add) + declare_params(2); + const attrCode slat = attrCode(uint8(param[0])); + const size_t idx = uint8(param[1]); + 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, idx); + is->setAttr(&seg, slat, idx, val + res, smap); + ENDOP + + STARTOP(iattr_sub) + declare_params(2); + const attrCode slat = attrCode(uint8(param[0])); + const size_t idx = uint8(param[1]); + 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, idx); + is->setAttr(&seg, slat, idx, res - val, smap); + ENDOP + + STARTOP(push_proc_state) + use_params(1); + -- cgit 1.4.1 From a319637e97b3472bf61901044afadec9c35b2ee9 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Thu, 28 Apr 2016 00:48:08 +0300 Subject: gnu: magit: Update to 2.6.2. * gnu/packages/emacs.scm (magit): Update to 2.6.2. --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 6c53622c60..11010b2a47 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -379,7 +379,7 @@ on stdout instead of using a socket as the Emacsclient does.") (define-public magit (package (name "magit") - (version "2.6.1") + (version "2.6.2") (source (origin (method url-fetch) (uri (string-append @@ -387,7 +387,7 @@ on stdout instead of using a socket as the Emacsclient does.") version "/" name "-" version ".tar.gz")) (sha256 (base32 - "1gjyb78jcfv57l9nz06n56f16qf8732a3krbqy5m7xwmilb12aml")))) + "0im1jrqw29g5anrrjflj6b2gpyqkvpghnq8zvywxyhmjwzar4rn7")))) (build-system gnu-build-system) (native-inputs `(("texinfo" ,texinfo) ("emacs" ,emacs-no-x))) -- cgit 1.4.1 From 158f5734cfa34ffda8bc714e47eb68c8312346d5 Mon Sep 17 00:00:00 2001 From: Kei Yamashita Date: Sat, 23 Apr 2016 01:58:55 -0400 Subject: gnu: Add Red Eclipse. * gnu/packages/games.scm (redeclipse): New variable. Signed-off-by: Alex Kost --- gnu/packages/games.scm | 147 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index d7b2f2ff89..34998cea28 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Albin Söderqvist +;;; Copyright © 2016 Kei Yamashita ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages games) + #:use-module (ice-9 match) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) #:use-module (guix packages) @@ -2094,3 +2096,148 @@ is attributed to Albert Einstein.") the chat server psyced with the specific config located at http://lavachat.symlynx.com/unix/") (license license:gpl2+))) + +(define-public redeclipse + (let ((data-sources + '(("acerspyro" "0gxxr6nbac918b49x1cp72nw951hqm5m4iyi2shb1612ly384w8q") + ("actors" "1jq9q82m6nx07nwpb5cnpdcwa33jrcgg0j2yir8zk6zpnxdmp0il") + ("appleflap" "1cn41c6xs68l88rmphqh4rlsh6h04xnkkvklxdpqpvvr4zlsmi85") + ("blendbrush" "0wjbgnniirl9arv274m8mpdqbbq7d09g0pq1z9dl56sazmbk5yy0") + ("caustics" "0gxv1pqhi6c27mqi9mwqyfnzv9rq5sva1vgxhb9ljh231rmkdc15") + ("crosshairs" "0vlyhd10mly2qnjpwvss9ani7dg3v2njpf7457ilx7fk9a3hlbkk") + ("elyvisions" "0s0l77rd9fd09imvj05pwcz4bqrn3j8qsw8prv5pi5bqa50mbn19") + ("fonts" "0apn8j9lf43nmnidq1f0azhrr1n896g7si4djbix1bwll6ild0mq") + ("freezurbern" "0y60s3g8v8bl2m6pk2yr9fzl67ymv821x6l2f9hszzydlcjwlscn") + ("john" "1lmwn0r7qpyac2qrnkv9llhsbyzqpgr27hxq2qn1rfbq12fja0ld") + ("jojo" "0sh3ricqlqw868a0mz2n9iw7lhp650pysd2wkcdizhcmw2hlayx9") + ("jwin" "1r459jhxx64j3vdw886ypkm6zg0yg6cr2qark54i1zdskjhp762k") + ("luckystrike" "08xq87crcz0jq45q1g6p8h4xrm1bcqzd019zp7n0f9c3p9j6al91") + ("maps" "1f0hqh8mbd4nzqi4hja4k5f380nszhx8igajg5ini4p9cp39x9vi") + ("mayhem" "1hn9jp64aiz8k6p2nxyg82h2nc8fadgghzhrm26y7i4bz9xwxacm") + ("mikeplus64" "1kj2zznxykgm3f1h1fvd8xzim5f292lyh96l2gj5km1nynzjmaap") + ("misc" "1phmzjs5rmika3568b7jb6ywbsi40r711rhg8cbsflllcp7hdidf") + ("nobiax" "08in9c24m2pq7x371q10ny4q3l1l3zb8m029iypy2lx9gr99i7hm") + ("particles" "0wcd3s6vhrjknffnfqrcpkcqk1r01f1fiz6q7n4srhpdv3i4d6vm") + ("philipk" "1s0kmap8iv5sddanrhycblskj3ywvz9xg2m11f6vnfy108palkga") + ("projectiles" "0xdhrs9rsncd1f88s5igdbfksli7h0irg5jdbj6p2a3rgdzb3gnj") + ("props" "1sbh3a94pmzic78bil0dvdh4fd8s6gh52f77jdram3w0gwv79x3r") + ("skyboxes" "0hy95a6ps0fk4cq8j6pjipk8rnsjna9bm0ly2l373gbshlfg6zgi") + ("sounds" "1pnyd7acm19sj1k1cy9hq3n3dnzzaiak7j5f0h7fikiybq5rdk7b") + ("textures" "0gxfnc4xm0kp3pd7lhd4yy1dqq00g727h21l64nyiw2b2d6n1755") + ("torley" "1cri5mf8ls8mvpn1x1p9hacyg9ibilaiz07gqv2hl2q8ww5xc1s6") + ("trak" "0xyk5z59kn9ym9n5fdcrwhqig6gjcjgnrgi9rqbbai713w9vpsbq") + ("ulukai" "0ziv9c4inmza40mas1w9dp048y6f646x00bs7kqv33hd1snbg3v3") + ("unnamed" "0hm291k9azilnp0m04zhm52vml1rhxk1z4l74v66spbikr6s2zdx") + ("vanities" "1qbc2v67kdrlvq10miw3dfmg3j9w9bq1hgqrzjcbph0l4gra1ndw") + ("vegetation" "13928yw0wflcj620cmp8rqwplaw8508f3j4zi32vxida1ksz6xn0") + ("weapons" "1ghn6nfcnd5lyl8dnj22csldvf9hrb32wjzpab4sjjz3iyv0zmr3") + ("wicked" "0q9badvg6ix5rhl05s83kw2v6a49jpnbkqk4ls89qahaddfagi8g")))) + (package + (name "redeclipse") + (version "1.5.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/red-eclipse/base" + "/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1y0jv5lz69zisiw8sd5z9a9v21zc83by1sx9b7dly78ngif4gc4l")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no check target + #:make-flags (list "CC=gcc" "-Csrc" + (string-append "INSTDIR=" + (assoc-ref %outputs "out") "/bin")) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-data + (lambda* (#:key inputs #:allow-other-keys) + (delete-file-recursively "data") + (mkdir "data") + (for-each (lambda (name) + (system* "tar" "-xvf" + (assoc-ref inputs name) + "-Cdata" + "--transform" + (string-append "s/" + name "-1.5.3/" + name "/"))) + (list ,@(map car data-sources))) + #t)) + (delete 'configure) ; no configure script + (add-after 'set-paths 'set-sdl-paths + (lambda* (#:key inputs #:allow-other-keys) + (setenv "CPATH" + (string-append (assoc-ref inputs "sdl-union") + "/include/SDL")) + #t)) + (add-after 'install 'copy-data + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "config" + (string-append out "/config")) + (copy-recursively "data" + (string-append out "/data"))) + #t)) + (add-after 'copy-data 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (with-directory-excursion bin + (rename-file "redeclipse_linux" + ".redeclipse_linux-real") + (rename-file "redeclipse_server_linux" + ".redeclipse_server_linux-real") + (call-with-output-file "redeclipse_linux" + (lambda (port) + (format port "#!~a/bin/sh +# Run the thing from its home, otherwise it just bails out. +cd \"~a\" +exec -a \"$0\" ~a/.redeclipse_linux-real~%" + (assoc-ref inputs "bash") ;implicit input + (string-append out) + (string-append bin)))) + (call-with-output-file "redeclipse_server_linux" + (lambda (port) + (format port "#!~a/bin/sh +# Run the thing from its home, otherwise it just bails out. +cd \"~a\" +exec -a \"$0\" ~a/.redeclipse_server_linux-real~%" + (assoc-ref inputs "bash") ;implicit input + (string-append out) + (string-append bin)))) + (chmod "redeclipse_linux" #o555) + (chmod "redeclipse_server_linux" #o555))) + #t))))) + (native-inputs `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("glu" ,glu) + ("sdl-union" ,(sdl-union)) + ;; Create origin records for the many separate data packages. + ,@(map (match-lambda + ((name hash) + (list name + (origin + (method url-fetch) + (uri (string-append + "https://github.com/red-eclipse/" + name "/archive/v" version ".tar.gz")) + (sha256 (base32 hash)) + (file-name (string-append name "-" version + ".tar.gz")))))) + data-sources))) + (home-page "http://redeclipse.net/") + (synopsis "Arena shooter derived from the Cube 2 engine") + (description + "Red Eclipse is an arena shooter, created from the Cube2 engine. +Offering an innovative parkour system and distinct but all potent weapons, +Red Eclipse provides fast paced and accessible gameplay.") + ;; The engine is under Zlib; data files are covered by the other + ;; licenses. More details at . + (license (list license:expat + license:zlib + license:cc-by-sa3.0 + license:cc-by3.0 + license:cc0))))) -- cgit 1.4.1 From f28cb89e4831ad2bbb1bc3131be3e23149facfad Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 28 Apr 2016 18:00:21 +0200 Subject: gnu: libtasn1: Replace 4.7 with 4.8 [fixes CVE-2016-4008]. * gnu/packages/tls.scm (libtasn1)[replacement]: New field. (libtasn1/fixed): New variable. --- gnu/packages/tls.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index fac26b8bda..0f4441d70c 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -65,8 +65,22 @@ for transmitting machine-neutral encodings of data objects in computer networking, allowing for formal validation of data according to some specifications.") + (replacement libtasn1/fixed) (license license:lgpl2.0+))) +(define libtasn1/fixed ;for CVE-2016-4008 + (package + (inherit libtasn1) + (source + (let ((version "4.8")) + (origin + (method url-fetch) + (uri (string-append "mirror://gnu/libtasn1/libtasn1-" + version ".tar.gz")) + (sha256 + (base32 + "04y5m29pqmvkfdbppmsdifyx89v8xclxzklpfc7a1fkr9p4jz07s"))))))) + (define-public p11-kit (package (name "p11-kit") -- cgit 1.4.1 From 0848d8d3a6ec958dda620ae52e2fc4b735b54e37 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Apr 2016 19:18:26 +0300 Subject: gnu: python-rauth: Rearrange inputs. * gnu/packages/python.scm (python-rauth)[native-inputs]: Remove it. [propagated-inputs]: Move python-requests ... [inputs]: ... to here. [properties]: Define python2-variant. (python2-rauth): Build with 'strip-python2-variant'. [native-inputs]: Add python2-setuptools. --- gnu/packages/python.scm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f79fd744be..f37fc56a80 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -7212,9 +7212,7 @@ Python at your fingertips, in Lisp form.") (build-system python-build-system) (arguments `(#:test-target "check")) - (native-inputs - `(("python-setuptools" ,python-setuptools))) - (propagated-inputs + (inputs `(("python-requests" ,python-requests))) (home-page "https://github.com/litl/rauth") (synopsis "Python library for OAuth 1.0/a, 2.0, and Ofly") @@ -7222,15 +7220,16 @@ Python at your fingertips, in Lisp form.") "Rauth is a Python library for OAuth 1.0/a, 2.0, and Ofly. It also provides service wrappers for convenient connection initialization and authenticated session objects providing things like keep-alive.") - (license license:expat))) + (license license:expat) + (properties `((python2-variant . ,(delay python2-rauth)))))) (define-public python2-rauth - (let ((rauth (package-with-python2 python-rauth))) - (package (inherit rauth) - (propagated-inputs `(("python2-requests" ,python2-requests))) - (native-inputs - `(("python2-unittest2" ,python2-unittest2) - ,@(package-native-inputs rauth)))))) + (let ((base (package-with-python2 (strip-python2-variant python-rauth)))) + (package + (inherit base) + (native-inputs `(("python2-setuptools" ,python2-setuptools) + ("python2-unittest2" ,python2-unittest2) + ,@(package-native-inputs base)))))) (define-public python2-functools32 (package -- cgit 1.4.1 From a64cbb6f326f853985233437906314a9c21288ba Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 28 Apr 2016 19:42:50 +0300 Subject: gnu: python-celery: Rearrange inputs. * gnu/packages/python.scm (python-celery)[propagated-inputs]: Move python-pytz, python-billiard, python-kombu ... [inputs]: ... to here. Add python-amqp, python-anyjson. --- gnu/packages/python.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f37fc56a80..f367e1e605 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -8078,8 +8078,10 @@ Python 2.4 and 2.5, and will draw its fixes/improvements from python-trunk.") (build-system python-build-system) (native-inputs `(("python-nose" ,python-nose))) - (propagated-inputs + (inputs `(("python-pytz" ,python-pytz) + ("python-amqp" ,python-amqp) + ("python-anyjson" ,python-anyjson) ("python-billiard" ,python-billiard) ("python-kombu" ,python-kombu))) (home-page "http://celeryproject.org") -- cgit 1.4.1 From 8faee0fd53b3a3aa3878bc906891a37d623e7455 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 28 Apr 2016 15:19:58 -0400 Subject: gnu: webkitgtk: Update to 2.12.2. * gnu/packages/webkit.scm (webkitgtk): Update to 2.12.2. --- gnu/packages/webkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm index 67384b8fed..734e4fc0df 100644 --- a/gnu/packages/webkit.scm +++ b/gnu/packages/webkit.scm @@ -53,14 +53,14 @@ (define-public webkitgtk (package (name "webkitgtk") - (version "2.12.1") + (version "2.12.2") (source (origin (method url-fetch) (uri (string-append "http://www.webkitgtk.org/releases/" name "-" version ".tar.xz")) (sha256 (base32 - "15p8dbxf8psmzddc21rcgds3b4jg725wcn5jppn3qgsm4x92s6jv")))) + "097i53ip93qfy8sgpv5qjf8fmi07gwm41q83jxrxldqwif89pi4x")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no tests -- cgit 1.4.1 From 99a0044614f5798dbbe48871dd7bfeb50b3db2f3 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Thu, 28 Apr 2016 13:35:20 +0200 Subject: gnu: giac-xcas: Update to 1.2.2-41. * gnu/packages/algebra.scm (giac-xcas): Update to 1.2.2-41. [inputs]: Add libxinerama. Signed-off-by: Leo Famulari --- gnu/packages/algebra.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 5b0049330a..e202130ca1 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -201,7 +201,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") (define-public giac-xcas (package (name "giac-xcas") - (version "1.2.2-37") + (version "1.2.2-41") (source (origin (method url-fetch) ;; "~parisse/giac" is not used because the maintainer regularly @@ -213,7 +213,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") "source/giac_" version ".tar.gz")) (sha256 (base32 - "0cagh9nnaz7ks299b2bs3lrdclv4xbyis24zc8vf3i25p470bxsf")))) + "061a0p5l1qlb9iqk7n7yznhv2f3hvll1hrzjbhn81bf31f2wj6sq")))) (build-system gnu-build-system) (arguments `(#:phases @@ -240,6 +240,7 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.") ("libjpeg" ,libjpeg) ("libpng" ,libpng) ("libx11" ,libx11) + ("libxinerama" ,libxinerama) ("libxft" ,libxft) ("libxt" ,libxt) ("mesa" ,mesa) -- cgit 1.4.1 From 2b56dc019a049b2f68ce078b243fc313fbaeacf3 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Fri, 29 Apr 2016 17:05:47 +0200 Subject: gnu: Add hplip. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/cups.scm (hplip): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/cups.scm | 117 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 116 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index ff3d1528c6..8437170bfa 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus -;;; Copyright © 2015 Ludovic Courtès +;;; Copyright © 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2016 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,10 @@ #:use-module (gnu packages) #:use-module (gnu packages avahi) #:use-module (gnu packages compression) + #:use-module (gnu packages libusb) + #:use-module (gnu packages autotools) + #:use-module (gnu packages python) + #:use-module (gnu packages scanner) #:use-module (gnu packages image) #:use-module (gnu packages fonts) ;font-dejavu #:use-module (gnu packages fontutils) @@ -297,3 +302,113 @@ device-specific programs to convert and print many types of files.") ("gnutls" ,gnutls) ("cups-filters" ,cups-filters) ("zlib" ,zlib))))) + +(define-public hplip + (package + (name "hplip") + (version "3.16.3") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/hplip/" + "hplip-" version ".tar.gz")) + (sha256 + (base32 + "1501qdnkjp1ybgagy5188fmf6cgmj5555ygjl3543nlbwcp31lj2")))) + (build-system gnu-build-system) + (home-page "http://hplipopensource.com/") + (synopsis "HP Printer Drivers") + (description "Hewlett-Packard Printer Drivers and PPDs.") + + ;; The 'COPYING' file lists directories where each of these 3 licenses + ;; applies. + (license (list license:gpl2+ license:bsd-3 license:expat)) + + ;; TODO install apparmor profile files eventually. + (arguments + `(#:configure-flags + `("--disable-network-build" + ,(string-append "--prefix=" (assoc-ref %outputs "out")) + ,(string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc") + ;; Disable until mime.types merging works (FIXME). + "--disable-fax-build" + "--enable-hpcups-install" + "--enable-new-hpcups" + "--enable-cups_ppd_install" + "--enable-cups_drv_install" + ;; TODO add foomatic drv install eventually. + ;; TODO --enable-policykit eventually. + ,(string-append "--with-cupsfilterdir=" + (assoc-ref %outputs "out") "/lib/cups/filter") + ,(string-append "--with-cupsbackenddir=" + (assoc-ref %outputs "out") "/lib/cups/backend") + ,(string-append "--with-icondir=" + (assoc-ref %outputs "out") "/share/applications") + ,(string-append "--with-systraydir=" + (assoc-ref %outputs "out") "/etc/xdg")) + + #:imported-modules ((guix build python-build-system) + ,@%gnu-build-system-modules) + #:modules ((guix build gnu-build-system) + (guix build utils) + ((guix build python-build-system) #:prefix python:)) + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-hard-coded-file-names + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + ;; FIXME: use merged ppds (I think actually only + ;; drvs need to be merged). + (cupsdir (assoc-ref inputs "cups-minimal"))) + (substitute* "base/g.py" + (("'/usr/share;[^']*'") + (string-append "'" cupsdir "/share'")) + (("'/etc/hp/hplip.conf'") + (string-append "'" out + "/etc/hp/hplip.conf" "'"))) + + (substitute* "Makefile.in" + (("[[:blank:]]check-plugin\\.py[[:blank:]]") " ") + ;; FIXME Use beginning-of-word in regexp. + (("[[:blank:]]plugin\\.py[[:blank:]]") " ") + (("/usr/include/libusb-1.0") + (string-append (assoc-ref inputs "libusb") + "/include/libusb-1.0")) + (("^\tinstall-dist_hplip_stateDATA") + ;; Remove dependencies on + ;; 'install-dist_hplip_stateDATA' so we don't bail + ;; out while trying to create /var/lib/hplip. + "\t") + (("hplip_confdir = /etc/hp") + ;; This is only used for installing the default config. + (string-append "hplip_confdir = " out + "/etc/hp")) + (("halpredir = /usr/share/hal/fdi/preprobe/10osvendor") + ;; Note: We don't use hal. + (string-append "halpredir = " out + "/share/hal/fdi/preprobe/10osvendor")) + (("rulesdir = /etc/udev/rules.d") + ;; udev rules will be merged by base service. + (string-append "rulesdir = " out + "/lib/udev/rules.d")) + (("rulessystemdir = /usr/lib/systemd/system") + ;; We don't use systemd. + (string-append "rulessystemdir = " out + "/lib/systemd/system")) + (("/etc/sane.d") + (string-append out "/etc/sane.d")))))) + + ;; Wrap bin/* so that the Python libs are found. + (add-after 'install 'wrap-binaries + (assoc-ref python:%standard-phases 'wrap))))) + + ;; Python3 support is available starting from hplip@3.15.2. + (inputs `(("libjpeg" ,libjpeg) + ("cups-minimal" ,cups-minimal) + ("libusb" ,libusb) + ("sane-backends" ,sane-backends) + ("dbus" ,dbus) + ("python-wrapper" ,python-wrapper) + ("python" ,python) + ;; TODO: Make hp-setup find python-dbus. + ("python-dbus" ,python-dbus))) + (native-inputs `(("pkg-config" ,pkg-config))))) -- cgit 1.4.1 From 3b13c3c03ce04ef68b38c87bd171892a9b105347 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 29 Apr 2016 20:09:22 +0200 Subject: gnu: eigen: Update to 3.2.8. * gnu/packages/algebra.scm (eigen): Update to 3.2.8. --- gnu/packages/algebra.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index e202130ca1..f03c3c104e 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013, 2015 Ludovic Courtès ;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2014 Mark H Weaver +;;; Copyright © 2016 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -566,14 +567,14 @@ cosine/ sine transforms or DCT/DST).") (define-public eigen (package (name "eigen") - (version "3.2.7") + (version "3.2.8") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/eigen/eigen/get/" version ".tar.bz2")) (sha256 (base32 - "0gigbjjdlw2q0gvcnyiwc6in314a647rkidk6977bwiwn88im3p5")) + "0mby6my1djsg8681fcvlaq0i4kd17fja9qn5f713j3xpfbb66akj")) (file-name (string-append name "-" version ".tar.bz2")) (modules '((guix build utils))) (snippet -- cgit 1.4.1 From f36a1ebaab67bd05a62af990312d43a845daa9f2 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 27 Apr 2016 10:18:53 -0500 Subject: gnu: Add Fossil. * gnu/packages/version-control.scm (fossil): New variable. * gnu/packages/patches/fossil-test-fixes.patch: New patch. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/fossil-test-fixes.patch | 189 +++++++++++++++++++++++++++ gnu/packages/version-control.scm | 80 +++++++++++- 3 files changed, 267 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/fossil-test-fixes.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 9e31ef9a4b..9308c38758 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -479,6 +479,7 @@ dist_patch_DATA = \ gnu/packages/patches/fltk-shared-lib-defines.patch \ gnu/packages/patches/fltk-xfont-on-demand.patch \ gnu/packages/patches/fontforge-svg-modtime.patch \ + gnu/packages/patches/fossil-test-fixes.patch \ gnu/packages/patches/freeimage-CVE-2015-0852.patch \ gnu/packages/patches/gawk-fts-test.patch \ gnu/packages/patches/gawk-shell.patch \ diff --git a/gnu/packages/patches/fossil-test-fixes.patch b/gnu/packages/patches/fossil-test-fixes.patch new file mode 100644 index 0000000000..e6c9f3dd74 --- /dev/null +++ b/gnu/packages/patches/fossil-test-fixes.patch @@ -0,0 +1,189 @@ +From upstream commit https://www.fossil-scm.org/fossil/info/19c216391a0ad79e + +--- fossil-src-1.34/test/file1.test ++++ fossil-src-1.34/test/file1.test +@@ -15,10 +15,12 @@ + # + ############################################################################ + # + # File utilities + # ++ ++repo_init + + proc simplify-name {testname args} { + set i 1 + foreach {path result} $args { + fossil test-simplify-name $path +@@ -65,10 +67,13 @@ + + if {$::tcl_platform(os)=="Windows NT"} { + simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {} + simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {} + } ++ ++# This is needed because we are now running outside of the Fossil checkout. ++file mkdir file1; cd file1 + + # Those directories are only needed for the testcase being able to "--chdir" to it. + file mkdir test1 + file mkdir test1/test2 + +From upstream commit https://www.fossil-scm.org/fossil/info/ad6de6383391bd4d + +--- fossil-src-1.34/test/utf.test ++++ fossil-src-1.34/test/utf.test +@@ -39,26 +39,29 @@ + test utf-check-$testname.$i {$::RESULT eq $result} + incr i + } + } + ++unset -nocomplain enc + array set enc [list \ + 0 binary \ + 1 binary \ + 2 unicode \ + 3 unicode-reverse \ + ] + ++unset -nocomplain bom + array set bom [list \ + 0 "" \ + 1 \xEF\xBB\xBF \ + 2 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \ + "\xFF\xFE" : "\xFE\xFF"}] \ + 3 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \ + "\xFE\xFF" : "\xFF\xFE"}] \ + ] + ++unset -nocomplain data + array set data [list \ + 0 "" \ + 1 \r \ + 2 \n \ + 3 \r\n \ +@@ -239,10 +242,11 @@ + 178 \xF4\x90\x80\x80\r \ + 179 \xF4\x90\x80\x80\n \ + 180 \xF4\x90\x80\x80\r\n \ + ] + ++unset -nocomplain extraData + array set extraData [list \ + 0 "" \ + 1 Z \ + ] + +Backport from upstream https://www.fossil-scm.org/fossil/info/60285f5876512817 +with additional non-zero exit in case of failures. + +--- fossil-src-1.34/test/merge6.test ++++ fossil-src-1.34/test/merge6.test +@@ -62,6 +62,6 @@ + fossil ls + + test merge_multi-4 {[normalize_result] eq {f1 + f2 + f3 +-f4}} ++f4}} knownBug + +--- fossil-src-1.34/test/merge_renames.test ++++ fossil-src-1.34/test/merge_renames.test +@@ -156,13 +156,13 @@ + } + + if {$deletes!=0} { + # failed + protOut "Error, the merge should not delete any file" +- test merge_renames-2 0 ++ test merge_renames-3 0 + } else { +- test merge_renames-2 1 ++ test merge_renames-3 1 + } + + ###################################### + # Test 4 # + # Reported: Ticket [67176c3aa4] # +@@ -198,14 +198,14 @@ + + fossil ls + + test merge_renames-5 {[normalize_result] eq {f1 + f2 +-f3}} ++f3}} knownBug + + ###################################### + # + # Tests for troubles not specifically linked with renames but that I'd like to + # write: + # [c26c63eb1b] - 'merge --backout' does not handle conflicts properly + # [953031915f] - Lack of warning when overwriting extra files + # [4df5f38f1e] - Troubles merging a file delete with a file change + +--- fossil-src-1.34/test/tester.tcl ++++ fossil-src-1.34/test/tester.tcl +@@ -58,10 +58,18 @@ + set VERBOSE 1 + set argv [lreplace $argv $i $i] + } else { + set VERBOSE 0 + } ++ ++set i [lsearch $argv -strict] ++if {$i>=0} { ++ set STRICT 1 ++ set argv [lreplace $argv $i $i] ++} else { ++ set STRICT 0 ++} + + if {[llength $argv]==0} { + foreach f [lsort [glob $testdir/*.test]] { + set base [file root [file tail $f]] + lappend argv $base +@@ -327,20 +335,30 @@ + } + + # Perform a test + # + set test_count 0 +-proc test {name expr} { ++proc test {name expr {constraints ""}} { + global bad_test test_count + incr test_count ++ set knownBug [expr {"knownBug" in $constraints}] + set r [uplevel 1 [list expr $expr]] + if {$r} { +- protOut "test $name OK" ++ if {$knownBug && !$::STRICT} { ++ protOut "test $name OK (knownBug)?" ++ } else { ++ protOut "test $name OK" ++ } + } else { +- protOut "test $name FAILED!" +- lappend bad_test $name +- if {$::HALT} exit ++ if {$knownBug && !$::STRICT} { ++ protOut "test $name FAILED (knownBug)!" ++ } else { ++ protOut "test $name FAILED!" ++ if {$::VERBOSE} {protOut "RESULT: $RESULT"} ++ lappend bad_test $name ++ if {$::HALT} exit ++ } + } + } + set bad_test {} + + # Return a random string N characters long. +@@ -445,4 +455,5 @@ + protOut "***** Final result: $nErr errors out of $test_count tests" + if {$nErr>0} { + protOut "***** Failures: $bad_test" ++ exit 1 + } diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 117d01d5d0..9107369482 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015 Mathieu Lirzin ;;; Copyright © 2014, 2015 Mark H Weaver -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer ;;; Copyright © 2015 Ricardo Wurmus @@ -29,7 +29,7 @@ #:use-module ((guix licenses) #:select (asl2.0 bsd-2 gpl1+ gpl2 gpl2+ gpl3+ lgpl2.1 - x11-style)) + public-domain x11-style)) #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) @@ -38,7 +38,6 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system python) #:use-module (guix build-system trivial) - #:use-module (guix build utils) #:use-module (gnu packages apr) #:use-module (gnu packages autotools) #:use-module (gnu packages asciidoc) @@ -1125,3 +1124,78 @@ Mercurial, Bazaar, Darcs, CVS, Fossil, and Veracity.") "This package allows you to use your hubic account as a \"special repository\" with git-annex.") (license gpl3+))) + +(define-public fossil + (package + (name "fossil") + (version "1.34") + (source + (origin + (method url-fetch) + ;; Upstream source affected by + ;; http://debbugs.gnu.org/cgi/bugreport.cgi?bug=20962 + (uri (string-append + "https://web.archive.org/web/20160402202958/" + "https://www.fossil-scm.org/download/fossil-src-" + version ".tar.gz")) + (sha256 + (base32 + "17x4vgjcfihwmq195qg32irp50panvjqfpvhqydfvv4ghwzbi9jk")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Commit 0a2ebe57 on 2015-08-03 18:35:53 changed output formatting + ;; for some commands, but affected tests were not updated. Use + ;; substitute here, which is more concise than patching. + (substitute* "test/clean.test" + (("NEW ") "NEW ")) + (substitute* '("test/revert.test" "test/mv-rm.test") + (("REVERTED:") "REVERT ") + (("DELETE:") "DELETE ") + (("UNMANAGE:") "UNMANAGE ")) + ;; Fix use of __DATE__ and __TIME__ + (substitute* "src/main.c" + (("Compiled on %s %s") "Compiled") + (("__DATE__, __TIME__, ") "")) + #t)) + (patches (list (search-patch "fossil-test-fixes.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("tcl" ,tcl) ;for configuration only + ("which" ,which) ;for tests only + ("ed" ,ed))) ;ditto + (inputs + `(("openssl" ,openssl) + ("zlib" ,zlib) + ("sqlite" ,sqlite))) + (arguments + `(#:configure-flags (list "--with-openssl=auto" + "--disable-internal-sqlite") + #:test-target "test" + #:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs (configure-flags '()) + #:allow-other-keys) + ;; The 'configure' script is not an autoconf script and + ;; chokes on unrecognized options. + (zero? (apply system* + "./configure" + (string-append "--prefix=" + (assoc-ref outputs "out")) + configure-flags)))) + (add-before 'check 'test-setup + (lambda _ + (setenv "USER" "guix") + (setenv "TZ" "UTC") + ;; Fixing the th1 test would require many backports, so + ;; just disable for now. + (delete-file "test/th1.test") + #t))))) + (home-page "https://fossil-scm.org") + (synopsis "Software configuration management system") + (description + "Fossil is a distributed source control management system which supports +access and administration over HTTP CGI or via a built-in HTTP server. It has +a built-in wiki, built-in file browsing, built-in tickets system, etc.") + (license (list public-domain ;src/miniz.c, src/shell.c + bsd-2)))) -- cgit 1.4.1 From b0e52f52b76ecc37a9b6469e6f72c4b4757979ce Mon Sep 17 00:00:00 2001 From: Rob Syme Date: Sat, 30 Apr 2016 08:39:27 +1000 Subject: gnu: ruby: Update to 2.3.1. * gnu/packages/ruby.scm (ruby): Update to 2.3.1. [origin] Add symlink patch. * gnu/packages/patches/ruby-symlinkfix.patch: New file. * gnu/local.mk (dist_patch_DATA): Add patch. --- gnu/local.mk | 1 + gnu/packages/patches/ruby-symlinkfix.patch | 53 ++++++++++++++++++++++++++++++ gnu/packages/ruby.scm | 5 +-- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/ruby-symlinkfix.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 9308c38758..7556fa76e8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -723,6 +723,7 @@ dist_patch_DATA = \ gnu/packages/patches/readline-link-ncurses.patch \ gnu/packages/patches/ripperx-missing-file.patch \ gnu/packages/patches/rsem-makefile.patch \ + gnu/packages/patches/ruby-symlinkfix.patch \ gnu/packages/patches/sed-hurd-path-max.patch \ gnu/packages/patches/scheme48-tests.patch \ gnu/packages/patches/scotch-test-threading.patch \ diff --git a/gnu/packages/patches/ruby-symlinkfix.patch b/gnu/packages/patches/ruby-symlinkfix.patch new file mode 100644 index 0000000000..16beecc97a --- /dev/null +++ b/gnu/packages/patches/ruby-symlinkfix.patch @@ -0,0 +1,53 @@ +Fix symlinks to '..' to fix rubygems improperly expanding symlinked +paths. Without this fix, some gems fail to install. This patch is applied in +rubygems 2.5.2, but ruby version 2.3.1 bundles an older version of rubygems +(2.5.1). + +--- a/lib/rubygems/package.rb ++++ b/lib/rubygems/package.rb +@@ -383,7 +383,7 @@ def extract_tar_gz io, destination_dir, pattern = "*" # :nodoc: + FileUtils.chmod entry.header.mode, destination + end if entry.file? + +- File.symlink(install_location(entry.header.linkname, destination_dir), destination) if entry.symlink? ++ File.symlink(entry.header.linkname, destination) if entry.symlink? + + verbose destination + end +diff --git a/test/rubygems/test_gem_package.rb b/test/rubygems/test_gem_package.rb +index 7848bc2..f287bd3 100644 +--- a/test/rubygems/test_gem_package.rb ++++ b/test/rubygems/test_gem_package.rb +@@ -428,19 +428,25 @@ def test_extract_tar_gz_absolute + "#{@destination} is not allowed", e.message) + end + +- def test_extract_tar_gz_symlink_absolute ++ def test_extract_tar_gz_symlink_relative_path ++ skip 'symlink not supported' if Gem.win_platform? ++ + package = Gem::Package.new @gem + + tgz_io = util_tar_gz do |tar| +- tar.add_symlink 'code.rb', '/absolute.rb', 0644 ++ tar.add_file 'relative.rb', 0644 do |io| io.write 'hi' end ++ tar.mkdir 'lib', 0755 ++ tar.add_symlink 'lib/foo.rb', '../relative.rb', 0644 + end + +- e = assert_raises Gem::Package::PathError do +- package.extract_tar_gz tgz_io, @destination +- end ++ package.extract_tar_gz tgz_io, @destination + +- assert_equal("installing into parent path /absolute.rb of " + +- "#{@destination} is not allowed", e.message) ++ extracted = File.join @destination, 'lib/foo.rb' ++ assert_path_exists extracted ++ assert_equal '../relative.rb', ++ File.readlink(extracted) ++ assert_equal 'hi', ++ File.read(extracted) + end + + def test_extract_tar_gz_directory diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index bafa7e3181..b8a6d01811 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -46,7 +46,7 @@ (define-public ruby (package (name "ruby") - (version "2.3.0") + (version "2.3.1") (source (origin (method url-fetch) @@ -55,8 +55,9 @@ "/ruby-" version ".tar.xz")) (sha256 (base32 - "15s0dsb5ynf3d2w5gzawnszq5594fqvapv2y7a0qw16przq5l4kh")) + "0f3395q7pd2hrl2gv26bib80038sjawxgmhl9zn22fjs9m9va9b7")) (modules '((guix build utils))) + (patches (search-patches "ruby-symlinkfix.patch")) (snippet `(begin ;; Remove bundled libffi (delete-file-recursively -- cgit 1.4.1 From 9d177025005a2bcae50c698d0363fd4096d50157 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 30 Apr 2016 08:44:57 +1000 Subject: gnu: ruby-hashery: Disable failing test. * gnu/packages/ruby.scm (ruby-hashery)[arguments]: Remove failing test. --- gnu/packages/ruby.scm | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index b8a6d01811..2aab8bf415 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3751,6 +3751,10 @@ Rubytest-based test frameworks. It provides the @code{rubytest} executable.") (modify-phases %standard-phases (replace 'check (lambda _ + ;; Remove known test failure documented at + ;; https://github.com/rubyworks/hashery/issues/25 + (substitute* "test/case_key_hash.rb" + (("^ assert\\(s\\)") "")) (and (zero? (system* "qed")) (zero? (system* "rubytest" "-Ilib" "-Itest" "test/")))))))) (native-inputs -- cgit 1.4.1 From 7ffbbea00d06d5a3d88b9fbae11febe6c97abbc5 Mon Sep 17 00:00:00 2001 From: Rene Saavedra Date: Thu, 14 Apr 2016 09:52:51 -0500 Subject: gnu: Add uhttpmock. * gnu/packages/web.scm (uhttpmock): New variable. Signed-off-by: Leo Famulari --- gnu/packages/web.scm | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 035c90bc95..a0e1ec9422 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Sou Bunnbu ;;; Copyright © 2016 Jelle Licht ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Rene Saavedra ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,6 +36,7 @@ #:use-module (guix cvs-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system perl) #:use-module (guix build-system cmake) #:use-module (guix build-system r) @@ -49,6 +51,8 @@ #:use-module (gnu packages mit-krb5) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnome) #:use-module (gnu packages icu4c) #:use-module (gnu packages lua) #:use-module (gnu packages base) @@ -3208,3 +3212,41 @@ mangle the data format that you have into the one that you want with very little effort, and the program to do so is often shorter and simpler than you'd expect.") (license (list l:expat l:cc-by3.0)))) + +(define-public uhttpmock + (package + (name "uhttpmock") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append "http://tecnocode.co.uk/downloads/uhttpmock/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0vniyx341pnnmvxmqacc49k0g7h9a9nhknfslidrqmxj5lm1ini6")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'use-empty-ssl-cert-file + (lambda _ + ;; Search for ca-certificates.crt files + ;; during the check phase. + (setenv "SSL_CERT_FILE" "/dev/null") + #t))))) + (native-inputs + `(("gobject-introspection" ,gobject-introspection) + ;; For check phase. + ("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("pkg-config" ,pkg-config))) + (inputs + `(("libsoup" ,libsoup))) + (home-page "https://gitlab.com/groups/uhttpmock") + (synopsis "Library for mocking web service APIs which use HTTP or HTTPS") + (description + "Uhttpmock is a project for mocking web service APIs which use HTTP or +HTTPS. It provides a library, libuhttpmock, which implements recording and +playback of HTTP request/response traces.") + (license l:lgpl2.1+))) -- cgit 1.4.1 From 6c0e2dbbf342967e20855ab3d17a23593e36af6a Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 29 Apr 2016 23:14:55 -0400 Subject: gnu: subversion: Update to 1.8.16 [fixes CVE-2016-{2167,2168}]. * gnu/packages/version-control.scm (subversion): Update to 1.8.16. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 9107369482..94339012f5 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2015 Mathieu Lirzin -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2014, 2016 Eric Bavier ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Kyle Meyer @@ -680,14 +680,14 @@ property manipulation.") (define-public subversion (package (name "subversion") - (version "1.8.15") + (version "1.8.16") (source (origin (method url-fetch) (uri (string-append "http://archive.apache.org/dist/subversion/" "subversion-" version ".tar.bz2")) (sha256 (base32 - "0b68rjy1sjd66nqcswrm1bhda3vk2ngkgs6drcanmzbcd3vs366g")))) + "0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi")))) (build-system gnu-build-system) (arguments '(#:phases (alist-cons-after -- cgit 1.4.1 From 324efb88880834bbe9bb55387b63dafd600e93e9 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 16 Jan 2016 22:12:23 +1000 Subject: gnu: Add muscle. * gnu/packages/bioinformatics.scm (muscle): New variable. --- gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 620439f144..079fd467cc 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2548,6 +2548,41 @@ RNA-Seq, the MISO model uses Bayesian inference to compute the probability that a read originated from a particular isoform.") (license license:gpl2))) +(define-public muscle + (package + (name "muscle") + (version "3.8.1551") + (source (origin + (method url-fetch/tarbomb) + (file-name (string-append name "-" version)) + (uri (string-append + "http://www.drive5.com/muscle/muscle_src_" + version ".tar.gz")) + (sha256 + (base32 + "0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "LDLIBS = -lm") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'check + ;; There are no tests, so just test if it runs. + (lambda _ (zero? (system* "./muscle" "-version")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "muscle" bin))))))) + (home-page "http://www.drive5.com/muscle") + (synopsis "Multiple sequence alignment program") + (description + "MUSCLE aims to be a fast and accurate multiple sequence alignment +program for nucleotide and protein sequences.") + ;; License information found in 'muscle -h' and usage.cpp. + (license license:public-domain))) + (define-public orfm (package (name "orfm") -- cgit 1.4.1 From c7794307f1bb99a68d93840a74fda7a64189a381 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 26 Apr 2016 17:07:32 -0400 Subject: gnu: ncmpcpp: Remove bootstrapping phase. * gnu/packages/mpd.scm (ncmpcpp)[arguments]: Remove 'autogen' phase. [native-inputs]: Remove autoconf, automake, and libtool. --- gnu/packages/mpd.scm | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 63cb16fccb..4860325b56 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -42,7 +42,6 @@ #: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) #:use-module (gnu packages video) @@ -198,19 +197,10 @@ terminal using ncurses.") ("taglib" ,taglib) ("icu4c" ,icu4c))) (native-inputs - `(("pkg-config" ,pkg-config) - ("automake" ,automake) - ("autoconf" ,autoconf) - ("libtool" ,libtool))) + `(("pkg-config" ,pkg-config))) (arguments '(#:configure-flags - '("BOOST_LIB_SUFFIX=" "--with-taglib") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ - (setenv "NOCONFIGURE" "true") - (zero? (system* "sh" "autogen.sh"))))))) + '("BOOST_LIB_SUFFIX=" "--with-taglib"))) (synopsis "Featureful ncurses based MPD client inspired by ncmpc") (description "Ncmpcpp is an mpd client with a UI very similar to ncmpc, but it provides new useful features such as support for regular expressions -- cgit 1.4.1 From e411ce186021540770c389ec13b7b5b42252c4bb Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 29 Apr 2016 03:31:41 -0400 Subject: gnu: poppler: Fix CVE-2015-8868. * gnu/packages/pdf.scm (poppler)[replacement]: New field. (poppler/fixed): New variable. * gnu/packages/patches/poppler-CVE-2015-8868.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/patches/poppler-CVE-2015-8868.patch | 30 ++++++++++++++++++++++++ gnu/packages/pdf.scm | 8 +++++++ 3 files changed, 39 insertions(+) create mode 100644 gnu/packages/patches/poppler-CVE-2015-8868.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index 7556fa76e8..e45405fe0e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -681,6 +681,7 @@ dist_patch_DATA = \ gnu/packages/patches/plink-1.07-unclobber-i.patch \ gnu/packages/patches/plotutils-libpng-jmpbuf.patch \ gnu/packages/patches/polkit-drop-test.patch \ + gnu/packages/patches/poppler-CVE-2015-8868.patch \ gnu/packages/patches/portaudio-audacity-compat.patch \ gnu/packages/patches/procmail-ambiguous-getline-debian.patch \ gnu/packages/patches/pt-scotch-build-parallelism.patch \ diff --git a/gnu/packages/patches/poppler-CVE-2015-8868.patch b/gnu/packages/patches/poppler-CVE-2015-8868.patch new file mode 100644 index 0000000000..ac78d32ffa --- /dev/null +++ b/gnu/packages/patches/poppler-CVE-2015-8868.patch @@ -0,0 +1,30 @@ +Fixes CVE-2015-8868 (heap overflow). + +Upstream source: +https://cgit.freedesktop.org/poppler/poppler/commit/?id=b3425dd3261679958cd56c0f71995c15d2124433 + +From b3425dd3261679958cd56c0f71995c15d2124433 Mon Sep 17 00:00:00 2001 +From: Albert Astals Cid +Date: Tue, 22 Dec 2015 22:50:33 +0100 +Subject: Do not crash on invalid files + +Bug #93476 + +diff --git a/poppler/Function.cc b/poppler/Function.cc +index 67283df..ee5afc1 100644 +--- a/poppler/Function.cc ++++ b/poppler/Function.cc +@@ -577,6 +577,10 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) { + goto err2; + } + n = obj1.arrayGetLength(); ++ if (unlikely(n > funcMaxOutputs)) { ++ error(errSyntaxError, -1, "Function's C0 array is wrong length"); ++ n = funcMaxOutputs; ++ } + for (i = 0; i < n; ++i) { + obj1.arrayGet(i, &obj2); + if (!obj2.isNum()) { +-- +cgit v0.10.2 + diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 1d33be85d5..8f9f5dd503 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -53,6 +53,7 @@ (package (name "poppler") (version "0.37.0") + (replacement poppler/fixed) (source (origin (method url-fetch) (uri (string-append "https://poppler.freedesktop.org/poppler-" @@ -104,6 +105,13 @@ (license license:gpl2+) (home-page "http://poppler.freedesktop.org/"))) +(define poppler/fixed + (package + (inherit poppler) + (source (origin + (inherit (package-source poppler)) + (patches (search-patches "poppler-CVE-2015-8868.patch")))))) + (define-public poppler-qt4 (package (inherit poppler) (name "poppler-qt4") -- cgit 1.4.1 From 3135b95fd83fd9c39c4b579ca47b7842a1d0ffd1 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 14 Apr 2016 07:31:35 +0200 Subject: gnu: bootstrap: Add case for i686-mingw. * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add case for i686-mingw. Signed-off-by: Manolis Ragkousis --- gnu/packages/bootstrap.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages') diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 3f3770d89b..a3cd18519c 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -172,6 +172,7 @@ successful, or false to signal an error." ;; here just so we can keep going. ((string=? system "xtensa-elf") "no-ld.so") ((string=? system "avr") "no-ld.so") + ((string=? system "i686-mingw") "no-ld.so") (else (error "dynamic linker name not known for this system" system)))) -- cgit 1.4.1 From 55f4b4e00fde3323e89a41821141a477030cf739 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Wed, 27 Apr 2016 21:22:03 +0200 Subject: gnu: ao: Format the description string. * gnu/packages/xiph.scm (ao): Add markup to description string. --- gnu/packages/xiph.scm | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index 83bed814f9..d451ec05e2 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -176,23 +176,26 @@ stereo encoding, and voice activity detection.") "Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports: -Null output (handy for testing without a sound device), -WAV files, -AU files, -RAW files, -OSS (Open Sound System, used on Linux and FreeBSD), -ALSA (Advanced Linux Sound Architecture), -aRts (Analog RealTime Synth, used by KDE), -PulseAudio (next generation GNOME sound server), -esd (EsounD or Enlightened Sound Daemon), -Mac OS X, -Windows (98 and later), -AIX, -Sun/NetBSD/OpenBSD, -IRIX, -NAS (Network Audio Server), -RoarAudio (Modern, multi-OS, networked Sound System), -OpenBSD's sndio.") +@itemize +@item Null output (handy for testing without a sound device), +@item WAV files, +@item AU files, +@item RAW files, +@item OSS (Open Sound System, used on Linux and FreeBSD), +@item ALSA (Advanced Linux Sound Architecture), +@item aRts (Analog RealTime Synth, used by KDE), +@item PulseAudio (next generation GNOME sound server), +@item esd (EsounD or Enlightened Sound Daemon), +@item Mac OS X, +@item Windows (98 and later), +@item AIX, +@item Sun/NetBSD/OpenBSD, +@item IRIX, +@item NAS (Network Audio Server), +@item RoarAudio (Modern, multi-OS, networked Sound System), +@item OpenBSD's sndio. +@end itemize +") (license license:gpl2+) (home-page "http://www.xiph.org/ao/"))) -- cgit 1.4.1 From 2df092a93dd4a7718834aafadc729ccd9c3f3289 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Sun, 1 May 2016 18:11:51 +0200 Subject: gnu: ao: Replace "itemize" with "enumerate" in description string. * gnu/packages/xiph.scm (ao): Replace "itemize" with "enumerate" in description string. Apparently Guile cannot yet handle "itemize" when creating HTML. --- gnu/packages/xiph.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index d451ec05e2..244f0c84b4 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -176,7 +176,7 @@ stereo encoding, and voice activity detection.") "Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports: -@itemize +@enumerate @item Null output (handy for testing without a sound device), @item WAV files, @item AU files, @@ -194,7 +194,7 @@ It currently supports: @item NAS (Network Audio Server), @item RoarAudio (Modern, multi-OS, networked Sound System), @item OpenBSD's sndio. -@end itemize +@end enumerate ") (license license:gpl2+) (home-page "http://www.xiph.org/ao/"))) -- cgit 1.4.1 From a66a60f251e38424078f2881522d0956e2f3643a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 27 Apr 2016 22:49:22 +0200 Subject: gnu: Add synthv1. * gnu/packages/music.scm (synthv1): New variable. --- gnu/packages/music.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index cea685f705..f5ed8b8a59 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -689,6 +689,34 @@ your own lessons.") Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (license license:gpl3+))) +(define-public synthv1 + (package + (name "synthv1") + (version "0.7.4") + (source (origin + (method url-fetch) + (uri + (string-append "mirror://sourceforge/synthv1/synthv1-" + version ".tar.gz")) + (sha256 + (base32 + "16n0v4jk0ilirq84rrildvdwqxgxav78rk58ilhl622v5n893c7w")))) + (build-system gnu-build-system) + ;; There are no tests. + (arguments `(#:tests? #f)) + (inputs + `(("jack" ,jack-1) + ("lv2" ,lv2) + ("alsa-lib" ,alsa-lib) + ("liblo" ,liblo) + ("qt" ,qt))) + (home-page "http://synthv1.sourceforge.net") + (synopsis "Polyphonic subtractive synthesizer") + (description + "Synthv1 is an old-school subtractive polyphonic synthesizer with four +oscillators and stereo effects.") + (license license:gpl2+))) + (define-public setbfree (package (name "setbfree") -- cgit 1.4.1 From 1b90e57eb75e760bd83acb39a0f8085d22d3813d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 28 Apr 2016 08:11:05 +0200 Subject: gnu: Add antiword. * gnu/packages/textutils.scm (antiword): New variable. --- gnu/packages/textutils.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 71cf25b224..f6735a43e0 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -292,3 +292,39 @@ as existing hashing techniques, with provably negligible risk of collisions.") characteristic of this library is that different character encoding for every regular expression object can be specified.") (license license:bsd-2))) + +(define-public antiword + (package + (name "antiword") + (version "0.37") + (source (origin + (method url-fetch) + (uri (string-append "http://www.winfield.demon.nl/linux" + "/antiword-" version ".tar.gz")) + (sha256 + (base32 + "1b7mi1l20jhj09kyh0bq14qzz8vdhhyf35gzwsq43mn6rc7h0b4f")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests + #:make-flags + (list "-f" "Makefile.Linux" + (string-append "GLOBAL_INSTALL_DIR=" + (assoc-ref %outputs "out") "/bin") + (string-append "GLOBAL_RESOURCES_DIR=" + (assoc-ref %outputs "out") "/share/antiword")) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (zero? (apply system* "make" `("global_install" ,@make-flags)))))))) + (home-page "http://www.winfield.demon.nl/") + (synopsis "Microsoft Word document reader") + (description "Antiword is an application for displaying Microsoft Word +documents. It can also convert the document to PostScript or XML. Only +documents made by MS Word version 2 and version 6 or later are supported. The +name comes from: \"The antidote against people who send Microsoft Word files +to everybody, because they believe that everybody runs Windows and therefore +runs Word\".") + (license license:gpl2+))) -- cgit 1.4.1 From dfc9d18e88b3c77d90a72fbe223084ed44f5a6f6 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 1 May 2016 18:09:30 +0200 Subject: gnu: qtractor: Update to 0.7.7. * gnu/packages/music.scm (qtractor): Update to 0.7.7. --- gnu/packages/music.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index f5ed8b8a59..95f52c5dd6 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -1209,14 +1209,14 @@ computer's keyboard.") (define-public qtractor (package (name "qtractor") - (version "0.7.5") + (version "0.7.7") (source (origin (method url-fetch) (uri (string-append "http://downloads.sourceforge.net/qtractor/" "qtractor-" version ".tar.gz")) (sha256 (base32 - "0drqzp1rbqmqiwdzc9n3307y8rm882fha3awy5qlvir5ma2mwl80")))) + "0q8kvy1ynlg64v1w7jxix1rpq0lp2ixgb2y8cbbwxd2b28r3r2vl")))) (build-system gnu-build-system) (arguments `(#:tests? #f)) ; no "check" target (inputs -- cgit 1.4.1 From d706d943359926ddd0950bbcfc71eb98f671ee1d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 1 May 2016 18:10:38 +0200 Subject: gnu: guitarix: Update to 0.35.0. * gnu/packages/audio.scm (guitarix): Update to 0.35.0. --- gnu/packages/audio.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index cdcb61afee..bcb3b77b88 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -862,15 +862,15 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (define-public guitarix (package (name "guitarix") - (version "0.34.0") + (version "0.35.0") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/guitarix/guitarix2-" - version ".tar.bz2")) + version ".tar.xz")) (sha256 (base32 - "0pamaq8iybsaglq6y1m1rlmz4wgbs2r6m24bj7x4fwg4grjvzjl8")))) + "10hijqrrl8xil46kgsac10ysfxysisxlibm2rz133zyig5n63jdw")))) (build-system waf-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit 1.4.1 From 63bcec71409d383a75f25a880a713140be9fe4ca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 7 Apr 2016 14:28:57 +0200 Subject: gnu: Add python2-shedskin. * gnu/packages/python.scm (python2-shedskin): New variable. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'gnu/packages') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f367e1e605..7593fc71ac 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -37,7 +37,7 @@ (define-module (gnu packages python) #:use-module ((guix licenses) #:select (asl2.0 bsd-4 bsd-3 bsd-2 non-copyleft cc0 x11 x11-style - gpl2 gpl2+ gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+ + gpl2 gpl2+ gpl3 gpl3+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ agpl3+ isc mpl2.0 psfl public-domain repoze unlicense x11-style zpl2.1)) #:use-module ((guix licenses) #:select (expat zlib) #:prefix license:) @@ -78,6 +78,8 @@ #:use-module (gnu packages xdisorg) #:use-module (gnu packages zip) #:use-module (gnu packages tcl) + #:use-module (gnu packages bdw-gc) + #:use-module (gnu packages pcre) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -8704,3 +8706,42 @@ respectively.") (define-public python2-cysignals (package-with-python2 python-cysignals)) +(define-public python2-shedskin + (package + (name "python2-shedskin") + (version "0.9.4") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/shedskin/shedskin/" + "releases/download/v" version + "/shedskin-" version ".tgz")) + (sha256 + (base32 + "0nzwrzgw1ga8rw6f0ryq7zr9kkiavd1cqz5hzxkcbicl1dk7kz41")))) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-resulting-include-libs + (lambda* (#:key inputs #:allow-other-keys) + (let ((libgc (assoc-ref inputs "libgc")) + (pcre (assoc-ref inputs "pcre"))) + (substitute* "shedskin/makefile.py" + (("variable == 'CCFLAGS':[ ]*") + (string-append "variable == 'CCFLAGS':\n" + " line += ' -I " pcre "/include" + " -I " libgc "/include'")) + (("variable == 'LFLAGS':[ ]*") + (string-append "variable == 'LFLAGS':\n" + " line += ' -L" pcre "/lib" + " -L " libgc "/lib'"))) + #t)))))) + (native-inputs `(("python2-setuptools" ,python2-setuptools))) + (inputs `(("pcre" ,pcre) + ("libgc" ,libgc))) + (home-page "https://shedskin.github.io/") + (synopsis "Experimental Python-2 to C++ Compiler") + (description (string-append "This is an experimental compiler for a subset of +Python. It generates C++ code and a Makefile.")) + (license (list gpl3 bsd-3 license:expat)))) -- cgit 1.4.1 From acb31b5dcd008ee7b34d83c8d2170dcdffb3199b Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sat, 30 Apr 2016 11:43:35 +0200 Subject: gnu: asymptote: Update to 2.37. * gnu/packages/plotutils.scm (asymptote): Update to 2.37. * gnu/packages/patches/asymptote-gsl2.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove reference. --- gnu/local.mk | 1 - gnu/packages/patches/asymptote-gsl2.patch | 33 ------------------------------- gnu/packages/plotutils.scm | 26 ++++++++++++++---------- 3 files changed, 16 insertions(+), 44 deletions(-) delete mode 100644 gnu/packages/patches/asymptote-gsl2.patch (limited to 'gnu/packages') diff --git a/gnu/local.mk b/gnu/local.mk index e45405fe0e..702c9a602e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -415,7 +415,6 @@ dist_patch_DATA = \ gnu/packages/patches/alsa-lib-mips-atomic-fix.patch \ gnu/packages/patches/apr-skip-getservbyname-test.patch \ gnu/packages/patches/arb-ldconfig.patch \ - gnu/packages/patches/asymptote-gsl2.patch \ gnu/packages/patches/ath9k-htc-firmware-binutils.patch \ gnu/packages/patches/ath9k-htc-firmware-gcc.patch \ gnu/packages/patches/ath9k-htc-firmware-objcopy.patch \ diff --git a/gnu/packages/patches/asymptote-gsl2.patch b/gnu/packages/patches/asymptote-gsl2.patch deleted file mode 100644 index 4f73d16d7f..0000000000 --- a/gnu/packages/patches/asymptote-gsl2.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 71ff9e769ba5d9995b367201f0d41b7a8dedab9d Mon Sep 17 00:00:00 2001 -From: John Bowman -Date: Sat, 14 Nov 2015 01:25:56 -0700 -Subject: [PATCH] Support GSL 2.0. - ---- - gsl.cc | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/gsl.cc b/gsl.cc -index b500557..0f81dc6 100644 ---- a/gsl.cc -+++ b/gsl.cc -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #include "opsymbols.h" - -@@ -1088,7 +1089,11 @@ void gen_rungsl_venv(venv &ve) - addGSLDOUBLE2Func(SYM(F)); - addGSLDOUBLE2Func(SYM(E)); - addGSLDOUBLE3Func(SYM(P),SYM(phi),SYM(k),SYM(n)); -+#if GSL_MAJOR_VERSION >= 2 -+ addGSLDOUBLE2Func(SYM(D),SYM(phi),SYM(k)); -+#else - addGSLDOUBLE3Func(SYM(D),SYM(phi),SYM(k),SYM(n)); -+#endif - addGSLDOUBLE2Func(SYM(RC),SYM(x),SYM(y)); - addGSLDOUBLE3Func(SYM(RD),SYM(x),SYM(y),SYM(z)); - addGSLDOUBLE3Func(SYM(RF),SYM(x),SYM(y),SYM(z)); diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm index 67f692daf5..3fdd539835 100644 --- a/gnu/packages/plotutils.scm +++ b/gnu/packages/plotutils.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2015 Eric Bavier +;;; Copyright © 2016 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -171,15 +172,14 @@ colors, styles, options and details.") (define-public asymptote (package (name "asymptote") - (version "2.35") + (version "2.37") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/asymptote/" version "/asymptote-" version ".src.tgz")) (sha256 (base32 - "11f28vxw0ybhvl7vxmqcdwvw7y6gz55ykw9ybgzb2px6lsvgag7z")) - (patches (search-patches "asymptote-gsl2.patch")))) + "16nh02m52mk9a53i8wc6l9vg710gnzr3lfbypcbvamghvaj0458i")))) (build-system gnu-build-system) ;; Note: The 'asy' binary retains a reference to docdir for use with its ;; "help" command in interactive mode, so adding a "doc" output is not @@ -206,13 +206,19 @@ colors, styles, options and details.") (string-append "--with-context=" (assoc-ref %outputs "out") "/share/texmf/tex/context/third")) - #:phases (modify-phases %standard-phases - (add-before 'build 'patch-pdf-viewer - (lambda _ - ;; Default to a free pdf viewer - (substitute* "settings.cc" - (("defaultPDFViewer=\"acroread\"") - "defaultPDFViewer=\"gv\""))))))) + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-pdf-viewer + (lambda _ + ;; Default to a free pdf viewer + (substitute* "settings.cc" + (("defaultPDFViewer=\"acroread\"") + "defaultPDFViewer=\"gv\"")))) + (add-before 'check 'set-HOME + ;; Some tests require write access to $HOME, otherwise leading to + ;; "failed to create directory /homeless-shelter/.asy" error. + (lambda _ + (setenv "HOME" "/tmp")))))) (home-page "http://asymptote.sourceforge.net") (synopsis "Script-based vector graphics language") (description -- cgit 1.4.1 From cba962086da190b474df4f55bf2b50278f519640 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Mon, 2 May 2016 10:20:17 +1000 Subject: gnu: ruby-hashery: Update to 2.1.2. * gnu/packages/ruby.scm (ruby-hashery): Update to 2.1.2. [arguments]: Remove test workaround. --- gnu/packages/ruby.scm | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'gnu/packages') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 2aab8bf415..6c2e08f29d 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3737,24 +3737,20 @@ Rubytest-based test frameworks. It provides the @code{rubytest} executable.") (define-public ruby-hashery (package (name "ruby-hashery") - (version "2.1.1") + (version "2.1.2") (source (origin (method url-fetch) (uri (rubygems-uri "hashery" version)) (sha256 (base32 - "0xawbljsjarl9l7700bka672ixwznzwih4s9i38p1y9mp8hyx54g")))) + "0qj8815bf7q6q7llm5rzdz279gzmpqmqqicxnzv066a020iwqffj")))) (build-system ruby-build-system) (arguments `(#:phases (modify-phases %standard-phases (replace 'check (lambda _ - ;; Remove known test failure documented at - ;; https://github.com/rubyworks/hashery/issues/25 - (substitute* "test/case_key_hash.rb" - (("^ assert\\(s\\)") "")) (and (zero? (system* "qed")) (zero? (system* "rubytest" "-Ilib" "-Itest" "test/")))))))) (native-inputs -- cgit 1.4.1 From b74f64a960542b0679ab13de0dd28adc496cf084 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 2 May 2016 10:55:29 +0200 Subject: gnu: Add r-xnomial. * gnu/packages/statistics.scm (r-xnomial): New variable. --- gnu/packages/statistics.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu/packages') diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2178984d04..3d0faf7572 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1828,6 +1828,34 @@ documents (including DTDs), both local and accessible via HTTP or FTP. Also offers access to an XPath \"interpreter\".") (license license:bsd-2))) +(define-public r-xnomial + (package + (name "r-xnomial") + (version "1.0.4") + (source + (origin (method url-fetch) + (uri (cran-uri "XNomial" version)) + (sha256 + (base32 + "1mwx302576rmsjllbq2clfxilm3hkyp5bw0wmwqbn0kgv5wpy8z6")))) + (properties (quasiquote ((upstream-name . "XNomial")))) + (build-system r-build-system) + (home-page "http://cran.r-project.org/web/packages/XNomial") + (synopsis "Goodness-of-Fit test for multinomial data") + (description + "This package provides an exact Goodness-of-Fit test for +multinomial data with fixed probabilities. It can be used to +determine whether a set of counts fits a given expected ratio. To see +whether a set of observed counts fits an expectation, one can examine +all possible outcomes with @code{xmulti()} or a random sample of them +with @code{xmonte()} and find the probability of an observation +deviating from the expectation by at least as much as the observed. +As a measure of deviation from the expected, one can use the +log-likelihood ratio, the multinomial probability, or the classic +chi-square statistic. A histogram of the test statistic can also be +plotted and compared with the asymptotic curve.") + (license (list license:gpl2+ license:gpl3+)))) + (define-public r-lambda-r (package (name "r-lambda-r") -- cgit 1.4.1