diff options
author | Ting-Wei Lan <lantw44@gmail.com> | 2019-09-12 22:24:41 +0800 |
---|---|---|
committer | Ting-Wei Lan <lantw44@gmail.com> | 2019-09-12 22:24:41 +0800 |
commit | 3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26 (patch) | |
tree | 9dedc9f7476a48f45b293a95ecbb1b4e328b0aaf | |
parent | 34d68138c7d454ce622b9f11e765e52d9d2ae677 (diff) | |
download | copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar.gz copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar.bz2 copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar.lz copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar.xz copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.tar.zst copr-rpm-spec-3a370bdc761e3f5ff2cd93e4c3cdc08d642d8d26.zip |
chromium: Fix PulseAudio and Harfbuzz build error
-rw-r--r-- | chromium/chromium/chromium-gcc9-r681760.patch | 58 | ||||
-rw-r--r-- | chromium/chromium/chromium-pulseaudio-12.99.patch | 47 | ||||
-rw-r--r-- | chromium/chromium/chromium.spec | 17 |
3 files changed, 120 insertions, 2 deletions
diff --git a/chromium/chromium/chromium-gcc9-r681760.patch b/chromium/chromium/chromium-gcc9-r681760.patch new file mode 100644 index 0000000..4a11e1e --- /dev/null +++ b/chromium/chromium/chromium-gcc9-r681760.patch @@ -0,0 +1,58 @@ +From 27e25336b8316ff3ec4e464058682ed85801fd06 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Date: Mon, 29 Jul 2019 10:54:28 +0000 +Subject: [PATCH] Also link against libharfbuzz-subset when use_system_harfbuzz + is true +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +When building HarfBuzz as part of Chromium, there is a single source set +with all the files we need in the build. + +Upstream HarfBuzz, on the other hand, produces a few different libraries: +harfbuzz, harfbuzz-icu and harfbuzz-subset. When |use_system_harfbuzz| is +true, we were only looking for (and using) harfbuzz.pc with pkg-config even +though we also use symbols from libharfbuzz-subset.so. This resulted in +errors when linking: + + ld: obj/skia/skia/SkPDFSubsetFont.o: in function `SkPDFSubsetFont(sk_sp<SkData>, SkPDFGlyphUse const&, SkPDF::Metadata::Subsetter, char const*, int)': + SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x48a): undefined reference to `hb_subset_input_create_or_fail' + ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x4af): undefined reference to `hb_subset_input_glyph_set' + ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5d7): undefined reference to `hb_subset_input_set_retain_gids' + ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5e4): undefined reference to `hb_subset_input_set_drop_hints' + ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x5f3): undefined reference to `hb_subset' + ld: SkPDFSubsetFont.cpp:(.text._Z15SkPDFSubsetFont5sk_spI6SkDataERK13SkPDFGlyphUseN5SkPDF8Metadata9SubsetterEPKci+0x66f): undefined reference to `hb_subset_input_destroy' + +as reported in +https://groups.google.com/a/chromium.org/d/msg/chromium-packagers/UyJsVJ5QqWo/jSv5z7-rEQAJ + +Change-Id: I997af075c7b7263cd7cc71a63db5b0f93bd1ab59 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1715288 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> +Commit-Queue: Dominik Röttsches <drott@chromium.org> +Reviewed-by: Dominik Röttsches <drott@chromium.org> +Cr-Commit-Position: refs/heads/master@{#681760} +--- + third_party/harfbuzz-ng/BUILD.gn | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/third_party/harfbuzz-ng/BUILD.gn b/third_party/harfbuzz-ng/BUILD.gn +index 37d8e334c262..72013eb1db79 100644 +--- a/third_party/harfbuzz-ng/BUILD.gn ++++ b/third_party/harfbuzz-ng/BUILD.gn +@@ -16,7 +16,10 @@ if (use_system_harfbuzz) { + "//third_party:freetype_harfbuzz", + "//third_party/freetype:freetype_source", + ] +- packages = [ "harfbuzz" ] ++ packages = [ ++ "harfbuzz", ++ "harfbuzz-subset", ++ ] + } + } else { + config("harfbuzz_config") { +-- +2.21.0 + diff --git a/chromium/chromium/chromium-pulseaudio-12.99.patch b/chromium/chromium/chromium-pulseaudio-12.99.patch new file mode 100644 index 0000000..d4e2b46 --- /dev/null +++ b/chromium/chromium/chromium-pulseaudio-12.99.patch @@ -0,0 +1,47 @@ +diff -up chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change chromium-76.0.3809.100/media/audio/pulse/pulse.sigs +--- chromium-76.0.3809.100/media/audio/pulse/pulse.sigs.pulse-api-change 2019-08-14 23:18:59.624627870 +0200 ++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 23:19:41.258104998 +0200 +@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info + pa_operation* pa_context_get_source_info_by_name(pa_context* c, const char* name, pa_source_info_cb_t cb, void *userdata); + pa_operation* pa_context_get_source_info_list(pa_context* c, pa_source_info_cb_t cb, void* userdata); + pa_operation* pa_context_get_sink_info_list(pa_context* c, pa_sink_info_cb_t cb, void* userdata); +-pa_context_state_t pa_context_get_state(pa_context* c); ++pa_context_state_t pa_context_get_state(const pa_context* c); + pa_context* pa_context_new(pa_mainloop_api* mainloop, const char* name); + pa_operation* pa_context_set_source_volume_by_index(pa_context* c, uint32_t idx, const pa_cvolume* volume, pa_context_success_cb_t cb, void* userdata); + void pa_context_set_state_callback(pa_context* c, pa_context_notify_cb_t cb, void* userdata); +-pa_operation_state_t pa_operation_get_state(pa_operation* o); ++pa_operation_state_t pa_operation_get_state(const pa_operation* o); + void pa_context_unref(pa_context* c); + void pa_operation_unref(pa_operation* o); + int pa_stream_begin_write(pa_stream* p, void** data, size_t* nbytes); +@@ -38,23 +38,23 @@ pa_operation* pa_stream_cork(pa_stream* + int pa_stream_disconnect(pa_stream* s); + int pa_stream_drop(pa_stream *p); + pa_operation* pa_stream_flush(pa_stream* s, pa_stream_success_cb_t cb, void* userdata); +-uint32_t pa_stream_get_device_index(pa_stream* s); ++uint32_t pa_stream_get_device_index(const pa_stream* s); + int pa_stream_get_latency(pa_stream* s, pa_usec_t* r_usec, int* negative); +-pa_stream_state_t pa_stream_get_state(pa_stream* p); ++pa_stream_state_t pa_stream_get_state(const pa_stream* p); + pa_stream* pa_stream_new(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map * map); + pa_stream* pa_stream_new_with_proplist(pa_context* c, const char* name, const pa_sample_spec* ss, const pa_channel_map* map, pa_proplist* p); + pa_proplist* pa_proplist_new(void); +-int pa_proplist_contains(pa_proplist* p, const char* key); ++int pa_proplist_contains(const pa_proplist* p, const char* key); + void pa_proplist_free(pa_proplist* p); +-const char* pa_proplist_gets(pa_proplist* p, const char* key); ++const char* pa_proplist_gets(const pa_proplist* p, const char* key); + int pa_proplist_sets(pa_proplist* p, const char* key, const char* value); +-size_t pa_stream_readable_size(pa_stream *p); ++size_t pa_stream_readable_size(const pa_stream *p); + int pa_stream_peek(pa_stream* p, const void** data, size_t* nbytes); + void pa_stream_set_read_callback(pa_stream* p, pa_stream_request_cb_t cb, void* userdata); + void pa_stream_set_state_callback(pa_stream* s, pa_stream_notify_cb_t cb, void* userdata); + int pa_stream_write(pa_stream* p, const void* data, size_t nbytes, pa_free_cb_t free_cb, int64_t offset, pa_seek_mode_t seek); + void pa_stream_set_write_callback(pa_stream *p, pa_stream_request_cb_t cb, void *userdata); + void pa_stream_unref(pa_stream* s); +-int pa_context_errno(pa_context *c); ++int pa_context_errno(const pa_context *c); + const char* pa_strerror(int error); + pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v); diff --git a/chromium/chromium/chromium.spec b/chromium/chromium/chromium.spec index c6f9635..cbee7a4 100644 --- a/chromium/chromium/chromium.spec +++ b/chromium/chromium/chromium.spec @@ -48,7 +48,7 @@ Name: chromium Version: 77.0.3865.75 -Release: 100%{?dist} +Release: 101%{?dist} Summary: A WebKit (Blink) powered web browser 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) @@ -101,6 +101,9 @@ Patch20: chromium-python2.patch # Pull patches from Fedora # https://src.fedoraproject.org/rpms/chromium/c/9071ee2d2f996b84 Patch30: chromium-webrtc-cstring.patch +# https://src.fedoraproject.org/rpms/chromium/c/8b12346860ef3360 +# https://src.fedoraproject.org/rpms/chromium/c/4376be3d5fd00f26 +Patch31: chromium-pulseaudio-12.99.patch # Pull patches from Gentoo # https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5b7b57438d399738 @@ -110,7 +113,8 @@ Patch41: chromium-base-location.patch # Pull upstream patches Patch50: chromium-gcc9-r681321.patch Patch51: chromium-gcc9-r681333.patch -Patch52: chromium-gcc9-r684731.patch +Patch52: chromium-gcc9-r681760.patch +Patch53: chromium-gcc9-r684731.patch # I don't have time to test whether it work on other architectures ExclusiveArch: x86_64 @@ -210,6 +214,11 @@ Conflicts: chromedriver-unstable %prep %autosetup -p1 +# This patch can only be applied on systems using PulseAudio 12.99, so we have +# to revert it on older Fedora releases. +%if 0%{?fedora} <= 30 +%patch31 -p1 -R +%endif # Don't use unversioned python commands in shebangs. This command is based on # https://src.fedoraproject.org/rpms/chromium/c/cdad6219176a7615 @@ -664,6 +673,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Thu Sep 12 2019 - Ting-Wei Lan <lantw44@gmail.com> - 77.0.3865.75-101 +- Patch pulse_stubs for Fedora 31 and later +- Fix harfbuzz linking issue on Fedora 31 and later + * Wed Sep 11 2019 - Ting-Wei Lan <lantw44@gmail.com> - 77.0.3865.75-100 - Update to 77.0.3865.75 - Fix python package names for Fedora 31 |