diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix index 52773bf291a..424c45d305e 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -2,7 +2,7 @@ ## various stuff that can be plugged in , flashplayer, hal-flash -, ffmpeg_4, xorg, libpulseaudio, libcanberra-gtk2, libglvnd +, ffmpeg, xorg, libpulseaudio, libcanberra-gtk2, libglvnd , gnome3/*.gnome-shell*/ , browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow , tridactyl-native @@ -10,6 +10,7 @@ , udev , kerberos , libva +, mesa # firefox wants gbm for drm+dmabuf }: ## configurability of the wrapper itself @@ -26,11 +27,13 @@ let , nameSuffix ? "" , icon ? browserName , extraNativeMessagingHosts ? [] - , gdkWayland ? false + , pkcs11Modules ? [] + , forceWayland ? false + , useGlvnd ? true , cfg ? config.${browserName} or {} }: - assert gdkWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used + assert forceWayland -> (browser ? gtk3); # Can only use the wayland backend if gtk3 is being used let enableAdobeFlash = cfg.enableAdobeFlash or false; @@ -65,14 +68,15 @@ let ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge ++ extraNativeMessagingHosts ); - libs = lib.optionals stdenv.isLinux [ udev libva ] - ++ lib.optional ffmpegSupport ffmpeg_4 + libs = lib.optionals stdenv.isLinux [ udev libva mesa ] + ++ lib.optional ffmpegSupport ffmpeg ++ lib.optional gssSupport kerberos - ++ lib.optional gdkWayland libglvnd + ++ lib.optional useGlvnd libglvnd ++ lib.optionals (cfg.enableQuakeLive or false) (with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ]) ++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash - ++ lib.optional (config.pulseaudio or true) libpulseaudio; + ++ lib.optional (config.pulseaudio or true) libpulseaudio + ++ pkcs11Modules; gtk_modules = [ libcanberra-gtk2 ]; in stdenv.mkDerivation { @@ -83,9 +87,9 @@ let exec = "${browserName}${nameSuffix} %U"; inherit icon; comment = ""; - desktopName = "${desktopName}${nameSuffix}${lib.optionalString gdkWayland " (Wayland)"}"; + desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}"; genericName = "Web Browser"; - categories = "Application;Network;WebBrowser;"; + categories = "Network;WebBrowser;"; mimeType = stdenv.lib.concatStringsSep ";" [ "text/html" "text/xml" @@ -124,8 +128,8 @@ let --set SNAP_NAME "firefox" \ --set MOZ_LEGACY_PROFILES 1 \ --set MOZ_ALLOW_DOWNGRADE 1 \ - ${lib.optionalString gdkWayland '' - --set GDK_BACKEND "wayland" \ + ${lib.optionalString forceWayland '' + --set MOZ_ENABLE_WAYLAND "1" \ ''}${lib.optionalString (browser ? gtk3) ''--prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \ --suffix XDG_DATA_DIRS : '${gnome3.adwaita-icon-theme}/share' @@ -152,6 +156,11 @@ let ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/* done + mkdir -p $out/lib/mozilla/pkcs11-modules + for ext in ${toString pkcs11Modules}; do + ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/* + done + # For manpages, in case the program supplies them mkdir -p $out/nix-support echo ${browser} > $out/nix-support/propagated-user-env-packages |