gnu: file: Fixed cross-compilation.
[jackhill/guix/guix.git] / gnu / packages / gnuzilla.scm
CommitLineData
be0f6112
AE
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
1ae6df81 3;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
be0f6112
AE
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages gnuzilla)
21 #:use-module (gnu packages)
22 #:use-module ((guix licenses)
23 #:renamer (symbol-prefix-proc 'license:))
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu)
27 #:use-module (gnu packages glib)
28 #:use-module (gnu packages gstreamer)
29 #:use-module (gnu packages gtk)
30 #:use-module (gnu packages linux)
31 #:use-module (gnu packages perl)
32 #:use-module (gnu packages pkg-config)
1ae6df81
LC
33 #:use-module (gnu packages compression)
34 #:use-module (gnu packages libevent)
35 #:use-module (gnu packages libjpeg)
36 #:use-module (gnu packages libpng)
37 #:use-module (gnu packages libffi)
be0f6112
AE
38 #:use-module (gnu packages python)
39 #:use-module (gnu packages xorg)
40 #:use-module (gnu packages yasm)
41 #:use-module (gnu packages zip))
42
43(define-public icecat
44 (package
45 (name "icecat")
46 (version "24.0")
47 (source
48 (origin
49 (method url-fetch)
50 (uri (string-append "mirror://gnu/gnuzilla/"
51 (substring version 0 (string-index version #\.))
52 "/icecat-" version ".tar.gz"))
53 (sha256
54 (base32
55 "1vxzjwmhad6yxx4sk9zvapjgv5salcv10id061q0991ii3dycy9a"))))
56 (build-system gnu-build-system)
1ae6df81
LC
57 (native-inputs
58 `(("pkg-config" ,pkg-config)))
be0f6112
AE
59 (inputs
60 `(("alsa-lib" ,alsa-lib)
1ae6df81 61 ("bzip2" ,bzip2)
be0f6112
AE
62 ("dbus" ,dbus)
63 ("dbus-glib" ,dbus-glib)
64 ("glib" ,glib)
65 ("gstreamer" ,gstreamer-0.10)
66 ("gst-plugins-base" ,gst-plugins-base-0.10)
67 ("gtk+" ,gtk+-2)
1ae6df81
LC
68 ("libevent" ,libevent)
69 ;; ("libpng" ,libpng)
70 ;; ("libjpeg" ,libjpeg)
be0f6112 71 ("libxt" ,libxt)
1ae6df81 72 ("libffi" ,libffi)
be0f6112
AE
73 ("mesa" ,mesa)
74 ("perl" ,perl)
be0f6112
AE
75 ("python" ,python-2) ; Python 3 not supported
76 ("python2-pysqlite" ,python2-pysqlite)
77 ("unzip" ,unzip)
78 ("yasm" ,yasm)
1ae6df81
LC
79 ("zip" ,zip)
80 ("zlib" ,zlib)))
be0f6112
AE
81 (arguments
82 `(#:tests? #f ; no check target
1ae6df81
LC
83
84 #:configure-flags '(;; Building with debugging symbols takes ~5GiB, so
85 ;; disable it.
86 "--disable-debug"
87 "--disable-debug-symbols"
88
89 "--disable-webrtc" ; webrtc fails to build
90
91 "--with-system-zlib"
92 "--with-system-bz2" ; FIXME: not used
93 "--with-system-libevent"
94
95 ;; TODO: Currently fails with "--with-system-png
96 ;; won't work because the system's libpng doesn't
97 ;; have APNG support".
98 ;; "--with-system-png"
99
100 ;; TODO: Currently fails with "Insufficient JPEG
101 ;; library version for --with-system-jpeg".
102 ;; "--with-system-jpeg"
103
104 "--enable-system-ffi")
105
be0f6112
AE
106 #:phases
107 (alist-cons-before
108 'patch-source-shebangs 'sanitise
109 (lambda _
110 ;; delete dangling symlinks
111 (delete-file "browser/base/content/.#aboutDialog.xul")
112 (delete-file "browser/base/content/abouthome/.#aboutHome.xhtml")
113 (delete-file "browser/branding/unofficial/content/.#aboutHome.xhtml")
114 (delete-file "toolkit/crashreporter/google-breakpad/autotools/compile"))
115 (alist-replace
116 'configure
117 ;; configure does not work followed by both "SHELL=..." and
118 ;; "CONFIG_SHELL=..."; set environment variables instead
119 (lambda* (#:key outputs configure-flags #:allow-other-keys)
120 (let ((out (assoc-ref outputs "out")))
121 (setenv "SHELL" (which "bash"))
122 (setenv "CONFIG_SHELL" (which "bash"))
1ae6df81
LC
123 (zero? (apply system* "./configure"
124 (string-append "--prefix=" out)
125 configure-flags))))
be0f6112
AE
126 %standard-phases))))
127 (home-page "http://www.gnu.org/software/gnuzilla/")
128 (synopsis "Entirely free browser derived from Mozilla Firefox")
129 (description
130 "IceCat is the GNU version of the Firefox browser. It is entirely free
131software, which does not recommend non-free plugins and addons. It also
79c311b8 132features built-in privacy-protecting features.")
be0f6112 133 (license license:mpl2.0))) ; and others, see toolkit/content/license.html