diff --git a/.gitignore b/.gitignore index 3359d85..8c60af5 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /chromium-59.0.3071.86-clean.tar.xz /chromium-59.0.3071.104-clean.tar.xz /chromium-59.0.3071.109-clean.tar.xz +/chromium-59.0.3071.115-clean.tar.xz diff --git a/chromium.spec b/chromium.spec index 7b93976..435cb51 100644 --- a/chromium.spec +++ b/chromium.spec @@ -1,5 +1,10 @@ # NEVER EVER EVER turn this on in official builds %global freeworld 0 +%if %{freeworld} +%global lsuffix freeworld +%else +%global lsuffix fedora +%endif # Leave this alone, please. %global target out/Release @@ -109,8 +114,8 @@ BuildRequires: libicu-devel >= 5.4 %global majorversion 59 Name: chromium%{chromium_channel} -Version: %{majorversion}.0.3071.109 -Release: 5%{?dist} +Version: %{majorversion}.0.3071.115 +Release: 1%{?dist} Summary: A WebKit (Blink) powered web browser Url: http://www.chromium.org/Home License: BSD and LGPLv2+ and ASL 2.0 and IJG and MIT and GPLv2+ and ISC and OpenSSL and (MPLv1.1 or GPLv2 or LGPLv2) @@ -472,6 +477,8 @@ Chromium is an open-source web browser, powered by WebKit (Blink). %package libs Summary: Shared libraries used by chromium (and chrome-remote-desktop) Requires: chromium-libs-media%{_isa} >= %{majorversion} +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives %description libs Shared libraries used by chromium (and chrome-remote-desktop). @@ -481,6 +488,8 @@ Shared libraries used by chromium (and chrome-remote-desktop). Summary: Chromium media libraries built with all possible codecs Provides: chromium-libs-media = %{version}-%{release} Provides: chromium-libs-media%{_isa} = %{version}-%{release} +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives %description libs-media-freeworld Chromium media libraries built with all possible codecs. Chromium is an @@ -491,6 +500,8 @@ can include. %package libs-media Summary: Shared libraries used by the chromium media subsystem Requires: chromium-libs%{_isa} = %{version} +Requires(post): %{_sbindir}/update-alternatives +Requires(preun): %{_sbindir}/update-alternatives %description libs-media Shared libraries used by the chromium media subsystem. @@ -1003,6 +1014,9 @@ export CHROMIUM_BROWSER_UNIT_TESTS= %global target out/Release +%if 0%{freeworld} +../depot_tools/ninja -C %{target} -vvv media $CHROMIUM_BROWSER_UNIT_TESTS +%else ../depot_tools/ninja -C %{target} -vvv chrome chrome_sandbox chromedriver widevinecdmadapter clearkeycdm policy_templates $CHROMIUM_BROWSER_UNIT_TESTS # remote client @@ -1017,6 +1031,8 @@ GOOGLE_CLIENT_ID_REMOTING_IDENTITY_API=%{chromoting_client_id} ../../depot_tools %endif popd +%endif + # Nuke nacl/pnacl bits at the end of the build rm -rf out/Release/gen/sdk rm -rf native_client/toolchain @@ -1024,6 +1040,15 @@ rm -rf third_party/llvm-build/* %install rm -rf %{buildroot} + +%if 0%{freeworld} +mkdir -p %{buildroot}%{chromium_path} + +pushd %{target} +cp -a libffmpeg.so* %{buildroot}%{chromium_path} +cp -a libmedia.so* %{buildroot}%{chromium_path} +popd +%else mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{chromium_path} cp -a %{SOURCE3} %{buildroot}%{chromium_path}/%{chromium_browser_channel}.sh @@ -1060,6 +1085,11 @@ cp -a natives_blob.bin %{buildroot}%{chromium_path} cp -a snapshot_blob.bin %{buildroot}%{chromium_path} %if 0%{?shared} cp -a lib*.so* %{buildroot}%{chromium_path} +cp -p %{buildroot}%{chromium_path}/libwidevinecdm.so{,.fedora} +cp -p %{buildroot}%{chromium_path}/libffmpeg.so{,.%{lsuffix}} +cp -p %{buildroot}%{chromium_path}/libffmpeg.so.TOC{,.%{lsuffix}} +cp -p %{buildroot}%{chromium_path}/libmedia.so{,.%{lsuffix}} +cp -p %{buildroot}%{chromium_path}/libmedia.so.TOC{,.%{lsuffix}} %endif # chromedriver @@ -1160,6 +1190,9 @@ cp -a %{SOURCE9} %{buildroot}%{_datadir}/gnome-control-center/default-apps/ mkdir -p %{buildroot}%{chromium_path}/PepperFlash +# freeworld conditional +%endif + %check %if 0%{tests} %if 0%{?tests_force_display} @@ -1494,6 +1527,52 @@ if st and st.type == "link" then os.remove(path) end +%post libs +%{_sbindir}/update-alternatives --install \ + %{_libdir}/chromium-browser/libwidevinecdm.so libwidevinecdm.so \ + %{_libdir}/chromium-browser/libwidevinecdm.so.fedora 10 + +%preun libs +if [ $1 = 0 ]; then + %{_sbindir}/alternatives --remove libwidevinecdm.so \ + %{_libdir}/chromium-browser/libwidevinecdm.so.fedora +fi + +%if %{freeworld} +%post libs-media-freeworld +%{_sbindir}/update-alternatives --install \ + %{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \ + %{_libdir}/chromium-browser/libffmpeg.so.freeworld 5 + --slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \ + %{_libdir}/chromium-browser/libffmpeg.so.TOC.freeworld + --slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \ + %{_libdir}/chromium-browser/libmedia.so.freeworld + --slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \ + %{_libdir}/chromium-browser/libmedia.so.TOC.freeworld + +%preun libs-media-freeworld +if [ $1 = 0 ]; then + %{_sbindir}/alternatives --remove libffmpeg.so \ + %{_libdir}/chromium-browser/libffmpeg.so.freeworld +fi +%else +%post libs-media +%{_sbindir}/update-alternatives --install \ + %{_libdir}/chromium-browser/libffmpeg.so libffmpeg.so \ + %{_libdir}/chromium-browser/libffmpeg.so.fedora 10 + --slave %{_libdir}/chromium-browser/libffmpeg.so.TOC libffmpeg.so.TOC \ + %{_libdir}/chromium-browser/libffmpeg.so.TOC.fedora + --slave %{_libdir}/chromium-browser/libmedia.so libmedia.so \ + %{_libdir}/chromium-browser/libmedia.so.fedora + --slave %{_libdir}/chromium-browser/libmedia.so.TOC libmedia.so.TOC \ + %{_libdir}/chromium-browser/libmedia.so.TOC.fedora + +%preun libs-media +if [ $1 = 0 ]; then + %{_sbindir}/alternatives --remove libffmpeg.so \ + %{_libdir}/chromium-browser/libffmpeg.so.fedora +fi +%endif %pre -n chrome-remote-desktop getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-desktop @@ -1507,6 +1586,10 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %postun -n chrome-remote-desktop %systemd_postun_with_restart chrome-remote-desktop@.service +%if 0%{freeworld} +# We only build libs-media-freeworld. +%else + %files %doc AUTHORS %license LICENSE @@ -1602,15 +1685,8 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %files libs %exclude %{chromium_path}/libffmpeg.so* %exclude %{chromium_path}/libmedia.so* +%exclude %{chromium_path}/libwidevinecdm.so %{chromium_path}/lib*.so* - -%if %{freeworld} -%files libs-media-freeworld -%else -%files libs-media -%endif -%{chromium_path}/libffmpeg.so* -%{chromium_path}/libmedia.so* %endif %files -n chrome-remote-desktop @@ -1641,7 +1717,30 @@ getent group chrome-remote-desktop >/dev/null || groupadd -r chrome-remote-deskt %{_bindir}/chromedriver %{chromium_path}/chromedriver +%endif + +%if 0%{?shared} +%if %{freeworld} +%files libs-media-freeworld +%else +%files libs-media +%endif +%{chromium_path}/libffmpeg.so.%{lsuffix}* +%{chromium_path}/libffmpeg.so.TOC.%{lsuffix}* +%{chromium_path}/libmedia.so.%{lsuffix}* +%{chromium_path}/libmedia.so.TOC.%{lsuffix}* +%endif + + %changelog +* Wed Jul 12 2017 Tom Callaway 59.0.3071.115-1 +- 59.0.3071.115 +- conditionalize spec so it can be easily used to make -libs-media-freeworld + +* Wed Jun 28 2017 Dominik Mierzejewski 59.0.3071.109-6 +- use alternatives for widevine stub and media libs to allow third-party + packages to replace them without conflicts + * Mon Jun 26 2017 Tom Callaway 59.0.3071.109-5 - fix path in pretrans scriptlet diff --git a/sources b/sources index be47170..0cd1635 100644 --- a/sources +++ b/sources @@ -1,3 +1,4 @@ SHA512 (chromium-59.0.3071.109-clean.tar.xz) = 7158a5b1c228c077275cf1bde79c34d9eabf607c04424df02056700703f2fd2907fc011ad658d759d7c6dd78c303f9c2983eb811cc9f9b6b424b0af615f6eaa7 SHA512 (depot_tools.git-master.tar.gz) = d3d6a1873b2b0296a8cd99e0d8d2e629a17b1808934b4972556168f8b4ccea60577ebaeab4445baf15afb1b04080808db59a832a5b61d247bd48da14fa6acf03 SHA512 (policy_templates.zip) = a997bd5d410cf8f0f104fb5b69b60699c9e60eb3f99b42e0aff167843f3a45923a9a99c881cac9cd4472a60ca9c7d1ba897e15d485fbfd66c996419e7fadd3f8 +SHA512 (chromium-59.0.3071.115-clean.tar.xz) = 001e6d9b4cae244767de7e85575d4071421d588422ca434461939e9652549bcd43c56fe0c510ab0d7d0a050e97d98f4086b8bf102dbadd7f83dc8827b9ea7ed1