Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145049901
D42026.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D42026.diff
View Options
diff --git a/www/chromium/Makefile b/www/chromium/Makefile
--- a/www/chromium/Makefile
+++ b/www/chromium/Makefile
@@ -1,5 +1,6 @@
PORTNAME= chromium
PORTVERSION= 117.0.5938.132
+PORTREVISION= 1
CATEGORIES= www wayland
MASTER_SITES= https://commondatastorage.googleapis.com/chromium-browser-official/ \
https://nerd.hu/distfiles/:external
@@ -102,6 +103,7 @@
enable_nacl=false \
enable_remoting=false \
enable_rust=false \
+ enable_widevine=true \
fatal_linker_warnings=false \
icu_use_data_file=false \
is_clang=true \
@@ -137,7 +139,7 @@
SUB_FILES= chromium-browser.desktop chrome
SUB_LIST+= COMMENT="${COMMENT}"
-OPTIONS_DEFINE= CODECS CUPS DEBUG DRIVER KERBEROS LTO PIPEWIRE TEST
+OPTIONS_DEFINE= CODECS CUPS DEBUG DRIVER KERBEROS LTO PIPEWIRE TEST WIDEVINE
OPTIONS_DEFAULT= CODECS CUPS DRIVER KERBEROS PIPEWIRE SNDIO
OPTIONS_EXCLUDE_aarch64=LTO
OPTIONS_GROUP= AUDIO
@@ -212,6 +214,9 @@
SNDIO_VARS= GN_ARGS+=use_sndio=true
SNDIO_VARS_OFF= GN_ARGS+=use_sndio=false
+WIDEVINE_DESC= Depend on foreign-cdm to enable playback of DRM content
+WIDEVINE_RUN_DEPENDS= foreign-cdm>0:www/foreign-cdm
+
.include "Makefile.tests"
TEST_DISTFILES= ${PORTNAME}-${DISTVERSION}-testdata${EXTRACT_SUFX} \
test_fonts-336e775eec536b2d785cc80eff6ac39051931286.tar.gz:external
diff --git a/www/chromium/files/chrome.in b/www/chromium/files/chrome.in
--- a/www/chromium/files/chrome.in
+++ b/www/chromium/files/chrome.in
@@ -16,4 +16,9 @@
exit 1
fi
ulimit -c 0
+
+# variables for foreign-cdm
+export FCDM_CDM_SO_PATH=/compat/linux/usr/lib/foreign-cdm/libwidevinecdm.so
+export FCDM_WORKER_PATH=/compat/linux/usr/bin/fcdm-worker
+
exec %%PREFIX%%/share/chromium/chrome ${1+"$@"}
diff --git a/www/chromium/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc b/www/chromium/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
new file mode 100644
--- /dev/null
+++ b/www/chromium/files/patch-chrome_browser_component__updater_widevine__cdm__component__installer.cc
@@ -0,0 +1,11 @@
+--- chrome/browser/component_updater/widevine_cdm_component_installer.cc.orig 2023-09-04 16:07:23 UTC
++++ chrome/browser/component_updater/widevine_cdm_component_installer.cc
+@@ -72,6 +72,8 @@ const char kWidevineCdmPlatform[] =
+ "cros";
+ #elif BUILDFLAG(IS_LINUX)
+ "linux";
++#elif BUILDFLAG(IS_FREEBSD)
++ "linux";
+ #else
+ #error This file should only be included for supported platforms.
+ #endif
diff --git a/www/chromium/files/patch-chrome_common_media_cdm__registration.cc b/www/chromium/files/patch-chrome_common_media_cdm__registration.cc
new file mode 100644
--- /dev/null
+++ b/www/chromium/files/patch-chrome_common_media_cdm__registration.cc
@@ -0,0 +1,52 @@
+--- chrome/common/media/cdm_registration.cc.orig 2023-09-04 16:08:25 UTC
++++ chrome/common/media/cdm_registration.cc
+@@ -25,11 +25,11 @@
+
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #include "third_party/widevine/cdm/widevine_cdm_common.h" // nogncheck
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN) || BUILDFLAG(IS_FREEBSD)
+ #include "base/native_library.h"
+ #include "chrome/common/chrome_paths.h"
+ #endif // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_WIN)
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ #include "base/no_destructor.h"
+ #include "components/cdm/common/cdm_manifest.h"
+ #include "media/cdm/supported_audio_codecs.h"
+@@ -58,7 +58,7 @@ using Robustness = content::CdmInfo::Robustness;
+ #if BUILDFLAG(ENABLE_WIDEVINE)
+ #if (BUILDFLAG(BUNDLE_WIDEVINE_CDM) || \
+ BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD))
+ // Create a CdmInfo for a Widevine CDM, using |version|, |cdm_library_path|, and
+ // |capability|.
+ std::unique_ptr<content::CdmInfo> CreateWidevineCdmInfo(
+@@ -101,7 +101,7 @@ std::unique_ptr<content::CdmInfo> CreateCdmInfoFromWid
+ // BUILDFLAG(IS_CHROMEOS))
+
+ #if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD))
+ // On Linux/ChromeOS we have to preload the CDM since it uses the zygote
+ // sandbox. On Windows and Mac, the bundled CDM is handled by the component
+ // updater.
+@@ -125,7 +125,7 @@ content::CdmInfo* GetBundledWidevine() {
+ // BUILDFLAG(IS_CHROMEOS))
+
+ #if BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT) && \
+- (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
++ (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD))
+ // This code checks to see if a component updated Widevine CDM can be found. If
+ // there is one and it looks valid, return the CdmInfo for that CDM. Otherwise
+ // return nullptr.
+@@ -160,7 +160,7 @@ void AddSoftwareSecureWidevine(std::vector<content::Cd
+ /*supports_sub_key_systems=*/false, kWidevineCdmDisplayName,
+ kWidevineCdmType, base::Version(), base::FilePath());
+
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS)
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FREEBSD)
+ #if defined(WIDEVINE_CDM_MIN_GLIBC_VERSION)
+ base::Version glibc_version(gnu_get_libc_version());
+ DCHECK(glibc_version.IsValid());
diff --git a/www/chromium/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h b/www/chromium/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
new file mode 100644
--- /dev/null
+++ b/www/chromium/files/patch-chrome_common_media_component__widevine__cdm__hint__file__linux.h
@@ -0,0 +1,11 @@
+--- chrome/common/media/component_widevine_cdm_hint_file_linux.h.orig 2023-09-04 16:25:40 UTC
++++ chrome/common/media/component_widevine_cdm_hint_file_linux.h
+@@ -15,7 +15,7 @@
+
+ // TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
+ // of lacros-chrome is complete.
+-#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS))
++#if !(BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_FREEBSD))
+ #error "This file only applies to desktop Linux."
+ #endif
+
diff --git a/www/chromium/files/patch-media_cdm_library__cdm_cdm__paths.gni b/www/chromium/files/patch-media_cdm_library__cdm_cdm__paths.gni
new file mode 100644
--- /dev/null
+++ b/www/chromium/files/patch-media_cdm_library__cdm_cdm__paths.gni
@@ -0,0 +1,11 @@
+--- media/cdm/library_cdm/cdm_paths.gni.orig 2023-09-04 16:51:48 UTC
++++ media/cdm/library_cdm/cdm_paths.gni
+@@ -23,6 +23,8 @@ if (is_chromeos) {
+ component_os = "mac"
+ } else if (is_fuchsia) {
+ component_os = "fuchsia"
++} else if (is_freebsd) {
++ component_os = "linux"
+ } else {
+ assert(false, "unsupported_platform")
+ }
diff --git a/www/chromium/files/patch-third__party_widevine_cdm_widevine.gni b/www/chromium/files/patch-third__party_widevine_cdm_widevine.gni
new file mode 100644
--- /dev/null
+++ b/www/chromium/files/patch-third__party_widevine_cdm_widevine.gni
@@ -0,0 +1,10 @@
+--- third_party/widevine/cdm/widevine.gni.orig 2023-09-04 17:14:29 UTC
++++ third_party/widevine/cdm/widevine.gni
+@@ -27,6 +27,7 @@ library_widevine_cdm_available =
+ (is_chromeos &&
+ (target_cpu == "x64" || target_cpu == "arm" || target_cpu == "arm64")) ||
+ (target_os == "linux" && target_cpu == "x64") ||
++ (target_os == "freebsd" && target_cpu == "x64") ||
+ (target_os == "mac" && (target_cpu == "x64" || target_cpu == "arm64")) ||
+ (target_os == "win" &&
+ (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64"))
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Feb 16, 10:18 AM (6 h, 47 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28775001
Default Alt Text
D42026.diff (7 KB)
Attached To
Mode
D42026: www/chromium: Enable Widevine DRM via foreign-cdm.
Attached
Detach File
Event Timeline
Log In to Comment