fix firefox widevine
This commit is contained in:
parent
d806ed0581
commit
498ffad0c4
5 changed files with 36 additions and 27 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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; }) { };
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
35
system/widevine/default.nix
Normal file
35
system/widevine/default.nix
Normal 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}"
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue