widevine-cdm: add aarch64-linux

This commit is contained in:
Tristan Ross
2025-02-13 11:25:00 -08:00
parent 447999e1ae
commit 4910bf1587
4 changed files with 91 additions and 34 deletions
@@ -0,0 +1,49 @@
{
lib,
stdenv,
fetchurl,
fetchFromGitHub,
squashfsTools,
python3,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "widevine-cdm";
version = "${finalAttrs.lacrosVersion}-${builtins.substring 0 7 finalAttrs.widevineInstaller.rev}";
lacrosVersion = "120.0.6098.0";
widevineInstaller = fetchFromGitHub {
owner = "AsahiLinux";
repo = "widevine-installer";
rev = "7a3928fe1342fb07d96f61c2b094e3287588958b";
sha256 = "sha256-XI1y4pVNpXS+jqFs0KyVMrxcULOJ5rADsgvwfLF6e0Y=";
};
src = fetchurl {
url = "https://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/chromeos-lacros-arm64-squash-zstd-${finalAttrs.lacrosVersion}";
hash = "sha256-OKV8w5da9oZ1oSGbADVPCIkP9Y0MVLaQ3PXS3ZBLFXY=";
};
nativeBuildInputs = [
squashfsTools
python3
];
unpackPhase = ''
unsquashfs -q $src 'WidevineCdm/*'
python3 $widevineInstaller/widevine_fixup.py squashfs-root/WidevineCdm/_platform_specific/cros_arm64/libwidevinecdm.so libwidevinecdm.so
cp squashfs-root/WidevineCdm/manifest.json .
cp squashfs-root/WidevineCdm/LICENSE LICENSE.txt
'';
# Accoring to widevine-installer: "Hack because Chromium hardcodes a check for this right now..."
postInstall = ''
install -vD manifest.json "$out/share/google/chrome/WidevineCdm/manifest.json"
install -vD LICENSE.txt "$out/share/google/chrome/WidevineCdm/License.txt"
install -vD libwidevinecdm.so "$out/share/google/chrome/WidevineCdm/_platform_specific/linux_arm64/libwidevinecdm.so"
mkdir -p "$out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64"
touch "$out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"
'';
meta = import ./meta.nix lib;
})
+12
View File
@@ -0,0 +1,12 @@
lib: {
description = "Widevine CDM";
homepage = "https://www.widevine.com";
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = lib.licenses.unfree;
maintainers = with lib.maintainers; [ jlamur ];
platforms = lib.map (lib.removeSuffix ".nix") (
lib.filter (name: name != "meta.nix" && name != "package.nix") (
builtins.attrNames (builtins.readDir ./.)
)
);
}
+2 -34
View File
@@ -1,35 +1,3 @@
{
lib,
stdenv,
fetchzip,
}:
{ stdenv, callPackage }:
stdenv.mkDerivation rec {
pname = "widevine-cdm";
version = "4.10.2830.0";
src = fetchzip {
url = "https://dl.google.com/widevine-cdm/${version}-linux-x64.zip";
hash = "sha256-XDnsan1ulnIK87Owedb2s9XWLzk1K2viGGQe9LN/kcE=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt
install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
runHook postInstall
'';
meta = with lib; {
description = "Widevine CDM";
homepage = "https://www.widevine.com";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
maintainers = with maintainers; [ jlamur ];
platforms = [ "x86_64-linux" ];
};
}
callPackage (./. + "/${stdenv.hostPlatform.system}.nix") { inherit stdenv; }
@@ -0,0 +1,28 @@
{
lib,
stdenv,
fetchzip,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "widevine-cdm";
version = "4.10.2830.0";
src = fetchzip {
url = "https://dl.google.com/widevine-cdm/${finalAttrs.version}-linux-x64.zip";
hash = "sha256-XDnsan1ulnIK87Owedb2s9XWLzk1K2viGGQe9LN/kcE=";
stripRoot = false;
};
installPhase = ''
runHook preInstall
install -vD manifest.json $out/share/google/chrome/WidevineCdm/manifest.json
install -vD LICENSE.txt $out/share/google/chrome/WidevineCdm/LICENSE.txt
install -vD libwidevinecdm.so $out/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
runHook postInstall
'';
meta = import ./meta.nix lib;
})