diff --git a/chromium-77-pulseaudio-13.patch b/chromium-77-pulseaudio-13.patch new file mode 100644 index 0000000..6f8c78d --- /dev/null +++ b/chromium-77-pulseaudio-13.patch @@ -0,0 +1,86 @@ +From b7091c42eb46871d9d7065de38de59a95f27b6f5 Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen +Date: Tue, 1 Oct 2019 20:09:28 +0000 +Subject: [PATCH] Fix building with pulseaudio 13 + +The function signatures changed though the ABI stayed the same. + +Bug: 1008856 +Change-Id: I7407ae5033d23fa08a7c5cd23417a91b0603615b +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1827415 +Reviewed-by: Thomas Guilbert +Commit-Queue: Dale Curtis +Cr-Commit-Position: refs/heads/master@{#701726} +--- + media/audio/pulse/pulse.sigs | 16 ++++++++-------- + media/audio/pulse/pulse_stub_header.fragment | 11 +++++++++++ + 2 files changed, 19 insertions(+), 8 deletions(-) + +diff --git a/media/audio/pulse/pulse.sigs b/media/audio/pulse/pulse.sigs +index 61779335b4ce8..85ff08ab78461 100644 +--- a/media/audio/pulse/pulse.sigs ++++ b/media/audio/pulse/pulse.sigs +@@ -24,11 +24,11 @@ pa_operation* pa_context_get_source_info_by_index(pa_context* c, uint32_t idx, p + 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_ptr 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_ptr o); + void pa_context_unref(pa_context* c); + void pa_operation_cancel(pa_operation* o) + void pa_operation_unref(pa_operation* o); +@@ -39,23 +39,23 @@ pa_operation* pa_stream_cork(pa_stream* s, int b, pa_stream_success_cb_t cb, voi + 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_ptr 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_ptr 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_ptr 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_ptr 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_ptr 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_ptr c); + const char* pa_strerror(int error); + pa_cvolume* pa_cvolume_set(pa_cvolume* a, unsigned channels, pa_volume_t v); +diff --git a/media/audio/pulse/pulse_stub_header.fragment b/media/audio/pulse/pulse_stub_header.fragment +index 2a2d3e7552b9b..cdaa841b29fb1 100644 +--- a/media/audio/pulse/pulse_stub_header.fragment ++++ b/media/audio/pulse/pulse_stub_header.fragment +@@ -5,4 +5,15 @@ extern "C" { + + #include + ++#if PA_MAJOR > 12 ++typedef const pa_context* const_pa_context_ptr; ++typedef const pa_operation* const_pa_operation_ptr; ++typedef const pa_proplist* const_pa_proplist_ptr; ++typedef const pa_stream* const_pa_stream_ptr; ++#else ++typedef pa_context* const_pa_context_ptr; ++typedef pa_operation* const_pa_operation_ptr; ++typedef pa_proplist* const_pa_proplist_ptr; ++typedef pa_stream* const_pa_stream_ptr; ++#endif + } diff --git a/chromium-browser-stable.spec b/chromium-browser-stable.spec index 74846c7..423b231 100644 --- a/chromium-browser-stable.spec +++ b/chromium-browser-stable.spec @@ -126,6 +126,8 @@ Patch603: chromium-66.0.3359.81-system-clang.patch Patch604: chromium-compiler-r4.patch # https://chromium.googlesource.com/chromium/src/+/40a8d84a54ac47d3299194c5377aebd71714f1f0%5E%21/ Patch607: chromium-67.0.3396.87-fix-build-llvm-ar.patch +# From Chromium 79 (https://github.com/chromium/chromium/commit/b7091c42eb46871d9d7065de38de59a95f27b6f5) +Patch608: chromium-77-pulseaudio-13.patch # Add "ROSA" to the user agent string Patch627: chromium-68.0.3440.106-rosa-user-agent.patch @@ -380,6 +382,7 @@ grep -rIl gostssl.so . | xargs sed -i 's/gostssl.so/libgostssl.so/g' ) %patch604 -p1 %patch607 -p1 +patch -p1 < %{PATCH608} %patch627 -p1 %patch629 -p1