Module Name: pkgsrc-wip Committed By: Ryo ONODERA <ryoon%NetBSD.org@localhost> Pushed By: ryoon Date: Wed Jan 21 22:48:11 2026 +0900 Changeset: 2f946da51804ea97622b94a576910ebdca5f5d32 Modified Files: openwv/MESSAGE openwv/Makefile openwv/distinfo Added Files: openwv/patches/patch-src_config.rs openwv/patches/patch-src_openwv.rs Log Message: wip/openwv: Load .wvd from file * Use patches from OpenBSD Ports. To see a diff of this commit: https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=2f946da51804ea97622b94a576910ebdca5f5d32 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. diffstat: openwv/MESSAGE | 2 ++ openwv/Makefile | 9 +++++++-- openwv/distinfo | 2 ++ openwv/patches/patch-src_config.rs | 23 +++++++++++++++++++++++ openwv/patches/patch-src_openwv.rs | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 68 insertions(+), 2 deletions(-) diffs: diff --git a/openwv/MESSAGE b/openwv/MESSAGE index 416917ed51..9b2d4dcaf3 100644 --- a/openwv/MESSAGE +++ b/openwv/MESSAGE @@ -1,6 +1,8 @@ =========================================================================== $NetBSD: MESSAGE,v 1.1 2011/03/03 10:51:59 ryoon Exp $ +For Firefox web browser: + (1) Open about:support in www/firefox and get profile name. (2) Create gmp-widevinecdm/openwv directory under profile directory. $ mkdir -p ~/.mozilla/<profile>/gmp-widevinecdm/openwv diff --git a/openwv/Makefile b/openwv/Makefile index f41f42b11f..bccef3b447 100644 --- a/openwv/Makefile +++ b/openwv/Makefile @@ -1,6 +1,7 @@ # $NetBSD$ DISTNAME= openwv-1.1.3 +PKGREVISION= 1 CATEGORIES= multimedia # Tarball contains Git submodule and result of `cargo vendor`. MASTER_SITES= https://www.ryoon.net/~ryoon/ @@ -13,14 +14,18 @@ LICENSE= gnu-lgpl-v3 USE_LANGUAGES= c c++ +SUBST_CLASSES+= etc +SUBST_STAGE.etc= pre-configure +SUBST_MESSAGE.etc= Setting PKG_SYSCONFDIR +SUBST_FILES.etc+= src/openwv.rs +SUBST_VARS.etc+= PKG_SYSCONFDIR + INSTALLATION_DIRS+= share/openwv post-extract: # Adjust for vendor handling of cargo.mk cd ${WRKSRC} && \ ${MV} vendor .. - # Copy embedded.wvd file to ${WRKSRC} manually. - #${CP} ${SOMEWHERE}/keydive.wvd ${WRKSRC}/embedded.wvd do-install: ${INSTALL_LIB} ${WRKSRC}/target/release/libwidevinecdm.so \ diff --git a/openwv/distinfo b/openwv/distinfo index c7f309e804..e9a8633193 100644 --- a/openwv/distinfo +++ b/openwv/distinfo @@ -4,3 +4,5 @@ BLAKE2s (openwv-1.1.3.tar.bz2) = 2457e67c8cfcc33b7cc4161ad59fdb96176fe5f37805141 SHA512 (openwv-1.1.3.tar.bz2) = 1168029017b0ccc92c119e860a37e565940d54f9f4b2759e26da9ae615c1940f83483cffea642c2e36e958d77f99c6bc58df9c747d08b3d229bc839093f4766f Size (openwv-1.1.3.tar.bz2) = 23790667 bytes SHA1 (patch-Cargo.toml) = bdda1d5ee91423d173e659bd4c305d4362a6f0c8 +SHA1 (patch-src_config.rs) = 80c6aee2b32fa9376b71f530719e88f6f3e70285 +SHA1 (patch-src_openwv.rs) = 5cb12ef32d13f7c0806f81d05501c2b1ebc5b53d diff --git a/openwv/patches/patch-src_config.rs b/openwv/patches/patch-src_config.rs new file mode 100644 index 0000000000..0214abac73 --- /dev/null +++ b/openwv/patches/patch-src_config.rs @@ -0,0 +1,23 @@ +$NetBSD$ + +* Load .wvd data from file. Taken from OpenBSD Ports. + +--- src/config.rs.orig 2026-01-20 13:27:18.000000000 +0000 ++++ src/config.rs +@@ -3,16 +3,11 @@ pub const CONFIG: OpenWvConfig = OpenWvConfig { + /// go in a configuration file. See the comments on the structs and enums below + /// for information on the meaning of each parameter. + pub const CONFIG: OpenWvConfig = OpenWvConfig { +- widevine_device: include_bytes!("../embedded.wvd"), + log_level: log::LevelFilter::Info, + encrypt_client_id: EncryptClientId::Always, + }; + + pub struct OpenWvConfig { +- /// A pywidevine `.wvd` file containing the private key and Client ID to +- /// present in license requests. You must obtain this on your own. +- pub widevine_device: &'static [u8], +- + /// This can be overridden by the OPENWV_LOG environment variable, but some + /// browsers like Firefox don't let CDMs see the full environment. + pub log_level: log::LevelFilter, diff --git a/openwv/patches/patch-src_openwv.rs b/openwv/patches/patch-src_openwv.rs new file mode 100644 index 0000000000..e563534cd3 --- /dev/null +++ b/openwv/patches/patch-src_openwv.rs @@ -0,0 +1,34 @@ +$NetBSD$ + +* Load .wvd data from file. Taken from OpenBSD Ports. + +--- src/openwv.rs.orig 2026-01-20 13:27:18.000000000 +0000 ++++ src/openwv.rs +@@ -1,13 +1,13 @@ use std::ffi::{c_char, c_int, c_uchar, c_void}; + use autocxx::subclass::{CppSubclassSelfOwned, subclass}; + use log::{debug, error, info, trace, warn}; + use std::ffi::{c_char, c_int, c_uchar, c_void}; ++use std::fs::File; + use std::pin::Pin; + use std::ptr::{null, null_mut}; + use std::sync::OnceLock; + + use crate::CdmError; + use crate::common_host::{CommonHost, downcast_host}; +-use crate::config::CONFIG; + use crate::decrypt::{DecryptError, decrypt_buf}; + use crate::ffi::cdm; + use crate::service_certificate::{ServerCertificate, parse_service_certificate}; +@@ -27,7 +27,11 @@ extern "C" fn InitializeCdmModule_4() { + + info!("OpenWV version {} initializing", env!("CARGO_PKG_VERSION")); + +- let mut embedded_wvd = std::io::Cursor::new(CONFIG.widevine_device); ++ let f = File::open("@PKG_SYSCONFDIR@/openwv/widevine_device.wvd"); ++ let mut embedded_wvd = match f { ++ Ok(file) => file, ++ Err(_) => return(), ++ }; + match wvd_file::parse_wvd(&mut embedded_wvd) { + Ok(dev) => { + if DEVICE.set(dev).is_err() {