Merge branch 'master' into core-updates
[jackhill/guix/guix.git] / gnu / packages / gnuzilla.scm
index 9289e37..14f75bf 100644 (file)
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages libevent)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages python)
   #:use-module (gnu packages xorg)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages yasm)
   #:use-module (gnu packages zip))
 
     (build-system gnu-build-system)
     (inputs
      `(("alsa-lib" ,alsa-lib)
+       ("bzip2" ,bzip2)
        ("dbus" ,dbus)
        ("dbus-glib" ,dbus-glib)
        ("glib" ,glib)
        ("gstreamer" ,gstreamer-0.10)
        ("gst-plugins-base" ,gst-plugins-base-0.10)
        ("gtk+" ,gtk+-2)
+       ("libevent" ,libevent)
        ("libxt" ,libxt)
+       ("libffi" ,libffi)
        ("mesa" ,mesa)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-2) ; Python 3 not supported
-       ("python2-pysqlite" ,python2-pysqlite)
        ("unzip" ,unzip)
        ("yasm" ,yasm)
-       ("zip" ,zip)))
+       ("zip" ,zip)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("perl" ,perl)
+       ("python" ,python-2) ; Python 3 not supported
+       ("python2-pysqlite" ,python2-pysqlite)
+       ("pkg-config" ,pkg-config)))
     (arguments
      `(#:tests? #f ; no check target
+
+       #:configure-flags '(;; Building with debugging symbols takes ~5GiB, so
+                           ;; disable it.
+                           "--disable-debug"
+                           "--disable-debug-symbols"
+
+                           "--disable-webrtc"     ; webrtc fails to build
+
+                           "--with-system-zlib"
+                           "--with-system-bz2"    ; FIXME: not used
+                           "--with-system-libevent"
+
+                           ;; Fails with "--with-system-png won't work because
+                           ;; the system's libpng doesn't have APNG support".
+                           ;; According to
+                           ;; http://sourceforge.net/projects/libpng-apng/ ,
+                           ;; "the Animated Portable Network Graphics (APNG)
+                           ;; is an unofficial extension of the Portable
+                           ;; Network Graphics (PNG) format";
+                           ;; we probably do not wish to support it.
+                           ;; "--with-system-png"
+
+                           ;; Fails with "libjpeg-turbo JCS_EXTENSIONS
+                           ;; required".
+                           ;; According to
+                           ;; http://sourceforge.net/projects/libjpeg-turbo/ ,
+                           ;; "libjpeg-turbo is a derivative of libjpeg that
+                           ;; uses MMX, SSE, SSE2, and NEON SIMD instructions
+                           ;; to accelerate baseline JPEG compression/
+                           ;; decompression", so we had better not use it
+                           ;; "--with-system-jpeg"
+
+                           "--enable-system-ffi")
+
        #:phases
          (alist-cons-before
           'patch-source-shebangs 'sanitise
             (let ((out (assoc-ref outputs "out")))
               (setenv "SHELL" (which "bash"))
               (setenv "CONFIG_SHELL" (which "bash"))
-              (zero? (system* "./configure"
-                              (string-append "--prefix=" out)
-                              "--disable-webrtc")))) ; webrtc creates an error
+              (zero? (apply system* "./configure"
+                            (string-append "--prefix=" out)
+                            configure-flags))))
           %standard-phases))))
     (home-page "http://www.gnu.org/software/gnuzilla/")
     (synopsis "Entirely free browser derived from Mozilla Firefox")