From 2d15f60126a53a841cd81fdc90a162fbb3559a9a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 9 May 2016 16:09:31 +0200 Subject: gnu: java-swt: Use 64-bit archive on x86_64. * gnu/packages/java.scm (java-swt)[source]: Use separate source archive for x86_64. --- gnu/packages/java.scm | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fa6109a07..e1651938b 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -51,21 +51,35 @@ #:use-module (gnu packages xorg) #:use-module (gnu packages zip) #:use-module (gnu packages texinfo) - #:use-module ((srfi srfi-1) #:select (fold alist-delete))) + #:use-module ((srfi srfi-1) #:select (fold alist-delete)) + #:use-module (srfi srfi-11) + #:use-module (ice-9 match)) (define-public java-swt (package (name "java-swt") (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 - "-201506032000/swt-" version "-gtk-linux-x86.zip")) - (sha256 - (base32 - "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q")))) + (source + ;; The types of many variables and procedures differ in the sources + ;; dependent on whether the target architecture is a 32-bit system or a + ;; 64-bit system. Instead of patching the sources on demand in a build + ;; phase we download either the 32-bit archive (which mostly uses "int" + ;; types) or the 64-bit archive (which mostly uses "long" types). + (let ((hash32 "03mhzraikcs4fsz7d3h5af9pw1bbcfd6dglsvbk2ciwimy9zj30q") + (hash64 "1qq0pjll6030v4ml0hifcaaik7sx3fl7ghybfdw95vsvxafwp2ff") + (file32 "x86") + (file64 "x86_64")) + (let-values (((hash file) + (match (or (%current-target-system) (%current-system)) + ("x86_64-linux" (values hash64 file64)) + (_ (values hash32 file32))))) + (origin + (method url-fetch) + (uri (string-append + "http://ftp-stud.fht-esslingen.de/pub/Mirrors/" + "eclipse/eclipse/downloads/drops4/R-" version + "-201506032000/swt-" version "-gtk-linux-" file ".zip")) + (sha256 (base32 hash)))))) (build-system ant-build-system) (arguments `(#:jar-name "swt.jar" -- cgit v1.3 From 73c8d39c4bd5f57feeeb7fae8e3e00e3001b7400 Mon Sep 17 00:00:00 2001 From: 8p8c Date: Mon, 6 Jun 2016 23:27:10 +0300 Subject: gnu: Add font-hack. * gnu/packages/fonts.scm (font-hack): New variable. Signed-off-by: 宋文武 --- gnu/packages/fonts.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 893db56ee..fd3962dbc 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2016 Nils Gillmann ;;; Copyright © 2016 Jookia <166291@gmail.com> ;;; Copyright © 2016 Eric Bavier +;;; Copyright © 2016 Dmitry Nikolaev ;;; ;;; This file is part of GNU Guix. ;;; @@ -808,3 +809,57 @@ 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))) + +(define-public font-hack + (package + (name "font-hack") + (version "2.020") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/chrissimpkins/Hack/releases/download/v" + version "/Hack-v" + (string-replace-substring version "." "_") + "-ttf.zip")) + (sha256 + (base32 + "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let ((PATH (string-append (assoc-ref %build-inputs + "unzip") + "/bin")) + (font-dir (string-append %output + "/share/fonts/truetype")) + (doc-dir (string-append %output "/share/doc/" + ,name "-" ,version))) + (setenv "PATH" PATH) + (system* "unzip" (assoc-ref %build-inputs "source")) + + (mkdir-p font-dir) + (mkdir-p doc-dir) + (for-each (lambda (ttf) + (copy-file ttf + (string-append font-dir "/" ttf))) + (find-files "." "\\.ttf$")) + (for-each (lambda (doc) + (copy-file doc + (string-append doc-dir "/" doc))) + (find-files "." "\\.txt$")))))) + (native-inputs + `(("source" ,source) + ("unzip" ,unzip))) + (home-page "https://sourcefoundry.org/hack/") + (synopsis "Typeface designed for sourcecode") + (description + "Hack is designed to be a workhorse typeface for code, it expands upon +the Bitstream Vera & DejaVu projects, provides 1561 glyphs including +powerline support.") + (license (license:x11-style + "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md" + "Hack Open Font License v2.0")))) -- cgit v1.3 From d0b6fed6b85661a761df87ce9ceb0074603e9608 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 7 Jun 2016 08:27:10 +0200 Subject: gnu: Add python-ply. * gnu/packages/python.scm (python-ply, python2-ply): New variables. Signed-off-by: Leo Famulari --- gnu/packages/python.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dfbf2cc91..143fc144b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9009,3 +9009,31 @@ focus on event-based network programming and multiprotocol integration.") (define-public python2-twisted (package-with-python2 python-twisted)) + +(define-public python-ply + (package + (name "python-ply") + (version "3.8") + (source + (origin + (method url-fetch) + (uri (string-append + "https://pypi.python.org/packages/" + "96/e0/430fcdb6b3ef1ae534d231397bee7e9304be14a47a267e82ebcb3323d0b5" + "/ply-" version ".tar.gz")) + (sha256 + (base32 + "1f70ipynmiy09k6px2j7v4w5cdrc21za3xs2k6f1bsvb0bzvvlg7")))) + (build-system python-build-system) + (home-page "http://www.dabeaz.com/ply/") + (synopsis "Python Lex & Yacc") + (description "PLY is a @code{lex}/@code{yacc} implemented purely in Python. +It uses LR parsing and does extensive error checking.") + (license bsd-3) + (properties `((python2-variant . ,(delay python2-ply)))))) + +(define-public python2-ply + (package + (inherit (package-with-python2 + (strip-python2-variant python-ply))) + (native-inputs `(("python2-setuptools" ,python2-setuptools))))) -- cgit v1.3 From bcd2982fdf0c6a53175aa03f44ad51415d8b6b98 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Sun, 1 Nov 2015 20:45:09 +0100 Subject: gnu: Add higan. * gnu/packages/games.scm (higan): New variable. --- gnu/packages/games.scm | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 368f09632..4181ffbca 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2244,3 +2244,96 @@ Red Eclipse provides fast paced and accessible gameplay.") license:cc-by-sa3.0 license:cc-by3.0 license:cc0))))) + +(define-public higan + (package + (name "higan") + (version "098") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/TaylanUB/higan/archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "12snxrk8wa94x3l69qcimgm0xc22zjgf7vzhckp2lzyfbf27950v")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("ao" ,ao) + ("eudev" ,eudev) + ("gtk+" ,gtk+-2) + ("gtksourceview-2" ,gtksourceview-2) + ("libxv" ,libxv) + ("mesa" ,mesa) + ("openal" ,openal) + ("pulseaudio" ,pulseaudio) + ("sdl" ,sdl))) + (arguments + '(#:phases + (let ((build-phase (assoc-ref %standard-phases 'build)) + (install-phase (assoc-ref %standard-phases 'install))) + (modify-phases %standard-phases + ;; The higan build system has no configure phase. + (delete 'configure) + (add-before 'build 'chdir-to-higan + (lambda _ + (chdir "higan"))) + (add-before 'install 'create-/share/applications + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; It seems the author forgot to do this in the Makefile. + (mkdir-p (string-append out "/share/applications"))))) + (add-after 'install 'chdir-to-icarus + (lambda _ + (chdir "../icarus"))) + (add-after 'chdir-to-icarus 'build-icarus build-phase) + (add-after 'build-icarus 'install-icarus install-phase) + (add-after 'install-icarus 'wrap-higan-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (higan (string-append bin "/higan")) + (higan-original (string-append higan "-original")) + (bash (string-append (assoc-ref inputs "bash") + "/bin/bash")) + (coreutils (assoc-ref inputs "coreutils")) + (mkdir (string-append coreutils "/bin/mkdir")) + (cp (string-append coreutils "/bin/cp")) + (cp-r (string-append cp " -r --no-preserve=mode"))) + ;; First, have the executable make sure ~/.local/share/higan + ;; contains up to date files. Higan insists on looking there + ;; for these data files. + (rename-file higan higan-original) + (with-output-to-file higan + (lambda () + (display + (string-append + "#!" bash "\n" + ;; higan doesn't respect $XDG_DATA_HOME + mkdir " -p ~/.local/share\n" + cp-r " " out "/share/higan ~/.local/share\n" + "exec " higan-original)))) + (chmod higan #o555) + ;; Second, make sure higan will find icarus in PATH. + (wrap-program higan + `("PATH" ":" prefix (,bin)))))))) + #:make-flags + (list "compiler=g++" + (string-append "prefix=" (assoc-ref %outputs "out"))) + ;; There is no test suite. + #:tests? #f)) + (home-page "http://byuu.org/emulation/higan/") + (synopsis "Nintendo multi-system emulator") + (description + "higan (formerly bsnes) is an emulator for multiple Nintendo video game +consoles, including the Nintendo Entertainment System (NES/Famicom), Super +Nintendo Entertainment System (SNES/Super Famicom), Game Boy, Game Boy +Color (GBC), and Game Boy Advance (GBA). It also supports the subsystems +Super Game Boy, BS-X Satellaview, and Sufami Turbo.") + ;; As noted in these files among more: + ;; - icarus/icarus.cpp + ;; - higan/emulator/emulator.hpp + (license license:gpl3))) -- cgit v1.3 From b402cb774113c9dfa2e22a03d5ca2a39f8cbe3ca Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 7 Jun 2016 22:54:34 -0400 Subject: gnu: libressl: Update to 2.3.5. * gnu/packages/tls.scm (libressl): Update to 2.3.5. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 0b0a2a2d3..e543a7e3f 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -321,7 +321,7 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.3.4") + (version "2.3.5") (source (origin (method url-fetch) @@ -330,7 +330,7 @@ required structures.") version ".tar.gz")) (sha256 (base32 - "1ag65pbvdikqj5y1w780jicl3ngi9ld2332ki6794y0gcar3a4bs")))) + "0fvmifz61zfq6byy4dh1qqdg9fpbdsyldjwx5hlcgg6ywxf2f9gl")))) (build-system gnu-build-system) (native-search-paths ;; FIXME: These two variables must designate a single file or directory -- cgit v1.3 From 1e12924ae5e54eea544eed7b1f632a483e425e46 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 3 Jun 2016 15:49:23 +1000 Subject: gnu: Add ruby-tzinfo-data. * gnu/packages/ruby.scm (ruby-tzinfo-data): New variable. * gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../ruby-tzinfo-data-ignore-broken-test.patch | 13 +++++++++ gnu/packages/ruby.scm | 32 ++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index d3e72629b..1a6178243 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -733,6 +733,7 @@ dist_patch_DATA = \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ %D%/packages/patches/ruby-symlinkfix.patch \ + %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ %D%/packages/patches/rush-CVE-2013-6889.patch \ %D%/packages/patches/sed-hurd-path-max.patch \ %D%/packages/patches/scheme48-tests.patch \ diff --git a/gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch b/gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch new file mode 100644 index 000000000..5d1f04b99 --- /dev/null +++ b/gnu/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch @@ -0,0 +1,13 @@ +diff --git a/test/tc_definitions.rb b/test/tc_definitions.rb +index 7b20a3d..75b9798 100644 +--- a/test/tc_definitions.rb ++++ b/test/tc_definitions.rb +@@ -58,7 +58,7 @@ class TCDefinitions < Minitest::Test + identifier = $3.to_sym + is_dst = $4 == '1' + +- if utc && local ++ if utc && local && !line.match(/Sun Oct 25 01:59:59 2037 UT = Sun Oct 25 02:59:59 2037 WEST isdst=1 gmtoff=3600/) + tzi_local = zone.utc_to_local(utc) + tzi_period = zone.period_for_utc(utc) + tzi_identifier = tzi_period.zone_identifier diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index c6b6eedb9..077157cf0 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2101,6 +2101,38 @@ aware transformations between times in different time zones.") (home-page "http://tzinfo.github.io") (license license:expat))) +(define-public ruby-tzinfo-data + (package + (name "ruby-tzinfo-data") + (version "1.2016.4") + (source + (origin + (method url-fetch) + ;; Download from GitHub because the rubygems version does not contain + ;; Rakefile or tests. + (uri (string-append + "https://github.com/tzinfo/tzinfo-data/archive/v" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0jnm8i379hn48cq5n39j7wzm08i0mw73kqzx3cqbxpiwlb1hnz80")) + ;; Remove the known test failure. + ;; https://github.com/tzinfo/tzinfo-data/issues/10 + ;; https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1587128 + (patches (search-patches + "ruby-tzinfo-data-ignore-broken-test.patch")))) + (build-system ruby-build-system) + (propagated-inputs + `(("ruby-tzinfo" ,ruby-tzinfo))) + (synopsis "Data from the IANA Time Zone database") + (description + "This library provides @code{TZInfo::Data}, which contains data from the +IANA Time Zone database packaged as Ruby modules for use with @code{TZInfo}.") + (home-page "http://tzinfo.github.io") + (license license:expat))) + (define-public ruby-rb-inotify (package (name "ruby-rb-inotify") -- cgit v1.3 From 606ee9a113a82c585abe3701d2855be3544d159b Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 3 Jun 2016 15:50:58 +1000 Subject: gnu: ruby-activesupport: Add 'ruby-tzinfo-data' propagated input. * gnu/packages/ruby.scm (ruby-activesupport)[propagated-inputs]: Add 'ruby-tzinfo-data'. --- gnu/packages/ruby.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 077157cf0..212ab22ee 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2541,7 +2541,8 @@ you about the changes.") ("ruby-json" ,ruby-json) ("ruby-minitest" ,ruby-minitest) ("ruby-thread-safe" ,ruby-thread-safe) - ("ruby-tzinfo" ,ruby-tzinfo))) + ("ruby-tzinfo" ,ruby-tzinfo) + ("ruby-tzinfo-data" ,ruby-tzinfo-data))) (synopsis "Ruby on Rails utility library") (description "ActiveSupport is a toolkit of support libraries and Ruby core extensions extracted from the Rails framework. It includes support for -- cgit v1.3 From 3cc78097457413e503e7ba004a01edc4847ae927 Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 3 Jun 2016 15:53:50 +1000 Subject: gnu: Add ruby-timecop. * gnu/packages/ruby.scm (ruby-timecop): New variable. --- gnu/packages/ruby.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 212ab22ee..10c1230bd 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3960,3 +3960,39 @@ comprehensive ORM layer for mapping records to Ruby objects and handling associated records.") (home-page "http://sequel.jeremyevans.net") (license license:expat))) + +(define-public ruby-timecop + (package + (name "ruby-timecop") + (version "0.8.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "timecop" version)) + (sha256 + (base32 + "0vwbkwqyxhavzvr1820hqwz43ylnfcf6w4x6sag0nghi44sr9kmx")))) + (build-system ruby-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-check-rubylib + (lambda _ + ;; Set RUBYLIB so timecop tests finds its own lib. + (setenv "RUBYLIB" "lib") + #t))))) + (native-inputs + `(("bundler" ,bundler) + ("ruby-minitest-rg" ,ruby-minitest-rg) + ("ruby-mocha" ,ruby-mocha) + ("ruby-activesupport" ,ruby-activesupport))) + (synopsis "Test mocks for time-dependent functions.") + (description + "Timecop provides \"time travel\" and \"time freezing\" capabilities, +making it easier to test time-dependent code. It provides a unified method to +mock @code{Time.now}, @code{Date.today}, and @code{DateTime.now} in a single +call.") + (home-page "https://github.com/travisjeffery/timecop") + (license license:expat))) + + -- cgit v1.3 From dae620b8fe83bada3e83579c1a02e2bac45adfef Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Fri, 3 Jun 2016 15:55:36 +1000 Subject: gnu: Add ruby-concurrent. * gnu/packages/ruby.scm (ruby-concurrent): New variable. * gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../ruby-concurrent-ignore-broken-test.patch | 16 ++++++ gnu/packages/ruby.scm | 57 ++++++++++++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 1a6178243..ff476be44 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -732,6 +732,7 @@ dist_patch_DATA = \ %D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/rpm-CVE-2014-8118.patch \ %D%/packages/patches/rsem-makefile.patch \ + %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ %D%/packages/patches/ruby-symlinkfix.patch \ %D%/packages/patches/ruby-tzinfo-data-ignore-broken-test.patch\ %D%/packages/patches/rush-CVE-2013-6889.patch \ diff --git a/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch b/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch new file mode 100644 index 000000000..4e801c322 --- /dev/null +++ b/gnu/packages/patches/ruby-concurrent-ignore-broken-test.patch @@ -0,0 +1,16 @@ +This test appears to fail in GNU Guix and elsewhere. It has been reported +upstream at https://github.com/puma/puma/issues/995 + +diff --git a/spec/concurrent/channel_spec.rb b/spec/concurrent/channel_spec.rb +index d70fba8..4f29a8b 100644 +--- a/spec/concurrent/channel_spec.rb ++++ b/spec/concurrent/channel_spec.rb +@@ -598,7 +598,7 @@ module Concurrent + }.to raise_error(ArgumentError) + end + +- it 'loops until the block returns false' do ++ xit 'loops until the block returns false' do + actual = 0 + expected = 3 + latch = Concurrent::CountDownLatch.new(expected) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 10c1230bd..527f76b40 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3995,4 +3995,61 @@ call.") (home-page "https://github.com/travisjeffery/timecop") (license license:expat))) +(define-public ruby-concurrent + (package + (name "ruby-concurrent") + (version "1.0.2") + (source + (origin + (method url-fetch) + ;; Download from GitHub because the rubygems version does not contain + ;; Rakefile. + (uri (string-append + "https://github.com/ruby-concurrency/concurrent-ruby/archive/v" + version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x3g2admp14ykwfxidsicqbhlfsnxh9wyc806np4i15hws4if1d8")) + ;; Exclude failing test reported at + ;; https://github.com/ruby-concurrency/concurrent-ruby/issues/534 + (patches (search-patches "ruby-concurrent-ignore-broken-test.patch")))) + (build-system ruby-build-system) + (arguments + `(#:test-target "spec" + #:phases + (modify-phases %standard-phases + (add-before 'build 'remove-git-lsfiles-and-extra-gemspecs + (lambda _ + (for-each (lambda (file) + (substitute* file + (("git ls-files") "find * |sort"))) + (list "concurrent-ruby.gemspec" + "support/file_map.rb")) + #t)) + (add-before 'build 'remove-extra-gemspecs + (lambda _ + ;; Delete extra gemspec files so 'first-gemspec' chooses the + ;; correct one. + (delete-file "concurrent-ruby-edge.gemspec") + (delete-file "concurrent-ruby-ext.gemspec") + #t)) + (add-before 'check 'rake-compile + ;; Fix the test error described at + ;; https://github.com/ruby-concurrency/concurrent-ruby/pull/408 + (lambda _ (zero? (system* "rake" "compile"))))))) + (native-inputs + `(("ruby-rake-compiler" ,ruby-rake-compiler) + ("ruby-yard" ,ruby-yard) + ("ruby-rspec" ,ruby-rspec) + ("ruby-timecop" ,ruby-timecop))) + (synopsis "Concurrency tools for Ruby") + (description + "This library provides modern concurrency tools including agents, +futures, promises, thread pools, actors, supervisors, and more. It is +inspired by Erlang, Clojure, Go, JavaScript, actors and classic concurrency +patterns.") + (home-page "http://www.concurrent-ruby.com") + (license license:expat))) -- cgit v1.3 From a134cc8e93428bf6f309de54e5c944705d30418f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 8 Jun 2016 17:11:06 +0300 Subject: gnu: vlc: Update to 2.2.4 [fixes CVE-2016-5108]. * gnu/packages/video.scm (vlc): Update to 2.2.4. [inputs]: Remove qt, add qtbase. [arguments]: Add phase to disable display test. --- gnu/packages/video.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index eae7f64d8..692f3645e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -559,15 +559,15 @@ audio/video codec library.") (define-public vlc (package (name "vlc") - (version "2.2.1") + (version "2.2.4") (source (origin (method url-fetch) (uri (string-append - "http://download.videolan.org/pub/videolan/vlc/" + "https://download.videolan.org/pub/videolan/vlc/" version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")) + "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn")) (modules '((guix build utils))) (snippet ;; There are two occurrences where __DATE__ and __TIME__ are @@ -609,7 +609,8 @@ audio/video codec library.") ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) - ("qt" ,qt) + ("qtbase" ,qtbase) + ;("qtx11extras" ,qtx11extras) ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("speex" ,speex) @@ -623,6 +624,13 @@ audio/video codec library.") #:phases (modify-phases %standard-phases + (add-before 'configure 'remove-visual-tests + ;; Some of the tests require using the display to test out VLC, + ;; which fails in our sandboxed build system + (lambda _ + (substitute* "test/run_vlc.sh" + (("./vlc --ignore-config") "echo")) + #t)) (add-after 'install 'regenerate-plugin-cache (lambda* (#:key outputs #:allow-other-keys) ;; The 'install-exec-hook' rule in the top-level Makefile.am -- cgit v1.3 From c7c49446ebcc48c2b2136f4475ab66aecb63d18e Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 8 Jun 2016 09:53:56 -0400 Subject: gnu: libvpx: Add fix for CVE-2016-2818. * gnu/packages/patches/libvpx-CVE-2016-2818.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/video.scm (libvpx)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/patches/libvpx-CVE-2016-2818.patch | 36 +++++++++++++++++++++++++ gnu/packages/video.scm | 3 ++- 3 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libvpx-CVE-2016-2818.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index ff476be44..cc236a7d1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -606,6 +606,7 @@ dist_patch_DATA = \ %D%/packages/patches/libtiff-oob-write-in-nextdecode.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libunwind-CVE-2015-3239.patch \ + %D%/packages/patches/libvpx-CVE-2016-2818.patch \ %D%/packages/patches/libwmf-CAN-2004-0941.patch \ %D%/packages/patches/libwmf-CVE-2006-3376.patch \ %D%/packages/patches/libwmf-CVE-2007-0455.patch \ diff --git a/gnu/packages/patches/libvpx-CVE-2016-2818.patch b/gnu/packages/patches/libvpx-CVE-2016-2818.patch new file mode 100644 index 000000000..1fdf01cbc --- /dev/null +++ b/gnu/packages/patches/libvpx-CVE-2016-2818.patch @@ -0,0 +1,36 @@ +Patch contents copied from Mozilla esr45 changeset 312077:7ebfe49f001c + + changeset: 312077:7ebfe49f001c + user: Randell Jesup + Date: Fri Apr 15 23:11:01 2016 -0400 + summary: Bug 1263384: validate input frames against configured resolution in vp8 r=rillian, a=ritu,lizzard + + MozReview-Commit-ID: BxDCnJe0mzs + +--- libvpx-1.5.0/vp8/vp8_cx_iface.c.orig 2015-11-09 17:12:38.000000000 -0500 ++++ libvpx-1.5.0/vp8/vp8_cx_iface.c 2016-06-08 08:48:46.037213092 -0400 +@@ -925,11 +925,19 @@ + { + res = image2yuvconfig(img, &sd); + +- if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags, +- &sd, dst_time_stamp, dst_end_time_stamp)) +- { +- VP8_COMP *cpi = (VP8_COMP *)ctx->cpi; +- res = update_error_state(ctx, &cpi->common.error); ++ if (sd.y_width != ctx->cfg.g_w || sd.y_height != ctx->cfg.g_h) { ++ /* from vp8_encoder.h for g_w/g_h: ++ "Note that the frames passed as input to the encoder must have this resolution" ++ */ ++ ctx->base.err_detail = "Invalid input frame resolution"; ++ res = VPX_CODEC_INVALID_PARAM; ++ } else { ++ if (vp8_receive_raw_frame(ctx->cpi, ctx->next_frame_flag | lib_flags, ++ &sd, dst_time_stamp, dst_end_time_stamp)) ++ { ++ VP8_COMP *cpi = (VP8_COMP *)ctx->cpi; ++ res = update_error_state(ctx, &cpi->common.error); ++ } + } + + /* reset for next frame */ diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 692f3645e..eee04faec 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -839,7 +839,8 @@ projects while introducing many more.") name "-" version ".tar.bz2")) (sha256 (base32 - "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")))) + "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")) + (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.3 From 98d9182205e6655a0a55f1eadc84a0c9a1cdd9fa Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 8 Jun 2016 09:54:54 -0400 Subject: gnu: icecat: Add fixes for CVE-2016-{2818,2819,2821,2824,2828,2831}. * gnu/packages/patches/icecat-CVE-2016-2818-pt1.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt2.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt3.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt4.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt5.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt6.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt7.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt8.patch, gnu/packages/patches/icecat-CVE-2016-2818-pt9.patch, gnu/packages/patches/icecat-CVE-2016-2819.patch, gnu/packages/patches/icecat-CVE-2016-2821.patch, gnu/packages/patches/icecat-CVE-2016-2824.patch, gnu/packages/patches/icecat-CVE-2016-2828.patch, gnu/packages/patches/icecat-CVE-2016-2831.patch: New files. * gnu/local.mk (dist_patch_DATA): Add them. * gnu/packages/gnuzilla.scm (icecat)[source]: Add patches. --- gnu/local.mk | 14 ++ gnu/packages/gnuzilla.scm | 16 +- .../patches/icecat-CVE-2016-2818-pt1.patch | 62 +++++ .../patches/icecat-CVE-2016-2818-pt2.patch | 29 +++ .../patches/icecat-CVE-2016-2818-pt3.patch | 18 ++ .../patches/icecat-CVE-2016-2818-pt4.patch | 61 +++++ .../patches/icecat-CVE-2016-2818-pt5.patch | 266 ++++++++++++++++++++ .../patches/icecat-CVE-2016-2818-pt6.patch | 17 ++ .../patches/icecat-CVE-2016-2818-pt7.patch | 33 +++ .../patches/icecat-CVE-2016-2818-pt8.patch | 267 +++++++++++++++++++++ .../patches/icecat-CVE-2016-2818-pt9.patch | 188 +++++++++++++++ gnu/packages/patches/icecat-CVE-2016-2819.patch | 102 ++++++++ gnu/packages/patches/icecat-CVE-2016-2821.patch | 16 ++ gnu/packages/patches/icecat-CVE-2016-2824.patch | 85 +++++++ gnu/packages/patches/icecat-CVE-2016-2828.patch | 185 ++++++++++++++ gnu/packages/patches/icecat-CVE-2016-2831.patch | 120 +++++++++ 16 files changed, 1478 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt1.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt2.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt3.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt4.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt5.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt6.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt7.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt8.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2818-pt9.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2819.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2821.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2824.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2828.patch create mode 100644 gnu/packages/patches/icecat-CVE-2016-2831.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index cc236a7d1..8915c46cd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -549,6 +549,20 @@ dist_patch_DATA = \ %D%/packages/patches/hypre-doc-tables.patch \ %D%/packages/patches/hypre-ldflags.patch \ %D%/packages/patches/icecat-avoid-bundled-includes.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt1.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt2.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt3.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt4.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt5.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt6.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt7.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt8.patch \ + %D%/packages/patches/icecat-CVE-2016-2818-pt9.patch \ + %D%/packages/patches/icecat-CVE-2016-2819.patch \ + %D%/packages/patches/icecat-CVE-2016-2821.patch \ + %D%/packages/patches/icecat-CVE-2016-2824.patch \ + %D%/packages/patches/icecat-CVE-2016-2828.patch \ + %D%/packages/patches/icecat-CVE-2016-2831.patch \ %D%/packages/patches/icedtea-remove-overrides.patch \ %D%/packages/patches/icu4c-CVE-2014-6585.patch \ %D%/packages/patches/icu4c-CVE-2015-1270.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 4ffa3ac16..46342ee24 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -298,7 +298,21 @@ standards.") (base32 "0v4k47ziqsyfksv9sn4v1xvk4q414rc883hb1qzld63grj2nxxwp")) (patches (search-patches - "icecat-avoid-bundled-includes.patch")) + "icecat-avoid-bundled-includes.patch" + "icecat-CVE-2016-2818-pt1.patch" + "icecat-CVE-2016-2818-pt2.patch" + "icecat-CVE-2016-2818-pt3.patch" + "icecat-CVE-2016-2818-pt4.patch" + "icecat-CVE-2016-2818-pt5.patch" + "icecat-CVE-2016-2818-pt6.patch" + "icecat-CVE-2016-2818-pt7.patch" + "icecat-CVE-2016-2818-pt8.patch" + "icecat-CVE-2016-2818-pt9.patch" + "icecat-CVE-2016-2819.patch" + "icecat-CVE-2016-2821.patch" + "icecat-CVE-2016-2824.patch" + "icecat-CVE-2016-2828.patch" + "icecat-CVE-2016-2831.patch")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt1.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt1.patch new file mode 100644 index 000000000..57bc45f3c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt1.patch @@ -0,0 +1,62 @@ + changeset: 312039:4290826b078c + user: Timothy Nikkel + Date: Fri May 13 06:09:38 2016 +0200 + summary: Bug 1261230. r=mats, a=ritu + +diff -r 45a59425b498 -r 4290826b078c layout/generic/nsSubDocumentFrame.cpp +--- a/layout/generic/nsSubDocumentFrame.cpp Tue May 10 14:12:20 2016 +0200 ++++ b/layout/generic/nsSubDocumentFrame.cpp Fri May 13 06:09:38 2016 +0200 +@@ -132,6 +132,7 @@ + nsCOMPtr oldContainerDoc; + nsView* detachedViews = + frameloader->GetDetachedSubdocView(getter_AddRefs(oldContainerDoc)); ++ frameloader->SetDetachedSubdocView(nullptr, nullptr); + if (detachedViews) { + if (oldContainerDoc == aContent->OwnerDoc()) { + // Restore stashed presentation. +@@ -142,7 +143,6 @@ + frameloader->Hide(); + } + } +- frameloader->SetDetachedSubdocView(nullptr, nullptr); + } + + nsContentUtils::AddScriptRunner(new AsyncFrameInit(this)); +@@ -936,13 +936,16 @@ + if (!mPresShell->IsDestroying()) { + mPresShell->FlushPendingNotifications(Flush_Frames); + } ++ ++ // Either the frame has been constructed by now, or it never will be, ++ // either way we want to clear the stashed views. ++ mFrameLoader->SetDetachedSubdocView(nullptr, nullptr); ++ + nsSubDocumentFrame* frame = do_QueryFrame(mFrameElement->GetPrimaryFrame()); + if ((!frame && mHideViewerIfFrameless) || + mPresShell->IsDestroying()) { + // Either the frame element has no nsIFrame or the presshell is being +- // destroyed. Hide the nsFrameLoader, which destroys the presentation, +- // and clear our references to the stashed presentation. +- mFrameLoader->SetDetachedSubdocView(nullptr, nullptr); ++ // destroyed. Hide the nsFrameLoader, which destroys the presentation. + mFrameLoader->Hide(); + } + return NS_OK; +@@ -968,7 +971,7 @@ + // Detach the subdocument's views and stash them in the frame loader. + // We can then reattach them if we're being reframed (for example if + // the frame has been made position:fixed). +- nsFrameLoader* frameloader = FrameLoader(); ++ RefPtr frameloader = FrameLoader(); + if (frameloader) { + nsView* detachedViews = ::BeginSwapDocShellsForViews(mInnerView->GetFirstChild()); + frameloader->SetDetachedSubdocView(detachedViews, mContent->OwnerDoc()); +@@ -977,7 +980,7 @@ + // safely determine whether the frame is being reframed or destroyed. + nsContentUtils::AddScriptRunner( + new nsHideViewer(mContent, +- mFrameLoader, ++ frameloader, + PresContext()->PresShell(), + (mDidCreateDoc || mCallingShow))); + } diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt2.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt2.patch new file mode 100644 index 000000000..843e2eb24 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt2.patch @@ -0,0 +1,29 @@ + changeset: 312044:09418166fd77 + user: Jon Coppeard + Date: Wed May 11 10:14:45 2016 +0100 + summary: Bug 1264575 - Add missing pre-barrier in Ion r=jandem a=ritu + +diff -r 9cc65cca1f71 -r 09418166fd77 js/src/jit-test/tests/self-hosting/bug1264575.js +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ b/js/src/jit-test/tests/self-hosting/bug1264575.js Wed May 11 10:14:45 2016 +0100 +@@ -0,0 +1,7 @@ ++function f(x, [y]) {} ++f(0, []); ++// jsfunfuzz-generated ++let i = 0; ++for (var z of [0, 0, 0]) { ++ verifyprebarriers(); ++} +diff -r 9cc65cca1f71 -r 09418166fd77 js/src/jit/MCallOptimize.cpp +--- a/js/src/jit/MCallOptimize.cpp Mon May 16 15:11:24 2016 -0400 ++++ b/js/src/jit/MCallOptimize.cpp Wed May 11 10:14:45 2016 +0100 +@@ -2263,7 +2263,8 @@ + + callInfo.setImplicitlyUsedUnchecked(); + +- MStoreFixedSlot* store = MStoreFixedSlot::New(alloc(), callInfo.getArg(0), slot, callInfo.getArg(2)); ++ MStoreFixedSlot* store = ++ MStoreFixedSlot::NewBarriered(alloc(), callInfo.getArg(0), slot, callInfo.getArg(2)); + current->add(store); + current->push(store); + diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt3.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt3.patch new file mode 100644 index 000000000..fab003158 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt3.patch @@ -0,0 +1,18 @@ + changeset: 312051:9ec3d076fbee + parents: 312049:e0a272d5e162 + user: Eric Faust + Date: Wed May 04 15:54:43 2016 -0700 + summary: Bug 1269729 - Handle another OOM case on ARM. (r=jolesen) a=ritu + +diff -r e0a272d5e162 -r 9ec3d076fbee js/src/jit/arm/CodeGenerator-arm.cpp +--- a/js/src/jit/arm/CodeGenerator-arm.cpp Tue May 17 08:26:37 2016 -0400 ++++ b/js/src/jit/arm/CodeGenerator-arm.cpp Wed May 04 15:54:43 2016 -0700 +@@ -1116,7 +1116,7 @@ + for (int32_t i = 0; i < cases; i++) { + CodeLabel cl; + masm.writeCodePointer(cl.dest()); +- ool->addCodeLabel(cl); ++ masm.propagateOOM(ool->addCodeLabel(cl)); + } + addOutOfLineCode(ool, mir); + } diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt4.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt4.patch new file mode 100644 index 000000000..0973203e0 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt4.patch @@ -0,0 +1,61 @@ + changeset: 312055:b74f1ab939d2 + user: Olli Pettay + Date: Mon May 16 21:42:24 2016 +0300 + summary: Bug 1273202, make sure to not keep objects alive too long because of some useless event dispatching, r=jwatt a=ritu + +diff -r 072992bf176d -r b74f1ab939d2 dom/html/HTMLInputElement.cpp +--- a/dom/html/HTMLInputElement.cpp Sun May 15 17:03:06 2016 +0300 ++++ b/dom/html/HTMLInputElement.cpp Mon May 16 21:42:24 2016 +0300 +@@ -1168,7 +1168,7 @@ + mFileList->Disconnect(); + } + if (mNumberControlSpinnerIsSpinning) { +- StopNumberControlSpinnerSpin(); ++ StopNumberControlSpinnerSpin(eDisallowDispatchingEvents); + } + DestroyImageLoadingContent(); + FreeData(); +@@ -3721,7 +3721,7 @@ + } + + void +-HTMLInputElement::StopNumberControlSpinnerSpin() ++HTMLInputElement::StopNumberControlSpinnerSpin(SpinnerStopState aState) + { + if (mNumberControlSpinnerIsSpinning) { + if (nsIPresShell::GetCapturingContent() == this) { +@@ -3732,11 +3732,16 @@ + + mNumberControlSpinnerIsSpinning = false; + +- FireChangeEventIfNeeded(); ++ if (aState == eAllowDispatchingEvents) { ++ FireChangeEventIfNeeded(); ++ } + + nsNumberControlFrame* numberControlFrame = + do_QueryFrame(GetPrimaryFrame()); + if (numberControlFrame) { ++ MOZ_ASSERT(aState == eAllowDispatchingEvents, ++ "Shouldn't have primary frame for the element when we're not " ++ "allowed to dispatch events to it anymore."); + numberControlFrame->SpinnerStateChanged(); + } + } +diff -r 072992bf176d -r b74f1ab939d2 dom/html/HTMLInputElement.h +--- a/dom/html/HTMLInputElement.h Sun May 15 17:03:06 2016 +0300 ++++ b/dom/html/HTMLInputElement.h Mon May 16 21:42:24 2016 +0300 +@@ -721,7 +721,12 @@ + HTMLInputElement* GetOwnerNumberControl(); + + void StartNumberControlSpinnerSpin(); +- void StopNumberControlSpinnerSpin(); ++ enum SpinnerStopState { ++ eAllowDispatchingEvents, ++ eDisallowDispatchingEvents ++ }; ++ void StopNumberControlSpinnerSpin(SpinnerStopState aState = ++ eAllowDispatchingEvents); + void StepNumberControlForUserEvent(int32_t aDirection); + + /** diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt5.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt5.patch new file mode 100644 index 000000000..cd98d0b28 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt5.patch @@ -0,0 +1,266 @@ + changeset: 312063:88bea96c802a + user: Andrea Marchesini + Date: Tue May 10 10:52:19 2016 +0200 + summary: Bug 1267130 - Improve the URL segment calculation, r=valentin a=ritu + +diff -r 28dcecced055 -r 88bea96c802a netwerk/base/nsStandardURL.cpp +--- a/netwerk/base/nsStandardURL.cpp Wed May 18 11:55:29 2016 +1200 ++++ b/netwerk/base/nsStandardURL.cpp Tue May 10 10:52:19 2016 +0200 +@@ -475,19 +475,28 @@ + } + + uint32_t +-nsStandardURL::AppendSegmentToBuf(char *buf, uint32_t i, const char *str, URLSegment &seg, const nsCString *escapedStr, bool useEscaped) ++nsStandardURL::AppendSegmentToBuf(char *buf, uint32_t i, const char *str, ++ const URLSegment &segInput, URLSegment &segOutput, ++ const nsCString *escapedStr, ++ bool useEscaped, int32_t *diff) + { +- if (seg.mLen > 0) { ++ MOZ_ASSERT(segInput.mLen == segOutput.mLen); ++ ++ if (diff) *diff = 0; ++ ++ if (segInput.mLen > 0) { + if (useEscaped) { +- seg.mLen = escapedStr->Length(); +- memcpy(buf + i, escapedStr->get(), seg.mLen); ++ MOZ_ASSERT(diff); ++ segOutput.mLen = escapedStr->Length(); ++ *diff = segOutput.mLen - segInput.mLen; ++ memcpy(buf + i, escapedStr->get(), segOutput.mLen); ++ } else { ++ memcpy(buf + i, str + segInput.mPos, segInput.mLen); + } +- else +- memcpy(buf + i, str + seg.mPos, seg.mLen); +- seg.mPos = i; +- i += seg.mLen; ++ segOutput.mPos = i; ++ i += segOutput.mLen; + } else { +- seg.mPos = i; ++ segOutput.mPos = i; + } + return i; + } +@@ -598,6 +607,20 @@ + } + } + ++ // We must take a copy of every single segment because they are pointing to ++ // the |spec| while we are changing their value, in case we must use ++ // encoded strings. ++ URLSegment username(mUsername); ++ URLSegment password(mPassword); ++ URLSegment host(mHost); ++ URLSegment path(mPath); ++ URLSegment filepath(mFilepath); ++ URLSegment directory(mDirectory); ++ URLSegment basename(mBasename); ++ URLSegment extension(mExtension); ++ URLSegment query(mQuery); ++ URLSegment ref(mRef); ++ + // + // generate the normalized URL string + // +@@ -607,9 +630,10 @@ + char *buf; + mSpec.BeginWriting(buf); + uint32_t i = 0; ++ int32_t diff = 0; + + if (mScheme.mLen > 0) { +- i = AppendSegmentToBuf(buf, i, spec, mScheme); ++ i = AppendSegmentToBuf(buf, i, spec, mScheme, mScheme); + net_ToLowerCase(buf + mScheme.mPos, mScheme.mLen); + i = AppendToBuf(buf, i, "://", 3); + } +@@ -619,15 +643,22 @@ + + // append authority + if (mUsername.mLen > 0) { +- i = AppendSegmentToBuf(buf, i, spec, mUsername, &encUsername, useEncUsername); +- if (mPassword.mLen >= 0) { ++ i = AppendSegmentToBuf(buf, i, spec, username, mUsername, ++ &encUsername, useEncUsername, &diff); ++ ShiftFromPassword(diff); ++ if (password.mLen >= 0) { + buf[i++] = ':'; +- i = AppendSegmentToBuf(buf, i, spec, mPassword, &encPassword, useEncPassword); ++ i = AppendSegmentToBuf(buf, i, spec, password, mPassword, ++ &encPassword, useEncPassword, &diff); ++ ShiftFromHost(diff); + } + buf[i++] = '@'; + } +- if (mHost.mLen > 0) { +- i = AppendSegmentToBuf(buf, i, spec, mHost, &encHost, useEncHost); ++ if (host.mLen > 0) { ++ i = AppendSegmentToBuf(buf, i, spec, host, mHost, &encHost, useEncHost, ++ &diff); ++ ShiftFromPath(diff); ++ + net_ToLowerCase(buf + mHost.mPos, mHost.mLen); + MOZ_ASSERT(mPort >= -1, "Invalid negative mPort"); + if (mPort != -1 && mPort != mDefaultPort) { +@@ -652,21 +683,23 @@ + } + else { + uint32_t leadingSlash = 0; +- if (spec[mPath.mPos] != '/') { ++ if (spec[path.mPos] != '/') { + LOG(("adding leading slash to path\n")); + leadingSlash = 1; + buf[i++] = '/'; + // basename must exist, even if empty (bugs 113508, 429347) + if (mBasename.mLen == -1) { +- mBasename.mPos = i; +- mBasename.mLen = 0; ++ mBasename.mPos = basename.mPos = i; ++ mBasename.mLen = basename.mLen = 0; + } + } + + // record corrected (file)path starting position + mPath.mPos = mFilepath.mPos = i - leadingSlash; + +- i = AppendSegmentToBuf(buf, i, spec, mDirectory, &encDirectory, useEncDirectory); ++ i = AppendSegmentToBuf(buf, i, spec, directory, mDirectory, ++ &encDirectory, useEncDirectory, &diff); ++ ShiftFromBasename(diff); + + // the directory must end with a '/' + if (buf[i-1] != '/') { +@@ -674,7 +707,9 @@ + mDirectory.mLen++; + } + +- i = AppendSegmentToBuf(buf, i, spec, mBasename, &encBasename, useEncBasename); ++ i = AppendSegmentToBuf(buf, i, spec, basename, mBasename, ++ &encBasename, useEncBasename, &diff); ++ ShiftFromExtension(diff); + + // make corrections to directory segment if leadingSlash + if (leadingSlash) { +@@ -687,18 +722,24 @@ + + if (mExtension.mLen >= 0) { + buf[i++] = '.'; +- i = AppendSegmentToBuf(buf, i, spec, mExtension, &encExtension, useEncExtension); ++ i = AppendSegmentToBuf(buf, i, spec, extension, mExtension, ++ &encExtension, useEncExtension, &diff); ++ ShiftFromQuery(diff); + } + // calculate corrected filepath length + mFilepath.mLen = i - mFilepath.mPos; + + if (mQuery.mLen >= 0) { + buf[i++] = '?'; +- i = AppendSegmentToBuf(buf, i, spec, mQuery, &encQuery, useEncQuery); ++ i = AppendSegmentToBuf(buf, i, spec, query, mQuery, ++ &encQuery, useEncQuery, ++ &diff); ++ ShiftFromRef(diff); + } + if (mRef.mLen >= 0) { + buf[i++] = '#'; +- i = AppendSegmentToBuf(buf, i, spec, mRef, &encRef, useEncRef); ++ i = AppendSegmentToBuf(buf, i, spec, ref, mRef, &encRef, useEncRef, ++ &diff); + } + // calculate corrected path length + mPath.mLen = i - mPath.mPos; +@@ -953,6 +994,39 @@ + #undef GOT_PREF + } + ++#define SHIFT_FROM(name, what) \ ++void \ ++nsStandardURL::name(int32_t diff) \ ++{ \ ++ if (!diff) return; \ ++ if (what.mLen >= 0) { \ ++ CheckedInt pos = what.mPos; \ ++ pos += diff; \ ++ MOZ_ASSERT(pos.isValid()); \ ++ what.mPos = pos.value(); \ ++ } ++ ++#define SHIFT_FROM_NEXT(name, what, next) \ ++ SHIFT_FROM(name, what) \ ++ next(diff); \ ++} ++ ++#define SHIFT_FROM_LAST(name, what) \ ++ SHIFT_FROM(name, what) \ ++} ++ ++SHIFT_FROM_NEXT(ShiftFromAuthority, mAuthority, ShiftFromUsername) ++SHIFT_FROM_NEXT(ShiftFromUsername, mUsername, ShiftFromPassword) ++SHIFT_FROM_NEXT(ShiftFromPassword, mPassword, ShiftFromHost) ++SHIFT_FROM_NEXT(ShiftFromHost, mHost, ShiftFromPath) ++SHIFT_FROM_NEXT(ShiftFromPath, mPath, ShiftFromFilepath) ++SHIFT_FROM_NEXT(ShiftFromFilepath, mFilepath, ShiftFromDirectory) ++SHIFT_FROM_NEXT(ShiftFromDirectory, mDirectory, ShiftFromBasename) ++SHIFT_FROM_NEXT(ShiftFromBasename, mBasename, ShiftFromExtension) ++SHIFT_FROM_NEXT(ShiftFromExtension, mExtension, ShiftFromQuery) ++SHIFT_FROM_NEXT(ShiftFromQuery, mQuery, ShiftFromRef) ++SHIFT_FROM_LAST(ShiftFromRef, mRef) ++ + //---------------------------------------------------------------------------- + // nsStandardURL::nsISupports + //---------------------------------------------------------------------------- +diff -r 28dcecced055 -r 88bea96c802a netwerk/base/nsStandardURL.h +--- a/netwerk/base/nsStandardURL.h Wed May 18 11:55:29 2016 +1200 ++++ b/netwerk/base/nsStandardURL.h Tue May 10 10:52:19 2016 +0200 +@@ -77,6 +77,7 @@ + + URLSegment() : mPos(0), mLen(-1) {} + URLSegment(uint32_t pos, int32_t len) : mPos(pos), mLen(len) {} ++ URLSegment(const URLSegment& aCopy) : mPos(aCopy.mPos), mLen(aCopy.mLen) {} + void Reset() { mPos = 0; mLen = -1; } + // Merge another segment following this one to it if they're contiguous + // Assumes we have something like "foo;bar" where this object is 'foo' and right +@@ -177,7 +178,10 @@ + bool NormalizeIDN(const nsCSubstring &host, nsCString &result); + void CoalescePath(netCoalesceFlags coalesceFlag, char *path); + +- uint32_t AppendSegmentToBuf(char *, uint32_t, const char *, URLSegment &, const nsCString *esc=nullptr, bool useEsc = false); ++ uint32_t AppendSegmentToBuf(char *, uint32_t, const char *, ++ const URLSegment &input, URLSegment &output, ++ const nsCString *esc=nullptr, ++ bool useEsc = false, int32_t* diff = nullptr); + uint32_t AppendToBuf(char *, uint32_t, const char *, uint32_t); + + nsresult BuildNormalizedSpec(const char *spec); +@@ -216,17 +220,17 @@ + const nsDependentCSubstring Ref() { return Segment(mRef); } + + // shift the URLSegments to the right by diff +- void ShiftFromAuthority(int32_t diff) { mAuthority.mPos += diff; ShiftFromUsername(diff); } +- void ShiftFromUsername(int32_t diff) { mUsername.mPos += diff; ShiftFromPassword(diff); } +- void ShiftFromPassword(int32_t diff) { mPassword.mPos += diff; ShiftFromHost(diff); } +- void ShiftFromHost(int32_t diff) { mHost.mPos += diff; ShiftFromPath(diff); } +- void ShiftFromPath(int32_t diff) { mPath.mPos += diff; ShiftFromFilepath(diff); } +- void ShiftFromFilepath(int32_t diff) { mFilepath.mPos += diff; ShiftFromDirectory(diff); } +- void ShiftFromDirectory(int32_t diff) { mDirectory.mPos += diff; ShiftFromBasename(diff); } +- void ShiftFromBasename(int32_t diff) { mBasename.mPos += diff; ShiftFromExtension(diff); } +- void ShiftFromExtension(int32_t diff) { mExtension.mPos += diff; ShiftFromQuery(diff); } +- void ShiftFromQuery(int32_t diff) { mQuery.mPos += diff; ShiftFromRef(diff); } +- void ShiftFromRef(int32_t diff) { mRef.mPos += diff; } ++ void ShiftFromAuthority(int32_t diff); ++ void ShiftFromUsername(int32_t diff); ++ void ShiftFromPassword(int32_t diff); ++ void ShiftFromHost(int32_t diff); ++ void ShiftFromPath(int32_t diff); ++ void ShiftFromFilepath(int32_t diff); ++ void ShiftFromDirectory(int32_t diff); ++ void ShiftFromBasename(int32_t diff); ++ void ShiftFromExtension(int32_t diff); ++ void ShiftFromQuery(int32_t diff); ++ void ShiftFromRef(int32_t diff); + + // fastload helper functions + nsresult ReadSegment(nsIBinaryInputStream *, URLSegment &); diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt6.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt6.patch new file mode 100644 index 000000000..143b02fa5 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt6.patch @@ -0,0 +1,17 @@ + changeset: 312067:380ddd689680 + user: Timothy Nikkel + Date: Tue May 10 22:58:26 2016 -0500 + summary: Bug 1261752. Part 1. r=mats a=ritu + +diff -r 02df988a56ae -r 380ddd689680 view/nsViewManager.cpp +--- a/view/nsViewManager.cpp Thu May 26 10:06:15 2016 -0700 ++++ b/view/nsViewManager.cpp Tue May 10 22:58:26 2016 -0500 +@@ -416,7 +416,7 @@ + if (aWidget->NeedsPaint()) { + // If an ancestor widget was hidden and then shown, we could + // have a delayed resize to handle. +- for (nsViewManager *vm = this; vm; ++ for (RefPtr vm = this; vm; + vm = vm->mRootView->GetParent() + ? vm->mRootView->GetParent()->GetViewManager() + : nullptr) { diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt7.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt7.patch new file mode 100644 index 000000000..23c509d6c --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt7.patch @@ -0,0 +1,33 @@ + changeset: 312068:73cc9a2d8fc1 + user: Timothy Nikkel + Date: Tue May 10 22:58:47 2016 -0500 + summary: Bug 1261752. Part 2. r=mats a=ritu + +diff -r 380ddd689680 -r 73cc9a2d8fc1 view/nsViewManager.cpp +--- a/view/nsViewManager.cpp Tue May 10 22:58:26 2016 -0500 ++++ b/view/nsViewManager.cpp Tue May 10 22:58:47 2016 -0500 +@@ -372,7 +372,7 @@ + } + } + if (rootShell->GetViewManager() != this) { +- return; // 'this' might have been destroyed ++ return; // presentation might have been torn down + } + if (aFlushDirtyRegion) { + nsAutoScriptBlocker scriptBlocker; +@@ -1069,6 +1069,7 @@ + if (mPresShell) { + mPresShell->GetPresContext()->RefreshDriver()->RevokeViewManagerFlush(); + ++ RefPtr strongThis(this); + CallWillPaintOnObservers(); + + ProcessPendingUpdatesForView(mRootView, true); +@@ -1085,6 +1086,7 @@ + + if (mHasPendingWidgetGeometryChanges) { + mHasPendingWidgetGeometryChanges = false; ++ RefPtr strongThis(this); + ProcessPendingUpdatesForView(mRootView, false); + } + } diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt8.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt8.patch new file mode 100644 index 000000000..ee5e54e80 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt8.patch @@ -0,0 +1,267 @@ + changeset: 312069:3c2bd9158ad3 + user: Timothy Nikkel + Date: Tue May 10 22:58:47 2016 -0500 + summary: Bug 1261752. Part 3. r=mats a=ritu + +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 layout/forms/nsComboboxControlFrame.cpp +--- a/layout/forms/nsComboboxControlFrame.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/layout/forms/nsComboboxControlFrame.cpp Tue May 10 22:58:47 2016 -0500 +@@ -1417,7 +1417,11 @@ + // The popup's visibility doesn't update until the minimize animation has + // finished, so call UpdateWidgetGeometry to update it right away. + nsViewManager* viewManager = mDropdownFrame->GetView()->GetViewManager(); +- viewManager->UpdateWidgetGeometry(); ++ viewManager->UpdateWidgetGeometry(); // might destroy us ++ } ++ ++ if (!weakFrame.IsAlive()) { ++ return consume; + } + + return consume; +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 view/nsViewManager.cpp +--- a/view/nsViewManager.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/view/nsViewManager.cpp Tue May 10 22:58:47 2016 -0500 +@@ -670,15 +670,16 @@ + + void nsViewManager::WillPaintWindow(nsIWidget* aWidget) + { +- if (aWidget) { +- nsView* view = nsView::GetViewFor(aWidget); +- LayerManager *manager = aWidget->GetLayerManager(); ++ RefPtr widget(aWidget); ++ if (widget) { ++ nsView* view = nsView::GetViewFor(widget); ++ LayerManager* manager = widget->GetLayerManager(); + if (view && + (view->ForcedRepaint() || !manager->NeedsWidgetInvalidation())) { + ProcessPendingUpdates(); + // Re-get the view pointer here since the ProcessPendingUpdates might have + // destroyed it during CallWillPaintOnObservers. +- view = nsView::GetViewFor(aWidget); ++ view = nsView::GetViewFor(widget); + if (view) { + view->SetForcedRepaint(false); + } +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/PuppetWidget.cpp +--- a/widget/PuppetWidget.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/widget/PuppetWidget.cpp Tue May 10 22:58:47 2016 -0500 +@@ -823,6 +823,8 @@ + mDirtyRegion.SetEmpty(); + mPaintTask.Revoke(); + ++ RefPtr strongThis(this); ++ + mAttachedWidgetListener->WillPaintWindow(this); + + if (mAttachedWidgetListener) { +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/cocoa/nsChildView.mm +--- a/widget/cocoa/nsChildView.mm Tue May 10 22:58:47 2016 -0500 ++++ b/widget/cocoa/nsChildView.mm Tue May 10 22:58:47 2016 -0500 +@@ -3716,6 +3716,8 @@ + + - (void)viewWillDraw + { ++ nsAutoRetainCocoaObject kungFuDeathGrip(self); ++ + if (mGeckoChild) { + // The OS normally *will* draw our NSWindow, no matter what we do here. + // But Gecko can delete our parent widget(s) (along with mGeckoChild) +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/gonk/nsWindow.cpp +--- a/widget/gonk/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/widget/gonk/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 +@@ -196,7 +196,7 @@ + return; + } + +- nsWindow *targetWindow = (nsWindow *)sTopWindows[0]; ++ RefPtr targetWindow = (nsWindow *)sTopWindows[0]; + while (targetWindow->GetLastChild()) + targetWindow = (nsWindow *)targetWindow->GetLastChild(); + +@@ -205,15 +205,15 @@ + listener->WillPaintWindow(targetWindow); + } + +- LayerManager* lm = targetWindow->GetLayerManager(); +- if (mozilla::layers::LayersBackend::LAYERS_CLIENT == lm->GetBackendType()) { +- // No need to do anything, the compositor will handle drawing +- } else { +- NS_RUNTIMEABORT("Unexpected layer manager type"); +- } +- + listener = targetWindow->GetWidgetListener(); + if (listener) { ++ LayerManager* lm = targetWindow->GetLayerManager(); ++ if (mozilla::layers::LayersBackend::LAYERS_CLIENT == lm->GetBackendType()) { ++ // No need to do anything, the compositor will handle drawing ++ } else { ++ NS_RUNTIMEABORT("Unexpected layer manager type"); ++ } ++ + listener->DidPaintWindow(); + } + } +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/gtk/nsWindow.cpp +--- a/widget/gtk/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/widget/gtk/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 +@@ -469,6 +469,12 @@ + } + } + ++nsIWidgetListener* ++nsWindow::GetListener() ++{ ++ return mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++} ++ + nsresult + nsWindow::DispatchEvent(WidgetGUIEvent* aEvent, nsEventStatus& aStatus) + { +@@ -481,8 +487,7 @@ + aEvent->refPoint.y = GdkCoordToDevicePixels(aEvent->refPoint.y); + + aStatus = nsEventStatus_eIgnore; +- nsIWidgetListener* listener = +- mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++ nsIWidgetListener* listener = GetListener(); + if (listener) { + aStatus = listener->HandleEvent(aEvent, mUseAttachedEvents); + } +@@ -2119,8 +2124,7 @@ + if (!mGdkWindow || mIsFullyObscured || !mHasMappedToplevel) + return FALSE; + +- nsIWidgetListener *listener = +- mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++ nsIWidgetListener *listener = GetListener(); + if (!listener) + return FALSE; + +@@ -2149,6 +2153,8 @@ + clientLayers->SendInvalidRegion(region); + } + ++ RefPtr strongThis(this); ++ + // Dispatch WillPaintWindow notification to allow scripts etc. to run + // before we paint + { +@@ -2161,8 +2167,7 @@ + + // Re-get the listener since the will paint notification might have + // killed it. +- listener = +- mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++ listener = GetListener(); + if (!listener) + return FALSE; + } +@@ -2223,6 +2228,13 @@ + // If this widget uses OMTC... + if (GetLayerManager()->GetBackendType() == LayersBackend::LAYERS_CLIENT) { + listener->PaintWindow(this, region); ++ ++ // Re-get the listener since the will paint notification might have ++ // killed it. ++ listener = GetListener(); ++ if (!listener) ++ return TRUE; ++ + listener->DidPaintWindow(); + return TRUE; + } +@@ -2307,6 +2319,13 @@ + if (GetLayerManager()->GetBackendType() == LayersBackend::LAYERS_BASIC) { + AutoLayerManagerSetup setupLayerManager(this, ctx, layerBuffering); + painted = listener->PaintWindow(this, region); ++ ++ // Re-get the listener since the will paint notification might have ++ // killed it. ++ listener = GetListener(); ++ if (!listener) ++ return TRUE; ++ + } + } + +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/gtk/nsWindow.h +--- a/widget/gtk/nsWindow.h Tue May 10 22:58:47 2016 -0500 ++++ b/widget/gtk/nsWindow.h Tue May 10 22:58:47 2016 -0500 +@@ -359,6 +359,7 @@ + GdkWindow** aWindow, gint* aButton, + gint* aRootX, gint* aRootY); + void ClearCachedResources(); ++ nsIWidgetListener* GetListener(); + + GtkWidget *mShell; + MozContainer *mContainer; +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/qt/nsWindow.cpp +--- a/widget/qt/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/widget/qt/nsWindow.cpp Tue May 10 22:58:47 2016 -0500 +@@ -857,18 +857,28 @@ + + // EVENTS + ++nsIWidgetListener* ++nsWindow::GetPaintListener() ++{ ++ return mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++} ++ + void + nsWindow::OnPaint() + { + LOGDRAW(("nsWindow::%s [%p]\n", __FUNCTION__, (void *)this)); +- nsIWidgetListener* listener = +- mAttachedWidgetListener ? mAttachedWidgetListener : mWidgetListener; ++ nsIWidgetListener* listener = GetPaintListener(); + if (!listener) { + return; + } + + listener->WillPaintWindow(this); + ++ nsIWidgetListener* listener = GetPaintListener(); ++ if (!listener) { ++ return; ++ } ++ + switch (GetLayerManager()->GetBackendType()) { + case mozilla::layers::LayersBackend::LAYERS_CLIENT: { + nsIntRegion region(nsIntRect(0, 0, mWidget->width(), mWidget->height())); +@@ -879,6 +889,11 @@ + NS_ERROR("Invalid layer manager"); + } + ++ nsIWidgetListener* listener = GetPaintListener(); ++ if (!listener) { ++ return; ++ } ++ + listener->DidPaintWindow(); + } + +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/qt/nsWindow.h +--- a/widget/qt/nsWindow.h Tue May 10 22:58:47 2016 -0500 ++++ b/widget/qt/nsWindow.h Tue May 10 22:58:47 2016 -0500 +@@ -254,6 +254,7 @@ + bool needDispatch; + } MozCachedMoveEvent; + ++ nsIWidgetListener* GetPaintListener(); + bool CheckForRollup(double aMouseX, double aMouseY, bool aIsWheel); + void* SetupPluginPort(void); + nsresult SetWindowIconList(const nsTArray &aIconList); +diff -r 73cc9a2d8fc1 -r 3c2bd9158ad3 widget/windows/nsWindowGfx.cpp +--- a/widget/windows/nsWindowGfx.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/widget/windows/nsWindowGfx.cpp Tue May 10 22:58:47 2016 -0500 +@@ -298,6 +298,8 @@ + clientLayerManager->SendInvalidRegion(region); + } + ++ RefPtr strongThis(this); ++ + nsIWidgetListener* listener = GetPaintListener(); + if (listener) { + listener->WillPaintWindow(this); diff --git a/gnu/packages/patches/icecat-CVE-2016-2818-pt9.patch b/gnu/packages/patches/icecat-CVE-2016-2818-pt9.patch new file mode 100644 index 000000000..a72698cc0 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2818-pt9.patch @@ -0,0 +1,188 @@ + changeset: 312075:ee870911fabb + user: Timothy Nikkel + Date: Wed May 04 16:12:48 2016 -0500 + summary: Bug 1265577. r=mats, a=lizzard + +diff -r 751208d22b91 -r ee870911fabb dom/base/nsFrameLoader.cpp +--- a/dom/base/nsFrameLoader.cpp Thu May 26 17:07:49 2016 -0400 ++++ b/dom/base/nsFrameLoader.cpp Wed May 04 16:12:48 2016 -0500 +@@ -155,7 +155,7 @@ + nsFrameLoader::nsFrameLoader(Element* aOwner, bool aNetworkCreated) + : mOwnerContent(aOwner) + , mAppIdSentToPermissionManager(nsIScriptSecurityManager::NO_APP_ID) +- , mDetachedSubdocViews(nullptr) ++ , mDetachedSubdocFrame(nullptr) + , mIsPrerendered(false) + , mDepthTooGreat(false) + , mIsTopLevelContent(false) +@@ -2507,18 +2507,18 @@ + } + + void +-nsFrameLoader::SetDetachedSubdocView(nsView* aDetachedViews, +- nsIDocument* aContainerDoc) ++nsFrameLoader::SetDetachedSubdocFrame(nsIFrame* aDetachedFrame, ++ nsIDocument* aContainerDoc) + { +- mDetachedSubdocViews = aDetachedViews; ++ mDetachedSubdocFrame = aDetachedFrame; + mContainerDocWhileDetached = aContainerDoc; + } + +-nsView* +-nsFrameLoader::GetDetachedSubdocView(nsIDocument** aContainerDoc) const ++nsIFrame* ++nsFrameLoader::GetDetachedSubdocFrame(nsIDocument** aContainerDoc) const + { + NS_IF_ADDREF(*aContainerDoc = mContainerDocWhileDetached); +- return mDetachedSubdocViews; ++ return mDetachedSubdocFrame.GetFrame(); + } + + void +diff -r 751208d22b91 -r ee870911fabb dom/base/nsFrameLoader.h +--- a/dom/base/nsFrameLoader.h Thu May 26 17:07:49 2016 -0400 ++++ b/dom/base/nsFrameLoader.h Wed May 04 16:12:48 2016 -0500 +@@ -23,6 +23,7 @@ + #include "mozilla/Attributes.h" + #include "FrameMetrics.h" + #include "nsStubMutationObserver.h" ++#include "nsIFrame.h" + + class nsIURI; + class nsSubDocumentFrame; +@@ -197,23 +198,23 @@ + void SetRemoteBrowser(nsITabParent* aTabParent); + + /** +- * Stashes a detached view on the frame loader. We do this when we're ++ * Stashes a detached nsIFrame on the frame loader. We do this when we're + * destroying the nsSubDocumentFrame. If the nsSubdocumentFrame is +- * being reframed we'll restore the detached view when it's recreated, ++ * being reframed we'll restore the detached nsIFrame when it's recreated, + * otherwise we'll discard the old presentation and set the detached +- * subdoc view to null. aContainerDoc is the document containing the ++ * subdoc nsIFrame to null. aContainerDoc is the document containing the + * the subdoc frame. This enables us to detect when the containing + * document has changed during reframe, so we can discard the presentation + * in that case. + */ +- void SetDetachedSubdocView(nsView* aDetachedView, +- nsIDocument* aContainerDoc); ++ void SetDetachedSubdocFrame(nsIFrame* aDetachedFrame, ++ nsIDocument* aContainerDoc); + + /** +- * Retrieves the detached view and the document containing the view, +- * as set by SetDetachedSubdocView(). ++ * Retrieves the detached nsIFrame and the document containing the nsIFrame, ++ * as set by SetDetachedSubdocFrame(). + */ +- nsView* GetDetachedSubdocView(nsIDocument** aContainerDoc) const; ++ nsIFrame* GetDetachedSubdocFrame(nsIDocument** aContainerDoc) const; + + /** + * Applies a new set of sandbox flags. These are merged with the sandbox +@@ -326,12 +327,12 @@ + nsRefPtr mMessageManager; + nsCOMPtr mChildMessageManager; + private: +- // Stores the root view of the subdocument while the subdocument is being ++ // Stores the root frame of the subdocument while the subdocument is being + // reframed. Used to restore the presentation after reframing. +- nsView* mDetachedSubdocViews; ++ nsWeakFrame mDetachedSubdocFrame; + // Stores the containing document of the frame corresponding to this + // frame loader. This is reference is kept valid while the subframe's +- // presentation is detached and stored in mDetachedSubdocViews. This ++ // presentation is detached and stored in mDetachedSubdocFrame. This + // enables us to detect whether the frame has moved documents during + // a reframe, so that we know not to restore the presentation. + nsCOMPtr mContainerDocWhileDetached; +diff -r 751208d22b91 -r ee870911fabb layout/generic/nsSubDocumentFrame.cpp +--- a/layout/generic/nsSubDocumentFrame.cpp Thu May 26 17:07:49 2016 -0400 ++++ b/layout/generic/nsSubDocumentFrame.cpp Wed May 04 16:12:48 2016 -0500 +@@ -130,13 +130,16 @@ + nsRefPtr frameloader = FrameLoader(); + if (frameloader) { + nsCOMPtr oldContainerDoc; +- nsView* detachedViews = +- frameloader->GetDetachedSubdocView(getter_AddRefs(oldContainerDoc)); +- frameloader->SetDetachedSubdocView(nullptr, nullptr); +- if (detachedViews) { +- if (oldContainerDoc == aContent->OwnerDoc()) { ++ nsIFrame* detachedFrame = ++ frameloader->GetDetachedSubdocFrame(getter_AddRefs(oldContainerDoc)); ++ frameloader->SetDetachedSubdocFrame(nullptr, nullptr); ++ MOZ_ASSERT(oldContainerDoc || !detachedFrame); ++ if (oldContainerDoc) { ++ nsView* detachedView = ++ detachedFrame ? detachedFrame->GetView() : nullptr; ++ if (detachedView && oldContainerDoc == aContent->OwnerDoc()) { + // Restore stashed presentation. +- ::InsertViewsInReverseOrder(detachedViews, mInnerView); ++ ::InsertViewsInReverseOrder(detachedView, mInnerView); + ::EndSwapDocShellsForViews(mInnerView->GetFirstChild()); + } else { + // Presentation is for a different document, don't restore it. +@@ -252,11 +255,12 @@ + nsRefPtr frameloader = FrameLoader(); + if (frameloader) { + nsCOMPtr oldContainerDoc; +- nsView* detachedViews = +- frameloader->GetDetachedSubdocView(getter_AddRefs(oldContainerDoc)); +- if (detachedViews) { +- nsSize size = detachedViews->GetBounds().Size(); +- nsPresContext* presContext = detachedViews->GetFrame()->PresContext(); ++ nsIFrame* detachedFrame = ++ frameloader->GetDetachedSubdocFrame(getter_AddRefs(oldContainerDoc)); ++ nsView* view = detachedFrame ? detachedFrame->GetView() : nullptr; ++ if (view) { ++ nsSize size = view->GetBounds().Size(); ++ nsPresContext* presContext = detachedFrame->PresContext(); + return nsIntSize(presContext->AppUnitsToDevPixels(size.width), + presContext->AppUnitsToDevPixels(size.height)); + } +@@ -939,7 +943,7 @@ + + // Either the frame has been constructed by now, or it never will be, + // either way we want to clear the stashed views. +- mFrameLoader->SetDetachedSubdocView(nullptr, nullptr); ++ mFrameLoader->SetDetachedSubdocFrame(nullptr, nullptr); + + nsSubDocumentFrame* frame = do_QueryFrame(mFrameElement->GetPrimaryFrame()); + if ((!frame && mHideViewerIfFrameless) || +@@ -974,15 +978,25 @@ + RefPtr frameloader = FrameLoader(); + if (frameloader) { + nsView* detachedViews = ::BeginSwapDocShellsForViews(mInnerView->GetFirstChild()); +- frameloader->SetDetachedSubdocView(detachedViews, mContent->OwnerDoc()); + +- // We call nsFrameLoader::HideViewer() in a script runner so that we can +- // safely determine whether the frame is being reframed or destroyed. +- nsContentUtils::AddScriptRunner( +- new nsHideViewer(mContent, +- frameloader, +- PresContext()->PresShell(), +- (mDidCreateDoc || mCallingShow))); ++ if (detachedViews && detachedViews->GetFrame()) { ++ MOZ_ASSERT(mContent->OwnerDoc()); ++ frameloader->SetDetachedSubdocFrame( ++ detachedViews->GetFrame(), mContent->OwnerDoc()); ++ ++ // We call nsFrameLoader::HideViewer() in a script runner so that we can ++ // safely determine whether the frame is being reframed or destroyed. ++ nsContentUtils::AddScriptRunner( ++ new nsHideViewer(mContent, ++ frameloader, ++ PresContext()->PresShell(), ++ (mDidCreateDoc || mCallingShow))); ++ } else { ++ frameloader->SetDetachedSubdocFrame(nullptr, nullptr); ++ if (mDidCreateDoc || mCallingShow) { ++ frameloader->Hide(); ++ } ++ } + } + + nsLeafFrame::DestroyFrom(aDestructRoot); diff --git a/gnu/packages/patches/icecat-CVE-2016-2819.patch b/gnu/packages/patches/icecat-CVE-2016-2819.patch new file mode 100644 index 000000000..cbb833d43 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2819.patch @@ -0,0 +1,102 @@ + changeset: 312054:072992bf176d + user: Henri Sivonen + Date: Sun May 15 17:03:06 2016 +0300 + summary: Bug 1270381. r=wchen. a=ritu + +diff -r d30748143c21 -r 072992bf176d parser/html/javasrc/TreeBuilder.java +--- a/parser/html/javasrc/TreeBuilder.java Mon May 09 18:05:32 2016 -0700 ++++ b/parser/html/javasrc/TreeBuilder.java Sun May 15 17:03:06 2016 +0300 +@@ -39,6 +39,11 @@ + import java.util.HashMap; + import java.util.Map; + ++import org.xml.sax.ErrorHandler; ++import org.xml.sax.Locator; ++import org.xml.sax.SAXException; ++import org.xml.sax.SAXParseException; ++ + import nu.validator.htmlparser.annotation.Auto; + import nu.validator.htmlparser.annotation.Const; + import nu.validator.htmlparser.annotation.IdType; +@@ -54,11 +59,6 @@ + import nu.validator.htmlparser.common.TokenHandler; + import nu.validator.htmlparser.common.XmlViolationPolicy; + +-import org.xml.sax.ErrorHandler; +-import org.xml.sax.Locator; +-import org.xml.sax.SAXException; +-import org.xml.sax.SAXParseException; +- + public abstract class TreeBuilder implements TokenHandler, + TreeBuilderState { + +@@ -1924,7 +1924,6 @@ + break starttagloop; + } + generateImpliedEndTags(); +- // XXX is the next if dead code? + if (errorHandler != null && !isCurrent("table")) { + errNoCheckUnclosedElementsOnStack(); + } +@@ -2183,11 +2182,11 @@ + pop(); + } + break; +- } else if (node.isSpecial() ++ } else if (eltPos == 0 || (node.isSpecial() + && (node.ns != "http://www.w3.org/1999/xhtml" +- || (node.name != "p" +- && node.name != "address" +- && node.name != "div"))) { ++ || (node.name != "p" ++ && node.name != "address" ++ && node.name != "div")))) { + break; + } + eltPos--; +@@ -3878,7 +3877,7 @@ + pop(); + } + break endtagloop; +- } else if (node.isSpecial()) { ++ } else if (eltPos == 0 || node.isSpecial()) { + errStrayEndTag(name); + break endtagloop; + } +@@ -4745,6 +4744,7 @@ + int furthestBlockPos = formattingEltStackPos + 1; + while (furthestBlockPos <= currentPtr) { + StackNode node = stack[furthestBlockPos]; // weak ref ++ assert furthestBlockPos > 0: "How is formattingEltStackPos + 1 not > 0?"; + if (node.isSpecial()) { + break; + } +diff -r d30748143c21 -r 072992bf176d parser/html/nsHtml5TreeBuilder.cpp +--- a/parser/html/nsHtml5TreeBuilder.cpp Mon May 09 18:05:32 2016 -0700 ++++ b/parser/html/nsHtml5TreeBuilder.cpp Sun May 15 17:03:06 2016 +0300 +@@ -1102,7 +1102,7 @@ + pop(); + } + break; +- } else if (node->isSpecial() && (node->ns != kNameSpaceID_XHTML || (node->name != nsHtml5Atoms::p && node->name != nsHtml5Atoms::address && node->name != nsHtml5Atoms::div))) { ++ } else if (!eltPos || (node->isSpecial() && (node->ns != kNameSpaceID_XHTML || (node->name != nsHtml5Atoms::p && node->name != nsHtml5Atoms::address && node->name != nsHtml5Atoms::div)))) { + break; + } + eltPos--; +@@ -2749,7 +2749,7 @@ + pop(); + } + NS_HTML5_BREAK(endtagloop); +- } else if (node->isSpecial()) { ++ } else if (!eltPos || node->isSpecial()) { + errStrayEndTag(name); + NS_HTML5_BREAK(endtagloop); + } +@@ -3593,6 +3593,7 @@ + int32_t furthestBlockPos = formattingEltStackPos + 1; + while (furthestBlockPos <= currentPtr) { + nsHtml5StackNode* node = stack[furthestBlockPos]; ++ MOZ_ASSERT(furthestBlockPos > 0, "How is formattingEltStackPos + 1 not > 0?"); + if (node->isSpecial()) { + break; + } diff --git a/gnu/packages/patches/icecat-CVE-2016-2821.patch b/gnu/packages/patches/icecat-CVE-2016-2821.patch new file mode 100644 index 000000000..8255d6000 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2821.patch @@ -0,0 +1,16 @@ + changeset: 312045:7aea44059251 + user: Olli Pettay + Date: Fri May 13 20:10:22 2016 +0300 + summary: Bug 1271460, don't leak editor created element objects, r=ehsan a=ritu + +diff -r 09418166fd77 -r 7aea44059251 editor/libeditor/nsHTMLInlineTableEditor.cpp +--- a/editor/libeditor/nsHTMLInlineTableEditor.cpp Wed May 11 10:14:45 2016 +0100 ++++ b/editor/libeditor/nsHTMLInlineTableEditor.cpp Fri May 13 20:10:22 2016 +0300 +@@ -109,7 +109,6 @@ + + // get the root content node. + nsCOMPtr bodyContent = GetRoot(); +- NS_ENSURE_TRUE(bodyContent, NS_ERROR_FAILURE); + + DeleteRefToAnonymousNode(mAddColumnBeforeButton, bodyContent, ps); + mAddColumnBeforeButton = nullptr; diff --git a/gnu/packages/patches/icecat-CVE-2016-2824.patch b/gnu/packages/patches/icecat-CVE-2016-2824.patch new file mode 100644 index 000000000..72772ed15 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2824.patch @@ -0,0 +1,85 @@ + changeset: 312070:4b54feddf36c + user: JerryShih + Date: Wed May 25 16:27:41 2016 +0200 + summary: Bug 1248580 - strip the uploading element num according to the uniform array size. r=jgilbert a=ritu + +diff -r 3c2bd9158ad3 -r 4b54feddf36c dom/canvas/WebGLContextValidate.cpp +--- a/dom/canvas/WebGLContextValidate.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/dom/canvas/WebGLContextValidate.cpp Wed May 25 16:27:41 2016 +0200 +@@ -1531,9 +1531,10 @@ + if (!loc->ValidateArrayLength(setterElemSize, setterArraySize, this, funcName)) + return false; + ++ MOZ_ASSERT((size_t)loc->mActiveInfo->mElemCount > loc->mArrayIndex); ++ size_t uniformElemCount = loc->mActiveInfo->mElemCount - loc->mArrayIndex; + *out_rawLoc = loc->mLoc; +- *out_numElementsToUpload = std::min((size_t)loc->mActiveInfo->mElemCount, +- setterArraySize / setterElemSize); ++ *out_numElementsToUpload = std::min(uniformElemCount, setterArraySize / setterElemSize); + return true; + } + +diff -r 3c2bd9158ad3 -r 4b54feddf36c dom/canvas/WebGLProgram.cpp +--- a/dom/canvas/WebGLProgram.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/dom/canvas/WebGLProgram.cpp Wed May 25 16:27:41 2016 +0200 +@@ -510,8 +510,14 @@ + const NS_LossyConvertUTF16toASCII userName(userName_wide); + + nsDependentCString baseUserName; +- bool isArray; +- size_t arrayIndex; ++ bool isArray = false; ++ // GLES 2.0.25, Section 2.10, p35 ++ // If the the uniform location is an array, then the location of the first ++ // element of that array can be retrieved by either using the name of the ++ // uniform array, or the name of the uniform array appended with "[0]". ++ // The ParseName() can't recognize this rule. So always initialize ++ // arrayIndex with 0. ++ size_t arrayIndex = 0; + if (!ParseName(userName, &baseUserName, &isArray, &arrayIndex)) + return nullptr; + +@@ -536,7 +542,8 @@ + return nullptr; + + nsRefPtr locObj = new WebGLUniformLocation(mContext, LinkInfo(), +- loc, activeInfo); ++ loc, arrayIndex, ++ activeInfo); + return locObj.forget(); + } + +diff -r 3c2bd9158ad3 -r 4b54feddf36c dom/canvas/WebGLUniformLocation.cpp +--- a/dom/canvas/WebGLUniformLocation.cpp Tue May 10 22:58:47 2016 -0500 ++++ b/dom/canvas/WebGLUniformLocation.cpp Wed May 25 16:27:41 2016 +0200 +@@ -16,10 +16,13 @@ + + WebGLUniformLocation::WebGLUniformLocation(WebGLContext* webgl, + const webgl::LinkedProgramInfo* linkInfo, +- GLuint loc, const WebGLActiveInfo* activeInfo) ++ GLuint loc, ++ size_t arrayIndex, ++ const WebGLActiveInfo* activeInfo) + : WebGLContextBoundObject(webgl) + , mLinkInfo(linkInfo) + , mLoc(loc) ++ , mArrayIndex(arrayIndex) + , mActiveInfo(activeInfo) + { } + +diff -r 3c2bd9158ad3 -r 4b54feddf36c dom/canvas/WebGLUniformLocation.h +--- a/dom/canvas/WebGLUniformLocation.h Tue May 10 22:58:47 2016 -0500 ++++ b/dom/canvas/WebGLUniformLocation.h Wed May 25 16:27:41 2016 +0200 +@@ -41,10 +41,11 @@ + + const WeakPtr mLinkInfo; + const GLuint mLoc; ++ const size_t mArrayIndex; + const WebGLActiveInfo* const mActiveInfo; + + WebGLUniformLocation(WebGLContext* webgl, const webgl::LinkedProgramInfo* linkInfo, +- GLuint loc, const WebGLActiveInfo* activeInfo); ++ GLuint loc, size_t arrayIndex, const WebGLActiveInfo* activeInfo); + + bool ValidateForProgram(WebGLProgram* prog, WebGLContext* webgl, + const char* funcName) const; diff --git a/gnu/packages/patches/icecat-CVE-2016-2828.patch b/gnu/packages/patches/icecat-CVE-2016-2828.patch new file mode 100644 index 000000000..951eb4fc4 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2828.patch @@ -0,0 +1,185 @@ + changeset: 312096:dc190bd03d24 + tag: FIREFOX_45_2_0esr_BUILD2 + tag: FIREFOX_45_2_0esr_RELEASE + user: Jeff Gilbert + Date: Thu Apr 14 13:50:04 2016 -0700 + summary: Bug 1224199 - Destroy SharedSurfaces before ~GLContext(). - r=jrmuizel a=lizzard + +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/GLBlitHelper.cpp +--- a/gfx/gl/GLBlitHelper.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/GLBlitHelper.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -172,6 +172,9 @@ + + GLBlitHelper::~GLBlitHelper() + { ++ if (!mGL->MakeCurrent()) ++ return; ++ + DeleteTexBlitProgram(); + + GLuint tex[] = { +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/GLContext.cpp +--- a/gfx/gl/GLContext.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/GLContext.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -2079,12 +2079,13 @@ + if (IsDestroyed()) + return; + ++ // Null these before they're naturally nulled after dtor, as we want GLContext to ++ // still be alive in *their* dtors. ++ mScreen = nullptr; ++ mBlitHelper = nullptr; ++ mReadTexImageHelper = nullptr; ++ + if (MakeCurrent()) { +- DestroyScreenBuffer(); +- +- mBlitHelper = nullptr; +- mReadTexImageHelper = nullptr; +- + mTexGarbageBin->GLContextTeardown(); + } else { + NS_WARNING("MakeCurrent() failed during MarkDestroyed! Skipping GL object teardown."); +@@ -2328,8 +2329,6 @@ + return false; + } + +- DestroyScreenBuffer(); +- + // This will rebind to 0 (Screen) if needed when + // it falls out of scope. + ScopedBindFramebuffer autoFB(this); +@@ -2349,12 +2348,6 @@ + } + + void +-GLContext::DestroyScreenBuffer() +-{ +- mScreen = nullptr; +-} +- +-void + GLContext::ForceDirtyScreen() + { + ScopedBindFramebuffer autoFB(0); +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/GLContext.h +--- a/gfx/gl/GLContext.h Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/GLContext.h Thu Apr 14 13:50:04 2016 -0700 +@@ -3492,8 +3492,6 @@ + friend class GLScreenBuffer; + UniquePtr mScreen; + +- void DestroyScreenBuffer(); +- + SharedSurface* mLockedSurface; + + public: +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/GLReadTexImageHelper.cpp +--- a/gfx/gl/GLReadTexImageHelper.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/GLReadTexImageHelper.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -31,6 +31,9 @@ + + GLReadTexImageHelper::~GLReadTexImageHelper() + { ++ if (!mGL->MakeCurrent()) ++ return; ++ + mGL->fDeleteProgram(mPrograms[0]); + mGL->fDeleteProgram(mPrograms[1]); + mGL->fDeleteProgram(mPrograms[2]); +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/SharedSurfaceANGLE.cpp +--- a/gfx/gl/SharedSurfaceANGLE.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/SharedSurfaceANGLE.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -120,8 +120,10 @@ + { + mEGL->fDestroySurface(Display(), mPBuffer); + ++ if (!mGL->MakeCurrent()) ++ return; ++ + if (mFence) { +- mGL->MakeCurrent(); + mGL->fDeleteFences(1, &mFence); + } + } +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/SharedSurfaceEGL.cpp +--- a/gfx/gl/SharedSurfaceEGL.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/SharedSurfaceEGL.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -87,9 +87,12 @@ + { + mEGL->fDestroyImage(Display(), mImage); + +- mGL->MakeCurrent(); +- mGL->fDeleteTextures(1, &mProdTex); +- mProdTex = 0; ++ if (mSync) { ++ // We can't call this unless we have the ext, but we will always have ++ // the ext if we have something to destroy. ++ mEGL->fDestroySync(Display(), mSync); ++ mSync = 0; ++ } + + if (mConsTex) { + MOZ_ASSERT(mGarbageBin); +@@ -97,12 +100,11 @@ + mConsTex = 0; + } + +- if (mSync) { +- // We can't call this unless we have the ext, but we will always have +- // the ext if we have something to destroy. +- mEGL->fDestroySync(Display(), mSync); +- mSync = 0; +- } ++ if (!mGL->MakeCurrent()) ++ return; ++ ++ mGL->fDeleteTextures(1, &mProdTex); ++ mProdTex = 0; + } + + void +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/SharedSurfaceGralloc.cpp +--- a/gfx/gl/SharedSurfaceGralloc.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/SharedSurfaceGralloc.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -154,7 +154,9 @@ + + DEBUG_PRINT("[SharedSurface_Gralloc %p] destroyed\n", this); + +- mGL->MakeCurrent(); ++ if (!mGL->MakeCurrent()) ++ return; ++ + mGL->fDeleteTextures(1, &mProdTex); + + if (mSync) { +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/SharedSurfaceIO.cpp +--- a/gfx/gl/SharedSurfaceIO.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/SharedSurfaceIO.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -111,11 +111,10 @@ + + SharedSurface_IOSurface::~SharedSurface_IOSurface() + { +- if (mProdTex) { +- DebugOnly success = mGL->MakeCurrent(); +- MOZ_ASSERT(success); +- mGL->fDeleteTextures(1, &mProdTex); +- } ++ if (!mGL->MakeCurrent()) ++ return; ++ ++ mGL->fDeleteTextures(1, &mProdTex); + } + + //////////////////////////////////////////////////////////////////////// +diff -r b24e1cc592ec -r dc190bd03d24 gfx/gl/TextureGarbageBin.cpp +--- a/gfx/gl/TextureGarbageBin.cpp Mon Mar 07 11:51:12 2016 +0000 ++++ b/gfx/gl/TextureGarbageBin.cpp Thu Apr 14 13:50:04 2016 -0700 +@@ -36,6 +36,7 @@ + if (!mGL) + return; + ++ MOZ_RELEASE_ASSERT(mGL->IsCurrent()); + while (!mGarbageTextures.empty()) { + GLuint tex = mGarbageTextures.top(); + mGarbageTextures.pop(); diff --git a/gnu/packages/patches/icecat-CVE-2016-2831.patch b/gnu/packages/patches/icecat-CVE-2016-2831.patch new file mode 100644 index 000000000..b99ecb645 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2016-2831.patch @@ -0,0 +1,120 @@ + changeset: 312091:a3fff31b8b70 + user: Xidorn Quan + Date: Thu Apr 14 17:38:13 2016 +1000 + summary: Bug 1261933 - Continue unlocking pointer even if the widget has gone. r=smaug a=lizzard + + MozReview-Commit-ID: 1siQhemFf9O + +diff -r f5e862ea4a72 -r a3fff31b8b70 dom/base/nsDocument.cpp +--- a/dom/base/nsDocument.cpp Tue May 31 18:35:26 2016 -0700 ++++ b/dom/base/nsDocument.cpp Thu Apr 14 17:38:13 2016 +1000 +@@ -12315,49 +12315,37 @@ + bool + nsDocument::SetPointerLock(Element* aElement, int aCursorStyle) + { +- // NOTE: aElement will be nullptr when unlocking. +- nsCOMPtr window = GetWindow(); +- if (!window) { +- NS_WARNING("SetPointerLock(): No Window"); +- return false; +- } +- +- nsIDocShell *docShell = window->GetDocShell(); +- if (!docShell) { +- NS_WARNING("SetPointerLock(): No DocShell (window already closed?)"); +- return false; +- } +- +- nsRefPtr presContext; +- docShell->GetPresContext(getter_AddRefs(presContext)); +- if (!presContext) { +- NS_WARNING("SetPointerLock(): Unable to get presContext in \ +- domWindow->GetDocShell()->GetPresContext()"); ++ MOZ_ASSERT(!aElement || aElement->OwnerDoc() == this, ++ "We should be either unlocking pointer (aElement is nullptr), " ++ "or locking pointer to an element in this document"); ++#ifdef DEBUG ++ if (!aElement) { ++ nsCOMPtr pointerLockedDoc = ++ do_QueryReferent(EventStateManager::sPointerLockedDoc); ++ MOZ_ASSERT(pointerLockedDoc == this); ++ } ++#endif ++ ++ nsIPresShell* shell = GetShell(); ++ if (!shell) { ++ NS_WARNING("SetPointerLock(): No PresShell"); + return false; + } +- +- nsCOMPtr shell = presContext->PresShell(); +- if (!shell) { +- NS_WARNING("SetPointerLock(): Unable to find presContext->PresShell()"); +- return false; +- } +- +- nsIFrame* rootFrame = shell->GetRootFrame(); +- if (!rootFrame) { +- NS_WARNING("SetPointerLock(): Unable to get root frame"); ++ nsPresContext* presContext = shell->GetPresContext(); ++ if (!presContext) { ++ NS_WARNING("SetPointerLock(): Unable to get PresContext"); + return false; + } + +- nsCOMPtr widget = rootFrame->GetNearestWidget(); +- if (!widget) { +- NS_WARNING("SetPointerLock(): Unable to find widget in \ +- shell->GetRootFrame()->GetNearestWidget();"); +- return false; +- } +- +- if (aElement && (aElement->OwnerDoc() != this)) { +- NS_WARNING("SetPointerLock(): Element not in this document."); +- return false; ++ nsCOMPtr widget; ++ nsIFrame* rootFrame = shell->GetRootFrame(); ++ if (!NS_WARN_IF(!rootFrame)) { ++ widget = rootFrame->GetNearestWidget(); ++ NS_WARN_IF_FALSE(widget, "SetPointerLock(): Unable to find widget " ++ "in shell->GetRootFrame()->GetNearestWidget();"); ++ if (aElement && !widget) { ++ return false; ++ } + } + + // Hide the cursor and set pointer lock for future mouse events +diff -r f5e862ea4a72 -r a3fff31b8b70 dom/events/EventStateManager.cpp +--- a/dom/events/EventStateManager.cpp Tue May 31 18:35:26 2016 -0700 ++++ b/dom/events/EventStateManager.cpp Thu Apr 14 17:38:13 2016 +1000 +@@ -4128,10 +4128,6 @@ + // NOTE: aElement will be nullptr when unlocking. + sIsPointerLocked = !!aElement; + +- if (!aWidget) { +- return; +- } +- + // Reset mouse wheel transaction + WheelTransaction::EndTransaction(); + +@@ -4140,6 +4136,8 @@ + do_GetService("@mozilla.org/widget/dragservice;1"); + + if (sIsPointerLocked) { ++ MOZ_ASSERT(aWidget, "Locking pointer requires a widget"); ++ + // Store the last known ref point so we can reposition the pointer after unlock. + mPreLockPoint = sLastRefPoint; + +@@ -4164,7 +4162,9 @@ + // pre-pointerlock position, so that the synthetic mouse event reports + // no movement. + sLastRefPoint = mPreLockPoint; +- aWidget->SynthesizeNativeMouseMove(mPreLockPoint + aWidget->WidgetToScreenOffset()); ++ if (aWidget) { ++ aWidget->SynthesizeNativeMouseMove(mPreLockPoint + aWidget->WidgetToScreenOffset()); ++ } + + // Don't retarget events to this element any more. + nsIPresShell::SetCapturingContent(nullptr, CAPTURE_POINTERLOCK); -- cgit v1.3 From 6e4f18cfdd1bf747e77f81b64497f1c05f57a057 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 8 Jun 2016 13:29:32 -0400 Subject: gnu: libxml2: Add fix for CVE-2016-1762. * gnu/packages/patches/libxml2-CVE-2016-1762.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xml.scm (libxml2/fixed)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/patches/libxml2-CVE-2016-1762.patch | 31 ++++++++++++++++++++++++ gnu/packages/xml.scm | 3 ++- 3 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libxml2-CVE-2016-1762.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 8915c46cd..b07aa42f7 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -633,6 +633,7 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ + %D%/packages/patches/libxml2-CVE-2016-1762.patch \ %D%/packages/patches/libxslt-CVE-2015-7995.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/libpthread-glibc-preparation.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2016-1762.patch b/gnu/packages/patches/libxml2-CVE-2016-1762.patch new file mode 100644 index 000000000..15ec6a0ae --- /dev/null +++ b/gnu/packages/patches/libxml2-CVE-2016-1762.patch @@ -0,0 +1,31 @@ +Copied from Debian. + +From a7a94612aa3b16779e2c74e1fa353b5d9786c602 Mon Sep 17 00:00:00 2001 +From: Daniel Veillard +Date: Tue, 9 Feb 2016 12:55:29 +0100 +Subject: [PATCH] Heap-based buffer overread in xmlNextChar + +For https://bugzilla.gnome.org/show_bug.cgi?id=759671 + +when the end of the internal subset isn't properly detected +xmlParseInternalSubset should just return instead of trying +to process input further. + +[carnil: drop patches to testsuite files] +--- + +diff --git a/parser.c b/parser.c +index c5741e3..0677030 100644 +--- a/parser.c ++++ b/parser.c +@@ -8468,6 +8468,7 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) { + */ + if (RAW != '>') { + xmlFatalErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED, NULL); ++ return; + } + NEXT; + } +-- +2.8.1 + diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index dc5c60dca..40ff3e6b4 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -116,7 +116,8 @@ project (but it is usable outside of the Gnome platform).") version ".tar.gz")) (sha256 (base32 - "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))))) + "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz")) + (patches (search-patches "libxml2-CVE-2016-1762.patch"))))))) (define-public python-libxml2 (package (inherit libxml2) -- cgit v1.3 From 993b400acb24344d399857010177e7ecaab847b7 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 8 Jun 2016 18:17:13 -0400 Subject: Revert "gnu: libxml2: Add fix for CVE-2016-1762." This reverts commit 6e4f18cfdd1bf747e77f81b64497f1c05f57a057. --- gnu/local.mk | 1 - gnu/packages/patches/libxml2-CVE-2016-1762.patch | 31 ------------------------ gnu/packages/xml.scm | 3 +-- 3 files changed, 1 insertion(+), 34 deletions(-) delete mode 100644 gnu/packages/patches/libxml2-CVE-2016-1762.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index b07aa42f7..8915c46cd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -633,7 +633,6 @@ dist_patch_DATA = \ %D%/packages/patches/libwmf-CVE-2015-0848+CVE-2015-4588.patch \ %D%/packages/patches/libwmf-CVE-2015-4695.patch \ %D%/packages/patches/libwmf-CVE-2015-4696.patch \ - %D%/packages/patches/libxml2-CVE-2016-1762.patch \ %D%/packages/patches/libxslt-CVE-2015-7995.patch \ %D%/packages/patches/lirc-localstatedir.patch \ %D%/packages/patches/libpthread-glibc-preparation.patch \ diff --git a/gnu/packages/patches/libxml2-CVE-2016-1762.patch b/gnu/packages/patches/libxml2-CVE-2016-1762.patch deleted file mode 100644 index 15ec6a0ae..000000000 --- a/gnu/packages/patches/libxml2-CVE-2016-1762.patch +++ /dev/null @@ -1,31 +0,0 @@ -Copied from Debian. - -From a7a94612aa3b16779e2c74e1fa353b5d9786c602 Mon Sep 17 00:00:00 2001 -From: Daniel Veillard -Date: Tue, 9 Feb 2016 12:55:29 +0100 -Subject: [PATCH] Heap-based buffer overread in xmlNextChar - -For https://bugzilla.gnome.org/show_bug.cgi?id=759671 - -when the end of the internal subset isn't properly detected -xmlParseInternalSubset should just return instead of trying -to process input further. - -[carnil: drop patches to testsuite files] ---- - -diff --git a/parser.c b/parser.c -index c5741e3..0677030 100644 ---- a/parser.c -+++ b/parser.c -@@ -8468,6 +8468,7 @@ xmlParseInternalSubset(xmlParserCtxtPtr ctxt) { - */ - if (RAW != '>') { - xmlFatalErr(ctxt, XML_ERR_DOCTYPE_NOT_FINISHED, NULL); -+ return; - } - NEXT; - } --- -2.8.1 - diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 40ff3e6b4..dc5c60dca 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -116,8 +116,7 @@ project (but it is usable outside of the Gnome platform).") version ".tar.gz")) (sha256 (base32 - "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz")) - (patches (search-patches "libxml2-CVE-2016-1762.patch"))))))) + "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))))) (define-public python-libxml2 (package (inherit libxml2) -- cgit v1.3 From 4e5300492b9074d463bb59311d71d0c7f4d5358b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Thu, 9 Jun 2016 13:59:50 +0800 Subject: gnu: xboard: Update to 4.9.0, use GTK+ front-end. * gnu/packages/games.scm (xboard): Update to 4.9.0. [inputs]: Add gtk+-2. --- gnu/packages/games.scm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4181ffbca..0d095ac36 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -418,7 +418,7 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n" (define-public xboard (package (name "xboard") - (version "4.8.0") + (version "4.9.0") (source (origin (method url-fetch) @@ -426,12 +426,11 @@ exec ~a/bin/freedink -refdir ~a/share/dink\n" ".tar.gz")) (sha256 (base32 - "05rdj0nyirc4g1qi5hhrjy45y52ihp1j3ldq2c5bwrz0gzy4i3y8")))) + "1av6r3s5vyclwf3c9i1pkr2442ryrf4ixhhf2i44a4j1xyhlp5jb")))) (build-system gnu-build-system) - (inputs `(("cairo" ,cairo) - ("librsvg" ,librsvg) - ("libxt" ,libxt) - ("libxaw" ,libxaw))) + (inputs + `(("gtk+" ,gtk+-2) + ("librsvg" ,librsvg))) (native-inputs `(("texinfo" ,texinfo) ("pkg-config" ,pkg-config))) (home-page "http://www.gnu.org/software/xboard") -- cgit v1.3 From 1f3cf0fdadde72e86a720cccba39366e7530476f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 9 Jun 2016 09:48:10 +0300 Subject: gnu: owncloud-client: Update to 2.2.1. * gnu/packages/owncloud.scm (owncloud-client): Update to 2.2.1. --- gnu/packages/owncloud.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/owncloud.scm b/gnu/packages/owncloud.scm index 954e689f7..4969d31c0 100644 --- a/gnu/packages/owncloud.scm +++ b/gnu/packages/owncloud.scm @@ -34,14 +34,14 @@ (define-public owncloud-client (package (name "owncloud-client") - (version "2.2.0") + (version "2.2.1") (source (origin (method url-fetch) (uri (string-append "https://download.owncloud.com/desktop/stable/" "owncloudclient-" version ".tar.xz")) (sha256 - (base32 "1ak7hq13hl7qndm3zz7hdfvw6930kmhjh27s1427g784vxcqb23q")))) + (base32 "1wis62jk4y4mbr25y39y6af57pi6vp2mbryazmvn6zgnygf69m3h")))) (build-system cmake-build-system) (arguments `(#:phases -- cgit v1.3 From 5f6aba6b62f11ed3a3efe95fabbe33321370c5b0 Mon Sep 17 00:00:00 2001 From: Lukas Gradl Date: Sun, 5 Jun 2016 16:03:56 -0500 Subject: gnu: Add googletest. * gnu/packages/check.scm (googletest): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/check.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 9eef7a9a7..cecc02647 100644 --- a/gnu/packages/check.scm +++ b/gnu/packages/check.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Roel Janssen +;;; Copyright © 2016 Lukas Gradl ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages check) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages python) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) @@ -193,3 +195,62 @@ in the code. Cppcheck primarily detects the types of bugs that the compilers normally do not detect. The goal is to detect only real errors in the code (i.e. have zero false positives).") (license gpl3+))) + +(define-public googletest + (package + (name "googletest") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/google/googletest/archive/" + "release-" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1k0nf1l9cb3prdmsvaajl5i31bx86c1mw0d5jgzykz7rzm36afpp")))) + (build-system gnu-build-system) + (native-inputs + `(("python-2" ,python-2) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'autoconf + (lambda _ + (zero? (system* "autoreconf" "-vfi")))) + (add-before 'autoconf 'generate-headers + (lambda _ + (begin + (delete-file "include/gtest/gtest-param-test.h") + (system* "python2" "scripts/pump.py" + "include/gtest/gtest-param-test.h.pump") + (delete-file "include/gtest/internal/gtest-tuple.h") + (system* "python2" "scripts/pump.py" + "include/gtest//internal/gtest-tuple.h.pump") + (delete-file + "include/gtest/internal/gtest-param-util-generated.h") + (system* + "python2" "scripts/pump.py" + "include/gtest/internal/gtest-param-util-generated.h.pump") + (delete-file "include/gtest/internal/gtest-type-util.h") + (system* "python2" "scripts/pump.py" + "include/gtest/internal/gtest-type-util.h.pump")))) + (replace 'install + (lambda _ + (let ((out (assoc-ref %outputs "out"))) + (begin + (install-file "lib/.libs/libgtest_main.a" + (string-append out "/lib")) + (install-file "lib/.libs/libgtest.a" + (string-append out "/lib")) + (copy-recursively "include" + (string-append out "/include"))))))))) + (home-page "https://github.com/google/googletest/") + (synopsis "Test discovery and XUnit test framework") + (description "Google Test features an XUnit test framework, automated test +discovery, death tests, assertions, parameterized tests and XML test report +generation.") + (license bsd-3))) -- cgit v1.3 From 4aecc79bd757b7bcbcbc68bfa8fd66a64c3c1f1e Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 9 Jun 2016 16:01:54 +0000 Subject: gnu: weechat: Update to 1.5. * gnu/packages/irc.scm (weechat): Update to 1.5. Signed-off-by: Efraim Flashner --- gnu/packages/irc.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 64edf652f..def16c939 100644 --- a/gnu/packages/irc.scm +++ b/gnu/packages/irc.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2014 Kevin Lemonnier ;;; Copyright © 2015 Ludovic Courtès ;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -134,14 +135,14 @@ SILC and ICB protocols via plugins.") (define-public weechat (package (name "weechat") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append "http://weechat.org/files/src/weechat-" version ".tar.gz")) (sha256 (base32 - "19apd3hav77v74j7flicai0843k7wrkr2fd3q2ayvzkgnbrrp1ai")) + "0w87w4wy61x705ama8h36z9mgdj2gmmzdfrsxvwyh2m2as2max1i")) (patches (search-patches "weechat-python.patch")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) -- cgit v1.3 From 2eca2d6267ae18e28dd63d72b1a37f784c7cad9e Mon Sep 17 00:00:00 2001 From: ng0 Date: Thu, 9 Jun 2016 16:40:34 +0000 Subject: gnu: st: Update to 0.6 * gnu/packages/suckless.scm (st): Update to 0.6. Signed-off-by: Efraim Flashner --- gnu/packages/suckless.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index f582aea42..87e5aadc4 100644 --- a/gnu/packages/suckless.scm +++ b/gnu/packages/suckless.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2015 Amirouche Boubekki ;;; Copyright © 2016 Al McElrath +;;; Copyright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -151,7 +152,7 @@ numbers of user-defined menu items efficiently.") (define-public st (package (name "st") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) @@ -159,7 +160,7 @@ numbers of user-defined menu items efficiently.") version ".tar.gz")) (sha256 (base32 - "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f")))) + "0avsfc1qp8zvshsfjwwrkvk411jlqy58z225bsdhjkl1qc40qcc5")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit v1.3 From aece7602d912909fc1ebfb74b8ce3ec27cce4044 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Fri, 10 Jun 2016 00:09:37 +0300 Subject: gnu: qtbase: Update to 5.6.1. * gnu/packages/qt.scm (qtbase): Update to 5.6.1. --- gnu/packages/qt.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index acfda4a2d..c79160f05 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -301,7 +301,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") (define-public qtbase (package (name "qtbase") - (version "5.6.0") + (version "5.6.1") (source (origin (method url-fetch) (uri (string-append "https://download.qt.io/official_releases/qt/" @@ -310,7 +310,7 @@ developers using C++ or QML, a CSS & JavaScript like language.") version ".tar.xz")) (sha256 (base32 - "0ynnvcs5idivzldsq5ciqg9myg82b3l3906l4vjv54lyamf8mykf")) + "0r3jrqymnnxrig4f11xvs33c26f0kzfakbp3kcbdpv795gpc276h")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.3 From b92d02d9783f6a3f16fb4384dbc1c695f714154a Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Fri, 10 Jun 2016 14:45:41 +0200 Subject: gnu: Add sparql-query. * gnu/packages/databases.scm (sparql-query): New variable. --- gnu/packages/databases.scm | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7e0188b2a..3458b3ba3 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -400,6 +400,67 @@ types are supported, as is encryption.") (license gpl3+) (home-page "http://www.gnu.org/software/recutils/"))) +(define-public sparql-query + (package + (name "sparql-query") + (version "1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/tialaramex/" + name "/archive/" version ".tar.gz")) + (sha256 + (base32 "0yq3k20472rv8npcc420q9ab6idy584g5y0q501d360k5q0ggr8w")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (inputs + `(("readline" ,readline) + ("ncurses" ,ncurses) + ("glib" ,glib) + ("libxml2" ,libxml2) + ("curl" ,curl))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(#:make-flags '("CC=gcc") + #:phases + (modify-phases %standard-phases + (delete 'configure) + ;; The Makefile uses git to obtain versioning information. This phase + ;; substitutes the git invocation with the package version. + (add-after 'unpack 'remove-git-dependency + (lambda _ + (substitute* "Makefile" + (("^gitrev :=.*$") + (string-append "gitrev = \"v" ,version "\""))))) + ;; The install phase of the Makefile assumes $PREFIX/usr/local/bin. + ;; This replacement does the same thing, except for using $PREFIX/bin + ;; instead. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (install-file "sparql-query" bin) + (system* "ln" "--symbolic" + (string-append bin "/sparql-query") + (string-append bin "/sparql-update"))))) + (replace 'check + (lambda* (#:key make-flags #:allow-other-keys) + (and + (zero? (apply system* "make" `(,@make-flags "scan-test"))) + (zero? (system "./scan-test")))))))) + (home-page "https://github.com/tialaramex/sparql-query/") + (synopsis "Command-line tool for accessing SPARQL endpoints over HTTP") + (description "Sparql-query is a command-line tool for accessing SPARQL +endpoints over HTTP. It has been intentionally designed to 'feel' similar to +tools for interrogating SQL databases. For example, you can enter a query over +several lines, using a semi-colon at the end of a line to indicate the end of +your query. It also supports readline so that you can more easily recall and +edit previous queries, even across sessions. It can be used non-interactively, +for example from a shell script.") + ;; Some files (like scan-sparql.c) contain a GPLv3+ license header, while + ;; others (like sparql-query.c) contain a GPLv2+ license header. + (license (list gpl3+)))) + (define-public sqlite (package (name "sqlite") -- cgit v1.3 From 9e8599a3b13d0322f8f5a7e8dfaf9f66e78139f6 Mon Sep 17 00:00:00 2001 From: Patrick Hetu Date: Wed, 8 Jun 2016 13:18:07 -0400 Subject: gnu: g-wrap: Install modules to 'site/2.0'. * gnu/packages/guile.scm (g-wrap)[arguments]: New field. Signed-off-by: Ludovic Courtès --- gnu/packages/guile.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 74e58c44a..6f00edb06 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -939,6 +939,16 @@ capabilities.") ("guile-lib" ,guile-lib))) (inputs `(("libffi" ,libffi))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'configure 'pre-configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files "." "^Makefile.in$") + (("guilemoduledir =.*guile/site" all) + (string-append all "/2.0"))) + #t)))))) (synopsis "Generate C bindings for Guile") (description "G-Wrap is a tool and Guile library for generating function wrappers for inter-language calls. It currently only supports generating Guile -- cgit v1.3 From 0ee23de941537f1efdc0271aa4b0b721318989f1 Mon Sep 17 00:00:00 2001 From: Clément Lassieur Date: Thu, 9 Jun 2016 00:22:14 +0200 Subject: gnu: Add woof. * gnu/packages/web.scm (woof): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6ac03fcce..28f247cba 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 Rene Saavedra ;;; Copyright © 2016 Ben Woodcroft +;;; Copyright © 2016 Clément Lassieur ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,6 +42,7 @@ #:use-module (guix build-system perl) #:use-module (guix build-system cmake) #:use-module (guix build-system r) + #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages apr) #:use-module (gnu packages documentation) @@ -3350,3 +3352,39 @@ you'd expect.") HTTPS. It provides a library, libuhttpmock, which implements recording and playback of HTTP request/response traces.") (license l:lgpl2.1+))) + +(define-public woof + (package + (name "woof") + (version "2012-05-31") + (source (origin + (method url-fetch) + (uri (string-append + "http://www.home.unix-ag.org/simon/woof-" + version ".py")) + (sha256 + (base32 + "0wjmjhpg6xlid33yi59j47q2qadz20sijrqsjahj30vngz856hyq")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (python (assoc-ref %build-inputs "python"))) + (mkdir-p bin) + (with-directory-excursion bin + (copy-file source "woof") + (patch-shebang "woof" (list (string-append python "/bin"))) + (chmod "woof" #o555)) + #t)))) + (inputs `(("python" ,python-2))) + (home-page "http://www.home.unix-ag.org/simon/woof.html") + (synopsis "Single file web server") + (description "Woof (Web Offer One File) is a small simple web server that +can easily be invoked on a single file. Your partner can access the file with +tools they trust (e.g. wget).") + (license l:gpl2+))) -- cgit v1.3 From 1a0346f0601481472794f0ffa47137416999bde9 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 10 Jun 2016 12:11:21 +0200 Subject: gnu: Add dstat. * gnu/packages/admin.scm (dstat): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/admin.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index abfef3666..81ca58d8f 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2016 Pjotr Prins ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 Peter Feigl ;;; ;;; This file is part of GNU Guix. ;;; @@ -58,6 +59,7 @@ #:use-module (gnu packages mcrypt) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages python) #:use-module (gnu packages texinfo) #:use-module (gnu packages groff) #:use-module (gnu packages pciutils) @@ -1643,3 +1645,39 @@ results (ndiff), and a packet generation and response analysis tool (nping).") ;; This package uses nmap's bundled versions of libdnet and liblinear, which ;; both use a 3-clause BSD license. (license (list license:nmap license:bsd-3)))) + +(define-public dstat + (package + (name "dstat") + (version "0.7.3") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/dagwieers/dstat/archive/" + version ".tar.gz")) + (file-name (string-append "dstat-" version ".tar.gz")) + (sha256 + (base32 + "16286z3y2lc9nsq8njzjkv6k2vyxrj9xiixj1k3gnsbvhlhkirj6")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;; no make check + #:make-flags (let ((out (assoc-ref %outputs "out"))) + (list (string-append "DESTDIR=" out) + "prefix=/")) + ;; no configure script + #:phases (alist-delete 'configure %standard-phases))) + (inputs `(("python-2" ,python-2))) + (synopsis "Versatile resource statistics tool") + (description "Dstat is a versatile replacement for @command{vmstat}, +@command{iostat}, @command{netstat}, and @command{ifstat}. Dstat overcomes +some of their limitations and adds some extra features, more counters and +flexibility. Dstat is handy for monitoring systems during performance tuning +tests, benchmarks or troubleshooting. + +Dstat allows you to view all of your system resources in real-time, you can, +e.g., compare disk utilization in combination with interrupts from your IDE +controller, or compare the network bandwidth numbers directly with the disk +throughput (in the same interval).") + (home-page "http://dag.wiee.rs/home-made/dstat/") + (license license:gpl2))) -- cgit v1.3 From c59f62e9cb02893dbae78acc5f0ac12df7b45432 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 10 Jun 2016 15:23:01 +0200 Subject: gnu: dstat: Adjust license. * gnu/packages/admin.scm (dstat)[license]: Change to GPL2+. --- gnu/packages/admin.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 81ca58d8f..78f36a18c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1680,4 +1680,4 @@ e.g., compare disk utilization in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with the disk throughput (in the same interval).") (home-page "http://dag.wiee.rs/home-made/dstat/") - (license license:gpl2))) + (license license:gpl2+))) -- cgit v1.3 From 7c6058c08266f663973d1b7eb729e36e24728d17 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Thu, 9 Jun 2016 21:53:02 +0300 Subject: gnu: higan: Various improvements. * gnu/packages/games.scm (higan): Use semi-official repository at GitLab (using hotfix tag 098b which is equivalent to official release 098). Add a patch to remove the build flag -march=native. Set profile to balanced. * gnu/packages/patches/higan-remove-march-native-flag.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/games.scm | 9 ++++++--- gnu/packages/patches/higan-remove-march-native-flag.patch | 13 +++++++++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 gnu/packages/patches/higan-remove-march-native-flag.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index 8915c46cd..f31e5776d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -542,6 +542,7 @@ dist_patch_DATA = \ %D%/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \ %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \ %D%/packages/patches/hdf5-config-date.patch \ + %D%/packages/patches/higan-remove-march-native-flag.patch \ %D%/packages/patches/hop-bigloo-4.0b.patch \ %D%/packages/patches/hop-linker-flags.patch \ %D%/packages/patches/hydra-automake-1.15.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 0d095ac36..1d0a94534 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2247,15 +2247,17 @@ Red Eclipse provides fast paced and accessible gameplay.") (define-public higan (package (name "higan") - (version "098") + (version "098b") (source (origin (method url-fetch) (uri (string-append - "https://github.com/TaylanUB/higan/archive/v" version ".tar.gz")) + "https://gitlab.com/higan/higan/repository/archive.tar.gz?ref=v" + version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "12snxrk8wa94x3l69qcimgm0xc22zjgf7vzhckp2lzyfbf27950v")))) + (base32 "05j0xzr01gsyia4gj6jmdzklll4iky1kwxgxw0mmfcgm10m0h3bf")) + (patches (search-patches "higan-remove-march-native-flag.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2321,6 +2323,7 @@ Red Eclipse provides fast paced and accessible gameplay.") `("PATH" ":" prefix (,bin)))))))) #:make-flags (list "compiler=g++" + "profile=balanced" ;default is accuracy; which is quite slow (string-append "prefix=" (assoc-ref %outputs "out"))) ;; There is no test suite. #:tests? #f)) diff --git a/gnu/packages/patches/higan-remove-march-native-flag.patch b/gnu/packages/patches/higan-remove-march-native-flag.patch new file mode 100644 index 000000000..8f4a36dc3 --- /dev/null +++ b/gnu/packages/patches/higan-remove-march-native-flag.patch @@ -0,0 +1,13 @@ +Remove -march=native from build flags. + +--- a/higan/GNUmakefile ++++ b/higan/GNUmakefile +@@ -32,7 +32,7 @@ ifeq ($(platform),windows) + else ifeq ($(platform),macosx) + flags += -march=native + else ifneq ($(filter $(platform),linux bsd),) +- flags += -march=native -fopenmp ++ flags += -fopenmp + link += -fopenmp + link += -Wl,-export-dynamic + link += -lX11 -lXext -- cgit v1.3 From 08ffddead345c60a5dc1e13a6be61de0a9733a32 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 10 Jun 2016 16:31:50 -0400 Subject: gnu: linux-libre-4.1: Update to 4.1.26. * gnu/packages/linux.scm (linux-libre-4.1): Update to 4.1.26. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index df6983047..5e86ebd2c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -357,13 +357,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.25") + (version "4.1.26") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "1vpgcnmfnn005rcd60wyyg0f84fgapdmz2dpcy77p2l66mw4pakf")))) + "1vrqz7z0b9zl6g8nbvz1hb2jhgy5zpnbdwc1v3zc4wjc35i2c4i4")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.3 From c785fe13e1b518bd1a52da1330823b71e3d230a6 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 10 Jun 2016 16:32:41 -0400 Subject: gnu: linux-libre-4.4: Update to 4.4.13. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.13. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5e86ebd2c..7c8468a84 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -340,13 +340,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.12") + (version "4.4.13") (source (origin (method url-fetch) (uri (linux-libre-urls version)) (sha256 (base32 - "1zbds4ihk4x3lxr1jw7yrjzv1dkl995m41a54dfgqm0kj70li8ws")))) + "1qcgnprgl9hy4g51bkx4bjs1cdsyy9kpwqymxggwghrzdid41x9l")))) (native-inputs (let ((conf (kernel-config (or (%current-target-system) (%current-system)) -- cgit v1.3 From a50afcf9312d25a7b0982832fa63f79f5921b912 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 10 Jun 2016 16:33:30 -0400 Subject: gnu: linux-libre: Update to 4.6.2. * gnu/packages/linux.scm (linux-libre): Update to 4.6.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7c8468a84..b6fa7c054 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -225,7 +225,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.6.1") + (let* ((version "4.6.2") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Avoid introducing timestamps @@ -303,7 +303,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration." (uri (linux-libre-urls version)) (sha256 (base32 - "16cwr2jhd688bxdjfjpymap7sq0qsl24k5dylbz1rwfblnv2wn51")))) + "1sq75sbs85kwngq8l0n5v5v1z973l71by98k3wbw1mfq3g0s323b")))) (build-system gnu-build-system) (supported-systems '("x86_64-linux" "i686-linux")) (native-inputs `(("perl" ,perl) -- cgit v1.3 From 436dd0463668361476a448d88f6e8653981a7346 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 9 Jun 2016 13:02:11 -0400 Subject: gnu: expat: Fix CVE-2012-6702 and CVE-2016-5300. * gnu/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/xml.scm (expat/fixed): Use it. --- gnu/local.mk | 1 + .../expat-CVE-2012-6702-and-CVE-2016-5300.patch | 142 +++++++++++++++++++++ gnu/packages/xml.scm | 3 +- 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch (limited to 'gnu') diff --git a/gnu/local.mk b/gnu/local.mk index f31e5776d..73aef0aa8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -480,6 +480,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-source-date-epoch.patch \ %D%/packages/patches/eudev-rules-directory.patch \ %D%/packages/patches/evilwm-lost-focus-bug.patch \ + %D%/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch \ %D%/packages/patches/expat-CVE-2015-1283.patch \ %D%/packages/patches/expat-CVE-2015-1283-refix.patch \ %D%/packages/patches/expat-CVE-2016-0718.patch \ diff --git a/gnu/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch b/gnu/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch new file mode 100644 index 000000000..edc43f84f --- /dev/null +++ b/gnu/packages/patches/expat-CVE-2012-6702-and-CVE-2016-5300.patch @@ -0,0 +1,142 @@ +Fix CVE-2012-6702 and CVE-2016-5300. + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-6702 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-5300 + +Patch copied from: +https://sources.debian.net/src/expat/2.1.0-6%2Bdeb8u3/debian/patches/cve-2012-6702-plus-cve-2016-5300-v1.patch/ + +From cb31522769d11a375078a073cba94e7176cb48a4 Mon Sep 17 00:00:00 2001 +From: Sebastian Pipping +Date: Wed, 16 Mar 2016 15:30:12 +0100 +Subject: [PATCH] Resolve call to srand, use more entropy (patch version 1.0) + +Squashed backport against vanilla Expat 2.1.1, addressing: +* CVE-2012-6702 -- unanticipated internal calls to srand +* CVE-2016-5300 -- use of too little entropy + +Since commit e3e81a6d9f0885ea02d3979151c358f314bf3d6d +(released with Expat 2.1.0) Expat called srand by itself +from inside generate_hash_secret_salt for an instance +of XML_Parser if XML_SetHashSalt was either (a) not called +for that instance or if (b) salt 0 was passed to XML_SetHashSalt +prior to parsing. That call to srand passed (rather litle) +entropy extracted from the current time as a seed for srand. + +That call to srand (1) broke repeatability for code calling +srand with a non-random seed prior to parsing with Expat, +and (2) resulted in a rather small set of hashing salts in +Expat in total. + +For a short- to mid-term fix, the new approach avoids calling +srand altogether, extracts more entropy out of the clock and +other sources, too. + +For a long term fix, we may want to read sizeof(long) bytes +from a source like getrandom(..) on Linux, and from similar +sources on other supported architectures. + +https://bugzilla.redhat.com/show_bug.cgi?id=1197087 +--- + CMakeLists.txt | 3 +++ + lib/xmlparse.c | 48 +++++++++++++++++++++++++++++++++++++++++------- + 2 files changed, 44 insertions(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 353627e..524d514 100755 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -41,6 +41,9 @@ include_directories(${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/lib) + if(MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS -wd4996) + endif(MSVC) ++if(WIN32) ++ add_definitions(-DCOMPILED_FROM_DSP) ++endif(WIN32) + + set(expat_SRCS + lib/xmlparse.c +diff --git a/lib/xmlparse.c b/lib/xmlparse.c +index e308c79..c5f942f 100644 +--- a/lib/xmlparse.c ++++ b/lib/xmlparse.c +@@ -6,7 +6,14 @@ + #include /* memset(), memcpy() */ + #include + #include /* UINT_MAX */ +-#include /* time() */ ++ ++#ifdef COMPILED_FROM_DSP ++#define getpid GetCurrentProcessId ++#else ++#include /* gettimeofday() */ ++#include /* getpid() */ ++#include /* getpid() */ ++#endif + + #define XML_BUILDING_EXPAT 1 + +@@ -432,7 +439,7 @@ static ELEMENT_TYPE * + getElementType(XML_Parser parser, const ENCODING *enc, + const char *ptr, const char *end); + +-static unsigned long generate_hash_secret_salt(void); ++static unsigned long generate_hash_secret_salt(XML_Parser parser); + static XML_Bool startParsing(XML_Parser parser); + + static XML_Parser +@@ -691,11 +698,38 @@ static const XML_Char implicitContext[] = { + }; + + static unsigned long +-generate_hash_secret_salt(void) ++gather_time_entropy(void) + { +- unsigned int seed = time(NULL) % UINT_MAX; +- srand(seed); +- return rand(); ++#ifdef COMPILED_FROM_DSP ++ FILETIME ft; ++ GetSystemTimeAsFileTime(&ft); /* never fails */ ++ return ft.dwHighDateTime ^ ft.dwLowDateTime; ++#else ++ struct timeval tv; ++ int gettimeofday_res; ++ ++ gettimeofday_res = gettimeofday(&tv, NULL); ++ assert (gettimeofday_res == 0); ++ ++ /* Microseconds time is <20 bits entropy */ ++ return tv.tv_usec; ++#endif ++} ++ ++static unsigned long ++generate_hash_secret_salt(XML_Parser parser) ++{ ++ /* Process ID is 0 bits entropy if attacker has local access ++ * XML_Parser address is few bits of entropy if attacker has local access */ ++ const unsigned long entropy = ++ gather_time_entropy() ^ getpid() ^ (unsigned long)parser; ++ ++ /* Factors are 2^31-1 and 2^61-1 (Mersenne primes M31 and M61) */ ++ if (sizeof(unsigned long) == 4) { ++ return entropy * 2147483647; ++ } else { ++ return entropy * 2305843009213693951; ++ } + } + + static XML_Bool /* only valid for root parser */ +@@ -703,7 +737,7 @@ startParsing(XML_Parser parser) + { + /* hash functions must be initialized before setContext() is called */ + if (hash_secret_salt == 0) +- hash_secret_salt = generate_hash_secret_salt(); ++ hash_secret_salt = generate_hash_secret_salt(parser); + if (ns) { + /* implicit context only set for root parser, since child + parsers (i.e. external entity parsers) will inherit it +-- +2.8.2 + diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index dc5c60dca..d5967f796 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -69,7 +69,8 @@ things the parser might find in the XML document (like start tags).") (inherit expat) (source (origin (inherit (package-source expat)) - (patches (search-patches "expat-CVE-2015-1283.patch" + (patches (search-patches "expat-CVE-2012-6702-and-CVE-2016-5300.patch" + "expat-CVE-2015-1283.patch" "expat-CVE-2015-1283-refix.patch" "expat-CVE-2016-0718.patch")))))) -- cgit v1.3 From 45de649a56dd721c6f33474d67b6b207111e8807 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 10 Jun 2016 23:12:09 -0400 Subject: gnu: git: Update to 2.8.4. * gnu/packages/version-control.scm (git): Update to 2.8.4. (git-manpages)[source]: Update hash. --- gnu/packages/version-control.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 346f9753a..801bd2944 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ as well as the classic centralized workflow.") ;; Keep in sync with 'git-manpages'! (package (name "git") - (version "2.8.3") + (version "2.8.4") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "14dafk7rz8cy2z5b92yf009qf4pc70s0viwq7hxsgd4898knr3kx")))) + "0mqnzs4wz2x1fa6kq2ckgf42fgx6qwp64ra1lgg73245l4r9l3hj")))) (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 - "1ilbi4xdn77a5yrjyrcx0nap0j4raw3h1fr0k32zs9y35c6f29cx")))) + "1xdpp1i8sgdzk708vnxrm1z6dg4mip12fswihb8hlg2v5qqgrpfj")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) -- cgit v1.3 From 59befb7f3151fc9688f975dedd563b26f2d4cb10 Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 10 Jun 2016 21:07:52 +0200 Subject: gnu: fish: Update to 2.3.0. * gnu/packages/fish.scm (fish): Update to 2.3.0. Signed-off-by: 宋文武 --- gnu/packages/fish.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm index 72e2156a3..7abaaf0ec 100644 --- a/gnu/packages/fish.scm +++ b/gnu/packages/fish.scm @@ -29,14 +29,14 @@ (define-public fish (package (name "fish") - (version "2.2.0") + (version "2.3.0") (source (origin (method url-fetch) (uri (string-append "http://fishshell.com/files/" version "/fish-" version ".tar.gz")) (sha256 (base32 - "0ympqz7llmf0hafxwglykplw6j5cz82yhlrw50lw4bnf2kykjqx7")) + "1ralmp7lavdl0plc09ppm232aqsn0crxx6m3hgaa06ibam3sqawi")) (modules '((guix build utils))) ;; Don't try to install /etc/fish/config.fish. (snippet -- cgit v1.3 From 2c1286f48b0a6e09a11cc4d1ea173ea8340625a6 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 7 Jun 2016 21:49:17 +0800 Subject: gnu: Add librdkafka. * gnu/packages/networking.scm (librdkafka): New variable. --- gnu/packages/networking.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ba8023aea..d0062a602 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -149,6 +149,43 @@ filtering (subscriptions), seamless access to multiple transport protocols and more.") (license license:lgpl3+))) +(define-public librdkafka + (package + (name "librdkafka") + (version "0.9.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/edenhill/librdkafka/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'configure + ;; its custom configure script doesn't understand 'CONFIG_SHELL'. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; librdkafka++.so lacks RUNPATH for librdkafka.so + (setenv "LDFLAGS" + (string-append "-Wl,-rpath=" out "/lib")) + (zero? (system* "./configure" + (string-append "--prefix=" out))))))))) + (native-inputs + `(("python" ,python-wrapper))) + (propagated-inputs + `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc + (home-page "https://github.com/edenhill/librdkafka") + (synopsis "Apache Kafka C/C++ client library") + (description + "librdkafka is a C library implementation of the Apache Kafka protocol, +containing both Producer and Consumer support.") + (license license:bsd-2))) + (define-public libndp (package (name "libndp") -- cgit v1.3 From d951bd547cd9aadb16c1d324985055822cee50fc Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 7 Jun 2016 21:52:42 +0800 Subject: gnu: Add python-tabulate and python2-tabulate. * gnu/packages/python.scm (python-tabulate, python2-tabulate): New variables. --- gnu/packages/python.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 143fc144b..70e44416c 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9037,3 +9037,35 @@ It uses LR parsing and does extensive error checking.") (inherit (package-with-python2 (strip-python2-variant python-ply))) (native-inputs `(("python2-setuptools" ,python2-setuptools))))) + +(define-public python-tabulate + (package + (name "python-tabulate") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (pypi-uri "tabulate" version)) + (sha256 + (base32 + "03l1r7ddd1a0j2snv1yd0hlnghjad3fg1an1jr8936ksv75slwch")) + ;; Fix tests + (modules '((guix build utils))) + (snippet '(substitute* '("test/test_cli.py" + "test/test_input.py" + "test/test_output.py" + "test/test_regression.py") + (("from common") "from nose.tools"))))) + (build-system python-build-system) + (native-inputs + `(("python-setuptools" ,python-setuptools) + ;; For testing + ("python-nose" ,python-nose))) + (home-page "https://bitbucket.org/astanin/python-tabulate") + (synopsis "Pretty-print tabular data") + (description + "Tabulate is a library and command-line utility to pretty-print tabular +data in Python.") + (license license:expat))) + +(define-public python2-tabulate + (package-with-python2 python-tabulate)) -- cgit v1.3 From 1c4c8a33d7a6ab166559ea281b7f96c2e04bebc7 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 7 Jun 2016 21:53:34 +0800 Subject: gnu: Add python-kazoo and python2-kazoo. * gnu/packages/python.scm (python-kazoo, python2-kazoo): New variables. --- gnu/packages/python.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 70e44416c..acdf4b31b 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9069,3 +9069,30 @@ data in Python.") (define-public python2-tabulate (package-with-python2 python-tabulate)) + +(define-public python-kazoo + (package + (name "python-kazoo") + (version "2.2.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "kazoo" version)) + (sha256 + (base32 + "10pb864if9qi2pq9lfb9m8f7z7ss6rml80gf1d9h64lap5crjnjj")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; XXX: needs zookeeper + (native-inputs + `(("python-setuptools" ,python-setuptools) + ("python-six" ,python-six))) + (home-page "https://kazoo.readthedocs.org") + (synopsis "High-level Zookeeper client library") + (description + "Kazoo is a Python client library for the Apache Zookeeper distributed +application service. It is designed to be easy to use and to avoid common +programming errors.") + (license asl2.0))) + +(define-public python2-kazoo + (package-with-python2 python-kazoo)) -- cgit v1.3 From 45dda35eed09b1f565757ec77781731ca96dd8aa Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Tue, 7 Jun 2016 21:54:06 +0800 Subject: gnu: Add python-pykafka and python2-pykafka. * gnu/packages/python.scm (python-pykafka, python2-pykafka): New variables. --- gnu/packages/python.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index acdf4b31b..b2d27efa4 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9096,3 +9096,33 @@ programming errors.") (define-public python2-kazoo (package-with-python2 python-kazoo)) + +(define-public python-pykafka + (package + (name "python-pykafka") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "pykafka" version)) + (sha256 + (base32 + "1id6sr159p6aa13bxcqyr9gln8sqg1l0ddzns5iws8kk5q1p5cfv")))) + (build-system python-build-system) + (arguments '(#:tests? #f)) ; XXX: needs zookeeper, kafka, etc. + (native-inputs + `(("python-gevent" ,python-gevent) + ("python-kazoo" ,python-kazoo) + ("python-setuptools" ,python-setuptools) + ("python-tabulate" ,python-tabulate))) + (inputs + `(("librdkafka" ,librdkafka))) + (home-page "https://pykafka.readthedocs.io/") + (synopsis "Apache Kafka client for Python") + (description + "PyKafka is a client for the Apache Kafka distributed messaging system. +It includes Python implementations of Kafka producers and consumers, which +are optionally backed by a C extension built on librdkafka.") + (license asl2.0))) + +(define-public python2-pykafka + (package-with-python2 python-pykafka)) -- cgit v1.3 From c71c8b97a2af6fabdaa954910e06a30986c8aaee Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 31 May 2016 16:09:36 +0200 Subject: gnu: gnucash: Add "license:" prefix. * gnu/packages/gnucash.scm: Import licenses with "license:" prefix. (gnucash)[license]: Add prefix. --- gnu/packages/gnucash.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 5c0ce4f54..c39324c69 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2016 Efraim Flashner ;;; @@ -19,7 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (gnu packages gnucash) - #:use-module (guix licenses) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) @@ -106,4 +106,4 @@ It can be used to track bank accounts, stocks, income and expenses, based on the double-entry accounting practice. It includes support for QIF/OFX/HBCI import and transaction matching. It also automates several tasks, such as financial calculations or scheduled transactions.") - (license gpl3+))) + (license license:gpl3+))) -- cgit v1.3 From e4aab734875a40f991b6ecba1247be6fc248f15f Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 6 Jun 2016 14:33:58 +0200 Subject: gnu: xmlsec: Enable gnutls support. * gnu/packages/xml.scm (xmlsec)[native-inputs]: Add pkg-config. --- gnu/packages/xml.scm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index d5967f796..e62bfa7e5 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2013, 2015 Andreas Enge ;;; Copyright © 2015 Eric Bavier ;;; Copyright © 2015 Sou Bunnbu -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2016 Ricardo Wurmus ;;; Copyright © 2015 Mark H Weaver ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2015 Raimon Grau @@ -40,7 +40,8 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system perl) #:use-module (guix build-system python) - #:use-module (gnu packages linux)) + #:use-module (gnu packages linux) + #:use-module (gnu packages pkg-config)) (define-public expat (package @@ -636,6 +637,8 @@ XSL-T processor. It also performs any necessary post-processing.") `(("gnutls" ,gnutls) ("libgcrypt" ,libgcrypt) ("libltdl" ,libltdl))) + (native-inputs + `(("pkg-config" ,pkg-config))) (home-page "http://www.libexpat.org/") (synopsis "XML Security Library") (description -- cgit v1.3 From 5c881f3211ba8c702e7c9d6bdd2f2da2a8e3064c Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 6 Jun 2016 15:17:45 +0200 Subject: gnu: Add gwenhywfar. * gnu/packages/gnucash.scm (gwenhywfar): New variable. --- gnu/packages/gnucash.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index c39324c69..25801aa66 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -25,12 +25,14 @@ #:use-module (guix build-system gnu) #:use-module (gnu packages) #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages web) #:use-module (gnu packages webkit) #:use-module (gnu packages xml)) @@ -107,3 +109,44 @@ the double-entry accounting practice. It includes support for QIF/OFX/HBCI import and transaction matching. It also automates several tasks, such as financial calculations or scheduled transactions.") (license license:gpl3+))) + +(define-public gwenhywfar + (package + (name "gwenhywfar") + (version "4.15.3") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.aquamaniac.de/sites/download/download.php?" + "package=01&release=201&file=01&dummy=gwenhywfar-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0fp67s932x66xfljb26zbrn8ambbc5y5c3hllr6l284nr63qf3ka")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + (list "--disable-network-checks" + ;; Both GTK+2 and QT4 are supported. + "--with-guis=gtk2" + (string-append "--with-openssl-includes=" + (assoc-ref %build-inputs "openssl") "/include") + (string-append "--with-openssl-libs=" + (assoc-ref %build-inputs "openssl") "/lib")))) + (inputs + `(("libgcrypt" ,libgcrypt) + ("gnutls" ,gnutls) + ("openssl" ,openssl) + ("gtk+" ,gtk+-2))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "http://www.aquamaniac.de/sites/aqbanking/index.php") + (synopsis "Utility library for networking and security applications") + (description + "This package provides a helper library for networking and security +applications and libraries. It is used by AqBanking.") + ;; The license includes an explicit additional permission to compile and + ;; distribute this library with the OpenSSL Toolkit. + (license license:lgpl2.1+))) + -- cgit v1.3 From 445aa1375363b1375a109501635a4e7cb631290e Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 6 Jun 2016 15:18:16 +0200 Subject: gnu: Add AqBanking. * gnu/packages/gnucash.scm (aqbanking): New variable. --- gnu/packages/gnucash.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 25801aa66..29989196c 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -24,12 +24,14 @@ #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages icu4c) + #:use-module (gnu packages multiprecision) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) @@ -150,3 +152,44 @@ applications and libraries. It is used by AqBanking.") ;; distribute this library with the OpenSSL Toolkit. (license license:lgpl2.1+))) +(define-public aqbanking + (package + (name "aqbanking") + (version "5.6.10") + (source + (origin + (method url-fetch) + (uri (string-append "http://www.aquamaniac.de/sites/download/download.php?" + "package=03&release=206&file=01&dummy=aqbanking-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1x0isvpk43rq2zlyyb9p0kgjmqv7yq07vgkiprw3f5sjkykvxw6d")))) + (build-system gnu-build-system) + (arguments + `(;; Parallel building fails because aqhbci is required before it's + ;; built. + #:parallel-build? #f + #:configure-flags + (list (string-append "--with-gwen-dir=" + (assoc-ref %build-inputs "gwenhywfar"))))) + (propagated-inputs + `(("gwenhywfar" ,gwenhywfar))) + (inputs + `(("gmp" ,gmp) + ("xmlsec" ,xmlsec) + ("gnutls" ,gnutls))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("libltdl" ,libltdl))) + (home-page "http://www.aquamaniac.de/sites/aqbanking/index.php") + (synopsis "Interface for online banking tasks") + (description + "AqBanking is a modular and generic interface to online banking tasks, +financial file formats (import/export) and bank/country/currency information. +AqBanking uses backend plugins to actually perform the online tasks. HBCI, +OFX DirectConnect, YellowNet, GeldKarte, and DTAUS discs are currently +supported. AqBanking is used by GnuCash, KMyMoney, and QBankManager.") + ;; AqBanking is licensed under the GPLv2 or GPLv3 + (license (list license:gpl2 license:gpl3)))) -- cgit v1.3 From 945939a5b4f0ea2a12ab0220558acd3ee434cf99 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 6 Jun 2016 15:18:34 +0200 Subject: gnu: gnucash: Add support for AqBanking. * gnu/packages/gnucash.scm (gnucash)[inputs]: Add aqbanking. [arguments]: Add configure flag to enable aqbanking. --- gnu/packages/gnucash.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 29989196c..eaa84ccc3 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -63,6 +63,7 @@ ("libxml2" ,libxml2) ("libxslt" ,libxslt) ("webkitgtk" ,webkitgtk/gtk+-2) + ("aqbanking" ,aqbanking) ("perl-date-manip" ,perl-date-manip) ("perl-finance-quote" ,perl-finance-quote))) (native-inputs @@ -71,7 +72,8 @@ ("pkg-config" ,pkg-config))) (arguments `(#:tests? #f ;FIXME: failing at /qof/gnc-date/qof print date dmy buff - #:configure-flags '("--disable-dbi") + #:configure-flags '("--disable-dbi" + "--enable-aqbanking") #:phases (modify-phases %standard-phases (add-after -- cgit v1.3 From 6b741f6898a2b8a4864d12e05bf3c9eec8c1a463 Mon Sep 17 00:00:00 2001 From: Taylan Ulrich Bayırlı/Kammer Date: Sun, 12 Jun 2016 01:28:46 +0300 Subject: gnu: higan: Update to v099. This release removes the "balanced" emulation core (aka profile). --- gnu/packages/games.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1d0a94534..707e0d622 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2247,7 +2247,7 @@ Red Eclipse provides fast paced and accessible gameplay.") (define-public higan (package (name "higan") - (version "098b") + (version "099") (source (origin (method url-fetch) @@ -2256,7 +2256,7 @@ Red Eclipse provides fast paced and accessible gameplay.") version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "05j0xzr01gsyia4gj6jmdzklll4iky1kwxgxw0mmfcgm10m0h3bf")) + (base32 "0xlzjqrd308hmg6yjzjkmxkkr9p3w387kf6yxyplb47jcbx2sq4n")) (patches (search-patches "higan-remove-march-native-flag.patch")))) (build-system gnu-build-system) (native-inputs @@ -2323,7 +2323,6 @@ Red Eclipse provides fast paced and accessible gameplay.") `("PATH" ":" prefix (,bin)))))))) #:make-flags (list "compiler=g++" - "profile=balanced" ;default is accuracy; which is quite slow (string-append "prefix=" (assoc-ref %outputs "out"))) ;; There is no test suite. #:tests? #f)) -- cgit v1.3 From b414c115d84b1afc8ec03ecdd213cd6480a95786 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Thu, 9 Jun 2016 21:26:29 -0400 Subject: gnu: signify: Update to 18. * gnu/packages/crypto.scm (signify): Update to 18. --- gnu/packages/crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index b2ea84893..3f0b508d3 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -53,7 +53,7 @@ communication, encryption, decryption, signatures, etc.") (define-public signify (package (name "signify") - (version "17") + (version "18") (source (origin (method url-fetch) (uri (string-append "https://github.com/aperezdc/signify/" @@ -61,7 +61,7 @@ communication, encryption, decryption, signatures, etc.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0kfv2k1fqck31vwlnicavb0h541ilad9zd7j8zz8x2kx36wwqpr7")))) + "00lbjiy0gv1b1fvrd6ni4qah96ah4qf6aig05vd2hji4vs00jgwg")))) (build-system gnu-build-system) ;; TODO Build with libwaive (described in README.md), to implement something ;; like OpenBSD's pledge(). -- cgit v1.3 From bb88a9a976f377d8b6217b3fafa0795a9ff6a852 Mon Sep 17 00:00:00 2001 From: ng0 Date: Sat, 11 Jun 2016 11:44:17 +0000 Subject: gnu: libmicrohttpd: Update to 0.9.50. * gnu/packages/gnunet.scm (libmicrohttpd): Update to 0.9.50. Signed-off-by: Leo Famulari --- gnu/packages/gnunet.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 0819c485c..c4e2a3795 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2016 Ni* Gillmann ;;; Copyright © 2016 Ricardo Wurmus ;;; Copyright © 2016 Mark H Weaver +;;; Copyright © 2016 ng0 ;;; ;;; This file is part of GNU Guix. ;;; @@ -121,14 +122,14 @@ tool to extract metadata from a file and print the results.") (define-public libmicrohttpd (package (name "libmicrohttpd") - (version "0.9.48") + (version "0.9.50") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/libmicrohttpd/libmicrohttpd-" version ".tar.gz")) (sha256 (base32 - "1952z36lf31jy0x19r4y389d9188wgzmdqh2l28wdy1biwapwrl7")))) + "1mzbqr6sqisppz88mh73bbh5sw57g8l87qvhcjdx5pmbd183idni")))) (build-system gnu-build-system) (inputs `(("curl" ,curl) -- cgit v1.3 From 1d4f0994f255ff7adc558a5d6f653d1551bf91a9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 11 Jun 2016 19:45:09 -0400 Subject: gnu: wireshark: Update to 2.0.4 [security fixes]. Fixes CVE-2016-{5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359}. * gnu/packages/networking.scm (wireshark): Update to 2.0.4. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index d0062a602..72c601102 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -328,7 +328,7 @@ and up to 1 Mbit/s downstream.") (define-public wireshark (package (name "wireshark") - (version "2.0.3") + (version "2.0.4") (synopsis "Network traffic analyzer") (source (origin @@ -337,7 +337,7 @@ and up to 1 Mbit/s downstream.") version ".tar.bz2")) (sha256 (base32 - "1z358k65frp9m0l07cppwxhvbcp1w9ya5sml87pzs8gyfmp3g5p1")))) + "19g11m8m8qd7dkcvcb27lyppklg608d9ap7wr3mr88clm4nwiacy")))) (build-system glib-or-gtk-build-system) (inputs `(("bison" ,bison) ("c-ares" ,c-ares) -- cgit v1.3 From 813f814a2997445ea656085dc1816cbb1a93c664 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 7 Jun 2016 07:58:24 -0400 Subject: gnu: Add arc-theme. * gnu/packages/gnome.scm (arc-theme): New variable. --- gnu/packages/gnome.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8384c76d6..b63a602c9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5182,3 +5182,36 @@ GNOME 3. This includes things like the fonts used in user interface elements, alternative user interface themes, changes in window management behavior, GNOME Shell appearance and extension, etc.") (license license:gpl3+))) + +(define-public arc-theme + (package + (name "arc-theme") + (version "20160605") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/horst3180/arc-theme" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sq2031xda8jn2ws0x2bvhq77jfh7xy0c3kg86v6vm2kbrrss7y6")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vif"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (inputs + `(("gtk+" ,gtk+))) + (synopsis "A flat GTK+ theme with transparent elements") + (description "Arc is a flat theme with transparent elements for GTK 3, GTK +2, and GNOME Shell which supports GTK 3 and GTK 2 based desktop environments +like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") + (home-page "https://github.com/horst3180/arc-theme") + ;; No "or later" language found. + (license license:gpl3))) -- cgit v1.3 From 9987c57c74bcea6bf0594951e44ec3b1ba5e6380 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 7 Jun 2016 07:58:51 -0400 Subject: gnu: Add moka-icon-theme. * gnu/packages/gnome.scm (moka-icon-theme): New variable. --- gnu/packages/gnome.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b63a602c9..365c93be1 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5215,3 +5215,38 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") (home-page "https://github.com/horst3180/arc-theme") ;; No "or later" language found. (license license:gpl3))) + +(define-public moka-icon-theme + (package + (name "moka-icon-theme") + (version "5.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/moka-project" + "/moka-icon-theme/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lnk7p8dsd9xh6cgz5krvlcr457w8yl4m6p6s5c2g5narsjswzrm")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-makefile.am + (lambda _ + (substitute* '("Makefile.am") + (("\\$\\(DESTDIR\\)/usr/share") + "$(datadir)")) + #t)) + (add-after 'patch-makefile.am 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vif"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + (synopsis "Moka icon theme") + (description "Moka is a stylized desktop icon set, designed to be clear, +simple and consistent.") + (home-page "http://snwh.org/moka") + (license license:gpl3+))) -- cgit v1.3 From 6fd8f8d6fc3219f18cf48268062d9e98d308eb91 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 7 Jun 2016 07:59:07 -0400 Subject: gnu: Add arc-icon-theme. * gnu/packages/gnome.scm (arc-icon-theme): New variable. --- gnu/packages/gnome.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 365c93be1..c87c37142 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5250,3 +5250,35 @@ like GNOME, Unity, Budgie, Pantheon, XFCE, Mate, etc.") simple and consistent.") (home-page "http://snwh.org/moka") (license license:gpl3+))) + +(define-public arc-icon-theme + (package + (name "arc-icon-theme") + (version "20160605") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/horst3180/arc-icon-theme" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1npf0ki0j0llrw9wbffhxxa1cdms0q7b8xlg9m943dd9g7pgdm2p")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vif"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake))) + ;; When Arc is missing an icon, it looks in the Moka icon theme for it. + (propagated-inputs + `(("moka-icon-theme" ,moka-icon-theme))) + (synopsis "Arc icon theme") + (description "The Arc icon theme provides a set of icons matching the +style of the Arc GTK theme. Icons missing from the Arc theme are provided by +the Moka icon theme.") + (home-page "https://github.com/horst3180/arc-icon-theme") + (license license:gpl3+))) -- cgit v1.3 From 11b8e66a4c11c3aba7f29daf9d885e4b61ce87ec Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Sun, 5 Jun 2016 12:12:35 +0300 Subject: gnu: manaplus: Update to 1.6.6.4. * gnu/packages/games.scm (manaplus): Update to 1.6.6.4. --- gnu/packages/games.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 707e0d622..9f4a4f9e8 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1190,7 +1190,7 @@ is programmed in Haskell.") (define-public manaplus (package (name "manaplus") - (version "1.6.4.23") + (version "1.6.6.4") (source (origin (method url-fetch) (uri (string-append @@ -1198,7 +1198,7 @@ is programmed in Haskell.") version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "1ja2w86rz3pliq0sdc7yxppsdjg3d1ymcx9fdsiwnw6fv5a8nbzj")))) + "00sdw2mspdhrqvz0vl6jbnhiclj7vmvyjih9qf8dbkfw2s921ybc")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.3 From 6e46836c76ffb5ce26ceb336e27d12de92980450 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 12 Jun 2016 15:19:53 -0400 Subject: gnu: imagemagick: Update to 6.9.4-9. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.4-9. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 523120091..79b006f41 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -41,14 +41,14 @@ (define-public imagemagick (package (name "imagemagick") - (version "6.9.4-7") + (version "6.9.4-9") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "11jcbc9phx37m7ra4v3qsfa2iqh3srsvxplxz38h911jvgfchkzm")))) + "0js5l6inar2p7zi5qhr8g34qs0gm2x03gs8k8yjh4cnzzac18d82")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths") -- cgit v1.3 From d95e8e0170f7d4f9c50921379e89192425a65038 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sun, 12 Jun 2016 23:23:23 +0200 Subject: gnu: Add emacs-rainbow-identifiers. * gnu/packages/emacs.scm (emacs-rainbow-identifiers): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1f1d201a3..6a79412f7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2016 David Thompson ;;; Copyright © 2016 Matthew Jordan +;;; Copyright © 2016 Roel Janssen ;;; ;;; This file is part of GNU Guix. ;;; @@ -1933,6 +1934,28 @@ matching delimiters, orient yourself in the code, and tell which statements are at a given level.") (license license:gpl3+))) +(define-public emacs-rainbow-identifiers + (package + (name "emacs-rainbow-identifiers") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (string-append "https://raw.githubusercontent.com/Fanael" + "/rainbow-identifiers/" version + "/rainbow-identifiers.el")) + (file-name (string-append "rainbow-identifiers-" version ".el")) + (sha256 + (base32 + "0325abxj47k0g1i8nqrq70w2wr6060ckhhf92krv1s072b3jzm31")))) + (build-system emacs-build-system) + (home-page "https://github.com/Fanael/rainbow-identifiers") + (synopsis "Highlight identifiers in source code") + (description + "Rainbow identifiers mode is an Emacs minor mode providing highlighting of +identifiers based on their names. Each identifier gets a color based on a hash +of its name.") + (license license:bsd-2))) + (define-public emacs-ido-completing-read+ (package (name "emacs-ido-completing-read+") -- cgit v1.3 From 31d968fbcfa78b52c5280503417b67943f8a9660 Mon Sep 17 00:00:00 2001 From: Orivej Desh Date: Sat, 11 Jun 2016 04:24:21 +0000 Subject: gnu: unison: Install unison-fsmonitor. * gnu/packages/ocaml.scm (unison)[arguments]: Add 'install-fsmonitor' phase. Signed-off-by: Ludovic Courtès --- gnu/packages/ocaml.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index a0a4b936d..bd913f6ec 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -590,8 +590,14 @@ libpanel, librsvg and quartz.") (mkdir-p bin) (setenv "HOME" out) ; forces correct INSTALLDIR in Makefile #t))) + (add-after 'install 'install-fsmonitor + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + ;; 'unison-fsmonitor' is used in "unison -repeat watch" mode. + (install-file "src/unison-fsmonitor" bin)))) (add-after 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) + (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") "/share/doc/unison"))) (mkdir-p doc) -- cgit v1.3