about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/networking/browsers/palemoon
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/palemoon')
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix122
1 files changed, 122 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
new file mode 100644
index 000000000000..0d863ae91314
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -0,0 +1,122 @@
+{ stdenv, fetchFromGitHub, makeDesktopItem
+, pkgconfig, autoconf213, alsaLib, bzip2, cairo
+, dbus, dbus-glib, file, fontconfig, freetype
+, gstreamer, gst-plugins-base, gst_all_1
+, gtk2, hunspell, icu, libevent, libjpeg, libnotify
+, libstartup_notification, libvpx, makeWrapper, libGLU_combined
+, nspr, nss, pango, perl, python, libpulseaudio, sqlite
+, unzip, xorg, which, yasm, zip, zlib
+}:
+
+stdenv.mkDerivation rec {
+  name = "palemoon-${version}";
+  version = "27.9.4";
+
+  src = fetchFromGitHub {
+    name   = "palemoon-src";
+    owner  = "MoonchildProductions";
+    repo   = "Pale-Moon";
+    rev    = version + "_Release";
+    sha256 = "0ir5gzhw98gfn15x58g1fwi11jd7gysvacqxg1v0jdjhgdl4m5sx";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "palemoon";
+    exec = "palemoon %U";
+    icon = "palemoon";
+    desktopName = "Pale Moon";
+    genericName = "Web Browser";
+    categories = "Application;Network;WebBrowser;";
+    mimeType = stdenv.lib.concatStringsSep ";" [
+      "text/html"
+      "text/xml"
+      "application/xhtml+xml"
+      "application/vnd.mozilla.xul+xml"
+      "x-scheme-handler/http"
+      "x-scheme-handler/https"
+      "x-scheme-handler/ftp"
+    ];
+  };
+
+  buildInputs = [
+    alsaLib bzip2 cairo dbus dbus-glib file fontconfig freetype
+    gst-plugins-base gstreamer gst_all_1.gst-plugins-base gtk2
+    hunspell icu libevent libjpeg libnotify libstartup_notification
+    libvpx makeWrapper libGLU_combined nspr nss pango perl pkgconfig python
+    libpulseaudio sqlite unzip which yasm zip zlib
+  ] ++ (with xorg; [
+    libX11 libXext libXft libXi libXrender libXScrnSaver
+    libXt pixman xorgproto
+  ]);
+
+  enableParallelBuilding = true;
+
+  configurePhase = ''
+    export AUTOCONF=${autoconf213}/bin/autoconf
+    export MOZBUILD_STATE_PATH=$(pwd)/.mozbuild
+    export MOZ_CONFIG=$(pwd)/.mozconfig
+    export builddir=$(pwd)/build
+    mkdir -p $MOZBUILD_STATE_PATH $builddir
+    echo > $MOZ_CONFIG "
+    . $src/build/mozconfig.common
+    ac_add_options --prefix=$out
+    ac_add_options --with-pthreads
+    ac_add_options --enable-application=browser
+    ac_add_options --enable-official-branding
+    ac_add_options --enable-optimize="-O2"
+    ac_add_options --enable-release
+    ac_add_options --enable-devtools
+    ac_add_options --enable-jemalloc
+    ac_add_options --enable-shared-js
+    ac_add_options --enable-strip
+    ac_add_options --disable-tests
+    ac_add_options --disable-installer
+    ac_add_options --disable-updaters
+    "
+  '';
+
+  patchPhase = ''
+    chmod u+w .
+  '';
+
+  hardeningDisable = [ "format" ];
+  
+  buildPhase = ''
+    cd $builddir
+    $src/mach build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    for n in 16 22 24 32 48 256; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/browser/branding/official/default$n.png \
+         $out/share/icons/hicolor/$size/apps/palemoon.png
+    done
+
+    cd $builddir
+    $src/mach install
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A web browser";
+    longDescription = ''
+      Pale Moon is an Open Source, Goanna-based web browser focusing on
+      efficiency and customization.
+
+      Pale Moon offers you a browsing experience in a browser completely built
+      from its own, independently developed source that has been forked off from
+      Firefox/Mozilla code a number of years ago, with carefully selected
+      features and optimizations to improve the browser's stability and user
+      experience, while offering full customization and a growing collection of
+      extensions and themes to make the browser truly your own.
+    '';
+    homepage    = https://www.palemoon.org/;
+    license     = licenses.mpl20;
+    maintainers = with maintainers; [ rnhmjoj AndersonTorres ];
+    platforms   = platforms.linux;
+  };
+}