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(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index fa6109a07d..e1651938b9 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -51,21 +51,35 @@ (define-module (gnu packages java) #: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.2.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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/fonts.scm (font-hack): New variable. Signed-off-by: 宋文武 --- gnu/packages/fonts.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 893db56ee5..fd3962dbc3 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 @@ (define-public font-fantasque-sans 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.2.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(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index dfbf2cc916..143fc144b6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9009,3 +9009,31 @@ (define-public python-twisted (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.2.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(+) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 368f09632c..4181ffbcaa 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2244,3 +2244,96 @@ (define-public red-eclipse 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.2.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(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 0b0a2a2d37..e543a7e3fe 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -321,7 +321,7 @@ (define openssl/fixed (define-public libressl (package (name "libressl") - (version "2.3.4") + (version "2.3.5") (source (origin (method url-fetch) @@ -330,7 +330,7 @@ (define-public libressl 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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index d3e72629bc..1a61782439 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 0000000000..5d1f04b994 --- /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 c6b6eedb9d..077157cf0f 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2101,6 +2101,38 @@ (define-public ruby-tzinfo (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.2.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(-) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 077157cf0f..212ab22eed 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -2541,7 +2541,8 @@ (define-public ruby-activesupport ("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.2.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(+) diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm index 212ab22eed..10c1230bda 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3960,3 +3960,39 @@ (define-public ruby-sequel 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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index 1a61782439..ff476be448 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 0000000000..4e801c3225 --- /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 10c1230bda..527f76b404 100644 --- a/gnu/packages/ruby.scm +++ b/gnu/packages/ruby.scm @@ -3995,4 +3995,61 @@ (define-public ruby-timecop (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.2.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(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index eae7f64d85..692f3645e6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -559,15 +559,15 @@ (define-public ffmpeg-2.8 (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 @@ (define-public vlc ("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 @@ (define-public vlc #: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.2.3 From ae768308575051050f71dabdb15d0b71223f1c2a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jun 2016 14:45:30 +0200 Subject: doc: Add missing quotes in wpa_supplicant example. Reported by Kete Foy . * doc/guix.texi (Preparing for Installation): Add quotes in wpa_supplicant example. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index b9bf986640..9b36468557 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6048,7 +6048,7 @@ passphrase for the network you are connecting to: @example network=@{ - ssid=@var{my-ssid} + ssid="@var{my-ssid}" key_mgmt=WPA-PSK psk="the network's secret passphrase" @} -- cgit v1.2.3 From dc794a723809f0f28e49e4c32e8974b5b9a98ff0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jun 2016 17:59:45 +0200 Subject: gnu-maintenance: Replace 'find-packages' with 'find-package' (singular). Fixes . Reported by Efraim Flashner . * guix/gnu-maintenance.scm (find-packages): Remove. (find-package): New procedure. * guix/import/gnu.scm (gnu->guix-package): Use 'find-package' instead of 'find-packages' and adjust accordingly. --- guix/gnu-maintenance.scm | 15 +++++++-------- guix/import/gnu.scm | 10 +++++----- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index adb62aa68c..0dd08bf535 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -48,7 +48,7 @@ (define-module (guix gnu-maintenance) gnu-package-download-url official-gnu-packages - find-packages + find-package gnu-package? release-file? @@ -155,13 +155,12 @@ (define official-description (close-port port) lst))) -(define (find-packages regexp) - "Find GNU packages which satisfy REGEXP." - (let ((name-rx (make-regexp regexp))) - (filter (lambda (package) - (false-if-exception - (regexp-exec name-rx (gnu-package-name package)))) - (official-gnu-packages)))) +(define (find-package name) + "Find GNU package called NAME and return it. Return #f if it was not +found." + (find (lambda (package) + (string=? name (gnu-package-name package))) + (official-gnu-packages))) (define gnu-package? (memoize diff --git a/guix/import/gnu.scm b/guix/import/gnu.scm index 2cfb46beb9..bbb17047f0 100644 --- a/guix/import/gnu.scm +++ b/guix/import/gnu.scm @@ -111,13 +111,13 @@ (define* (gnu->guix-package name (match (latest-release name) ((? upstream-source? release) (let ((version (upstream-source-version release))) - (match (find-packages (regexp-quote name)) - ((info . _) - (gnu-package->sexp info release #:key-download key-download)) - (() + (match (find-package name) + (#f (raise (condition (&message - (message "couldn't find meta-data for GNU package")))))))) + (message "couldn't find meta-data for GNU package"))))) + (info + (gnu-package->sexp info release #:key-download key-download))))) (_ (raise (condition (&message -- cgit v1.2.3 From 93961f02987cf738d116cc85cc32d97c2a488222 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 8 Jun 2016 18:59:25 +0200 Subject: publish: Encore URIs that appear in narinfos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Reported by iyzsong@member.fsf.org (宋文武). * guix/scripts/publish.scm (narinfo-string): Use 'encode-and-join-uri-path' instead of 'string-append' to compute URL. * tests/publish.scm ("/*.narinfo with properly encoded '+' sign"): ("/nar/ with properly encoded '+' sign"): New tests. --- guix/scripts/publish.scm | 3 ++- tests/publish.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 46292131d7..ddb579bb17 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -146,7 +146,8 @@ (define (narinfo-string store store-path key) "Generate a narinfo key/value string for STORE-PATH; an exception is raised if STORE-PATH is invalid. The narinfo is signed with KEY." (let* ((path-info (query-path-info store store-path)) - (url (string-append "nar/" (basename store-path))) + (url (encode-and-join-uri-path (list "nar" + (basename store-path)))) (hash (bytevector->nix-base32-string (path-info-hash path-info))) (size (path-info-nar-size path-info)) diff --git a/tests/publish.scm b/tests/publish.scm index 6645286f5a..d6d537c58a 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -30,12 +30,14 @@ (define-module (test-publish) #:use-module (guix base64) #:use-module ((guix serialization) #:select (restore-file)) #:use-module (guix pk-crypto) + #:use-module (web uri) #:use-module (web client) #:use-module (web response) #:use-module (rnrs bytevectors) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64) + #:use-module (ice-9 format) #:use-module (ice-9 match) #:use-module (ice-9 rdelim)) @@ -101,6 +103,37 @@ (define (publish-uri route) (publish-uri (string-append "/" (store-path-hash-part %item) ".narinfo"))))) +(test-equal "/*.narinfo with properly encoded '+' sign" + ;; See . + (let* ((item (add-text-to-store %store "fake-gtk+" "Congrats!")) + (info (query-path-info %store item)) + (unsigned-info + (format #f + "StorePath: ~a +URL: nar/~a +Compression: none +NarHash: sha256:~a +NarSize: ~d +References: ~%" + item + (uri-encode (basename item)) + (bytevector->nix-base32-string + (path-info-hash info)) + (path-info-nar-size info))) + (signature (base64-encode + (string->utf8 + (canonical-sexp->string + ((@@ (guix scripts publish) signed-string) + unsigned-info)))))) + (format #f "~aSignature: 1;~a;~a~%" + unsigned-info (gethostname) signature)) + + (let ((item (add-text-to-store %store "fake-gtk+" "Congrats!"))) + (utf8->string + (http-get-body + (publish-uri + (string-append "/" (store-path-hash-part item) ".narinfo")))))) + (test-equal "/nar/*" "bar" (call-with-temporary-output-file @@ -112,6 +145,18 @@ (define (publish-uri route) (call-with-input-string nar (cut restore-file <> temp))) (call-with-input-file temp read-string)))) +(test-equal "/nar/ with properly encoded '+' sign" + "Congrats!" + (let ((item (add-text-to-store %store "fake-gtk+" "Congrats!"))) + (call-with-temporary-output-file + (lambda (temp port) + (let ((nar (utf8->string + (http-get-body + (publish-uri + (string-append "/nar/" (uri-encode (basename item)))))))) + (call-with-input-string nar (cut restore-file <> temp))) + (call-with-input-file temp read-string))))) + (test-equal "/nar/invalid" 404 (begin -- cgit v1.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index ff476be448..cc236a7d16 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 0000000000..1fdf01cbca --- /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 692f3645e6..eee04faec0 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -839,7 +839,8 @@ (define-public libvpx 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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index cc236a7d16..8915c46cdd 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 4ffa3ac165..46342ee247 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -298,7 +298,21 @@ (define-public icecat (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 0000000000..57bc45f3c2 --- /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 0000000000..843e2eb244 --- /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 0000000000..fab003158c --- /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 0000000000..0973203e0f --- /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 0000000000..cd98d0b28b --- /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 0000000000..143b02fa58 --- /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 0000000000..23c509d6c1 --- /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 0000000000..ee5e54e805 --- /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 0000000000..a72698cc0b --- /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 0000000000..cbb833d43d --- /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 0000000000..8255d60009 --- /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 0000000000..72772ed15f --- /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 0000000000..951eb4fc46 --- /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 0000000000..b99ecb6458 --- /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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index 8915c46cdd..b07aa42f7d 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 0000000000..15ec6a0aee --- /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 dc5c60dca8..40ff3e6b4b 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -116,7 +116,8 @@ (define libxml2/fixed version ".tar.gz")) (sha256 (base32 - "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))))) + "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz")) + (patches (search-patches "libxml2-CVE-2016-1762.patch"))))))) (define-public python-libxml2 (package (inherit libxml2) -- cgit v1.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index b07aa42f7d..8915c46cdd 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 15ec6a0aee..0000000000 --- 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 40ff3e6b4b..dc5c60dca8 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -116,8 +116,7 @@ (define libxml2/fixed version ".tar.gz")) (sha256 (base32 - "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz")) - (patches (search-patches "libxml2-CVE-2016-1762.patch"))))))) + "0g336cr0bw6dax1q48bblphmchgihx9p1pjmxdnrd6sh3qci3fgz"))))))) (define-public python-libxml2 (package (inherit libxml2) -- cgit v1.2.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(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 4181ffbcaa..0d095ac368 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -418,7 +418,7 @@ (define-public freedink (define-public xboard (package (name "xboard") - (version "4.8.0") + (version "4.9.0") (source (origin (method url-fetch) @@ -426,12 +426,11 @@ (define-public xboard ".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.2.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(-) diff --git a/gnu/packages/owncloud.scm b/gnu/packages/owncloud.scm index 954e689f7d..4969d31c01 100644 --- a/gnu/packages/owncloud.scm +++ b/gnu/packages/owncloud.scm @@ -34,14 +34,14 @@ (define-module (gnu packages owncloud) (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.2.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(+) diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm index 9eef7a9a71..cecc026479 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 @@ (define-public cppcheck 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.2.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(-) diff --git a/gnu/packages/irc.scm b/gnu/packages/irc.scm index 64edf652f8..def16c939c 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 @@ (define-public irssi (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.2.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(-) diff --git a/gnu/packages/suckless.scm b/gnu/packages/suckless.scm index f582aea42f..87e5aadc40 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 @@ (define-public slock (define-public st (package (name "st") - (version "0.5") + (version "0.6") (source (origin (method url-fetch) @@ -159,7 +160,7 @@ (define-public st version ".tar.gz")) (sha256 (base32 - "0knxpzaa86pprng6hak8hx8bw22yw22rpz1ffxjpcvqlz3xdv05f")))) + "0avsfc1qp8zvshsfjwwrkvk411jlqy58z225bsdhjkl1qc40qcc5")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no tests -- cgit v1.2.3 From 638c5b79397aba92ab3211a1ea3b3418e112ec66 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 9 Jun 2016 23:28:17 +0200 Subject: ui: 'string->duration' supports hours and seconds. * guix/ui.scm (string->duration): Add seconds and hours. * tests/ui.scm ("duration, 1 second"): New test. --- guix/ui.scm | 10 +++++++++- tests/ui.scm | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index cbc9dc841a..4d1b65cb8a 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -968,7 +968,15 @@ (define (hours->duration hours match) (make-time time-duration 0 (* 3600 hours (string->number (match:substring match 1))))) - (cond ((string-match "^([0-9]+)d$" str) + (cond ((string-match "^([0-9]+)s$" str) + => + (lambda (match) + (make-time time-duration 0 + (string->number (match:substring match 1))))) + ((string-match "^([0-9]+)h$" str) + (lambda (match) + (hours->duration 1 match))) + ((string-match "^([0-9]+)d$" str) => (lambda (match) (hours->duration 24 match))) diff --git a/tests/ui.scm b/tests/ui.scm index 51577acb76..058207e8b9 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -189,6 +189,10 @@ (define guile-2.0.9 (string->duration "1m") (string->duration "30d")) +(test-equal "duration, 1 second" + (make-time time-duration 0 1) + (string->duration "1s")) + (test-equal "duration, integer" #f (string->duration "1")) -- cgit v1.2.3 From e4c7a5f7c87b2927f1092108f181f44c96377633 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 9 Jun 2016 23:33:20 +0200 Subject: publish: Add '--ttl'. * guix/scripts/publish.scm (show-help, %options): Add --ttl. (render-narinfo): Add #:ttl and honor it. (make-request-handler): Add #:narinfo-ttl and honor it. (run-publish-server): Likewise. (guix-publish): Honor --ttl, pass it to 'run-publish-server'. --- doc/guix.texi | 10 ++++++++++ guix/scripts/publish.scm | 36 ++++++++++++++++++++++++++++-------- 2 files changed, 38 insertions(+), 8 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 9b36468557..1f766fc13b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5545,6 +5545,16 @@ accept connections from any interface. Change privileges to @var{user} as soon as possible---i.e., once the server socket is open and the signing key has been read. +@item --ttl=@var{ttl} +Produce @code{Cache-Control} HTTP headers that advertise a time-to-live +(TTL) of @var{ttl}. @var{ttl} must denote a duration: @code{5d} means 5 +days, @code{1m} means 1 month, and so on. + +This allows the user's Guix to keep substitute information in cache for +@var{ttl}. However, note that @code{guix publish} does not itself +guarantee that the store items it provides will indeed remain available +for as long as @var{ttl}. + @item --repl[=@var{port}] @itemx -r [@var{port}] Spawn a Guile REPL server (@pxref{REPL Servers,,, guile, GNU Guile diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index ddb579bb17..4c0aa8e419 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -28,6 +28,7 @@ (define-module (guix scripts publish) #:use-module (srfi srfi-1) #:use-module (srfi srfi-2) #:use-module (srfi srfi-9 gnu) + #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) #:use-module (srfi srfi-37) #:use-module (web http) @@ -57,6 +58,8 @@ (define (show-help) --listen=HOST listen on the network interface for HOST")) (display (_ " -u, --user=USER change privileges to USER as soon as possible")) + (display (_ " + --ttl=TTL announce narinfos can be cached for TTL seconds")) (display (_ " -r, --repl[=PORT] spawn REPL server on PORT")) (newline) @@ -99,6 +102,13 @@ (define %options (() (leave (_ "lookup of host '~a' returned nothing") name))))) + (option '("ttl") #t #f + (lambda (opt name arg result) + (let ((duration (string->duration arg))) + (unless duration + (leave (_ "~a: invalid duration~%") arg)) + (alist-cons 'narinfo-ttl (time-second duration) + result)))) (option '(#\r "repl") #f #t (lambda (opt name arg result) ;; If port unspecified, use default Guile REPL port. @@ -199,12 +209,18 @@ (define (render-nix-cache-info) (format port "~a: ~a~%" key value))) %nix-cache-info)))) -(define (render-narinfo store request hash) - "Render metadata for the store path corresponding to HASH." +(define* (render-narinfo store request hash #:key ttl) + "Render metadata for the store path corresponding to HASH. If TTL is true, +advertise it as the maximum validity period (in seconds) via the +'Cache-Control' header. This allows 'guix substitute' to cache it for an +appropriate duration." (let ((store-path (hash-part->path store hash))) (if (string-null? store-path) (not-found request) - (values '((content-type . (application/x-nix-narinfo))) + (values `((content-type . (application/x-nix-narinfo)) + ,@(if ttl + `((cache-control (max-age . ,ttl))) + '())) (cut display (narinfo-string store store-path (force %private-key)) <>))))) @@ -300,7 +316,7 @@ (define-server-impl concurrent-http-server http-write (@@ (web server http) http-close)) -(define (make-request-handler store) +(define* (make-request-handler store #:key narinfo-ttl) (lambda (request body) (format #t "~a ~a~%" (request-method request) @@ -312,15 +328,18 @@ (define (make-request-handler store) (render-nix-cache-info)) ;; /.narinfo (((= extract-narinfo-hash (? string? hash))) - (render-narinfo store request hash)) + ;; TODO: Register roots for HASH that will somehow remain for + ;; NARINFO-TTL. + (render-narinfo store request hash #:ttl narinfo-ttl)) ;; /nar/ (("nar" store-item) (render-nar store request store-item)) (_ (not-found request))) (not-found request)))) -(define (run-publish-server socket store) - (run-server (make-request-handler store) +(define* (run-publish-server socket store + #:key narinfo-ttl) + (run-server (make-request-handler store #:narinfo-ttl narinfo-ttl) concurrent-http-server `(#:socket ,socket))) @@ -358,6 +377,7 @@ (define (guix-publish . args) %default-options)) (user (assoc-ref opts 'user)) (port (assoc-ref opts 'port)) + (ttl (assoc-ref opts 'narinfo-ttl)) (address (let ((addr (assoc-ref opts 'address))) (make-socket-address (sockaddr:fam addr) (sockaddr:addr addr) @@ -384,4 +404,4 @@ (define (guix-publish . args) (when repl-port (repl:spawn-server (repl:make-tcp-server-socket #:port repl-port))) (with-store store - (run-publish-server socket store))))) + (run-publish-server socket store #:narinfo-ttl ttl))))) -- cgit v1.2.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(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index acfda4a2df..c79160f05c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -301,7 +301,7 @@ (define-public qt-4 (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 @@ (define-public qtbase version ".tar.xz")) (sha256 (base32 - "0ynnvcs5idivzldsq5ciqg9myg82b3l3906l4vjv54lyamf8mykf")) + "0r3jrqymnnxrig4f11xvs33c26f0kzfakbp3kcbdpv795gpc276h")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.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(+) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7e0188b2a0..3458b3ba33 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -400,6 +400,67 @@ (define-public recutils (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.2.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'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 74e58c44af..6f00edb06b 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -939,6 +939,16 @@ (define-public g-wrap ("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.2.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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web.scm (woof): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/web.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 6ac03fcce6..28f247cba6 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 @@ (define-module (gnu packages web) #: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 @@ (define-public uhttpmock 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.2.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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/admin.scm (dstat): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/admin.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index abfef36660..81ca58d8f5 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 @@ (define-module (gnu packages admin) #: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 @@ (define (python-path dir) ;; 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.2.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(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 81ca58d8f5..78f36a18cf 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -1680,4 +1680,4 @@ (define-public dstat 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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index 8915c46cdd..f31e5776d9 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 0d095ac368..1d0a945347 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2247,15 +2247,17 @@ (define-public red-eclipse (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 @@ (define-public higan `("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 0000000000..8f4a36dc35 --- /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.2.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(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index df6983047c..5e86ebd2c2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -357,13 +357,13 @@ (define-public linux-libre-4.4 (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.2.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(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5e86ebd2c2..7c8468a846 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -340,13 +340,13 @@ (define-public linux-libre (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.2.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(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7c8468a846..b6fa7c0545 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -225,7 +225,7 @@ (define* (kernel-config system #:key variant) (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 @@ (define-public linux-libre (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.2.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 diff --git a/gnu/local.mk b/gnu/local.mk index f31e5776d9..73aef0aa8e 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 0000000000..edc43f84f1 --- /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 dc5c60dca8..d5967f7966 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -69,7 +69,8 @@ (define expat/fixed (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.2.3 From 359f06aac8e6aaab96b68a0497224c00b622c193 Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 11 Jun 2016 09:57:11 +0800 Subject: profiles: xdg-mime-database: Union the "share/mime/packages" directory. * guix/profiles.scm (xdg-mime-database): Call 'union-build' for the "share/mime/packages" directory of inputs. --- guix/profiles.scm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index ce8a11fbe5..3cb7b7a3ed 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -733,18 +733,18 @@ (define build (guix build union)) (let* ((datadir (string-append #$output "/share")) (destdir (string-append datadir "/mime")) - (mimedirs (filter file-exists? - (map (cut string-append <> - "/share/mime") - '#$(manifest-inputs manifest)))) + (pkgdirs (filter file-exists? + (map (cut string-append <> + "/share/mime/packages") + '#$(manifest-inputs manifest)))) (update-mime-database (string-append #+shared-mime-info "/bin/update-mime-database"))) - (mkdir-p datadir) - (union-build destdir mimedirs - #:log-port (%make-void-port "w")) - (setenv "XDG_DATA_HOME" datadir) - (zero? (system* update-mime-database destdir))))) + (mkdir-p destdir) + (union-build (string-append destdir "/packages") pkgdirs + #:log-port (%make-void-port "w")) + (setenv "XDG_DATA_HOME" datadir) + (zero? (system* update-mime-database destdir))))) ;; Don't run the hook when 'shared-mime-info' is referenced. (if shared-mime-info -- cgit v1.2.3 From 963521a3804893ec22a5cd7614791aa2925daa7b Mon Sep 17 00:00:00 2001 From: 宋文武 Date: Sat, 11 Jun 2016 10:29:45 +0800 Subject: profiles: manifest-lookup-package: Correctly handle package entries. * guix/profiles.scm (manifest-lookup-package): Consider the package entry in addition to its 'package-transitive-inputs'. --- guix/profiles.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 3cb7b7a3ed..37ea302e82 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -469,7 +469,8 @@ (define references* (with-monad %store-monad (match (manifest-entry-item entry) ((? package? package) - (match (package-transitive-inputs package) + (match (cons (list (package-name package) package) + (package-transitive-inputs package)) (((labels inputs . _) ...) (return (find-among-inputs inputs))))) ((? string? item) -- cgit v1.2.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(-) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 346f9753a8..801bd29442 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -112,14 +112,14 @@ (define-public git ;; 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 @@ (define-public git-manpages version ".tar.xz")) (sha256 (base32 - "1ilbi4xdn77a5yrjyrcx0nap0j4raw3h1fr0k32zs9y35c6f29cx")))) + "1xdpp1i8sgdzk708vnxrm1z6dg4mip12fswihb8hlg2v5qqgrpfj")))) (build-system trivial-build-system) (arguments '(#:modules ((guix build utils)) -- cgit v1.2.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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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(-) diff --git a/gnu/packages/fish.scm b/gnu/packages/fish.scm index 72e2156a35..7abaaf0ecd 100644 --- a/gnu/packages/fish.scm +++ b/gnu/packages/fish.scm @@ -29,14 +29,14 @@ (define-module (gnu packages fish) (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.2.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(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index ba8023aeaa..d0062a602a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -149,6 +149,43 @@ (define-public zeromq 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.2.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(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 143fc144b6..70e44416c9 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9037,3 +9037,35 @@ (define-public python2-ply (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.2.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(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 70e44416c9..acdf4b31b7 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9069,3 +9069,30 @@ (define-public python-tabulate (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.2.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(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index acdf4b31b7..b2d27efa46 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9096,3 +9096,33 @@ (define-public python-kazoo (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.2.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(-) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 5c0ce4f544..c39324c691 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 @@ (define-public gnucash 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.2.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(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index d5967f7966..e62bfa7e54 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 @@ (define-module (gnu packages xml) #: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 @@ (define-public xmlsec `(("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.2.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(+) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index c39324c691..25801aa66e 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -25,12 +25,14 @@ (define-module (gnu packages gnucash) #: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 @@ (define-public gnucash 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.2.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(+) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 25801aa66e..29989196c7 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -24,12 +24,14 @@ (define-module (gnu packages gnucash) #: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 @@ (define-public gwenhywfar ;; 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.2.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(-) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index 29989196c7..eaa84ccc32 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -63,6 +63,7 @@ (define-public gnucash ("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 @@ (define-public gnucash ("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.2.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(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 1d0a945347..707e0d6225 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -2247,7 +2247,7 @@ (define-public red-eclipse (define-public higan (package (name "higan") - (version "098b") + (version "099") (source (origin (method url-fetch) @@ -2256,7 +2256,7 @@ (define-public higan 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 @@ (define-public higan `("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.2.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(-) diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index b2ea848937..3f0b508d3c 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -53,7 +53,7 @@ (define-public libsodium (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 @@ (define-public signify (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.2.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(-) diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index 0819c485cb..c4e2a37955 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 @@ (define-public libextractor (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.2.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(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index d0062a602a..72c601102c 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -328,7 +328,7 @@ (define-public iodine (define-public wireshark (package (name "wireshark") - (version "2.0.3") + (version "2.0.4") (synopsis "Network traffic analyzer") (source (origin @@ -337,7 +337,7 @@ (define-public wireshark version ".tar.bz2")) (sha256 (base32 - "1z358k65frp9m0l07cppwxhvbcp1w9ya5sml87pzs8gyfmp3g5p1")))) + "19g11m8m8qd7dkcvcb27lyppklg608d9ap7wr3mr88clm4nwiacy")))) (build-system glib-or-gtk-build-system) (inputs `(("bison" ,bison) ("c-ares" ,c-ares) -- cgit v1.2.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(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 8384c76d66..b63a602c90 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5182,3 +5182,36 @@ (define-public gnome-tweak-tool 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.2.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(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index b63a602c90..365c93be12 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5215,3 +5215,38 @@ (define-public arc-theme (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.2.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(+) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 365c93be12..c87c371423 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5250,3 +5250,35 @@ (define-public moka-icon-theme 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.2.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(-) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 707e0d6225..9f4a4f9e81 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1190,7 +1190,7 @@ (define-public raincat (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 @@ (define-public manaplus version "/manaplus-" version ".tar.xz")) (sha256 (base32 - "1ja2w86rz3pliq0sdc7yxppsdjg3d1ymcx9fdsiwnw6fv5a8nbzj")))) + "00sdw2mspdhrqvz0vl6jbnhiclj7vmvyjih9qf8dbkfw2s921ybc")))) (build-system gnu-build-system) (arguments '(#:configure-flags -- cgit v1.2.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(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 5231200919..79b006f416 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -41,14 +41,14 @@ (define-module (gnu packages imagemagick) (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.2.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(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 1f1d201a32..6a79412f7b 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 @@ (define-public emacs-rainbow-delimiters 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.2.3 From 52530805b307abe2ce9178d088e90d43f0c77cb2 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 10 Jun 2016 23:36:16 +0200 Subject: doc: Fix default value of #:recursive? for 'local-file'. * doc/guix.texi (G-Expressions): The #:recursive? parameter of 'local-file' defaults to #f. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 1f766fc13b..46d9e77fe6 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3795,7 +3795,7 @@ does not have any effect on what the G-expression does. content is directly passed as a string. @deffn {Scheme Procedure} local-file @var{file} [@var{name}] @ - [#:recursive? #t] + [#:recursive? #f] Return an object representing local file @var{file} to add to the store; this object can be used in a gexp. If @var{file} is a relative file name, it is looked up relative to the source file where this form appears. @var{file} will be added to -- cgit v1.2.3 From 4d4c3614c85f98f734b3e4f375568b562dd1e2a7 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 12 Jun 2016 22:33:07 +0200 Subject: profiles: Make sure hook derivations fail upon error. Reported at . * guix/profiles.scm (info-dir-file)[build]: Add explicit call to 'exit'. * guix/profiles.scm (ghc-package-cache-file)[build]: Likewise. * guix/profiles.scm (xdg-desktop-database)[build]: Likewise. * guix/profiles.scm (xdg-mime-database)[build]: Likewise. --- guix/profiles.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index 37ea302e82..90c43325a0 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -510,9 +510,9 @@ (define (install-info info) info (string-append #$output "/share/info/dir")))) (mkdir-p (string-append #$output "/share/info")) - (every install-info - (append-map info-files - '#$(manifest-inputs manifest))))) + (exit (every install-info + (append-map info-files + '#$(manifest-inputs manifest)))))) (gexp->derivation "info-dir" build #:modules '((guix build utils)) @@ -562,7 +562,7 @@ (define (copy-conf-file conf) (system* (string-append #+ghc "/bin/ghc-pkg") "recache" (string-append "--package-db=" db-dir))))) (for-each delete-file (find-files db-dir "\\.conf$")) - success))) + (exit success)))) (with-monad %store-monad ;; Don't depend on GHC when there's nothing to do. @@ -710,7 +710,7 @@ (define build (mkdir-p (string-append #$output "/share")) (union-build destdir appdirs #:log-port (%make-void-port "w")) - (zero? (system* update-desktop-database destdir))))) + (exit (zero? (system* update-desktop-database destdir)))))) ;; Don't run the hook when 'desktop-file-utils' is not referenced. (if desktop-file-utils @@ -745,7 +745,7 @@ (define build (union-build (string-append destdir "/packages") pkgdirs #:log-port (%make-void-port "w")) (setenv "XDG_DATA_HOME" datadir) - (zero? (system* update-mime-database destdir))))) + (exit (zero? (system* update-mime-database destdir)))))) ;; Don't run the hook when 'shared-mime-info' is referenced. (if shared-mime-info -- cgit v1.2.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. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index a0a4b936db..bd913f6ecd 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -590,8 +590,14 @@ (define-public unison (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.2.3 From fe585be9aa8f5158a7dfb6477d19ece3d643dec3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 12 Jun 2016 23:22:54 +0200 Subject: serialization: Add #:select? parameter to 'write-file'. * guix/serialization.scm (write-file): Add #:select? parameter and honor it. * tests/nar.scm ("write-file #:select? + restore-file"): New test. --- guix/serialization.scm | 78 ++++++++++++++++++++++++++------------------------ tests/nar.scm | 42 ++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 38 deletions(-) diff --git a/guix/serialization.scm b/guix/serialization.scm index 286b4cbf30..f17f516c09 100644 --- a/guix/serialization.scm +++ b/guix/serialization.scm @@ -256,53 +256,57 @@ (define %archive-version-1 ;; Magic cookie for Nix archives. "nix-archive-1") -(define (write-file file port) +(define* (write-file file port + #:key (select? (const #t))) "Write the contents of FILE to PORT in Nar format, recursing into -sub-directories of FILE as needed." +sub-directories of FILE as needed. For each directory entry, call (SELECT? +FILE STAT), where FILE is the entry's absolute file name and STAT is the +result of 'lstat'; exclude entries for which SELECT? does not return true." (define p port) (write-string %archive-version-1 p) - (let dump ((f file)) - (let ((s (lstat f))) - (write-string "(" p) - (case (stat:type s) - ((regular) - (write-string "type" p) - (write-string "regular" p) - (if (not (zero? (logand (stat:mode s) #o100))) - (begin - (write-string "executable" p) - (write-string "" p))) - (write-contents f p (stat:size s))) - ((directory) - (write-string "type" p) - (write-string "directory" p) - (let ((entries - ;; 'scandir' defaults to 'string-locale '("." ".."))) string '("." ".."))) string +;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -241,6 +241,46 @@ (define (touch file) (lambda () (rmdir input))))) +(test-assert "write-file #:select? + restore-file" + (let ((input (string-append %test-dir ".input"))) + (mkdir input) + (dynamic-wind + (const #t) + (lambda () + (with-file-tree input + (directory "root" + ((directory "a" (("x") ("y") ("z"))) + ("b") ("c") ("d" -> "b"))) + (let* ((output %test-dir) + (nar (string-append output ".nar"))) + (dynamic-wind + (lambda () #t) + (lambda () + (call-with-output-file nar + (lambda (port) + (write-file input port + #:select? + (lambda (file stat) + (and (not (string=? (basename file) + "a")) + (not (eq? (stat:type stat) + 'symlink))))))) + (call-with-input-file nar + (cut restore-file <> output)) + + ;; Make sure "a" and "d" have been filtered out. + (and (not (file-exists? (string-append output "/root/a"))) + (file=? (string-append output "/root/b") + (string-append input "/root/b")) + (file=? (string-append output "/root/c") + (string-append input "/root/c")) + (not (file-exists? (string-append output "/root/d"))))) + (lambda () + (false-if-exception (delete-file nar)) + (false-if-exception (rm-rf output))))))) + (lambda () + (rmdir input))))) + ;; 'restore-file-set' depends on 'open-sha256-input-port', which in turn ;; relies on a Guile 2.0.10+ feature. (test-skip (if (false-if-exception -- cgit v1.2.3