diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-28 11:30:31 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-28 11:30:49 +0200 |
commit | f64d84698eb3f4d833e846336ff99a73331c31f7 (patch) | |
tree | 1120886b680851bc8b8f8d337af3503ecd4a3d71 /pkgs/applications/networking/browsers/firefox/default.nix | |
parent | 3e4a382d6753a057256c7ef1e9f52ae9e07bd677 (diff) | |
parent | 30431e71608576baf880567b2894ad2a542f8d5e (diff) | |
download | nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.gz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.bz2 nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.lz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.xz nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.tar.zst nixlib-f64d84698eb3f4d833e846336ff99a73331c31f7.zip |
Merge remote-tracking branch 'origin/master' into staging
Conflicts: pkgs/applications/audio/espeak/edit.nix pkgs/applications/audio/lmms/default.nix pkgs/desktops/e18/enlightenment.nix pkgs/games/exult/default.nix pkgs/os-specific/linux/alsa-plugins/default.nix
Diffstat (limited to 'pkgs/applications/networking/browsers/firefox/default.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/firefox/default.nix | 212 |
1 files changed, 54 insertions, 158 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix index 1e2c3e2cfb19..ad2ea75bd704 100644 --- a/pkgs/applications/networking/browsers/firefox/default.nix +++ b/pkgs/applications/networking/browsers/firefox/default.nix @@ -1,5 +1,5 @@ -{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL -, libjpeg, libpng, zlib, dbus, dbus_glib, bzip2, xlibs +{ lib, stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, zlib, dbus, dbus_glib, bzip2, xlibs , freetype, fontconfig, file, alsaLib, nspr, nss, libnotify , yasm, mesa, sqlite, unzip, makeWrapper, pysqlite , hunspell, libevent, libstartup_notification, libvpx @@ -15,27 +15,38 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null; -rec { - - firefoxVersion = "30.0"; - - xulVersion = "30.0"; # this attribute is used by other packages +let version = "31.0"; in +stdenv.mkDerivation rec { + name = "firefox-${version}"; src = fetchurl { - url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"; - sha1 = "bll9hxf31gvg9db6gxgmq25qsjif3p11"; + url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source/firefox-${version}.source.tar.bz2"; + sha1 = "a6c3e25ee3aeb7da42db2aaeb50a385d63532beb"; }; - commonConfigureFlags = - [ "--with-system-jpeg" + buildInputs = + [ pkgconfig gtk perl zip libIDL libjpeg zlib bzip2 + python dbus dbus_glib pango freetype fontconfig xlibs.libXi + xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file + alsaLib nspr nss libnotify xlibs.pixman yasm mesa + xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite + xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper + hunspell libevent libstartup_notification libvpx cairo + gstreamer gst_plugins_base icu + ]; + + configureFlags = + [ "--enable-application=browser" + "--disable-javaxpcom" + "--with-system-jpeg" "--with-system-zlib" "--with-system-bz2" "--with-system-nspr" "--with-system-nss" "--with-system-libevent" "--with-system-libvpx" - "--with-system-png" + # "--with-system-png" # needs APNG support # "--with-system-icu" # causes ‘ar: invalid option -- 'L'’ in Firefox 28.0 "--enable-system-ffi" "--enable-system-hunspell" @@ -52,160 +63,45 @@ rec { "--disable-installer" "--disable-updater" "--disable-pulseaudio" - ] ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] - else [ "--disable-debug" "--enable-release" - "--enable-optimize" "--enable-strip" ]); - - - xulrunner = stdenv.mkDerivation rec { - name = "xulrunner-${xulVersion}"; - - inherit src; - - buildInputs = - [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 - python dbus dbus_glib pango freetype fontconfig xlibs.libXi - xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file - alsaLib nspr nss libnotify xlibs.pixman yasm mesa - xlibs.libXScrnSaver xlibs.scrnsaverproto pysqlite - xlibs.libXext xlibs.xextproto sqlite unzip makeWrapper - hunspell libevent libstartup_notification libvpx cairo - gstreamer gst_plugins_base icu - ]; - - configureFlags = - [ "--enable-application=xulrunner" - "--disable-javaxpcom" - ] ++ commonConfigureFlags; - - #enableParallelBuilding = true; # cf. https://github.com/NixOS/nixpkgs/pull/1699#issuecomment-35196282 - - preConfigure = - '' - export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}" - - mkdir ../objdir - cd ../objdir - configureScript=../mozilla-release/configure - ''; # */ - - #installFlags = "SKIP_GRE_REGISTRATION=1"; + ] + ++ (if debugBuild then [ "--enable-debug" "--enable-profiling"] + else [ "--disable-debug" "--enable-release" + "--enable-optimize" "--enable-strip" ]) + ++ lib.optional enableOfficialBranding "--enable-official-branding"; + + enableParallelBuilding = true; + + preConfigure = + '' + mkdir ../objdir + cd ../objdir + configureScript=../mozilla-release/configure + ''; - preInstall = '' - # The following is needed for startup cache creation on grsecurity kernels + preInstall = + '' + # The following is needed for startup cache creation on grsecurity kernels. paxmark m ../objdir/dist/bin/xpcshell ''; - postInstall = '' - # Fix run-mozilla.sh search - libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) - echo libDir: $libDir - test -n "$libDir" - cd $out/bin - rm xulrunner - - for i in $out/lib/$libDir/*; do - file $i; - if file $i | grep executable &>/dev/null; then - echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")"; - chmod a+x "$out/bin/$(basename "$i")"; - fi; - done - for i in $out/lib/$libDir/*.so; do - patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true - done - + postInstall = + '' # For grsecurity kernels - paxmark m $out/lib/$libDir/{plugin-container,xulrunner} - - for i in $out/lib/$libDir/{plugin-container,xulrunner,xulrunner-stub}; do - wrapProgram $i --prefix LD_LIBRARY_PATH ':' "$out/lib/$libDir" - done - - rm -f $out/bin/run-mozilla.sh - ''; # */ + paxmark m $out/lib/*/{plugin-container,xulrunner} - meta = { - description = "Mozilla Firefox XUL runner"; - homepage = http://www.mozilla.com/en-US/firefox/; - }; + # Remove SDK cruft. FIXME: move to a separate output? + rm -rf $out/share/idl $out/include $out/lib/firefox-devel-* + ''; - passthru = { inherit gtk; version = xulVersion; }; + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + maintainers = with lib.maintainers; [ eelco wizeman ]; + platforms = lib.platforms.linux; }; - - firefox = stdenv.mkDerivation rec { - name = "firefox-${firefoxVersion}"; - - inherit src; - - enableParallelBuilding = true; - - buildInputs = - [ pkgconfig libpng gtk perl zip libIDL libjpeg zlib bzip2 python - dbus dbus_glib pango freetype fontconfig alsaLib nspr nss libnotify - xlibs.pixman yasm mesa sqlite file unzip pysqlite - hunspell libevent libstartup_notification libvpx cairo - gstreamer gst_plugins_base icu - ]; - - patches = [ - ./disable-reporter.patch # fixes "search box not working when built on xulrunner" - ./xpidl.patch - ]; - - propagatedBuildInputs = [xulrunner]; - - configureFlags = - [ "--enable-application=browser" - "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" - "--enable-chrome-format=jar" - ] - ++ commonConfigureFlags - ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding"; - - makeFlags = [ - "SYSTEM_LIBXUL=1" - ]; - - # Because preConfigure runs configure from a subdirectory. - configureScript = "../configure"; - - preConfigure = - '' - # Hack to work around make's idea of -lbz2 dependency - find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ - stdenv.lib.concatStringsSep ":" - (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) - }' ';' - - # Building directly in the main source directory is not allowed. - mkdir obj_dir - cd obj_dir - ''; - - postInstall = - '' - ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner - cd "$out/lib/"firefox-* - rm firefox - echo -e '#!${stdenv.shell}\nexec ${xulrunner}/bin/xulrunner "'"$PWD"'/application.ini" "$@"' > firefox - chmod a+x firefox - - # Put chrome.manifest etc. in the right place. - mv browser/* . - rmdir browser - ''; # */ - - meta = { - description = "Mozilla Firefox - the browser, reloaded"; - homepage = http://www.mozilla.com/en-US/firefox/; - maintainers = with stdenv.lib.maintainers; [ eelco wizeman ]; - }; - - passthru = { - inherit gtk xulrunner nspr; - isFirefox3Like = true; - }; + passthru = { + inherit gtk nspr version; + isFirefox3Like = true; }; } |