35 lines
1.4 KiB
Nix
35 lines
1.4 KiB
Nix
# https://github.com/nix-community/nixos-apple-silicon/issues/145
|
|
# This should work with both x86_64 and aarch64. (hopefully)
|
|
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
nixpkgs.overlays = lib.mkIf (config.nixpkgs.hostPlatform.isLinux) [
|
|
(final: prev: {
|
|
wrapLibrewolf =
|
|
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.wrapLibrewolf 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}"
|
|
'';
|
|
});
|
|
})
|
|
];
|
|
}
|