gnu: datamash: Update to 1.1.0.
[jackhill/guix/guix.git] / gnu / packages / gnuzilla.scm
index 53e6ea7..6fac8ce 100644 (file)
 in C/C++.")
     (license license:mpl2.0))) ; and others for some files
 
+(define-public mozjs-24
+  (package (inherit mozjs)
+    (name "mozjs")
+    (version "24.2.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://ftp.mozilla.org/pub/mozilla.org/js/"
+                    name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1n1phk8r3l8icqrrap4czplnylawa0ddc2cc4cgdz46x3lrkybz6"))))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (replace
+          'configure
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((out (assoc-ref outputs "out")))
+              (chdir "js/src")
+              ;; configure fails if it is follwed by SHELL and CONFIG_SHELL
+              (setenv "SHELL" (which "sh"))
+              (setenv "CONFIG_SHELL" (which "sh"))
+              (zero? (system* "./configure"
+                              (string-append "--prefix=" out)
+                              "--with-system-nspr"
+                              "--enable-system-ffi"
+                              "--enable-threadsafe"))))))))
+    (native-inputs
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)))
+    (propagated-inputs
+     `(("nspr" ,nspr))) ; in the Requires.private field of mozjs-24.pc
+    (inputs
+     `(("libffi" ,libffi)
+       ("zlib" ,zlib)))))
+
 (define-public nspr
   (package
     (name "nspr")
-    (version "4.10.8")
+    (version "4.10.10")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -103,7 +141,7 @@ in C/C++.")
                    version "/src/nspr-" version ".tar.gz"))
              (sha256
               (base32
-               "05aaakz24ba2hdzlqx8qamwrsp7gni1acms8mr6m432wa9yaazjh"))))
+               "01ria9wk6329hxqsy75p9dkxiqkq4nkz0jjzll7hslih3jbi8dil"))))
     (build-system gnu-build-system)
     (native-inputs
       `(("perl", perl)))
@@ -129,18 +167,18 @@ in the Mozilla clients.")
 (define-public nss
   (package
     (name "nss")
-    (version "3.19.2")
+    (version "3.21")
     (source (origin
               (method url-fetch)
               (uri (let ((version-with-underscores
                           (string-join (string-split version #\.) "_")))
                      (string-append
-                      "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+                      "https://ftp.mozilla.org/pub/mozilla.org/security/nss/"
                       "releases/NSS_" version-with-underscores "_RTM/src/"
                       "nss-" version ".tar.gz")))
               (sha256
                (base32
-                "1bn9wbf52z4423134hpkyvcxq1568fvzmkybv2d49n31iwz6c1hk"))
+                "0fbjx3xsdm4gjc1gyzy2z315cvyw7yilsm7p9w75rpbwgl15nyiz"))
               ;; Create nss.pc and nss-config.
               (patches (list (search-patch "nss-pkgconfig.patch")))))
     (build-system gnu-build-system)
@@ -167,6 +205,7 @@ in the Mozilla clients.")
        (alist-replace
         'configure
         (lambda* (#:key system inputs #:allow-other-keys)
+          (setenv "CC" "gcc")
           ;; Tells NSS to build for the 64-bit ABI if we are 64-bit system.
           (when (string-prefix? "x86_64" system)
             (setenv "USE_64" "1"))
@@ -228,7 +267,7 @@ standards.")
 (define-public icecat
   (package
     (name "icecat")
-    (version "31.8.0-gnu1")
+    (version "38.5.2-gnu1")
     (source
      (origin
       (method url-fetch)
@@ -237,17 +276,8 @@ standards.")
                           name "-" version ".tar.bz2"))
       (sha256
        (base32
-        "11wx29mb5pcg4mgk07a6vjwh52ca90k0x4m9wv0v3y5dmp88f01p"))
-      (patches (map search-patch '("icecat-CVE-2015-4473-partial.patch"
-                                   "icecat-CVE-2015-4482.patch"
-                                   "icecat-CVE-2015-4488.patch"
-                                   "icecat-CVE-2015-4489.patch"
-                                   "icecat-CVE-2015-4491.patch"
-                                   "icecat-CVE-2015-4492.patch"
-                                   "icecat-CVE-2015-4495.patch"
-                                   "icecat-enable-acceleration-and-webgl.patch"
-                                   "icecat-freetype-2.6.patch"
-                                   "icecat-libvpx-1.4.patch")))
+        "0m18xyb0rd02yaw9xd5z4bab1wr2599iszzqhm86c134jv5vk6cg"))
+      (patches (map search-patch '("icecat-avoid-bundled-includes.patch")))
       (modules '((guix build utils)))
       (snippet
        '(begin
@@ -307,6 +337,7 @@ standards.")
        ("libevent" ,libevent)
        ("libxinerama" ,libxinerama)
        ("libxscrnsaver" ,libxscrnsaver)
+       ("libxcomposite" ,libxcomposite)
        ("libxt" ,libxt)
        ("libffi" ,libffi)
        ("libvpx" ,libvpx)
@@ -393,8 +424,22 @@ standards.")
                            ;; "--with-system-jpeg"
                            )
 
+       #:modules ((ice-9 ftw)
+                  ,@%gnu-build-system-modules)
        #:phases
        (modify-phases %standard-phases
+         (add-after
+          'unpack 'ensure-no-mtimes-pre-1980
+          (lambda _
+            ;; Without this, the 'source/test/addons/packed.xpi' and
+            ;; 'source/test/addons/simple-prefs.xpi' targets fail while trying
+            ;; to create zip archives.
+            (let ((early-1980 315619200)) ; 1980-01-02 UTC
+              (ftw "." (lambda (file stat flag)
+                         (unless (<= early-1980 (stat:mtime stat))
+                           (utime file early-1980 early-1980))
+                         #t))
+              #t)))
          (add-after
           'unpack 'remove-h264parse-from-blacklist
           (lambda _
@@ -402,7 +447,7 @@ standards.")
             ;; was put there to work around a bug in a pre-1.0 version of
             ;; gstreamer.  See:
             ;; https://www.mozilla.org/en-US/security/advisories/mfsa2015-47/
-            (substitute* "content/media/gstreamer/GStreamerFormatHelper.cpp"
+            (substitute* "dom/media/gstreamer/GStreamerFormatHelper.cpp"
               (("^  \"h264parse\",\n") ""))
             #t))
          (add-after
@@ -414,13 +459,12 @@ standards.")
             ;; TODO: It might be preferable to patch in absolute file names in
             ;; calls to dlopen or PR_LoadLibrary, but that didn't seem to
             ;; work.  More investigation is needed.
-            (let ((p (open-file "toolkit/library/libxul.mk" "a")))
-              (display "\nOS_LIBS += -lGL -lgnome-2 -lcanberra -lXss \\
-                                     -lcups -lgssapi_krb5 -lgstreamer-1.0 \\
-                                     -lgstapp-1.0 -lgstvideo-1.0\n"
-                       p)
-              (close-port p)
-              #t)))
+            (substitute* "toolkit/library/moz.build"
+              (("^# This needs to be last")
+               "OS_LIBS += [
+    'GL', 'gnome-2', 'canberra', 'Xss', 'cups', 'gssapi_krb5',
+    'gstreamer-1.0', 'gstapp-1.0', 'gstvideo-1.0' ]\n\n"))
+            #t))
          (replace
           'configure
           ;; configure does not work followed by both "SHELL=..." and