From e116fd0fc7270d308792bc56e849c5b237539c6c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 14 Aug 2019 16:52:41 +0200 Subject: [PATCH] Pulseaudio changed the API in 12.99 and we need to adapt the signatures --- chromium-76.0.3809.100-pulse-api-change.patch | 42 +++++++++++++++++++ chromium.spec | 13 +++++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 chromium-76.0.3809.100-pulse-api-change.patch diff --git a/chromium-76.0.3809.100-pulse-api-change.patch b/chromium-76.0.3809.100-pulse-api-change.patch new file mode 100644 index 00000000..37d3dfaa --- /dev/null +++ b/chromium-76.0.3809.100-pulse-api-change.patch @@ -0,0 +1,42 @@ +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 16:27:55.057702172 +0200 ++++ chromium-76.0.3809.100/media/audio/pulse/pulse.sigs 2019-08-14 16:37:21.603479886 +0200 +@@ -24,7 +24,7 @@ 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); +@@ -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.spec b/chromium.spec index bf6bdcb3..f91b60b2 100644 --- a/chromium.spec +++ b/chromium.spec @@ -141,6 +141,13 @@ BuildRequires: libicu-devel >= 5.4 %global bundleharfbuzz 0 %endif +# Pulseaudio changed the API a little in 12.99.1 +%if 0%{?fedora} > 30 +%global pulseaudioapichange 1 +%else +%global pulseaudioapichange 0 +%endif + ### Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) ### Note: These are for Fedora use ONLY. ### For your own distribution, please get your own set of keys. @@ -306,6 +313,8 @@ Patch202: enable-vaapi.patch Patch203: chromium-75.0.3770.80-vaapi-i686-fpermissive.patch # Fix compatibility with VA-API library (libva) version 1 Patch204: chromium-75.0.3770.80-vaapi-libva1-compatibility.patch +# Pulseaudio changed the API a little in 12.99.1 +Patch205: chromium-76.0.3809.100-pulse-api-change.patch # Use chromium-latest.py to generate clean tarball from released build tarballs, found here: # http://build.chromium.org/buildbot/official/ @@ -491,7 +500,6 @@ BuildRequires: pkgconfig(gtk+-3.0) %else BuildRequires: pkgconfig(gtk+-2.0) %endif -BuildRequires: pulseaudio-libs-devel BuildRequires: python2-devel %if 0%{?fedora} > 27 BuildRequires: python2-beautifulsoup4 @@ -871,6 +879,9 @@ udev. %endif %endif +%if 0%{?pulseaudioapichange} +%patch205 -p1 -b .pulseaudioapichange +%endif # Change shebang in all relevant files in this directory and all subdirectories # See `man find` for how the `-exec command {} +` syntax works