diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 3b44650cb27..1a2aeb46ec1 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -7655,7 +7655,7 @@ name = "Thane Gill"; }; TheBrainScrambler = { - email = "the.pumpkin.man@disroot.org"; # This could change soon + email = "esthromeris@riseup.net"; github = "TheBrainScrambler"; githubId = 34945377; name = "John Smith"; diff --git a/pkgs/applications/networking/browsers/webbrowser/default.nix b/pkgs/applications/networking/browsers/webbrowser/default.nix new file mode 100644 index 00000000000..d1075817078 --- /dev/null +++ b/pkgs/applications/networking/browsers/webbrowser/default.nix @@ -0,0 +1,108 @@ +{ stdenv, lib, fetchgit, makeDesktopItem, pkgconfig, makeWrapper +# Build +, python2, autoconf213, yasm, perl, ccache +, unzip, gnome2, gnum4 + +# Runtime +, xorg, zip, freetype, fontconfig, glibc, libffi +, dbus, dbus-glib, gtk2, alsaLib, jack2, ffmpeg +}: + +let + + libPath = lib.makeLibraryPath [ ffmpeg ]; + +in stdenv.mkDerivation rec { + pname = "webbrowser"; + version = "29.0.0rc1"; + + src = fetchgit { + url = "https://git.nuegia.net/webbrowser.git"; + rev = version; + sha256 = "1d82943mla6q3257081d946kgms91dg0n93va3zlzm9hbbqilzm6"; + fetchSubmodules = true; + }; + + desktopItem = makeDesktopItem { + name = "webbrowser"; + exec = "webbrowser %U"; + icon = "webbrowser"; + desktopName = "Web Browser"; + genericName = "Web Browser"; + categories = "Network;WebBrowser;"; + mimeType = lib.concatStringsSep ";" [ + "text/html" + "text/xml" + "application/xhtml+xml" + "application/vnd.mozilla.xul+xml" + "x-scheme-handler/http" + "x-scheme-handler/https" + ]; + }; + + nativeBuildInputs = [ + gnum4 makeWrapper perl pkgconfig python2 ccache + ]; + + buildInputs = [ + alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2 + unzip gnome2.GConf xorg.libXt + ]; + + enableParallelBuilding = true; + + configurePhase = '' + export MOZCONFIG=$PWD/.mozconfig + export MOZ_NOSPAM=1 + export HOME=$PWD # Needed by ccache + + cp $src/doc/mozconfig.example $MOZCONFIG + # Need to modify it + chmod 644 $MOZCONFIG + + substituteInPlace $MOZCONFIG \ + --replace "mk_add_options PYTHON=/usr/bin/python2" "mk_add_options PYTHON=${python2}/bin/python2" \ + --replace "mk_add_options AUTOCONF=/usr/bin/autoconf-2.13" "mk_add_options AUTOCONF=${autoconf213}/bin/autoconf" \ + --replace 'mk_add_options MOZ_OBJDIR=$HOME/build/wbobjects/' "" \ + --replace "ac_add_options --x-libraries=/usr/lib64" "ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}" \ + --replace "_BUILD_64=1" "_BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}" + + echo >> $MOZCONFIG ' + # + # NixOS-specific adjustments + # + + ac_add_options --prefix=$out + + mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES" + ' + ''; + + buildPhase = "$src/mach build"; + + installPhase = '' + $src/mach install + + mkdir -p $out/share/applications + cp ${desktopItem}/share/applications/* $out/share/applications + + for n in 16 32 48; do + size=$n"x"$n + mkdir -p $out/share/icons/hicolor/$size/apps + cp $src/webbrowser/branding/unofficial/default$n.png \ + $out/share/icons/hicolor/$size/apps/webbrowser.png + done + + # Needed to make videos work + wrapProgram $out/lib/webbrowser-${version}/webbrowser \ + --prefix LD_LIBRARY_PATH : "${libPath}" + ''; + + meta = with lib; { + description = "Generic web browser without trackers compatible with XUL plugins using UXP rendering engine"; + homepage = "https://git.nuegia.net/webbrowser.git/"; + license = [ licenses.mpl20 licenses.gpl3 ]; + maintainers = with maintainers; [ TheBrainScrambler ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f38c94f1bcf..2a75b8fe2ca 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21250,6 +21250,8 @@ in stdenv = gcc7Stdenv; }; + webbrowser = callPackage ../applications/networking/browsers/webbrowser {}; + pamix = callPackage ../applications/audio/pamix { }; pamixer = callPackage ../applications/audio/pamixer { };