Loading pkgs/applications/networking/browsers/firefox-bin/default.nix +41 −134 Original line number Diff line number Diff line { lib, stdenv, fetchurl, config, wrapGAppsHook { lib, stdenv, fetchurl, config, wrapGAppsHook, autoPatchelfHook , alsa-lib , atk , cairo , curl , cups , dbus-glib , dbus , fontconfig , freetype , gdk-pixbuf , glib , glibc , gtk3 , libkrb5 , libX11 , libXScrnSaver , libxcb , libXcomposite , libXcursor , libXdamage , libXext , libXfixes , libXi , libXinerama , libXrender , libXrandr , libXt , libXtst , libcanberra , libnotify , adwaita-icon-theme , libGLU, libGL , nspr , nss , pango , pipewire , libva , pciutils , heimdal , libpulseaudio , systemd , pipewire , adwaita-icon-theme , channel , generated , writeScript Loading @@ -48,9 +17,7 @@ , gnused , gnugrep , gnupg , ffmpeg , runtimeShell , mesa # firefox wants gbm for drm+dmabuf , systemLocale ? config.i18n.defaultLocale or "en_US" }: Loading Loading @@ -95,115 +62,54 @@ stdenv.mkDerivation { src = fetchurl { inherit (source) url sha256; }; libPath = lib.makeLibraryPath [ stdenv.cc.cc nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook ]; buildInputs = [ gtk3 adwaita-icon-theme alsa-lib atk cairo curl cups dbus-glib dbus fontconfig freetype gdk-pixbuf glib glibc gtk3 libkrb5 mesa libX11 libXScrnSaver libXcomposite libXcursor libxcb libXdamage libXext libXfixes libXi libXinerama libXrender libXrandr libXt libXtst libcanberra libnotify libGLU libGL nspr nss pango pipewire ]; runtimeDependencies = [ curl libva.out pciutils heimdal libpulseaudio systemd ffmpeg ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; inherit gtk3; nativeBuildInputs = [ wrapGAppsHook ]; buildInputs = [ gtk3 adwaita-icon-theme ]; # "strip" after "patchelf" may break binaries. # See: https://github.com/NixOS/patchelf/issues/10 dontStrip = true; dontPatchELF = true; postPatch = '' # Don't download updates from Mozilla directly echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js ''; appendRunpaths = [ "${pipewire.lib}/lib" ]; installPhase = '' mkdir -p "$prefix/usr/lib/firefox-bin-${version}" cp -r * "$prefix/usr/lib/firefox-bin-${version}" mkdir -p "$prefix/lib/firefox-bin-${version}" cp -r * "$prefix/lib/firefox-bin-${version}" mkdir -p "$out/bin" ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/" for executable in \ firefox firefox-bin plugin-container \ updater crashreporter webapprt-stub \ glxtest vaapitest do if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ "$out/usr/lib/firefox-bin-${version}/$executable" fi done find . -executable -type f -exec \ patchelf --set-rpath "$libPath" \ "$out/usr/lib/firefox-bin-${version}/{}" \; # wrapFirefox expects "$out/lib" instead of "$out/usr/lib" ln -s "$out/usr/lib" "$out/lib" gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") ln -s "$prefix/lib/firefox-bin-${version}/firefox" "$out/bin/" # See: https://github.com/mozilla/policy-templates/blob/master/README.md mkdir -p "$out/lib/firefox-bin-${version}/distribution"; ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json"; ''; passthru.binaryName = "firefox"; passthru.libName = "firefox-bin-${version}"; passthru.execdir = "/bin"; passthru.ffmpegSupport = true; passthru.gssSupport = true; passthru = { binaryName = "firefox"; libName = "firefox-bin-${version}"; ffmpegSupport = true; gssSupport = true; gtk3 = gtk3; # update with: # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped passthru.updateScript = import ./update.nix { updateScript = import ./update.nix { inherit pname channel lib writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell; baseUrl = if channel == "devedition" then "https://archive.mozilla.org/pub/devedition/releases/" else "https://archive.mozilla.org/pub/firefox/releases/"; }; }; meta = with lib; { changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/"; description = "Mozilla Firefox, free web browser (binary package)"; Loading @@ -213,5 +119,6 @@ stdenv.mkDerivation { platforms = builtins.attrNames mozillaPlatforms; hydraPlatforms = []; maintainers = with maintainers; [ taku0 lovesegfault ]; mainProgram = "firefox"; }; } Loading
pkgs/applications/networking/browsers/firefox-bin/default.nix +41 −134 Original line number Diff line number Diff line { lib, stdenv, fetchurl, config, wrapGAppsHook { lib, stdenv, fetchurl, config, wrapGAppsHook, autoPatchelfHook , alsa-lib , atk , cairo , curl , cups , dbus-glib , dbus , fontconfig , freetype , gdk-pixbuf , glib , glibc , gtk3 , libkrb5 , libX11 , libXScrnSaver , libxcb , libXcomposite , libXcursor , libXdamage , libXext , libXfixes , libXi , libXinerama , libXrender , libXrandr , libXt , libXtst , libcanberra , libnotify , adwaita-icon-theme , libGLU, libGL , nspr , nss , pango , pipewire , libva , pciutils , heimdal , libpulseaudio , systemd , pipewire , adwaita-icon-theme , channel , generated , writeScript Loading @@ -48,9 +17,7 @@ , gnused , gnugrep , gnupg , ffmpeg , runtimeShell , mesa # firefox wants gbm for drm+dmabuf , systemLocale ? config.i18n.defaultLocale or "en_US" }: Loading Loading @@ -95,115 +62,54 @@ stdenv.mkDerivation { src = fetchurl { inherit (source) url sha256; }; libPath = lib.makeLibraryPath [ stdenv.cc.cc nativeBuildInputs = [ wrapGAppsHook autoPatchelfHook ]; buildInputs = [ gtk3 adwaita-icon-theme alsa-lib atk cairo curl cups dbus-glib dbus fontconfig freetype gdk-pixbuf glib glibc gtk3 libkrb5 mesa libX11 libXScrnSaver libXcomposite libXcursor libxcb libXdamage libXext libXfixes libXi libXinerama libXrender libXrandr libXt libXtst libcanberra libnotify libGLU libGL nspr nss pango pipewire ]; runtimeDependencies = [ curl libva.out pciutils heimdal libpulseaudio systemd ffmpeg ] + ":" + lib.makeSearchPathOutput "lib" "lib64" [ stdenv.cc.cc ]; inherit gtk3; nativeBuildInputs = [ wrapGAppsHook ]; buildInputs = [ gtk3 adwaita-icon-theme ]; # "strip" after "patchelf" may break binaries. # See: https://github.com/NixOS/patchelf/issues/10 dontStrip = true; dontPatchELF = true; postPatch = '' # Don't download updates from Mozilla directly echo 'pref("app.update.auto", "false");' >> defaults/pref/channel-prefs.js ''; appendRunpaths = [ "${pipewire.lib}/lib" ]; installPhase = '' mkdir -p "$prefix/usr/lib/firefox-bin-${version}" cp -r * "$prefix/usr/lib/firefox-bin-${version}" mkdir -p "$prefix/lib/firefox-bin-${version}" cp -r * "$prefix/lib/firefox-bin-${version}" mkdir -p "$out/bin" ln -s "$prefix/usr/lib/firefox-bin-${version}/firefox" "$out/bin/" for executable in \ firefox firefox-bin plugin-container \ updater crashreporter webapprt-stub \ glxtest vaapitest do if [ -e "$out/usr/lib/firefox-bin-${version}/$executable" ]; then patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ "$out/usr/lib/firefox-bin-${version}/$executable" fi done find . -executable -type f -exec \ patchelf --set-rpath "$libPath" \ "$out/usr/lib/firefox-bin-${version}/{}" \; # wrapFirefox expects "$out/lib" instead of "$out/usr/lib" ln -s "$out/usr/lib" "$out/lib" gappsWrapperArgs+=(--argv0 "$out/bin/.firefox-wrapped") ln -s "$prefix/lib/firefox-bin-${version}/firefox" "$out/bin/" # See: https://github.com/mozilla/policy-templates/blob/master/README.md mkdir -p "$out/lib/firefox-bin-${version}/distribution"; ln -s ${policiesJson} "$out/lib/firefox-bin-${version}/distribution/policies.json"; ''; passthru.binaryName = "firefox"; passthru.libName = "firefox-bin-${version}"; passthru.execdir = "/bin"; passthru.ffmpegSupport = true; passthru.gssSupport = true; passthru = { binaryName = "firefox"; libName = "firefox-bin-${version}"; ffmpegSupport = true; gssSupport = true; gtk3 = gtk3; # update with: # $ nix-shell maintainers/scripts/update.nix --argstr package firefox-bin-unwrapped passthru.updateScript = import ./update.nix { updateScript = import ./update.nix { inherit pname channel lib writeScript xidel coreutils gnused gnugrep gnupg curl runtimeShell; baseUrl = if channel == "devedition" then "https://archive.mozilla.org/pub/devedition/releases/" else "https://archive.mozilla.org/pub/firefox/releases/"; }; }; meta = with lib; { changelog = "https://www.mozilla.org/en-US/firefox/${version}/releasenotes/"; description = "Mozilla Firefox, free web browser (binary package)"; Loading @@ -213,5 +119,6 @@ stdenv.mkDerivation { platforms = builtins.attrNames mozillaPlatforms; hydraPlatforms = []; maintainers = with maintainers; [ taku0 lovesegfault ]; mainProgram = "firefox"; }; }