diff --git a/SOURCES/chrome-remote-desktop@.service b/SOURCES/chrome-remote-desktop@.service deleted file mode 100644 index 4b5b1fcb..00000000 --- a/SOURCES/chrome-remote-desktop@.service +++ /dev/null @@ -1,14 +0,0 @@ -[Unit] -Description="Chrome Remote Desktop host daemon" - -[Service] -User=%i -Environment=HOME=%h -ExecStart=@@CRD_PATH@@/chrome-remote-desktop --start --foreground -ExecStop=@@CRD_PATH@@/chrome-remote-desktop --stop -ExecReload=@@CRD_PATH@@/chrome-remote-desktop --reload -Restart=always -TimeoutStopSec=10 - -[Install] -WantedBy=multi-user.target diff --git a/SOURCES/chromium-133-workaround-system-ffmpeg-whitelist.patch b/SOURCES/chromium-133-workaround-system-ffmpeg-whitelist.patch new file mode 100644 index 00000000..e873023c --- /dev/null +++ b/SOURCES/chromium-133-workaround-system-ffmpeg-whitelist.patch @@ -0,0 +1,21 @@ +diff -up chromium-133.0.6943.53/media/ffmpeg/ffmpeg_common.cc.me chromium-133.0.6943.53/media/ffmpeg/ffmpeg_common.cc +--- chromium-133.0.6943.53/media/ffmpeg/ffmpeg_common.cc.me 2025-02-09 19:57:35.117198035 +0100 ++++ chromium-133.0.6943.53/media/ffmpeg/ffmpeg_common.cc 2025-02-09 22:57:26.429570196 +0100 +@@ -76,6 +76,8 @@ const char* GetAllowedVideoDecoders() { + void ApplyCodecContextSecuritySettings(AVCodecContext* codec_context) { + // Future versions of ffmpeg may copy the allow list from the format + // context. ++// Workaround for codec whitelist with system ffmpeg ++#if 0 + if (!codec_context->codec_whitelist) { + // Note: FFmpeg will try to free this string, so we must duplicate it. + codec_context->codec_whitelist = +@@ -83,7 +85,7 @@ void ApplyCodecContextSecuritySettings(A + ? GetAllowedAudioDecoders() + : GetAllowedVideoDecoders()); + } +- ++#endif + // Note: This is security sensitive. FFmpeg may not always continue safely + // in the presence of errors. See https://crbug.com/379418979 + if (base::FeatureList::IsEnabled(kStrictFFmpegCodecs)) { diff --git a/SOURCES/chromium-browser.xml b/SOURCES/chromium-browser.xml index 159e05cc..3ee1e437 100644 --- a/SOURCES/chromium-browser.xml +++ b/SOURCES/chromium-browser.xml @@ -8,11 +8,9 @@ /usr/bin/chromium-browser %s chromium-browser false - false - + true + /usr/bin/chromium-browser %s + /usr/bin/chromium-browser --new-window %s diff --git a/SPECS/chromium.spec b/SPECS/chromium.spec index a3bd0c85..629a9c94 100644 --- a/SPECS/chromium.spec +++ b/SPECS/chromium.spec @@ -61,9 +61,6 @@ %global build_chromedriver 1 %endif -# enable|disable chrome-remote-desktop build -%global build_remoting 0 - # set nodejs_version %global nodejs_version v20.6.1 @@ -115,8 +112,6 @@ %endif %endif -%global build_clear_key_cdm 0 - # Disabled because of Google, starting with Chromium 88. %global userestrictedapikeys 0 @@ -355,6 +350,8 @@ Patch132: chromium-118-sigtrap_system_ffmpeg.patch Patch133: chromium-121-system-old-ffmpeg.patch # revert, it causes build error: use of undeclared identifier 'AVFMT_FLAG_NOH264PARSE' Patch135: chromium-133-disable-H.264-video-parser-during-demuxing.patch +# Workaround for youtube stop working +Patch136: chromium-133-workaround-system-ffmpeg-whitelist.patch # file conflict with old kernel on el8/el9 Patch141: chromium-118-dma_buf_export_sync_file-conflict.patch @@ -503,7 +500,7 @@ Source7: get_free_ffmpeg_source_files.py Source8: get_linux_tests_names.py # GNOME stuff Source9: chromium-browser.xml -Source10: chrome-remote-desktop@.service +Source10: chromium-browser.appdata.xml Source11: master_preferences %if ! %{system_nodejs} @@ -536,8 +533,6 @@ Source102: https://github.com/deemru/msspi/archive/%{msspi_commit}.tar.gz#/msspi Source103: chromium-browser-gost-icons.tar.xz %endif -Source200: chromium-browser.appdata.xml - BuildRequires: clang BuildRequires: clang-tools-extra BuildRequires: llvm @@ -1013,34 +1008,11 @@ if proprietary CryptoPro is installed. %package common Summary: Files needed for both the headless_shell and full Chromium -# -common doesn't have chrome-remote-desktop bits -# but we need to clean it up if it gets disabled again -# NOTE: Check obsoletes version to be sure it matches -%if ! %{build_remoting} -Provides: chrome-remote-desktop = %{version}-%{release} -Obsoletes: chrome-remote-desktop <= 81.0.4044.138 -%endif - Requires: sphere-indexhtml %description common %{summary}. -%if %{build_remoting} -%package -n chrome-remote-desktop -Requires(pre): shadow-utils -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd -Requires: xorg-x11-server-Xvfb -Requires: python3-psutil -Requires: %{name}-common%{_isa} = %{version}-%{release} -Summary: Remote desktop support for google-chrome & chromium - -%description -n chrome-remote-desktop -Remote desktop support for google-chrome & chromium. -%endif - %package -n chromedriver Summary: WebDriver for Google Chrome/Chromium Requires: %{name}-common%{_isa} = %{version}-%{release} @@ -1175,6 +1147,7 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena #%%patch -P130 -p1 -b .revert-av1enc #%%patch -P133 -p1 -b .system-old-ffmpeg #%%patch -P135 -p1 -b .disable-H.264-video-parser-during-demuxing +#%%patch -P136 -p1 -b .workaround-system-ffmpeg-whitelist #%%endif #%%endif @@ -1217,6 +1190,7 @@ sed -i 's/std::string data_dir_basename = "chromium"/std::string data_dir_basena %endif %patch -P355 -p1 -b .hardware_destructive_interference_size + %patch -P358 -p1 -b .rust-clang_lib %patch -P359 -p1 -b .libavif-deps @@ -1703,10 +1677,6 @@ mkdir -p %{chromebuilddir} && cp -a $(which gn) %{chromebuilddir}/ %{chromebuilddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_HEADLESS_GN_DEFINES" %{headlessbuilddir} %endif -%if %{build_remoting} -%{chromebuilddir}/gn --script-executable=%{chromium_pybin} gen --args="$CHROMIUM_CORE_GN_DEFINES $CHROMIUM_BROWSER_GN_DEFINES" %{remotingbuilddir} -%endif - %if %{build_headless} # Do headless first. %build_target %{headlessbuilddir} headless_shell @@ -1720,16 +1690,6 @@ mkdir -p %{chromebuilddir} && cp -a $(which gn) %{chromebuilddir}/ %endif %build_target %{chromebuilddir} libffmpeg.so -%if %{build_clear_key_cdm} -%build_target %{chromebuilddir} clear_key_cdm -%endif - -%build_target %{chromebuilddir} policy_templates - -%if %{build_remoting} -%build_target %{remotingbuilddir} remoting_all -%endif - %install rm -rf %{buildroot} @@ -1806,78 +1766,13 @@ pushd %{chromebuilddir} cp -a libqt6_shim.so %{buildroot}%{chromium_path} %endif - %if %{build_clear_key_cdm} - %ifarch x86_64 - cp -a ClearKeyCdm/_platform_specific/linux_x64/libclearkeycdm.so %{buildroot}%{chromium_path} - %endif - %ifarch aarch64 - cp -a ClearKeyCdm/_platform_specific/linux_arm64/libclearkeycdm.so %{buildroot}%{chromium_path} - %endif - %ifarch ppc64le - cp -a ClearKeyCdm/_platform_specific/linux_ppc64/libclearkeycdm.so %{buildroot}%{chromium_path} - %endif - %endif - %if %{build_chromedriver} # chromedriver cp -a chromedriver %{buildroot}%{chromium_path}/chromedriver ln -s ../..%{chromium_path}/chromedriver %{buildroot}%{_bindir}/chromedriver %endif - - %if %{build_remoting} - # Remote desktop bits - mkdir -p %{buildroot}%{crd_path} - %endif popd -%if %{build_remoting} - pushd %{remotingbuilddir} - # Hey, there is a library now. - cp -a libremoting_core.so %{buildroot}%{crd_path}/ - - # See remoting/host/installer/linux/Makefile for logic - mkdir -p %{buildroot}%{crd_path}/remoting_locales - cp -a remoting_native_messaging_host %{buildroot}%{crd_path}/native-messaging-host - cp -a remote_assistance_host %{buildroot}%{crd_path}/remote-assistance-host - cp -a remoting_locales/*.pak %{buildroot}%{crd_path}/remoting_locales/ - cp -a remoting_me2me_host %{buildroot}%{crd_path}/chrome-remote-desktop-host - cp -a remoting_start_host %{buildroot}%{crd_path}/start-host - cp -a remoting_user_session %{buildroot}%{crd_path}/user-session - chmod +s %{buildroot}%{crd_path}/user-session - - # chromium - mkdir -p %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts - # google-chrome - mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/ - cp -a remoting/* %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/ - for i in %{buildroot}%{_sysconfdir}/chromium/native-messaging-hosts/*.json; do - sed -i 's|/opt/google/chrome-remote-desktop|%{crd_path}|g' $i - done - mkdir -p %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts - pushd %{buildroot}%{_sysconfdir}/opt/chrome/native-messaging-hosts - for i in ../../../chromium/native-messaging-hosts/*; do - # rpm gets unhappy when we symlink here - cp -a $i . - done - popd - popd - - mkdir -p %{buildroot}/var/lib/chrome-remote-desktop - touch %{buildroot}/var/lib/chrome-remote-desktop/hashes - - mkdir -p %{buildroot}%{_sysconfdir}/pam.d/ - pushd %{buildroot}%{_sysconfdir}/pam.d/ - ln -s system-auth chrome-remote-desktop - popd - - cp -a remoting/host/linux/linux_me2me_host.py %{buildroot}%{crd_path}/chrome-remote-desktop - cp -a remoting/host/installer/linux/is-remoting-session %{buildroot}%{crd_path}/ - - mkdir -p %{buildroot}%{_unitdir} - cp -a %{SOURCE10} %{buildroot}%{_unitdir}/ - sed -i 's|@@CRD_PATH@@|%{crd_path}|g' %{buildroot}%{_unitdir}/chrome-remote-desktop@.service -%endif - %if %{build_headless} pushd %{headlessbuilddir} cp -a *.pak headless_shell %{buildroot}%{chromium_path} @@ -1922,9 +1817,9 @@ install -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/%{name}/ mkdir -p %{buildroot}%{_datadir}/applications/ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE4} -install -D -m0644 %{SOURCE200} \ - ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml -appstream-util validate-relax --nonet ${RPM_BUILD_ROOT}%{_datadir}/metainfo/%{chromium_browser_channel}.appdata.xml + +install -D -m0644 %{SOURCE10} ${RPM_BUILD_ROOT}%{_datadir}/appdata/%{chromium_browser_channel}.appdata.xml +appstream-util validate-relax --nonet ${RPM_BUILD_ROOT}%{_datadir}/appdata/%{chromium_browser_channel}.appdata.xml mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps/ cp -a %{SOURCE9} %{buildroot}%{_datadir}/gnome-control-center/default-apps/ @@ -1944,39 +1839,12 @@ if selinuxenabled; then fi %endif -%if %{build_remoting} -%pretrans -n chrome-remote-desktop -p -path = "/etc/opt/chrome/native-messaging-hosts" -st = posix.stat(path) -if st and st.type == "link" then - os.remove(path) -end -%endif - -%if %{build_remoting} -%pre -n chrome-remote-desktop -getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-desktop - -%post -n chrome-remote-desktop -%systemd_post chrome-remote-desktop@.service - -%preun -n chrome-remote-desktop -%systemd_preun chrome-remote-desktop@.service - -%postun -n chrome-remote-desktop -%systemd_postun_with_restart chrome-remote-desktop@.service -%endif - %files %doc AUTHORS README.fedora -%doc chrome_policy_list.html *.json %license LICENSE %config(noreplace) %{_sysconfdir}/%{name}/%{name}.conf %config %{_sysconfdir}/%{name}/master_preferences %config %{_sysconfdir}/%{name}/policies/ -%if %{build_remoting} -%exclude %{_sysconfdir}/%{name}/native-messaging-hosts/* -%endif %{_bindir}/%{chromium_browser_channel} %{chromium_path}/*.bin %{chromium_path}/chrome_*.pak @@ -1988,7 +1856,7 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{_mandir}/man1/%{chromium_browser_channel}.* %{_datadir}/icons/hicolor/*/apps/%{chromium_browser_channel}.png %{_datadir}/applications/*.desktop -%{_datadir}/metainfo/*.appdata.xml +%{_datadir}/appdata/*.appdata.xml %{_datadir}/gnome-control-center/default-apps/chromium-browser.xml %if %{use_qt} @@ -2005,9 +1873,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/libffmpeg.so %files common -%if %{build_clear_key_cdm} -%{chromium_path}/libclearkeycdm.so -%endif %ifarch x86_64 aarch64 ppc64le %{chromium_path}/libvk_swiftshader.so* %{chromium_path}/libvulkan.so* @@ -2091,24 +1956,6 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{chromium_path}/headless_*.pak %endif -%if %{build_remoting} -%files -n chrome-remote-desktop -%{crd_path}/chrome-remote-desktop -%{crd_path}/chrome-remote-desktop-host -%{crd_path}/is-remoting-session -%{crd_path}/libremoting_core.so* -%{crd_path}/native-messaging-host -%{crd_path}/remote-assistance-host -%{_sysconfdir}/pam.d/chrome-remote-desktop -%{_sysconfdir}/chromium/native-messaging-hosts/* -%{_sysconfdir}/opt/chrome/ -%{crd_path}/remoting_locales/ -%{crd_path}/start-host -%{crd_path}/user-session -%{_unitdir}/chrome-remote-desktop@.service -/var/lib/chrome-remote-desktop/ -%endif - %if %{build_chromedriver} %files -n chromedriver %doc AUTHORS