refactor widevine
This commit is contained in:
parent
42005cb380
commit
0fc6174d47
1 changed files with 37 additions and 24 deletions
|
|
@ -7,29 +7,42 @@
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
||||||
(final: prev: {
|
(
|
||||||
wrapFirefox =
|
final: prev:
|
||||||
browser: opts:
|
let
|
||||||
let
|
# Determine the correct directory name based on the system architecture
|
||||||
extraPrefs = (opts.extraPrefs or "") + ''
|
archDir =
|
||||||
lockPref("media.gmp-widevinecdm.version", "system-installed");
|
if final.stdenv.hostPlatform.isAarch64 then
|
||||||
lockPref("media.gmp-widevinecdm.visible", true);
|
"linux_arm64"
|
||||||
lockPref("media.gmp-widevinecdm.enabled", true);
|
else if final.stdenv.hostPlatform.isx86_64 then
|
||||||
lockPref("media.gmp-widevinecdm.autoupdate", false);
|
"linux_x64"
|
||||||
lockPref("media.eme.enabled", true);
|
else
|
||||||
lockPref("media.eme.encrypted-media-encryption-scheme.enabled", true);
|
throw "Unsupported architecture for Widevine CDM";
|
||||||
'';
|
in
|
||||||
widevineCdmDir = "${final.widevine-cdm}/share/google/chrome/WidevineCdm";
|
{
|
||||||
widevineOutDir = "$out/gmp-widevinecdm/system-installed";
|
wrapFirefox =
|
||||||
in
|
browser: opts:
|
||||||
(prev.wrapFirefox browser (opts // { inherit extraPrefs; })).overrideAttrs (previousAttrs: {
|
let
|
||||||
buildCommand = previousAttrs.buildCommand + ''
|
extraPrefs = (opts.extraPrefs or "") + ''
|
||||||
mkdir -p "${widevineOutDir}"
|
lockPref("media.gmp-widevinecdm.version", "system-installed");
|
||||||
ln -s "${widevineCdmDir}/_platform_specific/linux_arm64/libwidevinecdm.so" "${widevineOutDir}/libwidevinecdm.so"
|
lockPref("media.gmp-widevinecdm.visible", true);
|
||||||
ln -s "${widevineCdmDir}/manifest.json" "${widevineOutDir}/manifest.json"
|
lockPref("media.gmp-widevinecdm.enabled", true);
|
||||||
wrapProgram "$oldExe" --set MOZ_GMP_PATH "${widevineOutDir}"
|
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/${archDir}/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