diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-23 15:31:49 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-07-23 17:28:36 +0200 |
commit | 5c5f11560329f41573c862b2146f6f7bc5e19d1b (patch) | |
tree | 6e8fbe0668ea5d704256b9ded2b57da809a17f4d /pkgs/applications | |
parent | 21c7ed54e3617d5561d5ff4c72a8c7505fdce060 (diff) |
firefox: Build without xulrunner
Fixes #2950.
Diffstat (limited to 'pkgs/applications')
4 files changed, 56 insertions, 190 deletions
diff --git a/pkgs/applications/networking/browsers/firefox/default.nix b/pkgs/applications/networking/browsers/firefox/default.nix index 00921220fb07c..ad2ea75bd704f 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 = "31.0"; - - xulVersion = "31.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"; + 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; - - 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; }; } diff --git a/pkgs/applications/networking/browsers/firefox/disable-reporter.patch b/pkgs/applications/networking/browsers/firefox/disable-reporter.patch deleted file mode 100644 index 0a71a7210f2a7..0000000000000 --- a/pkgs/applications/networking/browsers/firefox/disable-reporter.patch +++ /dev/null @@ -1,20 +0,0 @@ -# from: -# - https://www.linuxquestions.org/questions/linux-from-scratch-13/blfs-xulrunner-firefox-21-0-and-search-4175462532/ -# - http://www.mail-archive.com/blfs-support@linuxfromscratch.org/msg17359.html - ---- mozilla-release/browser/base/content/browser.js.orig 2013-05-11 16:19:21.000000000 -0300 -+++ mozilla-release/browser/base/content/browser.js 2013-06-07 00:39:16.114862388 -0300 -@@ -3559,10 +3559,12 @@ - */ - recordSearchInHealthReport: function (engine, source) { - #ifdef MOZ_SERVICES_HEALTHREPORT -- let reporter = Cc["@mozilla.org/datareporting/service;1"] -+ /*let reporter = Cc["@mozilla.org/datareporting/service;1"] - .getService() - .wrappedJSObject - .healthReporter; -+ */ -+ return; - - // This can happen if the FHR component of the data reporting service is - // disabled. This is controlled by a pref that most will never use. diff --git a/pkgs/applications/networking/browsers/firefox/xpidl.patch b/pkgs/applications/networking/browsers/firefox/xpidl.patch deleted file mode 100644 index e6a6b4d826466..0000000000000 --- a/pkgs/applications/networking/browsers/firefox/xpidl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- mozilla-release/python/mozbuild/mozbuild/backend/recursivemake.py 2013-12-05 08:07:53.000000000 -0800 -+++ mozilla-release_1/python/mozbuild/mozbuild/backend/recursivemake.py 2013-12-12 23:38:39.697318563 -0800 -@@ -421,7 +421,7 @@ - def _handle_idl_manager(self, manager): - build_files = self._purge_manifests['xpidl'] - -- for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done', -+ for p in ('Makefile.in', 'Makefile', 'backend.mk', '.deps/.mkdir.done', - 'xpt/.mkdir.done'): - build_files.add(p) - diff --git a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix index 44f191e54f1d1..05e3a8bf613a6 100644 --- a/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix +++ b/pkgs/applications/networking/browsers/mozilla-plugins/gecko-mediaplayer/default.nix @@ -10,12 +10,12 @@ stdenv.mkDerivation rec { sha256 = "913fd39e70c564cb210c2544a88869f9d1a448184421f000b14b2bc5ba718b49"; }; - buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser.xulrunner gmtk ]; + buildInputs = [ pkgconfig glib dbus dbus_glib browser x11 GConf browser gmtk ]; # !!! fix this preBuild = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser.xulrunner}/include/xulrunner-*) -I${browser.nspr}/include/nspr" + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$(echo ${browser}/include/xulrunner-*) -I${browser.nspr}/include/nspr" echo $NIX_CFLAGS_COMPILE ''; @@ -31,6 +31,7 @@ stdenv.mkDerivation rec { meta = { description = "A browser plugin that uses GNOME MPlayer to play media in a browser"; homepage = http://kdekorte.googlepages.com/gecko-mediaplayer; + broken = true; }; } |