aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix')
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix31
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