summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/gnuzilla.scm168
-rw-r--r--gnu/packages/image.scm25
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/ninja.scm87
-rw-r--r--gnu/packages/patches/nss-pkgconfig.patch225
-rw-r--r--gnu/packages/pdf.scm18
-rw-r--r--gnu/packages/polkit.scm75
-rw-r--r--gnu/packages/qt.scm63
8 files changed, 573 insertions, 92 deletions
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 3ebc20dffa..8e397464ac 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -24,6 +25,7 @@
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
@@ -42,6 +44,172 @@
   #:use-module (gnu packages yasm)
   #:use-module (gnu packages zip))
 
+(define-public mozjs
+  (package
+    (name "mozjs")
+    (version "17.0.0")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://ftp.mozilla.org/pub/mozilla.org/js/"
+                   name version ".tar.gz"))
+             (sha256
+              (base32
+               "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij"))))
+    (build-system gnu-build-system)
+    (native-inputs
+      `(("perl", perl)
+        ("python" ,python-2)))
+    (arguments
+      `(#:phases
+          (alist-cons-before
+           'configure 'chdir
+           (lambda _
+             (chdir "js/src"))
+           (alist-replace
+            'configure
+            ;; configure fails if it is followed by SHELL and CONFIG_SHELL
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (setenv "SHELL" (which "sh"))
+                (setenv "CONFIG_SHELL" (which "sh"))
+                (zero? (system*
+                        "./configure" (string-append "--prefix=" out)))))
+            %standard-phases))))
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey")
+    (synopsis "Mozilla javascript engine")
+    (description "SpiderMonkey is Mozilla's JavaScript engine written
+in C/C++.")
+    (license license:mpl2.0))) ; and others for some files
+
+(define-public nspr
+  (package
+    (name "nspr")
+    (version "4.10.7")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
+                   version "/src/nspr-" version ".tar.gz"))
+             (sha256
+              (base32
+               "0f1ri51yzjikigf6z31g03cdv6sgi9gw2c3vvv39psk3m37zb6iq"))))
+    (build-system gnu-build-system)
+    (native-inputs
+      `(("perl", perl)))
+    (arguments
+      `(#:tests? #f ; no check target
+        #:configure-flags
+        `("--enable-64bit")
+        #:phases
+          (alist-cons-before
+           'configure 'chdir
+           (lambda _
+             (chdir "nspr"))
+            %standard-phases)))
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR")
+    (synopsis "Netscape API for system level and libc-like functions")
+    (description "Netscape Portable Runtime (NSPR) provides a
+platform-neutral API for system level and libc-like functions.  It is used
+in the Mozilla clients.")
+    (license license:mpl2.0)))
+
+(define-public nss
+  (package
+    (name "nss")
+    (version "3.17.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://ftp.mozilla.org/pub/mozilla.org/security/nss/"
+                    "releases/NSS_3_17_3_RTM/src/nss-3.17.3.tar.gz"))
+              (sha256
+               (base32
+                "1m91z80x4zh1mxgf53bl33lp43gn1wxxx0y26mgz511gb81ykmgl"))
+              ;; Create nss.pc and nss-config.
+              (patches (list (search-patch "nss-pkgconfig.patch")))))
+    (build-system gnu-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     '(#:parallel-build? #f ; failed
+       #:make-flags
+       (let* ((out (assoc-ref %outputs "out"))
+              (nspr (string-append (assoc-ref %build-inputs "nspr")))
+              (rpath (string-append "-Wl,-rpath=" out "/lib/nss")))
+         (list "-C" "nss" (string-append "PREFIX=" out)
+               "NSDISTMODE=copy"
+               "NSS_USE_SYSTEM_SQLITE=1"
+               (string-append "NSPR_INCLUDE_DIR=" nspr "/include/nspr")
+               ;; Add $out/lib/nss to RPATH.
+               (string-append "RPATH=" rpath)
+               (string-append "LDFLAGS=" rpath)))
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (ice-9 ftw)
+                  (ice-9 match)
+                  (srfi srfi-26))
+       #:imported-modules ((guix build gnu-build-system)
+                           (guix build utils))
+       #:phases
+       (alist-replace
+        'configure
+        (lambda* (#:key system inputs #:allow-other-keys)
+          ;; 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"))
+          #t)
+        (alist-replace
+         'check
+         (lambda _
+           ;; Use 127.0.0.1 instead of $HOST.$DOMSUF as HOSTADDR for testing.
+           ;; The later requires a working DNS or /etc/hosts.
+           (setenv "DOMSUF" "(none)")
+           (setenv "USE_IP" "TRUE")
+           (setenv "IP_ADDRESS" "127.0.0.1")
+           (zero? (system* "./nss/tests/all.sh")))
+         (alist-replace
+          'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (bin (string-append (assoc-ref outputs "bin") "/bin"))
+                   (inc (string-append out "/include/nss"))
+                   (lib (string-append out "/lib/nss"))
+                   (obj (match (scandir "dist" (cut string-suffix? "OBJ" <>))
+                          ((obj) (string-append "dist/" obj)))))
+              ;; Install nss-config to $out/bin.
+              (mkdir-p (string-append out "/bin"))
+              (copy-file (string-append obj "/bin/nss-config")
+                         (string-append out "/bin/nss-config"))
+              (delete-file (string-append obj "/bin/nss-config"))
+              ;; Install nss.pc to $out/lib/pkgconfig.
+              (mkdir-p (string-append out "/lib/pkgconfig"))
+              (copy-file (string-append obj "/lib/pkgconfig/nss.pc")
+                         (string-append out "/lib/pkgconfig/nss.pc"))
+              (delete-file (string-append obj "/lib/pkgconfig/nss.pc"))
+              (rmdir (string-append obj "/lib/pkgconfig"))
+              ;; Install other files.
+              (copy-recursively "dist/public/nss" inc)
+              (copy-recursively (string-append obj "/bin") bin)
+              (copy-recursively (string-append obj "/lib") lib)))
+          %standard-phases)))))
+    (inputs
+     `(("sqlite" ,sqlite)
+       ("zlib" ,zlib)))
+    (propagated-inputs `(("nspr" ,nspr))) ; required by nss.pc.
+    (native-inputs `(("perl" ,perl)))
+    (home-page
+     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS")
+    (synopsis "Network Security Services")
+    (description
+     "Network Security Services (NSS) is a set of libraries designed to support
+cross-platform development of security-enabled client and server applications.
+Applications built with NSS can support SSL v2 and v3, TLS, PKCS #5, PKCS #7,
+PKCS #11, PKCS #12, S/MIME, X.509 v3 certificates, and other security
+standards.")
+    (license license:mpl2.0)))
+
 (define-public icecat
   (package
     (name "icecat")
diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index 7a22bf4942..cdb9c1cfb2 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
+;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -187,16 +188,15 @@ work.")
 (define-public openjpeg
   (package
     (name "openjpeg")
-    (version "2.0.0")
+    (version "2.0.1")
     (source
       (origin
         (method url-fetch)
         (uri
-          (string-append "http://openjpeg.googlecode.com/files/" name "-"
-                         version ".tar.gz"))
+         (string-append "mirror://sourceforge/openjpeg.mirror/" name "-"
+                        version ".tar.gz"))
         (sha256
-          (base32 "1n05yrmscpgksrh2kfh12h18l0lw9j03mgmvwcg3hm8m0lwgak9k"))))
-
+         (base32 "1c2xc3nl2mg511b63rk7hrckmy14681p1m44mzw3n1fyqnjm0b0z"))))
     (build-system cmake-build-system)
     (arguments
       ;; Trying to run `$ make check' results in a no rule fault.
@@ -217,9 +217,22 @@ In addition to the basic codec, various other features are under
 development, among them the JP2 and MJ2 (Motion JPEG 2000) file formats,
 an indexing tool useful for the JPIP protocol, JPWL-tools for
 error-resilience, a Java-viewer for j2k-images, ...")
-    (home-page "http://jbig2dec.sourceforge.net/")
+    (home-page "https://code.google.com/p/openjpeg/")
     (license license:bsd-2)))
 
+(define-public openjpeg-1
+  (package (inherit openjpeg)
+    (name "openjpeg")
+    (version "1.5.2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://sourceforge/openjpeg.mirror/" name "-"
+                       version ".tar.gz"))
+       (sha256
+        (base32 "11waq9w215zvzxrpv40afyd18qf79mxc28fda80bm3ax98cpppqm"))))))
+
 (define-public giflib
   (package
     (name "giflib")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 00ac4d893a..727d14bbdf 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -192,7 +192,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
      #f)))
 
 (define-public linux-libre
-  (let* ((version "3.18.1")
+  (let* ((version "3.18.2")
          (build-phase
           '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
              ;; Apply the neat patch.
@@ -265,7 +265,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM."
              (uri (linux-libre-urls version))
              (sha256
               (base32
-               "0yj6sz9cvsbhrc9jksr4wgg63crzmqh65903l7bq9k0gz1f3x1s8"))))
+               "0wji58x0zci13a499v6kbz3pyhs2gk6wsbv3fia8valxgbcppyhp"))))
     (build-system gnu-build-system)
     (native-inputs `(("perl" ,perl)
                      ("bc" ,bc)
diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm
new file mode 100644
index 0000000000..fe3f955b5d
--- /dev/null
+++ b/gnu/packages/ninja.scm
@@ -0,0 +1,87 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages ninja)
+  #:use-module ((guix licenses) #:select (asl2.0))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages python))
+
+(define-public ninja
+  (package
+    (name "ninja")
+    (version "1.5.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/martine/ninja/"
+                                  "archive/v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (alist-replace
+        'configure
+        (lambda _
+          (substitute* "src/subprocess-posix.cc"
+            (("/bin/sh") (which "sh"))))
+        (alist-replace
+         'build
+         (lambda _
+           (zero? (system* "./configure.py" "--bootstrap")))
+         (alist-replace
+          'check
+          (lambda _
+            (and (zero? (system* "./configure.py"))
+                 (zero? (system* "./ninja" "ninja_test"))
+                 ;; SubprocessTest.SetWithLots fails with:
+                 ;;   Raise [ulimit -n] well above 1025 to make this test go.
+                 ;; Skip it.
+                 ;;
+                 ;; SubprocessTest.InterruptChild fails when using 'system*':
+                 ;;   *** Failure in src/subprocess_test.cc:83
+                 ;;   ExitInterrupted == subproc->Finish()
+                 ;; Pass it by using 'system' instead of 'system*'.
+                 (zero? (system (string-append
+                                 "./ninja_test "
+                                 "--gtest_filter="
+                                 "-SubprocessTest.SetWithLots")))))
+          (alist-replace
+           'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (doc (string-append out "/share/doc/ninja")))
+               (mkdir-p bin)
+               (copy-file "ninja" (string-append bin "/ninja"))
+               (mkdir-p doc)
+               (copy-file "doc/manual.asciidoc"
+                          (string-append doc "/manual.asciidoc"))))
+           %standard-phases))))))
+    (native-inputs `(("python" ,python-2)))
+    (home-page "http://martine.github.io/ninja/")
+    (synopsis "Small build system")
+    (description
+     "Ninja is a small build system with a focus on speed.  It differs from
+other build systems in two major respects: it is designed to have its input
+files generated by a higher-level build system, and it is designed to run
+builds as fast as possible.")
+    (license asl2.0)))
diff --git a/gnu/packages/patches/nss-pkgconfig.patch b/gnu/packages/patches/nss-pkgconfig.patch
new file mode 100644
index 0000000000..da5c48979e
--- /dev/null
+++ b/gnu/packages/patches/nss-pkgconfig.patch
@@ -0,0 +1,225 @@
+Description: Create nss.pc and nss-config
+Author: Lars Wendler <polynomial-c@gentoo.org>
+Source: http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/dev-libs/nss/files/nss-3.17.1-gentoo-fixups.patch
+
+Modifications:
+  Change libdir from ${prefix}/lib64 to ${prefix}/lib/nss.
+  Remove optional patching in nss/Makefile.
+
+--- nss-3.17.1/nss/config/Makefile
++++ nss-3.17.1/nss/config/Makefile
+@@ -0,0 +1,40 @@
++CORE_DEPTH = ..
++DEPTH      = ..
++
++include $(CORE_DEPTH)/coreconf/config.mk
++
++NSS_MAJOR_VERSION = `grep "NSS_VMAJOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_MINOR_VERSION = `grep "NSS_VMINOR" ../lib/nss/nss.h | awk '{print $$3}'`
++NSS_PATCH_VERSION = `grep "NSS_VPATCH" ../lib/nss/nss.h | awk '{print $$3}'`
++PREFIX = /usr
++
++all: export libs
++
++export:
++	# Create the nss.pc file
++	mkdir -p $(DIST)/lib/pkgconfig
++	sed -e "s,@prefix@,$(PREFIX)," \
++	    -e "s,@exec_prefix@,\$${prefix}," \
++	    -e "s,@libdir@,\$${prefix}/lib/nss," \
++	    -e "s,@includedir@,\$${prefix}/include/nss," \
++	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION),g" \
++	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++	    nss.pc.in > nss.pc
++	chmod 0644 nss.pc
++	cp nss.pc $(DIST)/lib/pkgconfig
++
++	# Create the nss-config script
++	mkdir -p $(DIST)/bin
++	sed -e "s,@prefix@,$(PREFIX)," \
++	    -e "s,@NSS_MAJOR_VERSION@,$(NSS_MAJOR_VERSION)," \
++	    -e "s,@NSS_MINOR_VERSION@,$(NSS_MINOR_VERSION)," \
++	    -e "s,@NSS_PATCH_VERSION@,$(NSS_PATCH_VERSION)," \
++	    nss-config.in > nss-config
++	chmod 0755 nss-config
++	cp nss-config $(DIST)/bin
++
++libs:
++
++dummy: all export libs
++
+--- nss-3.17.1/nss/config/nss-config.in
++++ nss-3.17.1/nss/config/nss-config.in
+@@ -0,0 +1,145 @@
++#!/bin/sh
++
++prefix=@prefix@
++
++major_version=@NSS_MAJOR_VERSION@
++minor_version=@NSS_MINOR_VERSION@
++patch_version=@NSS_PATCH_VERSION@
++
++usage()
++{
++	cat <<EOF
++Usage: nss-config [OPTIONS] [LIBRARIES]
++Options:
++	[--prefix[=DIR]]
++	[--exec-prefix[=DIR]]
++	[--includedir[=DIR]]
++	[--libdir[=DIR]]
++	[--version]
++	[--libs]
++	[--cflags]
++Dynamic Libraries:
++	nss
++	ssl
++	smime
++	nssutil
++EOF
++	exit $1
++}
++
++if test $# -eq 0; then
++	usage 1 1>&2
++fi
++
++lib_ssl=yes
++lib_smime=yes
++lib_nss=yes
++lib_nssutil=yes
++
++while test $# -gt 0; do
++  case "$1" in
++  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
++  *) optarg= ;;
++  esac
++
++  case $1 in
++    --prefix=*)
++      prefix=$optarg
++      ;;
++    --prefix)
++      echo_prefix=yes
++      ;;
++    --exec-prefix=*)
++      exec_prefix=$optarg
++      ;;
++    --exec-prefix)
++      echo_exec_prefix=yes
++      ;;
++    --includedir=*)
++      includedir=$optarg
++      ;;
++    --includedir)
++      echo_includedir=yes
++      ;;
++    --libdir=*)
++      libdir=$optarg
++      ;;
++    --libdir)
++      echo_libdir=yes
++      ;;
++    --version)
++      echo ${major_version}.${minor_version}.${patch_version}
++      ;;
++    --cflags)
++      echo_cflags=yes
++      ;;
++    --libs)
++      echo_libs=yes
++      ;;
++    ssl)
++      lib_ssl=yes
++      ;;
++    smime)
++      lib_smime=yes
++      ;;
++    nss)
++      lib_nss=yes
++      ;;
++    nssutil)
++      lib_nssutil=yes
++      ;;
++    *)
++      usage 1 1>&2
++      ;;
++  esac
++  shift
++done
++
++# Set variables that may be dependent upon other variables
++if test -z "$exec_prefix"; then
++    exec_prefix=`pkg-config --variable=exec_prefix nss`
++fi
++if test -z "$includedir"; then
++    includedir=`pkg-config --variable=includedir nss`
++fi
++if test -z "$libdir"; then
++    libdir=`pkg-config --variable=libdir nss`
++fi
++
++if test "$echo_prefix" = "yes"; then
++    echo $prefix
++fi
++
++if test "$echo_exec_prefix" = "yes"; then
++    echo $exec_prefix
++fi
++
++if test "$echo_includedir" = "yes"; then
++    echo $includedir
++fi
++
++if test "$echo_libdir" = "yes"; then
++    echo $libdir
++fi
++
++if test "$echo_cflags" = "yes"; then
++    echo -I$includedir
++fi
++
++if test "$echo_libs" = "yes"; then
++      libdirs=""
++      if test -n "$lib_ssl"; then
++	libdirs="$libdirs -lssl${major_version}"
++      fi
++      if test -n "$lib_smime"; then
++	libdirs="$libdirs -lsmime${major_version}"
++      fi
++      if test -n "$lib_nss"; then
++	libdirs="$libdirs -lnss${major_version}"
++      fi
++      if test -n "$lib_nssutil"; then
++       libdirs="$libdirs -lnssutil${major_version}"
++      fi
++      echo $libdirs
++fi
++
+--- nss-3.17.1/nss/config/nss.pc.in
++++ nss-3.17.1/nss/config/nss.pc.in
+@@ -0,0 +1,12 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: NSS
++Description: Network Security Services
++Version: @NSS_MAJOR_VERSION@.@NSS_MINOR_VERSION@.@NSS_PATCH_VERSION@
++Requires: nspr >= 4.8
++Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lnssutil3
++Cflags: -I${includedir}
++
+--- nss-3.17.1/nss/manifest.mn
++++ nss-3.17.1/nss/manifest.mn
+@@ -10,7 +10,7 @@
+ 
+ RELEASE = nss
+ 
+-DIRS = coreconf lib cmd
++DIRS = coreconf lib cmd config
+ 
+ ifdef NSS_BUILD_GTESTS
+ DIRS += external_tests
diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm
index 7d5100af24..0f9098d8cb 100644
--- a/gnu/packages/pdf.scm
+++ b/gnu/packages/pdf.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -55,12 +56,13 @@
    ;;    introspection:    no
    ;;  use gtk-doc:        no
    ;;  use libcurl:        no
-   ;;  use libopenjpeg:    no
    (inputs `(("fontconfig" ,fontconfig)
              ("freetype" ,freetype)
              ("libjpeg-8" ,libjpeg-8)
              ("libpng" ,libpng)
              ("libtiff" ,libtiff)
+             ("lcms" ,lcms)
+             ("openjpeg-1" ,openjpeg-1)
              ("zlib" ,zlib)
 
              ;; To build poppler-glib (as needed by Evince), we need Cairo and
@@ -75,8 +77,18 @@
    (arguments
     `(#:tests? #f ; no test data provided with the tarball
       #:configure-flags
-       '("--enable-xpdf-headers" ; to install header files
-         "--enable-zlib")))
+      '("--enable-libopenjpeg"
+        "--enable-xpdf-headers" ; to install header files
+        "--enable-zlib")
+      #:phases
+      (alist-cons-before
+       'configure 'setenv
+       (lambda _
+         (setenv "CPATH"
+                 (string-append (assoc-ref %build-inputs "openjpeg-1")
+                                "/include/openjpeg-1.5"
+                                ":" (or (getenv "CPATH") ""))))
+        %standard-phases)))
    (synopsis "PDF rendering library")
    (description
     "Poppler is a PDF rendering library based on the xpdf-3.0 code base.")
diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm
index 2be1d0b425..572d52404b 100644
--- a/gnu/packages/polkit.scm
+++ b/gnu/packages/polkit.scm
@@ -17,13 +17,14 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages polkit)
-  #:use-module ((guix licenses) #:select (lgpl2.0+ mpl2.0))
+  #:use-module ((guix licenses) #:select (lgpl2.0+))
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnuzilla)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -31,78 +32,6 @@
   #:use-module (gnu packages qt)
   #:use-module (gnu packages xml))
 
-(define-public mozjs
-  (package
-    (name "mozjs")
-    (version "17.0.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://ftp.mozilla.org/pub/mozilla.org/js/"
-                   name version ".tar.gz"))
-             (sha256
-              (base32
-               "1fig2wf4f10v43mqx67y68z6h77sy900d1w0pz9qarrqx57rc7ij"))))
-    (build-system gnu-build-system)
-    (native-inputs
-      `(("perl", perl)
-        ("python" ,python-2)))
-    (arguments
-      `(#:phases
-          (alist-cons-before
-           'configure 'chdir
-           (lambda _
-             (chdir "js/src"))
-           (alist-replace
-            'configure
-            ;; configure fails if it is followed by SHELL and CONFIG_SHELL
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let ((out (assoc-ref outputs "out")))
-                (setenv "SHELL" (which "sh"))
-                (setenv "CONFIG_SHELL" (which "sh"))
-                (zero? (system*
-                        "./configure" (string-append "--prefix=" out)))))
-            %standard-phases))))
-    (home-page
-     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey")
-    (synopsis "Mozilla javascript engine")
-    (description "SpiderMonkey is Mozilla's JavaScript engine written
-in C/C++.")
-    (license mpl2.0))) ; and others for some files
-
-(define-public nspr
-  (package
-    (name "nspr")
-    (version "4.10.7")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v"
-                   version "/src/nspr-" version ".tar.gz"))
-             (sha256
-              (base32
-               "0f1ri51yzjikigf6z31g03cdv6sgi9gw2c3vvv39psk3m37zb6iq"))))
-    (build-system gnu-build-system)
-    (native-inputs
-      `(("perl", perl)))
-    (arguments
-      `(#:tests? #f ; no check target
-        #:configure-flags
-        `("--enable-64bit")
-        #:phases
-          (alist-cons-before
-           'configure 'chdir
-           (lambda _
-             (chdir "nspr"))
-            %standard-phases)))
-    (home-page
-     "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR")
-    (synopsis "Netscape API for system level and libc-like functions")
-    (description "Netscape Portable Runtime (NSPR) provides a
-platform-neutral API for system level and libc-like functions.  It is used
-in the Mozilla clients.")
-    (license mpl2.0)))
-
 (define-public polkit
   (package
     (name "polkit")
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 30b772d4d9..0d6bbc8fc6 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -26,19 +27,27 @@
   #:use-module (gnu packages bison)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnuzilla)
+  #:use-module (gnu packages gperf)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages ninja)
   #:use-module (gnu packages openssl)
+  #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ruby)
-  #:use-module (gnu packages xorg))
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xml))
 
 (define-public libxkbcommon
   (package
@@ -81,7 +90,7 @@ X11 (yet).")
 (define-public qt
   (package
     (name "qt")
-    (version "5.3.2")
+    (version "5.4.0")
     (source (origin
              (method url-fetch)
              (uri (string-append "http://download.qt-project.org/official_releases/qt/"
@@ -91,28 +100,48 @@ X11 (yet).")
                                  version ".tar.xz"))
              (sha256
               (base32
-               "1w4v53889kqpwxw45wcqz5bi6zx8xp434jpafk1vlmyb8hrzjnvz"))))
+               "176351k8ngczb324i8bbkrsz9pby7cvy2qnixfjwybzxp53xzndj"))
+             (snippet
+              '(begin
+                 ;; Remove broken symlinks.
+                 (delete-file "qtwebengine/src/3rdparty/chromium/third_party/\
+mesa/src/src/gallium/state_trackers/d3d1x/w32api")
+                 (delete-file "qtwebengine/src/3rdparty/chromium/third_party/\
+webrtc/tools/e2e_quality/audio/perf")))))
     (build-system gnu-build-system)
     (propagated-inputs
      `(("mesa" ,mesa)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("dbus" ,dbus)
+       ("expat" ,expat)
        ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
        ("glib" ,glib)
        ("icu4c" ,icu4c)
        ("libjpeg" ,libjpeg)
+       ("libpci" ,pciutils)
        ("libpng" ,libpng)
        ("libx11" ,libx11)
+       ("libxcomposite" ,libxcomposite)
+       ("libxcursor" ,libxcursor)
+       ("libxfixes" ,libxfixes)
        ("libxi" ,libxi)
+       ("libxinerama" ,libxinerama)
        ("libxkbcommon" ,libxkbcommon)
+       ("libxml2" ,libxml2)
+       ("libxrandr" ,libxrandr)
        ("libxrender" ,libxrender)
+       ("libxslt" ,libxslt)
+       ("libxtst" ,libxtst)
+       ("mtdev" ,mtdev)
        ("mysql" ,mysql)
+       ("nss" ,nss)
        ("openssl" ,openssl)
        ("pulseaudio" ,pulseaudio)
-       ("python-wrapper" ,python-wrapper)
-       ("ruby" ,ruby)
+       ("pcre" ,pcre)
+       ("sqlite" ,sqlite)
+       ("udev" ,eudev)
        ("xcb-util" ,xcb-util)
        ("xcb-util-image" ,xcb-util-image)
        ("xcb-util-keysyms" ,xcb-util-keysyms)
@@ -120,8 +149,15 @@ X11 (yet).")
        ("xcb-util-wm" ,xcb-util-wm)
        ("zlib" ,zlib)))
     (native-inputs
-      `(("perl" ,perl)
-        ("pkg-config" ,pkg-config)))
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("gperf" ,gperf)
+       ("ninja" ,ninja)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-2)
+       ("ruby" ,ruby)
+       ("which" ,(@ (gnu packages which) which))))
     (arguments
      `(#:phases
          (alist-replace
@@ -129,7 +165,15 @@ X11 (yet).")
           (lambda* (#:key outputs #:allow-other-keys)
             (let ((out (assoc-ref outputs "out")))
               (substitute* '("configure" "qtbase/configure")
-                           (("/bin/pwd") (which "pwd")))
+                (("/bin/pwd") (which "pwd")))
+              (substitute* "qtbase/src/corelib/global/global.pri"
+                (("/bin/ls") (which "ls")))
+              (substitute* "qtwebengine/src/3rdparty/chromium/build/common.gypi"
+                (("/bin/echo") (which "echo")))
+              (substitute* "qtwebengine/src/3rdparty/chromium/third_party/\
+WebKit/Source/build/scripts/scripts.gypi"
+                (("/usr/bin/gcc") (which "gcc")))
+              (setenv "NINJA_PATH" (which "ninja"))
               ;; do not pass "--enable-fast-install", which makes the
               ;; configure process fail
               (zero? (system*
@@ -138,6 +182,9 @@ X11 (yet).")
                       "-prefix" out
                       "-opensource"
                       "-confirm-license"
+                      "-system-sqlite"
+                      ;; explicitly link with openssl instead of dlopening it
+                      "-openssl-linked"
                       ;; explicitly link with dbus instead of dlopening it
                       "-dbus-linked"
                       ;; drop special machine instructions not supported