Merge branch 'gnome-updates'

This commit is contained in:
Mark H Weaver 2016-05-12 18:48:36 -04:00
commit 207c604637
No known key found for this signature in database
GPG key ID: 7CEF29847562C516
34 changed files with 645 additions and 3921 deletions

View file

@ -498,11 +498,7 @@ dist_patch_DATA = \
gnu/packages/patches/ghostscript-CVE-2015-3228.patch \
gnu/packages/patches/ghostscript-runpath.patch \
gnu/packages/patches/glib-networking-ssl-cert-file.patch \
gnu/packages/patches/glib-tests-desktop.patch \
gnu/packages/patches/glib-tests-homedir.patch \
gnu/packages/patches/glib-tests-prlimit.patch \
gnu/packages/patches/glib-tests-timer.patch \
gnu/packages/patches/glib-tests-gapplication.patch \
gnu/packages/patches/glibc-CVE-2015-7547.patch \
gnu/packages/patches/glibc-bootstrap-system.patch \
gnu/packages/patches/glibc-hurd-extern-inline.patch \
@ -529,6 +525,7 @@ dist_patch_DATA = \
gnu/packages/patches/guile-relocatable.patch \
gnu/packages/patches/guile-rsvg-pkgconfig.patch \
gnu/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \
gnu/packages/patches/gtk2-theme-paths.patch \
gnu/packages/patches/gtk3-respect-GUIX_GTK3_PATH.patch \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/hdf5-config-date.patch \
@ -539,20 +536,11 @@ dist_patch_DATA = \
gnu/packages/patches/hypre-doc-tables.patch \
gnu/packages/patches/hypre-ldflags.patch \
gnu/packages/patches/icecat-avoid-bundled-includes.patch \
gnu/packages/patches/icecat-re-enable-DHE-cipher-suites.patch \
gnu/packages/patches/icecat-update-bundled-graphite2.patch \
gnu/packages/patches/icecat-CVE-2016-2805.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt1.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt2.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt3.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt4.patch \
gnu/packages/patches/icecat-CVE-2016-2807-pt5.patch \
gnu/packages/patches/icecat-CVE-2016-2808.patch \
gnu/packages/patches/icecat-CVE-2016-2814.patch \
gnu/packages/patches/icu4c-CVE-2014-6585.patch \
gnu/packages/patches/icu4c-CVE-2015-1270.patch \
gnu/packages/patches/icu4c-CVE-2015-4760.patch \
gnu/packages/patches/ilmbase-fix-tests.patch \
gnu/packages/patches/inkscape-drop-wait-for-targets.patch \
gnu/packages/patches/irrlicht-mesa-10.patch \
gnu/packages/patches/jasper-CVE-2007-2721.patch \
gnu/packages/patches/jasper-CVE-2008-3520.patch \
@ -691,7 +679,6 @@ dist_patch_DATA = \
gnu/packages/patches/plink-1.07-unclobber-i.patch \
gnu/packages/patches/plotutils-libpng-jmpbuf.patch \
gnu/packages/patches/polkit-drop-test.patch \
gnu/packages/patches/poppler-CVE-2015-8868.patch \
gnu/packages/patches/portaudio-audacity-compat.patch \
gnu/packages/patches/portmidi-modular-build.patch \
gnu/packages/patches/procmail-ambiguous-getline-debian.patch \
@ -752,6 +739,7 @@ dist_patch_DATA = \
gnu/packages/patches/ttfautohint-source-date-epoch.patch \
gnu/packages/patches/tophat-build-with-later-seqan.patch \
gnu/packages/patches/torsocks-dns-test.patch \
gnu/packages/patches/totem-debug-format-fix.patch \
gnu/packages/patches/unzip-CVE-2014-8139.patch \
gnu/packages/patches/unzip-CVE-2014-8140.patch \
gnu/packages/patches/unzip-CVE-2014-8141.patch \

View file

@ -46,23 +46,21 @@ (define-module (gnu packages fontutils)
(define-public freetype
(package
(name "freetype")
(version "2.6")
(version "2.6.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah/freetype/freetype-"
version ".tar.bz2"))
(sha256 (base32
"0zilx15fwcpa8hmcxpc423jwb8ijw4qpq968kh18akvn4j0znsc4"))))
"18k3b026762lmyrxfil5xv8qwnvj7hc12gz9bjqzbb12lmx707ip"))))
(build-system gnu-build-system)
(arguments
`(#:phases
;; This should not be necessary; reported upstream as
;; https://savannah.nongnu.org/bugs/index.php?44261
(alist-cons-before
'configure 'set-paths
(lambda _
(setenv "CONFIG_SHELL" (which "bash")))
%standard-phases)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(propagated-inputs
;; These are all in the Requires.private field of freetype2.pc.
;; XXX: add harfbuzz.
`(("libpng" ,libpng)
("zlib" ,zlib)))
(synopsis "Font rendering library")
(description
"Freetype is a library that can be used by applications to access the
@ -361,16 +359,15 @@ (define-public teckit
(define-public graphite2
(package
(name "graphite2")
(version "1.3.6")
(version "1.3.8")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/silnrsi/graphite/archive/"
version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(uri (string-append "https://github.com/silnrsi/graphite/releases/"
"download/" version "/" name "-" version ".tgz"))
(sha256
(base32
"1frd9mjaqzvh9gs74ngc43igi53vzjzlwr5chbrs6ii1hc4aa23s"))))
"1hlc9j7w7gihy6gvzfa7902pr6yxq1sr1xkp5rwf0p29m2rjagwz"))))
(build-system cmake-build-system)
(native-inputs
`(("python" ,python-2) ; because of "import imap" in tests

View file

@ -338,14 +338,14 @@ (define-public libatasmart
(define-public udisks
(package
(name "udisks")
(version "2.1.6")
(version "2.1.7")
(source (origin
(method url-fetch)
(uri (string-append "https://udisks.freedesktop.org/releases/"
name "-" version ".tar.bz2"))
(sha256
(base32
"0spl155k0g2l2hvqf8xyjv08i68gfyhzpjva6cwlzxx0bz4gbify"))))
"119pr2zbff8vkwlhghim7d7ir24c1dil9hp4q49wm4f6pnrjpbmb"))))
(build-system gnu-build-system)
(native-inputs
`(("glib:bin" ,glib "bin") ; for glib-mkenums

View file

@ -374,15 +374,7 @@ (define-public aseprite
"-DENABLE_UPDATER=0" ; no auto-updates
(string-append "-DFREETYPE_INCLUDE_DIR="
(assoc-ref %build-inputs "freetype")
"/include/freetype2"))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-freetype-utils
(lambda _
;; Fix C preprocessor include directive.
(substitute* '("src/app/util/freetype_utils.cpp")
(("freetype/") ""))
#t)))))
"/include/freetype2"))))
(native-inputs
`(("pkg-config" ,pkg-config)))
;; TODO: Use a patched Allegro 4 that supports window resizing. This

View file

@ -35,6 +35,7 @@ (define-module (gnu packages glib)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@ -59,7 +60,7 @@ (define-module (gnu packages glib)
(define dbus
(package
(name "dbus")
(version "1.10.0")
(version "1.10.8")
(source (origin
(method url-fetch)
(uri (string-append
@ -67,7 +68,7 @@ (define dbus
version ".tar.gz"))
(sha256
(base32
"0jwj7wlrhq5y0fwfh8k2d9rgdpfax06lj8698g6iqbwrzd2rgyqx"))
"0560y3hxpgh346w6avcrcz79c8ansmn771y5xpcvvlr6m8mx5wxs"))
(patches (search-patches "dbus-helper-search-path.patch"))))
(build-system gnu-build-system)
(arguments
@ -129,7 +130,7 @@ (define dbus
(define glib
(package
(name "glib")
(version "2.46.1")
(version "2.48.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
@ -137,16 +138,14 @@ (define glib
name "-" version ".tar.xz"))
(sha256
(base32
"1yzxr1ip3l0m9ydk5nq32piq70c9f17p5f0jyvlsghzbaawh67ss"))
(patches (search-patches "glib-tests-homedir.patch"
"glib-tests-desktop.patch"
"glib-tests-prlimit.patch"
"glib-tests-timer.patch"
"glib-tests-gapplication.patch"))))
"0d3w2hblrw7vvpx60l1kbvb830ygn3v8zhwdz65cc5593j9ycjvl"))
(patches (search-patches "glib-tests-timer.patch"))))
(build-system gnu-build-system)
(outputs '("out" ; everything
"bin" ; glib-mkenums, gtester, etc.; depends on Python
"doc")) ; 20 MiB of GTK-Doc reference
(propagated-inputs
`(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc
(inputs
`(("coreutils" ,coreutils)
("libffi" ,libffi)
@ -160,29 +159,87 @@ (define glib
("perl" ,perl) ; needed by GIO tests
("bash" ,bash)))
(arguments
'(#:phases (alist-cons-before
'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
'(#:phases
(modify-phases %standard-phases
(add-before 'build 'pre-build
(lambda* (#:key inputs outputs #:allow-other-keys)
;; For tests/gdatetime.c.
(setenv "TZDIR"
(string-append (assoc-ref inputs "tzdata")
"/share/zoneinfo"))
;; Some tests want write access there.
(setenv "XDG_CACHE_HOME" (getcwd))
;; Some tests want write access there.
(setenv "HOME" (getcwd))
(setenv "XDG_CACHE_HOME" (getcwd))
(substitute* '("glib/gspawn.c"
"glib/tests/utils.c"
"tests/spawn-test.c")
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))
(substitute* '("glib/gspawn.c"
"glib/tests/utils.c"
"tests/spawn-test.c")
(("/bin/sh")
(string-append (assoc-ref inputs "bash") "/bin/sh")))))
(add-before 'check 'disable-failing-tests
(lambda _
(let ((disable
(lambda (test-file test-paths)
(define pattern+procs
(map (lambda (test-path)
(cons
;; XXX: only works for single line statements.
(format #f "g_test_add_func.*\"~a\".*" test-path)
(const "")))
test-paths))
(substitute test-file pattern+procs)))
(failing-tests
'(("glib/tests/thread.c"
(;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
;; as found on hydra.gnu.org, and strace(1) doesn't
;; recognize it.
"/thread/thread4"))
;; Disable a test that requires dbus.
(substitute* "gio/tests/gdbus-serialization.c"
(("g_test_add_func \
\\(\"/gdbus/message-serialize/double-array\", test_double_array\\);" all)
(string-append "/* " all " */"))))
%standard-phases)
("glib/tests/timer.c"
(;; fails if compiler optimizations are enabled, which they
;; are by default.
"/timer/stop"))
("gio/tests/gapplication.c"
(;; XXX: proven to be unreliable. See:
;; <https://bugs.debian.org/756273>
;; <http://bugs.gnu.org/18445>
"/gapplication/quit"
;; XXX: fails randomly for unknown reason. See:
;; <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
"/gapplication/local-actions"))
("gio/tests/contenttype.c"
(;; XXX: requires shared-mime-info.
"/contenttype/guess"
"/contenttype/subtype"
"/contenttype/list"
"/contenttype/icon"
"/contenttype/symbolic-icon"
"/contenttype/tree"))
("gio/tests/appinfo.c"
(;; XXX: requires update-desktop-database.
"/appinfo/associations"))
("gio/tests/desktop-app-info.c"
(;; XXX: requires update-desktop-database.
"/desktop-app-info/delete"
"/desktop-app-info/default"
"/desktop-app-info/fallback"
"/desktop-app-info/lastused"
"/desktop-app-info/search"))
("gio/tests/gdbus-peer.c"
(;; Requires /etc/machine-id.
"/gdbus/codegen-peer-to-peer"))
("gio/tests/gdbus-unix-addresses.c"
(;; Requires /etc/machine-id.
"/gdbus/x11-autolaunch")))))
(and-map (lambda (x) (apply disable x)) failing-tests)))))
;; Note: `--docdir' and `--htmldir' are not honored, so work around it.
#:configure-flags (list (string-append "--with-html-dir="
@ -218,14 +275,14 @@ (define glib
(define gobject-introspection
(package
(name "gobject-introspection")
(version "1.46.0")
(version "1.48.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gobject-introspection/" (version-major+minor version)
"/gobject-introspection-" version ".tar.xz"))
(sha256
(base32 "0cs27r18fga44ypp8icy62fwx6nh70r1bvhi4lzfn4w85cybsn36"))
(base32 "0xsqwxhfqzr79av89mg766kxpb2i41bd0vwspk01xjdzrnn5l9zs"))
(modules '((guix build utils)))
(snippet
'(substitute* "tools/g-ir-tool-template.in"
@ -237,7 +294,6 @@ (define gobject-introspection
(build-system gnu-build-system)
(inputs
`(("bison" ,bison)
("cairo" ,cairo)
("flex" ,flex)
("glib" ,glib)
("python-2" ,python-2)))
@ -395,7 +451,7 @@ (define dbus-glib
(define libsigc++
(package
(name "libsigc++")
(version "2.6.1")
(version "2.8.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/libsigc++/"
@ -403,7 +459,7 @@ (define libsigc++
name "-" version ".tar.xz"))
(sha256
(base32
"06xyvxaaxh3nbpjg86gcq5zcc2qnpx354wcfrqlhbndkq5kj2vqq"))))
"0lcnzzdq6718znfshs1hflpwqq6awbzwdyp4kv5lfaf54z880jbp"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("m4" ,m4)))
@ -422,7 +478,7 @@ (define libsigc++
(define glibmm
(package
(name "glibmm")
(version "2.46.3")
(version "2.48.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/glibmm/"
@ -430,7 +486,7 @@ (define glibmm
"/glibmm-" version ".tar.xz"))
(sha256
(base32
"1kw65mlabwdjw86jybxslncbnnx40hcx4z6xpq9i4ymjvsnm91n7"))))
"1pvw2mrm03p51p03179rb6fk9p42iykkwj1jcdv7jr265xymy8nw"))))
(build-system gnu-build-system)
(arguments
`(#:phases (alist-cons-before
@ -503,7 +559,7 @@ (define-public python2-pygobject-2
(define-public python-pygobject
(package
(name "python-pygobject")
(version "3.18.0")
(version "3.20.0")
(source
(origin
(method url-fetch)
@ -512,7 +568,7 @@ (define-public python-pygobject
"/pygobject-" version ".tar.xz"))
(sha256
(base32
"1jbd2m39vcjh5h3m33l0317ziq8dxfzi40r6hrfcs4rp5l8s2fqw"))))
"0ikzh3l7g1gjh8jj8vg6mdvrb25svp63gxcam4m0i404yh0lgari"))))
(build-system gnu-build-system)
(native-inputs
`(("which" ,which)

File diff suppressed because it is too large Load diff

View file

@ -287,7 +287,7 @@ (define-public nss
(define-public icecat
(package
(name "icecat")
(version "38.7.1-gnu1")
(version "38.8.0-gnu1")
(source
(origin
(method url-fetch)
@ -296,19 +296,9 @@ (define-public icecat
name "-" version ".tar.bz2"))
(sha256
(base32
"1wdmd6hasra36g86ha1dw8sl7a5mvr7c4jbjx4zyg9629y5gqr8g"))
"0v4k47ziqsyfksv9sn4v1xvk4q414rc883hb1qzld63grj2nxxwp"))
(patches (search-patches
"icecat-avoid-bundled-includes.patch"
"icecat-re-enable-DHE-cipher-suites.patch"
"icecat-update-bundled-graphite2.patch"
"icecat-CVE-2016-2805.patch"
"icecat-CVE-2016-2807-pt1.patch"
"icecat-CVE-2016-2807-pt2.patch"
"icecat-CVE-2016-2807-pt3.patch"
"icecat-CVE-2016-2807-pt4.patch"
"icecat-CVE-2016-2807-pt5.patch"
"icecat-CVE-2016-2808.patch"
"icecat-CVE-2016-2814.patch"))
"icecat-avoid-bundled-includes.patch"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -244,6 +244,9 @@ (define-public gst-plugins-good
;; XXX FIXME: Try removing this for version > 1.8.0.
(substitute* "tests/check/elements/rtprtx.c"
(("tcase_add_test \\(tc_chain, test_push_forward_seq\\);" all)
(string-append "/* " all " */"))
(("tcase_add_test \
\\(tc_chain, test_rtxreceive_data_reconstruction\\);" all)
(string-append "/* " all " */")))
(substitute* "tests/check/elements/splitmux.c"
(("tcase_add_test \\(tc_chain, test_splitmuxsink\\);" all)

View file

@ -63,7 +63,7 @@ (define-module (gnu packages gtk)
(define-public atk
(package
(name "atk")
(version "2.18.0")
(version "2.20.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -71,7 +71,7 @@ (define-public atk
name "-" version ".tar.xz"))
(sha256
(base32
"0ay9s137x49f0akx658p7kznz0rdapfrd8ym54q0hlgrggblhv6f"))))
"1w1q29yfxcq67j7fyqrfm0l0n1vy4zn539c0sf4ga9d0qkv50fj9"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@ -95,14 +95,14 @@ (define-public atk
(define-public cairo
(package
(name "cairo")
(version "1.14.2")
(version "1.14.6")
(source (origin
(method url-fetch)
(uri (string-append "http://cairographics.org/releases/cairo-"
version ".tar.xz"))
(sha256
(base32
"1sycbq0agbwmg1bj9lhkgsf0glmblaf2jrdy9g6vxfxivncxj6f9"))))
"0lmjlzmghmr27y615px9hkm552x7ap6pmq9mfbzr6smp8y2b6g31"))))
(build-system gnu-build-system)
(propagated-inputs
`(("fontconfig" ,fontconfig)
@ -147,7 +147,7 @@ (define-public cairo
(define-public harfbuzz
(package
(name "harfbuzz")
(version "1.0.6")
(version "1.2.4")
(source (origin
(method url-fetch)
(uri (string-append "https://www.freedesktop.org/software/"
@ -155,7 +155,7 @@ (define-public harfbuzz
version ".tar.bz2"))
(sha256
(base32
"09ivk5m4y09ar4zi9r6db7gp234cy05h0ach7w22g9kqvkxsf5pn"))))
"14g4kpph8hgplkm954daxiymxx0vicfq7b7svvdsx54g5bqvv7a4"))))
(build-system gnu-build-system)
(outputs '("out"
"bin")) ; 160K, only hb-view depend on cairo
@ -185,7 +185,7 @@ (define-public harfbuzz
(define-public pango
(package
(name "pango")
(version "1.38.1")
(version "1.40.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/pango/"
@ -193,7 +193,7 @@ (define-public pango
name "-" version ".tar.xz"))
(sha256
(base32
"1dsf45m51i4rcyvh5wlxxrjfhvn5b67d5ckjc6vdcxbddjgmc80k"))))
"0h0sbh0b5kh3lvrxrb82bs86rqakf33a9jakpv33lay7f90zayp2"))))
(build-system gnu-build-system)
(propagated-inputs
`(("cairo" ,cairo)
@ -339,7 +339,7 @@ (define-public gtksourceview-2
(define-public gtksourceview
(package
(name "gtksourceview")
(version "3.18.2")
(version "3.20.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -347,7 +347,7 @@ (define-public gtksourceview
name "-" version ".tar.xz"))
(sha256
(base32
"1cmplnqbyd1js5bkpi9cfc3gljilyxg5nngwh4i3mq9r02gmmxv0"))))
"03vxirdbjpgjrkl5ph0p9b1saq17xxr4kvhz1ijpg40a9jf3ci4y"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -387,7 +387,7 @@ (define-public gtksourceview
(define-public gdk-pixbuf
(package
(name "gdk-pixbuf")
(version "2.32.3")
(version "2.34.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -395,7 +395,7 @@ (define-public gdk-pixbuf
name "-" version ".tar.xz"))
(sha256
(base32
"0cfh87aqyqbfcwpbv1ihgmgfcn66il5q2n8yjyl8gxkjmkqp2rrb"))))
"0yc8indbl3hf18z6x6kjg59xp9sngm1d8vmz4c7bs6g27qw5npnm"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--with-x11")
@ -415,9 +415,12 @@ (define-public gdk-pixbuf
;; (gdk-pixbuf-error-quark, 0)
(("pixbuf-jpeg\\$\\(EXEEXT\\) ") ""))
#t)))))
(propagated-inputs ; required by gdk-pixbuf-2.0.pc
`(("glib" ,glib)
("libpng" ,libpng)))
(propagated-inputs
`(;; Required by gdk-pixbuf-2.0.pc
("glib" ,glib)
("libpng" ,libpng)
;; Used for testing and required at runtime.
("shared-mime-info" ,shared-mime-info)))
(inputs
`(("libjpeg" ,libjpeg)
("libtiff" ,libtiff)
@ -465,7 +468,7 @@ (define-public gdk-pixbuf+svg
(define-public at-spi2-core
(package
(name "at-spi2-core")
(version "2.18.1")
(version "2.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -473,7 +476,7 @@ (define-public at-spi2-core
name "-" version ".tar.xz"))
(sha256
(base32
"1kq17w4fm51d49vzmglkxqdm6s0yvjvrpgw78r2hajf69jz5bmap"))))
"0039y6bj1zfzhmfjbj5g830dlczphbpvbgmkcab9mapmh7kmin3f"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(arguments
@ -510,7 +513,7 @@ (define-public at-spi2-core
(define-public at-spi2-atk
(package
(name "at-spi2-atk")
(version "2.18.1")
(version "2.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -518,7 +521,7 @@ (define-public at-spi2-atk
name "-" version ".tar.xz"))
(sha256
(base32
"0bf1g5cj84rmx7p1q547vwbc0hlpcs2wrxnmv96lckfkhs9mzcf4"))))
"13mzfwra0izmkzn7dsdgy5zj19n8izp0wdy7w1yg9s0qx6aafn13"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -545,7 +548,7 @@ (define-public at-spi2-atk
(define-public gtk+-2
(package
(name "gtk+")
(version "2.24.28")
(version "2.24.30")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -553,13 +556,14 @@ (define-public gtk+-2
name "-" version ".tar.xz"))
(sha256
(base32
"0mj6xn40py9r9lvzg633fal81xfwfm89d9mvz7jk4lmwk0g49imj"))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"))))
"0l6aqk86aw5w132ygy6hv6nlxvd1h6xg7c85qbm60p6mnv1ww58d"))
(patches (search-patches "gtk2-respect-GUIX_GTK2_PATH.patch"
"gtk2-theme-paths.patch"))))
(build-system gnu-build-system)
(outputs '("out" "doc"))
(propagated-inputs
`(("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf)
("gdk-pixbuf" ,gdk-pixbuf+svg)
("pango" ,pango)))
(inputs
`(("cups" ,cups)
@ -606,7 +610,7 @@ (define-public gtk+-2
(define-public gtk+
(package (inherit gtk+-2)
(name "gtk+")
(version "3.18.2")
(version "3.20.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -614,12 +618,12 @@ (define-public gtk+
name "-" version ".tar.xz"))
(sha256
(base32
"0lp1hn0qydxx03bianzzr0a4maqzsvylrkzr7c3p0050qihwbgjx"))
"157nh9gg0p2avw765hrnkvr8lsh2w811397yxgjv6q5j4fzz6d1q"))
(patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"))))
(propagated-inputs
`(("at-spi2-atk" ,at-spi2-atk)
("atk" ,atk)
("gdk-pixbuf" ,gdk-pixbuf)
("gdk-pixbuf" ,gdk-pixbuf+svg)
("libepoxy" ,libepoxy)
("libxcursor" ,libxcursor)
("libxi" ,libxi)
@ -627,8 +631,7 @@ (define-public gtk+
("libxdamage" ,libxdamage)
("pango" ,pango)))
(inputs
`(("librsvg" ,librsvg) ;for gtk-encode-symbolic-svg
("libxml2" ,libxml2)
`(("libxml2" ,libxml2)
;; XXX: colord depends on mozjs (through polkit), which fails on
;; on non-intel systems now.
;;("colord" ,colord)
@ -663,18 +666,7 @@ (define-public gtk+
(("SUBDIRS = gdk gtk a11y css reftests")
"SUBDIRS = gdk"))
#t)
(alist-cons-after
'install 'wrap-gtk-encode-symbolic-svg
;; By using GdkPixbuf, gtk-encode-symbolic-svg needs to know
;; librsvg's loaders.cache to handle SVG files.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(prog (string-append out "/bin/gtk-encode-symbolic-svg"))
(librsvg (assoc-ref inputs "librsvg"))
(loaders.cache (find-files librsvg "^loaders\\.cache$")))
(wrap-program prog
`("GDK_PIXBUF_MODULE_FILE" = ,loaders.cache))))
%standard-phases))))
%standard-phases)))
(native-search-paths
(list (search-path-specification
(variable "GUIX_GTK3_PATH")
@ -864,7 +856,7 @@ (define-public cairomm
(define-public pangomm
(package
(name "pangomm")
(version "2.38.1")
(version "2.40.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -872,7 +864,7 @@ (define-public pangomm
name "-" version ".tar.xz"))
(sha256
(base32
"12xwjvqfxhqblcv7641k0l6r8n3qifnrx8w9571izn1nbd81iyzg"))))
"03fpqdjp7plybf4zsgszbm8yhgl28vmajzfpmaqcsmyfvjlszl3x"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(propagated-inputs
@ -913,7 +905,7 @@ (define-public atkmm
(define-public gtkmm
(package
(name "gtkmm")
(version "3.18.0")
(version "3.20.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@ -921,16 +913,29 @@ (define-public gtkmm
name "-" version ".tar.xz"))
(sha256
(base32
"0sxq700invkjpksn790gbnl8px8751kvgwn39663jx7dv89s37w2"))))
"04n631a127pyidaz82ypdy9syq1hzj636r32y9hyr9kcfnwf2785"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("glib" ,glib "bin"))) ;for 'glib-compile-resources'
("glib" ,glib "bin") ;for 'glib-compile-resources'
("xorg-server" ,xorg-server)))
(propagated-inputs
`(("pangomm" ,pangomm)
("cairomm" ,cairomm)
("atkmm" ,atkmm)
("gtk+" ,gtk+)
("glibmm" ,glibmm)))
(arguments
'(#:phases (modify-phases %standard-phases
(add-before 'check 'run-xvfb
(lambda* (#:key inputs #:allow-other-keys)
(let ((xorg-server (assoc-ref inputs "xorg-server")))
;; Tests such as 'object_move/test' require a running
;; X server.
(system (string-append xorg-server "/bin/Xvfb :1 &"))
(setenv "DISPLAY" ":1")
;; Don't fail because of the missing /etc/machine-id.
(setenv "DBUS_FATAL_WARNINGS" "0")
#t))))))
(home-page "http://gtkmm.org/")
(synopsis
"C++ interface to the GTK+ graphical user interface library")

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 John Darrington <jmd@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2016 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -52,7 +52,10 @@ (define-public inkscape
version ".tar.gz"))
(sha256
(base32
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))))
"086v01jy896dj86bq7plrf6si4p6gh6ga2v5417llgmminycz8rc"))
(patch-flags '("-p0"))
(patches
(search-patches "inkscape-drop-wait-for-targets.patch"))))
(build-system gnu-build-system)
(inputs
`(("aspell" ,aspell)

View file

@ -41,25 +41,12 @@ (define-public key-mon
(build-system python-build-system)
(arguments
`(#:python ,python-2 ;uses the Python 2 'print' syntax
#:phases (modify-phases %standard-phases
(add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(rsvg (assoc-ref inputs "librsvg"))
(pixbuf (find-files
rsvg "^loaders\\.cache$")))
;; Allow key-mon to load SVGs.
(wrap-program (string-append bin "/key-mon")
`("GDK_PIXBUF_MODULE_FILE" ":"
prefix ,pixbuf))))))
#:tests? #f)) ;no tests
(native-inputs
`(("python2-setuptools" ,python2-setuptools)))
(inputs
`(("python2-xlib" ,python2-xlib)
("python2-pygtk" ,python2-pygtk)
("librsvg" ,librsvg)
("python2-rsvg" ,python2-rsvg)))
(home-page "http://code.google.com/p/key-mon")
(synopsis "Show keyboard and mouse status")

View file

@ -551,15 +551,11 @@ (define-public solfege
(alist-cons-after
'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Make sure 'solfege' runs with the correct PYTHONPATH. We
;; also need to modify GDK_PIXBUF_MODULE_FILE for SVG support.
;; Make sure 'solfege' runs with the correct PYTHONPATH.
(let* ((out (assoc-ref outputs "out"))
(path (getenv "PYTHONPATH"))
(rsvg (assoc-ref inputs "librsvg"))
(pixbuf (find-files rsvg "^loaders\\.cache$")))
(path (getenv "PYTHONPATH")))
(wrap-program (string-append out "/bin/solfege")
`("PYTHONPATH" ":" prefix (,path))
`("GDK_PIXBUF_MODULE_FILE" ":" prefix ,pixbuf))))
`("PYTHONPATH" ":" prefix (,path)))))
%standard-phases)))))))
(inputs
`(("python" ,python-2)
@ -567,8 +563,6 @@ (define-public solfege
("gettext" ,gnu-gettext)
("gtk" ,gtk+)
("lilypond" ,lilypond)
("librsvg" ,librsvg) ; needed at runtime for icons
("libpng" ,libpng) ; needed at runtime for icons
;; players needed at runtime
("aplay" ,alsa-utils)
("csound" ,csound) ; optional, needed for some exercises

View file

@ -1,138 +0,0 @@
Some GLib tests expect desktop things, such as an xterm, a MIME
database, the `update-desktop-database' program, which we don't provide.
--- glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:44.000000000 +0200
+++ glib-2.37.1/gio/tests/appinfo.c 2013-06-07 23:44:56.000000000 +0200
@@ -497,16 +497,10 @@ main (int argc, char *argv[])
g_test_add_func ("/appinfo/basic", test_basic);
g_test_add_func ("/appinfo/text", test_text);
- g_test_add_func ("/appinfo/launch", test_launch);
g_test_add_func ("/appinfo/show-in", test_show_in);
g_test_add_func ("/appinfo/commandline", test_commandline);
- g_test_add_func ("/appinfo/launch-context", test_launch_context);
- g_test_add_func ("/appinfo/launch-context-signals", test_launch_context_signals);
g_test_add_func ("/appinfo/tryexec", test_tryexec);
- g_test_add_func ("/appinfo/associations", test_associations);
g_test_add_func ("/appinfo/environment", test_environment);
- g_test_add_func ("/appinfo/startup-wm-class", test_startup_wm_class);
- g_test_add_func ("/appinfo/supported-types", test_supported_types);
g_test_add_func ("/appinfo/from-keyfile", test_from_keyfile);
return g_test_run ();
--- glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:29.000000000 +0100
+++ glib-2.40.0/gio/tests/contenttype.c 2013-01-16 21:22:33.000000000 +0100
@@ -207,15 +207,6 @@ main (int argc, char *argv[])
{
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/contenttype/guess", test_guess);
- g_test_add_func ("/contenttype/unknown", test_unknown);
- g_test_add_func ("/contenttype/subtype", test_subtype);
- g_test_add_func ("/contenttype/list", test_list);
- g_test_add_func ("/contenttype/executable", test_executable);
- g_test_add_func ("/contenttype/description", test_description);
- g_test_add_func ("/contenttype/icon", test_icon);
- g_test_add_func ("/contenttype/symbolic-icon", test_symbolic_icon);
- g_test_add_func ("/contenttype/tree", test_tree);
return g_test_run ();
}
--- glib-2.40.0/gio/tests/desktop-app-info.c 2014-03-19 22:50:45.000000000 -0500
+++ glib-2.40.0/gio/tests/desktop-app-info.c 2014-06-30 14:27:52.543358331 -0500
@@ -708,6 +708,8 @@
g_setenv ("XDG_DATA_HOME", basedir, TRUE);
cleanup_subdirs (basedir);
+ result = g_test_run ();
+ return result;
g_test_add_func ("/desktop-app-info/delete", test_delete);
g_test_add_func ("/desktop-app-info/default", test_default);
g_test_add_func ("/desktop-app-info/fallback", test_fallback);
-----------------------------
The hunk below removes tests that depend on `gdbus-testserver.py',
because that script depends on python-gobject. The second hunk
disables a test that expects /etc/machine-id in the build environment.
--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200
+++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200
@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16)
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-loss \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-connection-slow \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-error \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-exit-on-close \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-export \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-introspection \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-names \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-threads \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-proxy-well-known-name \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL)
@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $
am__EXEEXT_1 =
@OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \
@OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \
-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \
@OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \
@OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \
@OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \
The test below depends on the availability /etc/passwd to dbus-daemon.
--- glib-2.40.0/gio/tests/gdbus-auth.c 2014-02-03 11:40:41.000000000 -0600
+++ glib-2.40.0/gio/tests/gdbus-auth.c 2014-06-30 15:08:43.719421893 -0500
@@ -286,6 +286,8 @@
{
gint ret;
+ g_test_init (&argc, &argv, NULL);
+ return g_test_run();
setlocale (LC_ALL, "C");
temp_dbus_keyrings_setup ();
The test dbus-appinfo is dropped as it hangs indefinitely since 2.37.5, see
https://launchpad.net/ubuntu/+source/glib2.0/2.37.5-1ubuntu1
--- glib-2.40.0/gio/tests/dbus-appinfo.c 2014-02-03 11:40:41.000000000 -0600
+++ glib-2.40.0/gio/tests/dbus-appinfo.c 2014-06-30 14:44:08.215383632 -0500
@@ -278,7 +278,7 @@
{
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/appinfo/dbusappinfo", test_dbus_appinfo);
+ return g_test_run();
return session_bus_run ();
}
The test below fails for unknown reasons (!).
--- glib-2.39.1/gio/tests/gsettings.c.orig 2014-01-20 00:45:04.000000000 +0100
+++ glib-2.39.1/gio/tests/gsettings.c 2014-01-20 00:45:10.000000000 +0100
@@ -2489,7 +2489,6 @@ main (int argc, char *argv[])
g_test_add_func ("/gsettings/range/subprocess/high", test_range_high);
g_test_add_func ("/gsettings/range/subprocess/low", test_range_low);
g_test_add_func ("/gsettings/list-items", test_list_items);
- g_test_add_func ("/gsettings/list-schemas", test_list_schemas);
g_test_add_func ("/gsettings/mapped", test_get_mapped);
g_test_add_func ("/gsettings/get-range", test_get_range);
g_test_add_func ("/gsettings/schema-source", test_schema_source);

View file

@ -1,28 +0,0 @@
This test has proven to be unreliable, often leading to things like this
in gapplication.log:
PASS: gapplication 3 /gapplication/properties
Failed to register: The connection is closed
**
GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
ok 4 /gapplication/app-id
PASS: gapplication 4 /gapplication/app-id
../../tap-test: line 5: 24133 Aborted $1 -k --tap
# GLib-GIO:ERROR:gapplication.c:564:test_quit: assertion failed: (activated)
cleaning up pid 24154
ERROR: gapplication - missing test plan
ERROR: gapplication - exited with status 134 (terminated by signal 6?)
See <https://bugs.debian.org/756273> and <http://bugs.gnu.org/18445>.
--- glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:44.566667649 +0100
+++ glib-2.40.2/gio/tests/gapplication.c 2014-12-03 22:34:45.346674179 +0100
@@ -685,7 +685,6 @@ main (int argc, char **argv)
/* g_test_add_func ("/gapplication/non-unique", test_nonunique); */
g_test_add_func ("/gapplication/properties", properties);
g_test_add_func ("/gapplication/app-id", appid);
- g_test_add_func ("/gapplication/quit", test_quit);
g_test_add_func ("/gapplication/local-actions", test_local_actions);
/* g_test_add_func ("/gapplication/remote-actions", test_remote_actions); */
g_test_add_func ("/gapplication/local-command-line", test_local_command_line);

View file

@ -1,59 +0,0 @@
`g_get_home_dir' looks at /etc/passwd first, which fails in chroot builds.
The gdbus tests use it to lookup .dbus-keyrings, so they cannot run in our
chroot build environment. Thus, disable them.
--- glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:46.000000000 +0100
+++ glib-2.34.3/gio/tests/gdbus-connection-flush.c 2013-01-16 17:29:47.000000000 +0100
@@ -373,10 +373,6 @@ main (int argc,
g_type_init ();
g_test_init (&argc, &argv, NULL);
- g_test_add ("/gdbus/connection/flush/busy", Fixture, NULL,
- setup, test_flush_busy, teardown);
- g_test_add ("/gdbus/connection/flush/idle", Fixture, NULL,
- setup, test_flush_idle, teardown);
ret = g_test_run();
--- glib-2.38.0.orig/gio/tests/gdbus-peer.c 2013-08-08 12:00:40.000000000 +0200
+++ glib-2.38.0/gio/tests/gdbus-peer.c 2013-09-30 19:36:40.000000000 +0200
@@ -1746,11 +1746,6 @@
g_test_add_func ("/gdbus/peer-to-peer", test_peer);
g_test_add_func ("/gdbus/delayed-message-processing", delayed_message_processing);
- g_test_add_func ("/gdbus/nonce-tcp", test_nonce_tcp);
-
- g_test_add_func ("/gdbus/tcp-anonymous", test_tcp_anonymous);
- g_test_add_func ("/gdbus/credentials", test_credentials);
- g_test_add_func ("/gdbus/codegen-peer-to-peer", codegen_test_peer);
ret = g_test_run();
--- glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:34.000000000 +0200
+++ glib-2.37.1/gio/tests/gdbus-exit-on-close.c 2013-06-07 23:41:40.000000000 +0200
@@ -211,6 +211,7 @@ main (int argc,
g_test_init (&argc, &argv, NULL);
+ return g_test_run();
for (i = 0; cases[i].name != NULL; i++)
{
gchar *name;
@@ -224,5 +225,4 @@ main (int argc,
g_free (name);
}
- return g_test_run();
}
--- glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:25.000000000 +0100
+++ glib-2.34.3/gio/tests/gdbus-non-socket.c 2013-01-16 18:13:27.000000000 +0100
@@ -294,7 +294,6 @@ main (int argc,
g_type_init ();
g_test_init (&argc, &argv, NULL);
- g_test_add_func ("/gdbus/non-socket", test_non_socket);
ret = g_test_run();

View file

@ -1,14 +0,0 @@
prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64 as found on
hydra.gnu.org, and strace(1) doesn't recognize it.
--- glib-2.34.3/glib/tests/thread.c 2012-11-20 15:27:12.000000000 +0100
+++ glib-2.34.3/glib/tests/thread.c 2013-03-27 14:48:31.000000000 +0100
@@ -130,7 +130,7 @@ test_thread3 (void)
static void
test_thread4 (void)
{
-#ifdef HAVE_PRLIMIT
+#if 0
struct rlimit ol, nl;
GThread *thread;
GError *error;

View file

@ -2,9 +2,6 @@
fail depending on the elapsed microseconds. Improve rounding by adding a
fractional bit.
* The /timer/stop test fails if compiler optimizations are enabled, which they
are by default. Disable that test.
--- glib-2.40.0/glib/tests/timer.c 2014-03-05 08:05:42.000000000 -0600
+++ glib-2.40.0/glib/tests/timer.c 2014-07-10 16:33:12.746862822 -0500
@@ -35,7 +35,7 @@
@ -16,11 +13,3 @@
g_timer_destroy (timer);
}
@@ -204,7 +204,6 @@
g_test_init (&argc, &argv, NULL);
g_test_add_func ("/timer/basic", test_timer_basic);
- g_test_add_func ("/timer/stop", test_timer_stop);
g_test_add_func ("/timer/continue", test_timer_continue);
g_test_add_func ("/timer/reset", test_timer_reset);
g_test_add_func ("/timeval/add", test_timeval_add);

View file

@ -0,0 +1,41 @@
From: Jookia <166291@gmail.com>
Subject: [PATCHv2] gtk: Patch GTK+ to look for themes in profiles.
To: guix-devel@gnu.org
Date: Sun, 13 Mar 2016 15:17:37 +1100
Url: https://lists.gnu.org/archive/html/guix-devel/2016-03/msg00492.html
diff -Naur gtk+-2.24.28.new/gtk/gtkrc.c gtk+-2.24.28/gtk/gtkrc.c
--- gtk+-2.24.28.new/gtk/gtkrc.c 2016-03-13 10:31:14.413644362 +1100
+++ gtk+-2.24.28/gtk/gtkrc.c 2016-03-13 12:51:34.723398423 +1100
@@ -808,6 +808,8 @@
gchar *path = NULL;
const gchar *home_dir;
gchar *subpath;
+ const gchar * const *xdg_data_dirs;
+ gint i;
if (type)
subpath = g_strconcat ("gtk-2.0-", type,
@@ -830,6 +832,22 @@
}
if (!path)
+ {
+ xdg_data_dirs = g_get_system_data_dirs ();
+ for (i = 0; xdg_data_dirs[i]; i++)
+ {
+ path = g_build_filename (xdg_data_dirs[i], "themes", name, subpath, NULL);
+ if (g_file_test (path, G_FILE_TEST_EXISTS))
+ break;
+ else
+ {
+ g_free (path);
+ path = NULL;
+ }
+ }
+ }
+
+ if (!path)
{
gchar *theme_dir = gtk_rc_get_theme_dir ();
path = g_build_filename (theme_dir, name, subpath, NULL);

View file

@ -1,75 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/bf34b97757b3
# HG changeset patch
# User Jon Coppeard <jcoppeard@mozilla.com>
# Date 1453890675 0
# Node ID bf34b97757b334af1f9f53b9b59e0b6902e7ed6f
# Parent 228ca3f46cabaf3f388f6c6640690772aa13c1a5
Bug 1241731 - Handle incomplete buffer in DiscardTransferables r=sfink a=abillings a=sylvestre
diff --git a/js/src/jit-test/tests/gc/bug-1241731.js b/js/src/jit-test/tests/gc/bug-1241731.js
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/gc/bug-1241731.js
@@ -0,0 +1,4 @@
+if (!('oomTest' in this))
+ quit();
+
+oomTest(() => serialize(0, [{}]));
diff --git a/js/src/vm/StructuredClone.cpp b/js/src/vm/StructuredClone.cpp
--- a/js/src/vm/StructuredClone.cpp
+++ b/js/src/vm/StructuredClone.cpp
@@ -379,39 +379,50 @@ ReadStructuredClone(JSContext* cx, uint6
// If the given buffer contains Transferables, free them. Note that custom
// Transferables will use the JSStructuredCloneCallbacks::freeTransfer() to
// delete their transferables.
static void
Discard(uint64_t* buffer, size_t nbytes, const JSStructuredCloneCallbacks* cb, void* cbClosure)
{
MOZ_ASSERT(nbytes % sizeof(uint64_t) == 0);
- if (nbytes < sizeof(uint64_t))
+ uint64_t* end = buffer + nbytes / sizeof(uint64_t);
+ uint64_t* point = buffer;
+ if (point == end)
return; // Empty buffer
- uint64_t* point = buffer;
uint32_t tag, data;
SCInput::getPair(point++, &tag, &data);
if (tag != SCTAG_TRANSFER_MAP_HEADER)
return;
if (TransferableMapHeader(data) == SCTAG_TM_TRANSFERRED)
return;
// freeTransfer should not GC
JS::AutoSuppressGCAnalysis nogc;
+ if (point == end)
+ return;
+
uint64_t numTransferables = LittleEndian::readUint64(point++);
while (numTransferables--) {
+ if (point == end)
+ return;
+
uint32_t ownership;
SCInput::getPair(point++, &tag, &ownership);
MOZ_ASSERT(tag >= SCTAG_TRANSFER_MAP_PENDING_ENTRY);
+ if (point == end)
+ return;
void* content;
SCInput::getPtr(point++, &content);
+ if (point == end)
+ return;
uint64_t extraData = LittleEndian::readUint64(point++);
if (ownership < JS::SCTAG_TMO_FIRST_OWNED)
continue;
if (ownership == JS::SCTAG_TMO_ALLOC_DATA) {
js_free(content);

View file

@ -1,35 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/e7c23c08bf84
# HG changeset patch
# User Randell Jesup <rjesup@jesup.org>
# Date 1458543433 14400
# Node ID e7c23c08bf84a02d9154f31e0c5d121a45884a69
# Parent a6de1f453712edabff597879398606708c191098
Bug 1254876: assert windows recording is shut down r=pkerr a=ritu
MozReview-Commit-ID: JRqxBb5TgrE
diff --git a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
--- a/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
+++ b/media/webrtc/trunk/webrtc/modules/audio_device/win/audio_device_core_win.cc
@@ -567,16 +567,19 @@ AudioDeviceWindowsCore::AudioDeviceWindo
// ----------------------------------------------------------------------------
AudioDeviceWindowsCore::~AudioDeviceWindowsCore()
{
WEBRTC_TRACE(kTraceMemory, kTraceAudioDevice, _id, "%s destroyed", __FUNCTION__);
Terminate();
+ // Recording thread should be shut down before this!
+ assert(_hRecThread == NULL);
+
// The IMMDeviceEnumerator is created during construction. Must release
// it here and not in Terminate() since we don't recreate it in Init().
SAFE_RELEASE(_ptrEnumerator);
_ptrAudioBuffer = NULL;
if (NULL != _hRenderSamplesReadyEvent)
{

View file

@ -1,69 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3d2b62083a6a
# HG changeset patch
# User Shu-yu Guo <shu@rfrn.org>
# Date 1459741387 -7200
# Node ID 3d2b62083a6a4fb43cb330d77142f9dce0959a23
# Parent 9d4364f6b55c6ee65c13c491292c3abe1ee2c993
Bug 1254164 - Make aliasedBodyLevelLexicalBegin a uint32. r=Waldo, a=ritu
diff --git a/js/src/jit-test/tests/parser/bug-1254164.js b/js/src/jit-test/tests/parser/bug-1254164.js
new file mode 100644
--- /dev/null
+++ b/js/src/jit-test/tests/parser/bug-1254164.js
@@ -0,0 +1,6 @@
+// |jit-test| slow;
+
+var s = '';
+for (var i = 0; i < 70000; i++)
+ s += 'function x' + i + '() { x' + i + '(); }\n';
+eval("(function() { " + s + " })();");
diff --git a/js/src/jsscript.cpp b/js/src/jsscript.cpp
--- a/js/src/jsscript.cpp
+++ b/js/src/jsscript.cpp
@@ -111,17 +111,20 @@ Bindings::initWithTemporaryStorage(Exclu
// JITs when interpreting/compiling aliasedvar ops.)
// Since unaliased variables are, by definition, only accessed by local
// operations and never through the scope chain, only give shapes to
// aliased variables. While the debugger may observe any scope object at
// any time, such accesses are mediated by DebugScopeProxy (see
// DebugScopeProxy::handleUnaliasedAccess).
uint32_t nslots = CallObject::RESERVED_SLOTS;
- uint32_t aliasedBodyLevelLexicalBegin = UINT16_MAX;
+
+ // Unless there are aliased body-level lexical bindings at all, set the
+ // begin index to an impossible slot number.
+ uint32_t aliasedBodyLevelLexicalBegin = LOCALNO_LIMIT;
for (BindingIter bi(self); bi; bi++) {
if (bi->aliased()) {
// Per ES6, lexical bindings cannot be accessed until
// initialized. Remember the first aliased slot that is a
// body-level lexical, so that they may be initialized to sentinel
// magic values.
if (numBodyLevelLexicals > 0 &&
nslots < aliasedBodyLevelLexicalBegin &&
diff --git a/js/src/jsscript.h b/js/src/jsscript.h
--- a/js/src/jsscript.h
+++ b/js/src/jsscript.h
@@ -201,18 +201,18 @@ class Bindings
friend class BindingIter;
friend class AliasedFormalIter;
RelocatablePtrShape callObjShape_;
uintptr_t bindingArrayAndFlag_;
uint16_t numArgs_;
uint16_t numBlockScoped_;
uint16_t numBodyLevelLexicals_;
- uint16_t aliasedBodyLevelLexicalBegin_;
uint16_t numUnaliasedBodyLevelLexicals_;
+ uint32_t aliasedBodyLevelLexicalBegin_;
uint32_t numVars_;
uint32_t numUnaliasedVars_;
#if JS_BITS_PER_WORD == 32
// Bindings is allocated inline inside JSScript, which needs to be
// gc::Cell aligned.
uint32_t padding_;
#endif

View file

@ -1,33 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/88f1eb2c3f4b
# HG changeset patch
# User Timothy Nikkel <tnikkel@gmail.com>
# Date 1457637807 21600
# Node ID 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610
# Parent bf34b97757b334af1f9f53b9b59e0b6902e7ed6f
Bug 1187420. r=drc r=jmuizelaar a=sylvestre
MozReview-Commit-ID: Hh0Khqfj8Bf
diff --git a/media/libjpeg/jstdhuff.c b/media/libjpeg/jstdhuff.c
--- a/media/libjpeg/jstdhuff.c
+++ b/media/libjpeg/jstdhuff.c
@@ -36,16 +36,17 @@ add_huff_table (j_common_ptr cinfo,
*/
nsymbols = 0;
for (len = 1; len <= 16; len++)
nsymbols += bits[len];
if (nsymbols < 1 || nsymbols > 256)
ERREXIT(cinfo, JERR_BAD_HUFF_TABLE);
MEMCOPY((*htblptr)->huffval, val, nsymbols * sizeof(UINT8));
+ MEMZERO(&((*htblptr)->huffval[nsymbols]), (256 - nsymbols) * sizeof(UINT8));
/* Initialize sent_table FALSE so table will be written to JPEG file. */
(*htblptr)->sent_table = FALSE;
}
LOCAL(void)
std_huff_tables (j_common_ptr cinfo)

View file

@ -1,37 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/5c312182da90
# HG changeset patch
# User Jan de Mooij <jdemooij@mozilla.com>
# Date 1458828581 -3600
# Node ID 5c312182da9020504103aa329360abaffa7e232d
# Parent fa4efccde9b7efde8763a178a6cf422b6d37a0e9
Bug 1254622 - Relookup group->newScript in CreateThisForFunctionWithGroup. r=bhackett a=sylvestre
MozReview-Commit-ID: KXd7kB70f1Z
diff --git a/js/src/jsobj.cpp b/js/src/jsobj.cpp
--- a/js/src/jsobj.cpp
+++ b/js/src/jsobj.cpp
@@ -1574,18 +1574,19 @@ CreateThisForFunctionWithGroup(JSContext
// Not enough objects with this group have been created yet, so make a
// plain object and register it with the group. Use the maximum number
// of fixed slots, as is also required by the TypeNewScript.
gc::AllocKind allocKind = GuessObjectGCKind(NativeObject::MAX_FIXED_SLOTS);
PlainObject* res = NewObjectWithGroup<PlainObject>(cx, group, parent, allocKind, newKind);
if (!res)
return nullptr;
- if (newKind != SingletonObject)
- newScript->registerNewObject(res);
+ // Make sure group->newScript is still there.
+ if (newKind != SingletonObject && group->newScript())
+ group->newScript()->registerNewObject(res);
return res;
}
gc::AllocKind allocKind = NewObjectGCKind(&PlainObject::class_);
if (newKind == SingletonObject) {
Rooted<TaggedProto> protoRoot(cx, group->proto());

View file

@ -1,35 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/3fdd280fa099
# HG changeset patch
# User Carsten "Tomcat" Book <cbook@mozilla.com>
# Date 1461123938 -7200
# Node ID 3fdd280fa099b6453ce9fd9905af883bc2ebce24
# Parent 52dfdd37150d62f708dc5bf61dd28f3967596788
Bug 1252707 - a=sylvestre
diff --git a/js/src/vm/Shape.cpp b/js/src/vm/Shape.cpp
--- a/js/src/vm/Shape.cpp
+++ b/js/src/vm/Shape.cpp
@@ -382,18 +382,20 @@ NativeObject::getChildPropertyOnDictiona
if (obj->inDictionaryMode()) {
MOZ_ASSERT(parent == obj->lastProperty());
RootedGeneric<StackShape*> childRoot(cx, &child);
shape = childRoot->isAccessorShape() ? NewGCAccessorShape(cx) : NewGCShape(cx);
if (!shape)
return nullptr;
if (childRoot->hasSlot() && childRoot->slot() >= obj->lastProperty()->base()->slotSpan()) {
- if (!obj->setSlotSpan(cx, childRoot->slot() + 1))
+ if (!obj->setSlotSpan(cx, childRoot->slot() + 1)) {
+ new (shape) Shape(obj->lastProperty()->base()->unowned(), 0);
return nullptr;
+ }
}
shape->initDictionaryShape(*childRoot, obj->numFixedSlots(), &obj->shape_);
}
return shape;
}
/* static */ Shape*

View file

@ -1,389 +0,0 @@
Copied from https://hg.mozilla.org/releases/mozilla-esr38/raw-rev/71f611fd27c7
# HG changeset patch
# User Jeff Walden <jwalden@mit.edu>
# Date 1458941573 25200
# Node ID 71f611fd27c7d6cb7d6dab9895c2922948042543
# Parent 861f6b83ce1deade2a976cabe059776ad51ce370
Bug 1246061. r=luke, r=froydnj, a=sylvestre
diff --git a/js/public/HashTable.h b/js/public/HashTable.h
--- a/js/public/HashTable.h
+++ b/js/public/HashTable.h
@@ -8,16 +8,17 @@
#define js_HashTable_h
#include "mozilla/Alignment.h"
#include "mozilla/Assertions.h"
#include "mozilla/Attributes.h"
#include "mozilla/Casting.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/Move.h"
+#include "mozilla/Opaque.h"
#include "mozilla/PodOperations.h"
#include "mozilla/ReentrancyGuard.h"
#include "mozilla/TemplateLib.h"
#include "mozilla/TypeTraits.h"
#include "js/Utility.h"
namespace js {
@@ -27,16 +28,18 @@ template <class> struct DefaultHasher;
template <class, class> class HashMapEntry;
namespace detail {
template <class T> class HashTableEntry;
template <class T, class HashPolicy, class AllocPolicy> class HashTable;
}
/*****************************************************************************/
+using Generation = mozilla::Opaque<uint64_t>;
+
// A JS-friendly, STL-like container providing a hash-based map from keys to
// values. In particular, HashMap calls constructors and destructors of all
// objects added so non-PODs may be used safely.
//
// Key/Value requirements:
// - movable, destructible, assignable
// HashPolicy requirements:
// - see Hash Policy section below
@@ -200,17 +203,19 @@ class HashMap
return impl.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
}
// If |generation()| is the same before and after a HashMap operation,
// pointers into the table remain valid.
- uint32_t generation() const { return impl.generation(); }
+ Generation generation() const {
+ return impl.generation();
+ }
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return impl.lookup(l).found();
}
// Overwrite existing value with v. Return false on oom.
@@ -431,17 +436,19 @@ class HashSet
return impl.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return mallocSizeOf(this) + impl.sizeOfExcludingThis(mallocSizeOf);
}
// If |generation()| is the same before and after a HashSet operation,
// pointers into the table remain valid.
- uint32_t generation() const { return impl.generation(); }
+ Generation generation() const {
+ return impl.generation();
+ }
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return impl.lookup(l).found();
}
// Add |u| if it is not present already. Return false on oom.
@@ -766,17 +773,17 @@ class HashTable : private AllocPolicy
// table operations unless |generation()| is tested.
class Ptr
{
friend class HashTable;
Entry* entry_;
#ifdef JS_DEBUG
const HashTable* table_;
- uint32_t generation;
+ Generation generation;
#endif
protected:
Ptr(Entry& entry, const HashTable& tableArg)
: entry_(&entry)
#ifdef JS_DEBUG
, table_(&tableArg)
, generation(tableArg.generation())
@@ -873,17 +880,17 @@ class HashTable : private AllocPolicy
while (cur < end && !cur->isLive())
++cur;
}
Entry* cur, *end;
#ifdef JS_DEBUG
const HashTable* table_;
uint64_t mutationCount;
- uint32_t generation;
+ Generation generation;
bool validEntry;
#endif
public:
Range()
: cur(nullptr)
, end(nullptr)
#ifdef JS_DEBUG
@@ -1012,18 +1019,18 @@ class HashTable : private AllocPolicy
// HashTable is not copyable or assignable
HashTable(const HashTable&) = delete;
void operator=(const HashTable&) = delete;
private:
static const size_t CAP_BITS = 24;
public:
- Entry* table; // entry storage
- uint32_t gen; // entry storage generation number
+ uint64_t gen; // entry storage generation number
+ Entry* table; // entry storage
uint32_t entryCount; // number of entries in table
uint32_t removedCount:CAP_BITS; // removed entry sentinels in table
uint32_t hashShift:8; // multiplicative hash shift
#ifdef JS_DEBUG
uint64_t mutationCount;
mutable bool mEntered;
mutable struct Stats
@@ -1097,18 +1104,18 @@ class HashTable : private AllocPolicy
for (Entry* e = oldTable, *end = e + capacity; e < end; ++e)
e->destroyIfLive();
alloc.free_(oldTable);
}
public:
explicit HashTable(AllocPolicy ap)
: AllocPolicy(ap)
+ , gen(0)
, table(nullptr)
- , gen(0)
, entryCount(0)
, removedCount(0)
, hashShift(sHashBits)
#ifdef JS_DEBUG
, mutationCount(0)
, mEntered(false)
#endif
{}
@@ -1524,20 +1531,20 @@ class HashTable : private AllocPolicy
}
uint32_t capacity() const
{
MOZ_ASSERT(table);
return JS_BIT(sHashBits - hashShift);
}
- uint32_t generation() const
+ Generation generation() const
{
MOZ_ASSERT(table);
- return gen;
+ return Generation(gen);
}
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const
{
return mallocSizeOf(table);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const
diff --git a/js/src/jsapi.h b/js/src/jsapi.h
--- a/js/src/jsapi.h
+++ b/js/src/jsapi.h
@@ -270,20 +270,16 @@ class AutoHashMapRooter : protected Auto
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return map.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return map.sizeOfIncludingThis(mallocSizeOf);
}
- uint32_t generation() const {
- return map.generation();
- }
-
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return map.has(l);
}
template<typename KeyInput, typename ValueInput>
bool put(const KeyInput& k, const ValueInput& v) {
@@ -385,20 +381,16 @@ class AutoHashSetRooter : protected Auto
size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return set.sizeOfExcludingThis(mallocSizeOf);
}
size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const {
return set.sizeOfIncludingThis(mallocSizeOf);
}
- uint32_t generation() const {
- return set.generation();
- }
-
/************************************************** Shorthand operations */
bool has(const Lookup& l) const {
return set.has(l);
}
bool put(const T& t) {
return set.put(t);
diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h
--- a/js/src/jscntxt.h
+++ b/js/src/jscntxt.h
@@ -30,21 +30,21 @@ class DebugModeOSRVolatileJitFrameIterat
}
typedef HashSet<JSObject*> ObjectSet;
typedef HashSet<Shape*> ShapeSet;
/* Detects cycles when traversing an object graph. */
class AutoCycleDetector
{
+ Generation hashsetGenerationAtInit;
JSContext* cx;
RootedObject obj;
+ ObjectSet::AddPtr hashsetAddPointer;
bool cyclic;
- uint32_t hashsetGenerationAtInit;
- ObjectSet::AddPtr hashsetAddPointer;
MOZ_DECL_USE_GUARD_OBJECT_NOTIFIER
public:
AutoCycleDetector(JSContext* cx, HandleObject objArg
MOZ_GUARD_OBJECT_NOTIFIER_PARAM)
: cx(cx), obj(cx, objArg), cyclic(true)
{
MOZ_GUARD_OBJECT_NOTIFIER_INIT;
diff --git a/js/src/jswatchpoint.cpp b/js/src/jswatchpoint.cpp
--- a/js/src/jswatchpoint.cpp
+++ b/js/src/jswatchpoint.cpp
@@ -22,25 +22,25 @@ DefaultHasher<WatchKey>::hash(const Look
{
return DefaultHasher<JSObject*>::hash(key.object.get()) ^ HashId(key.id.get());
}
namespace {
class AutoEntryHolder {
typedef WatchpointMap::Map Map;
+ Generation gen;
Map& map;
Map::Ptr p;
- uint32_t gen;
RootedObject obj;
RootedId id;
public:
AutoEntryHolder(JSContext* cx, Map& map, Map::Ptr p)
- : map(map), p(p), gen(map.generation()), obj(cx, p->key().object), id(cx, p->key().id)
+ : gen(map.generation()), map(map), p(p), obj(cx, p->key().object), id(cx, p->key().id)
{
MOZ_ASSERT(!p->value().held);
p->value().held = true;
}
~AutoEntryHolder() {
if (gen != map.generation())
p = map.lookup(WatchKey(obj, id));
diff --git a/js/src/shell/jsheaptools.cpp b/js/src/shell/jsheaptools.cpp
--- a/js/src/shell/jsheaptools.cpp
+++ b/js/src/shell/jsheaptools.cpp
@@ -267,17 +267,17 @@ HeapReverser::traverseEdge(void* cell, J
Map::AddPtr a = map.lookupForAdd(cell);
if (!a) {
/*
* We've never visited this cell before. Add it to the map (thus
* marking it as visited), and put it on the work stack, to be
* visited from the main loop.
*/
Node n(kind);
- uint32_t generation = map.generation();
+ Generation generation = map.generation();
if (!map.add(a, cell, Move(n)) ||
!work.append(Child(cell, kind)))
return false;
/* If the map has been resized, re-check the pointer. */
if (map.generation() != generation)
a = map.lookupForAdd(cell);
}
diff --git a/mfbt/Opaque.h b/mfbt/Opaque.h
new file mode 100644
--- /dev/null
+++ b/mfbt/Opaque.h
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set ts=8 sts=2 et sw=2 tw=80: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/* An opaque integral type supporting only comparison operators. */
+
+#ifndef mozilla_Opaque_h
+#define mozilla_Opaque_h
+
+#include "mozilla/TypeTraits.h"
+
+namespace mozilla {
+
+/**
+ * Opaque<T> is a replacement for integral T in cases where only comparisons
+ * must be supported, and it's desirable to prevent accidental dependency on
+ * exact values.
+ */
+template<typename T>
+class Opaque final
+{
+ static_assert(mozilla::IsIntegral<T>::value,
+ "mozilla::Opaque only supports integral types");
+
+ T mValue;
+
+public:
+ Opaque() {}
+ explicit Opaque(T aValue) : mValue(aValue) {}
+
+ bool operator==(const Opaque& aOther) const {
+ return mValue == aOther.mValue;
+ }
+
+ bool operator!=(const Opaque& aOther) const {
+ return !(*this == aOther);
+ }
+};
+
+} // namespace mozilla
+
+#endif /* mozilla_Opaque_h */
diff --git a/mfbt/moz.build b/mfbt/moz.build
--- a/mfbt/moz.build
+++ b/mfbt/moz.build
@@ -48,16 +48,17 @@ EXPORTS.mozilla = [
'MathAlgorithms.h',
'Maybe.h',
'MaybeOneOf.h',
'MemoryChecking.h',
'MemoryReporting.h',
'Move.h',
'NullPtr.h',
'NumericLimits.h',
+ 'Opaque.h',
'Pair.h',
'PodOperations.h',
'Poison.h',
'Range.h',
'RangedPtr.h',
'RefCountType.h',
'ReentrancyGuard.h',
'RefPtr.h',

View file

@ -1,35 +0,0 @@
# HG changeset patch
# User Jean-Yves Avenard <jyavenard@mozilla.com>
# Date 1460655260 25200
# Node ID a13c0bc84d6eb132f4199f563fbe228d2d3b3a51
# Parent 88f1eb2c3f4b4b57365ed88223cf8adc2bec4610
Bug 1254721: Ensure consistency between Cenc offsets and sizes table. r=gerald a=sylvestre
MozReview-Commit-ID: E1KbKIIBR87
diff --git a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
--- a/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
+++ b/media/libstagefright/frameworks/av/media/libstagefright/SampleTable.cpp
@@ -612,18 +612,18 @@ status_t
SampleTable::parseSampleCencInfo() {
if ((!mCencDefaultSize && !mCencInfoCount) || mCencOffsets.isEmpty()) {
// We don't have all the cenc information we need yet. Quietly fail and
// hope we get the data we need later in the track header.
ALOGV("Got half of cenc saio/saiz pair. Deferring parse until we get the other half.");
return OK;
}
- if (!mCencSizes.isEmpty() && mCencOffsets.size() > 1 &&
- mCencSizes.size() != mCencOffsets.size()) {
+ if ((mCencOffsets.size() > 1 && mCencOffsets.size() < mCencInfoCount) ||
+ (!mCencDefaultSize && mCencSizes.size() < mCencInfoCount)) {
return ERROR_MALFORMED;
}
if (mCencInfoCount > kMAX_ALLOCATION / sizeof(SampleCencInfo)) {
// Avoid future OOM.
return ERROR_MALFORMED;
}

View file

@ -1,24 +0,0 @@
Re-enable the DHE (Ephemeral Diffie-Hellman) cipher suites, which IceCat
38.6.0 disabled by default to avoid the Logjam attack. This issue was
fixed in NSS version 3.19.1 by limiting the lower strength of supported
DHE keys to use 1023 bit primes, so we can enable these cipher suites
safely. The DHE cipher suites are needed to allow IceCat to connect to
many sites, including https://gnupg.org/.
Patch by Mark H Weaver <mhw@netris.org>
--- icecat-38.6.0/browser/app/profile/icecat.js.orig 1969-12-31 19:00:00.000000000 -0500
+++ icecat-38.6.0/browser/app/profile/icecat.js 2016-02-06 00:48:23.826170154 -0500
@@ -2061,12 +2061,6 @@
pref("security.ssl3.rsa_des_ede3_sha", false);
pref("security.ssl3.ecdhe_ecdsa_rc4_128_sha", false);
pref("security.ssl3.ecdhe_rsa_rc4_128_sha", false);
-// https://directory.fsf.org/wiki/Disable_DHE
-// Avoid logjam attack
-pref("security.ssl3.dhe_rsa_aes_128_sha", false);
-pref("security.ssl3.dhe_rsa_aes_256_sha", false);
-pref("security.ssl3.dhe_dss_aes_128_sha", false);
-pref("security.ssl3.dhe_rsa_des_ede3_sha", false);
//Optional
//Perfect forward secrecy
// pref("security.ssl3.rsa_aes_256_sha", false);

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,68 @@
Copied from Fedora.
http://pkgs.fedoraproject.org/cgit/rpms/inkscape.git/plain/inkscape-0.91-drop-wait-for-targets.patch?id=eb5340800b563d6b05aa5f11a2f24f2cc0d8c80e
=== modified file 'src/ui/clipboard.cpp'
--- src/ui/clipboard.cpp 2016-04-02 15:15:43 +0000
+++ src/ui/clipboard.cpp 2016-04-07 16:30:32 +0000
@@ -146,8 +146,6 @@
void _setClipboardColor(guint32);
void _userWarn(SPDesktop *, char const *);
- void _inkscape_wait_for_targets(std::list<Glib::ustring> &);
-
// private properites
SPDocument *_clipboardSPDoc; ///< Document that stores the clipboard until someone requests it
Inkscape::XML::Node *_defs; ///< Reference to the clipboard document's defs node
@@ -1302,9 +1300,7 @@
*/
Glib::ustring ClipboardManagerImpl::_getBestTarget()
{
- // GTKmm's wait_for_targets() is broken, see the comment in _inkscape_wait_for_targets()
- std::list<Glib::ustring> targets; // = _clipboard->wait_for_targets();
- _inkscape_wait_for_targets(targets);
+ std::list<Glib::ustring> targets = _clipboard->wait_for_targets();
// clipboard target debugging snippet
/*
@@ -1456,39 +1452,6 @@
desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, msg);
}
-
-// GTKMM's clipboard::wait_for_targets is buggy and might return bogus, see
-//
-// https://bugs.launchpad.net/inkscape/+bug/296778
-// http://mail.gnome.org/archives/gtk-devel-list/2009-June/msg00062.html
-//
-// for details. Until this has been fixed upstream we will use our own implementation
-// of this method, as copied from /gtkmm-2.16.0/gtk/gtkmm/clipboard.cc.
-void ClipboardManagerImpl::_inkscape_wait_for_targets(std::list<Glib::ustring> &listTargets)
-{
- //Get a newly-allocated array of atoms:
- GdkAtom* targets = NULL;
- gint n_targets = 0;
- gboolean test = gtk_clipboard_wait_for_targets( gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), &targets, &n_targets );
- if (!test || (targets == NULL)) {
- return;
- }
-
- //Add the targets to the C++ container:
- for (int i = 0; i < n_targets; i++)
- {
- //Convert the atom to a string:
- gchar* const atom_name = gdk_atom_name(targets[i]);
-
- Glib::ustring target;
- if (atom_name) {
- target = Glib::ScopedPtr<char>(atom_name).get(); //This frees the gchar*.
- }
-
- listTargets.push_back(target);
- }
-}
-
/* #######################################
ClipboardManager class
####################################### */

View file

@ -1,30 +0,0 @@
Fixes CVE-2015-8868 (heap overflow).
Upstream source:
https://cgit.freedesktop.org/poppler/poppler/commit/?id=b3425dd3261679958cd56c0f71995c15d2124433
From b3425dd3261679958cd56c0f71995c15d2124433 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Tue, 22 Dec 2015 22:50:33 +0100
Subject: Do not crash on invalid files
Bug #93476
diff --git a/poppler/Function.cc b/poppler/Function.cc
index 67283df..ee5afc1 100644
--- a/poppler/Function.cc
+++ b/poppler/Function.cc
@@ -577,6 +577,10 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
goto err2;
}
n = obj1.arrayGetLength();
+ if (unlikely(n > funcMaxOutputs)) {
+ error(errSyntaxError, -1, "Function's C0 array is wrong length");
+ n = funcMaxOutputs;
+ }
for (i = 0; i < n; ++i) {
obj1.arrayGet(i, &obj2);
if (!obj2.isNum()) {
--
cgit v0.10.2

View file

@ -0,0 +1,11 @@
--- totem-3.20.1/src/backend/bacon-video-widget.c.orig 2016-03-22 12:45:32.000000000 -0400
+++ totem-3.20.1/src/backend/bacon-video-widget.c 2016-05-11 02:49:55.299109551 -0400
@@ -2334,7 +2334,7 @@
if (!gst_toc_entry_get_start_stop_times (entry, &start, &stop)) {
GST_DEBUG ("Chapter #%d (couldn't get times)", i);
} else {
- GST_DEBUG ("Chapter #%d (start: %li stop: %li)", i, start, stop);
+ GST_DEBUG ("Chapter #%d (start: %li stop: %li)", i, (long) start, (long) stop);
}
}

View file

@ -52,20 +52,16 @@ (define-module (gnu packages pdf)
(define-public poppler
(package
(name "poppler")
(version "0.37.0")
(replacement poppler/fixed)
(version "0.43.0")
(source (origin
(method url-fetch)
(uri (string-append "https://poppler.freedesktop.org/poppler-"
version ".tar.xz"))
(sha256 (base32
"1vjvd0md8y37hlq3lsj0l01a3v3mzm572rzpn1311frvmrg9r7xq"))))
(sha256
(base32
"0mi4zf0pz3x3fx3ir7szz1n57nywgbpd4mp2r7mvf47f4rmf4867"))))
(build-system gnu-build-system)
;; FIXME: more dependencies could be added
;; cairo output: no (requires cairo >= 1.10.0)
;; qt4 wrapper: no
;; introspection: no
;; use gtk-doc: no
;; FIXME:
;; use libcurl: no
(inputs `(("fontconfig" ,fontconfig)
("freetype" ,freetype)
@ -84,7 +80,8 @@ (define-public poppler
("glib" ,glib)))
(native-inputs
`(("pkg-config" ,pkg-config)
("glib" ,glib "bin"))) ; glib-mkenums, etc.
("glib" ,glib "bin") ; glib-mkenums, etc.
("gobject-introspection" ,gobject-introspection)))
(arguments
`(#:tests? #f ; no test data provided with the tarball
#:configure-flags
@ -105,13 +102,6 @@ (define-public poppler
(license license:gpl2+)
(home-page "http://poppler.freedesktop.org/")))
(define poppler/fixed
(package
(inherit poppler)
(source (origin
(inherit (package-source poppler))
(patches (search-patches "poppler-CVE-2015-8868.patch"))))))
(define-public poppler-qt4
(package (inherit poppler)
(name "poppler-qt4")

View file

@ -234,7 +234,7 @@ (define-public xeyes
(define-public pixman
(package
(name "pixman")
(version "0.32.8")
(version "0.34.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -242,7 +242,7 @@ (define-public pixman
version ".tar.gz"))
(sha256
(base32
"0pfn0247sjsi95kwjih0wwqpp28wadihqk1bn28x6iqbqhbxwnjp"))))
"13m842m9ffac3m9r0b4lvwjhwzg3w4353djkjpf00s0wnm4v5di1"))))
(build-system gnu-build-system)
(inputs
`(("libpng" ,libpng)

View file

@ -445,6 +445,40 @@ (define (manifest-inputs manifest)
(cons (gexp-input thing output) deps)))
(manifest-entries manifest)))
(define (manifest-lookup-package manifest name)
"Return as a monadic value the first package or store path referenced by
MANIFEST that named NAME, or #f if not found."
;; Return as a monadic value the package or store path referenced by the
;; manifest ENTRY, or #f if not referenced.
(define (entry-lookup-package entry)
(define (find-among-inputs inputs)
(find (lambda (input)
(and (package? input)
(equal? name (package-name input))))
inputs))
(define (find-among-store-items items)
(find (lambda (item)
(equal? name (package-name->name+version
(store-path-package-name item))))
items))
;; TODO: Factorize.
(define references*
(store-lift references))
(with-monad %store-monad
(match (manifest-entry-item entry)
((? package? package)
(match (package-transitive-inputs package)
(((labels inputs . _) ...)
(return (find-among-inputs inputs)))))
((? string? item)
(mlet %store-monad ((refs (references* item)))
(return (find-among-store-items refs)))))))
(anym %store-monad
entry-lookup-package (manifest-entries manifest)))
(define (info-dir-file manifest)
"Return a derivation that builds the 'dir' file for all the entries of
MANIFEST."
@ -608,41 +642,7 @@ (define (dump file port)
(define (gtk-icon-themes manifest)
"Return a derivation that unions all icon themes from manifest entries and
creates the GTK+ 'icon-theme.cache' file for each theme."
;; Return as a monadic value the GTK+ package or store path referenced by the
;; manifest ENTRY, or #f if not referenced.
(define (entry-lookup-gtk+ entry)
(define (find-among-inputs inputs)
(find (lambda (input)
(and (package? input)
(string=? "gtk+" (package-name input))))
inputs))
(define (find-among-store-items items)
(find (lambda (item)
(equal? "gtk+"
(package-name->name+version
(store-path-package-name item))))
items))
;; TODO: Factorize.
(define references*
(store-lift references))
(with-monad %store-monad
(match (manifest-entry-item entry)
((? package? package)
(match (package-transitive-inputs package)
(((labels inputs . _) ...)
(return (find-among-inputs inputs)))))
((? string? item)
(mlet %store-monad ((refs (references* item)))
(return (find-among-store-items refs)))))))
(define (manifest-lookup-gtk+ manifest)
(anym %store-monad
entry-lookup-gtk+ (manifest-entries manifest)))
(mlet %store-monad ((gtk+ (manifest-lookup-gtk+ manifest)))
(mlet %store-monad ((gtk+ (manifest-lookup-package manifest "gtk+")))
(define build
#~(begin
(use-modules (guix build utils)
@ -686,13 +686,84 @@ (define build
#:substitutable? #f)
(return #f))))
(define (xdg-desktop-database manifest)
"Return a derivation that builds the @file{mimeinfo.cache} database from
desktop files. It's used to query what applications can handle a given
MIME type."
(mlet %store-monad ((desktop-file-utils
(manifest-lookup-package
manifest "desktop-file-utils")))
(define build
#~(begin
(use-modules (srfi srfi-26)
(guix build utils)
(guix build union))
(let* ((destdir (string-append #$output "/share/applications"))
(appdirs (filter file-exists?
(map (cut string-append <>
"/share/applications")
'#$(manifest-inputs manifest))))
(update-desktop-database (string-append
#+desktop-file-utils
"/bin/update-desktop-database")))
(mkdir-p (string-append #$output "/share"))
(union-build destdir appdirs
#:log-port (%make-void-port "w"))
(zero? (system* update-desktop-database destdir)))))
;; Don't run the hook when 'desktop-file-utils' is not referenced.
(if desktop-file-utils
(gexp->derivation "xdg-desktop-database" build
#:modules '((guix build utils)
(guix build union))
#:local-build? #t
#:substitutable? #f)
(return #f))))
(define (xdg-mime-database manifest)
"Return a derivation that builds the @file{mime.cache} database from manifest
entries. It's used to query the MIME type of a given file."
(mlet %store-monad ((shared-mime-info
(manifest-lookup-package
manifest "shared-mime-info")))
(define build
#~(begin
(use-modules (srfi srfi-26)
(guix build utils)
(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))))
(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)))))
;; Don't run the hook when 'shared-mime-info' is referenced.
(if shared-mime-info
(gexp->derivation "xdg-mime-database" build
#:modules '((guix build utils)
(guix build union))
#:local-build? #t
#:substitutable? #f)
(return #f))))
(define %default-profile-hooks
;; This is the list of derivation-returning procedures that are called by
;; default when making a non-empty profile.
(list info-dir-file
ghc-package-cache-file
ca-certificate-bundle
gtk-icon-themes))
gtk-icon-themes
xdg-desktop-database
xdg-mime-database))
(define* (profile-derivation manifest
#:key