fix firefox widevine

This commit is contained in:
Sean Kovacs 2025-12-14 15:23:45 -05:00
commit 498ffad0c4
Signed by: sckova
GPG key ID: 00F325187C68651A
5 changed files with 36 additions and 27 deletions

View file

@ -87,6 +87,7 @@
]; ];
} }
./system/all.nix ./system/all.nix
./system/widevine/default.nix
./system/shell/fish.nix ./system/shell/fish.nix
./system/tailscale/default.nix ./system/tailscale/default.nix
./system/hosts/${hostname}/default.nix ./system/hosts/${hostname}/default.nix

View file

@ -8,10 +8,6 @@
}: }:
{ {
home.sessionVariables = lib.mkIf pkgs.stdenv.hostPlatform.isAarch64 {
MOZ_GMP_PATH = "${pkgs.widevine-firefox}/gmp-widevinecdm/system-installed";
};
home.file.".mozilla/firefox/default/chrome" = { home.file.".mozilla/firefox/default/chrome" = {
source = ./chrome; source = ./chrome;
force = true; force = true;

View file

@ -25,6 +25,4 @@ final: prev: {
}; };
spotifyd = prev.callPackage (builtins.path { path = ./spotifyd/package.nix; }) { }; spotifyd = prev.callPackage (builtins.path { path = ./spotifyd/package.nix; }) { };
widevine-firefox = prev.callPackage (builtins.path { path = ./widevine-firefox/package.nix; }) { };
} }

View file

@ -1,21 +0,0 @@
{
stdenv,
widevine-cdm,
}:
stdenv.mkDerivation {
name = "widevine-firefox";
version = widevine-cdm.version;
buildCommand = ''
mkdir -p $out/gmp-widevinecdm/system-installed
ln -s "${widevine-cdm}/share/google/chrome/WidevineCdm/manifest.json" $out/gmp-widevinecdm/system-installed/manifest.json
ln -s "${widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_arm64/libwidevinecdm.so" $out/gmp-widevinecdm/system-installed/libwidevinecdm.so
'';
meta = widevine-cdm.meta // {
platforms = [
"aarch64-linux"
];
};
}

View file

@ -0,0 +1,35 @@
{
config,
lib,
pkgs,
...
}:
{
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
(final: prev: {
wrapFirefox =
browser: opts:
let
extraPrefs = (opts.extraPrefs or "") + ''
lockPref("media.gmp-widevinecdm.version", "system-installed");
lockPref("media.gmp-widevinecdm.visible", true);
lockPref("media.gmp-widevinecdm.enabled", true);
lockPref("media.gmp-widevinecdm.autoupdate", false);
lockPref("media.eme.enabled", true);
lockPref("media.eme.encrypted-media-encryption-scheme.enabled", true);
'';
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
widevineOutDir = "$out/gmp-widevinecdm/system-installed";
in
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
buildCommand = previousAttrs.buildCommand + ''
mkdir -p "${widevineOutDir}"
ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"
wrapProgram "$oldExe" --set MOZ_GMP_PATH "${widevineOutDir}"
'';
});
})
];
}