diff --git a/fix-bug-of-build-fails-on-16-17-test-support.patch b/fix-bug-of-build-fails-on-16-17-test-support.patch deleted file mode 100644 index d2839f3a5c84005051f57d49789fe4c0b69030b2..0000000000000000000000000000000000000000 --- a/fix-bug-of-build-fails-on-16-17-test-support.patch +++ /dev/null @@ -1,215 +0,0 @@ -refers to: -https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1710 -tree merge: -https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1005 -https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1009 -https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/1076 - -diff --git a/test/test-logger.c b/test/test-logger.c -index 2e7820c..fde4642 100644 ---- a/test/test-logger.c -+++ b/test/test-logger.c -@@ -478,6 +478,7 @@ PWTEST(logger_journal) - } - - sd_journal_seek_tail(journal); -+ sd_journal_next(journal); - - spa_logt_info(iface, &topic, "MARK\n"); - while ((rc = sd_journal_next(journal)) > 0) { -@@ -555,6 +556,7 @@ PWTEST(logger_journal_chain) - } - - sd_journal_seek_tail(journal); -+ sd_journal_next(journal); - - spa_logt_info(iface, &topic, "MARK\n"); - while ((rc = sd_journal_next(journal)) > 0) { -diff --git a/test/test-logger.c b/test/test-logger.c -index fde4642..338cd81 100644 ---- a/test/test-logger.c -+++ b/test/test-logger.c -@@ -295,7 +295,7 @@ PWTEST(logger_debug_env_topic_all) - struct spa_log *default_logger = pw_log_get(); - char *oldenv = getenv("PIPEWIRE_DEBUG"); - char lvlstr[32]; -- char *lvl = SPA_LOG_LEVEL_NONE; -+ char *lvl = "X"; - - if (oldenv) - oldenv = strdup(oldenv); -@@ -442,6 +442,45 @@ PWTEST(logger_topics) - return PWTEST_PASS; - } - -+#ifdef HAVE_SYSTEMD -+static enum pwtest_result -+find_in_journal(sd_journal *journal, const char *needle, char *out, size_t out_sz) -+{ -+ int rc; -+ int i; -+ -+ /* We give ourselves up to a second for our message to appear */ -+ for (i = 0; i < 10; i++) { -+ int activity = sd_journal_wait(journal, 100000); -+ -+ pwtest_neg_errno_ok(activity); -+ switch (activity) { -+ case SD_JOURNAL_NOP: -+ break; -+ case SD_JOURNAL_INVALIDATE: -+ case SD_JOURNAL_APPEND: -+ while ((rc = sd_journal_next(journal)) > 0) { -+ char buffer[1024] = {0}; -+ const char *d; -+ size_t l; -+ int r = sd_journal_get_data(journal, "MESSAGE", (const void **)&d, &l); -+ pwtest_neg_errno_ok(r); -+ spa_scnprintf(buffer, sizeof(buffer), "%.*s", (int) l, d); -+ if (strstr(buffer, needle)) { -+ spa_scnprintf(out, out_sz, "%s", buffer); -+ return PWTEST_PASS; -+ } -+ } -+ pwtest_neg_errno_ok(rc); -+ break; -+ default: -+ break; -+ } -+ } -+ return PWTEST_FAIL; -+} -+#endif -+ - PWTEST(logger_journal) - { - enum pwtest_result result = PWTEST_SKIP; -@@ -450,14 +489,15 @@ PWTEST(logger_journal) - void *iface; - struct spa_dict_item items[2]; - struct spa_dict info; -- bool mark_line_found = false; - struct spa_log_topic topic = { - .version = 0, - .topic = "pwtest journal", - .level = SPA_LOG_LEVEL_DEBUG, - }; -+ char buffer[1024] = {0}; - sd_journal *journal; - int rc; -+ char token[64]; - - pw_init(0, NULL); - -@@ -480,23 +520,12 @@ PWTEST(logger_journal) - sd_journal_seek_tail(journal); - sd_journal_next(journal); - -- spa_logt_info(iface, &topic, "MARK\n"); -- while ((rc = sd_journal_next(journal)) > 0) { -- char buffer[1024] = {0}; -- const char *d; -- size_t l; -- int r = sd_journal_get_data(journal, "MESSAGE", (const void **)&d, &l); -- pwtest_neg_errno_ok(r); -- spa_scnprintf(buffer, sizeof(buffer), "%.*s", (int) l, d); -- if (strstr(buffer, "MARK")) { -- mark_line_found = true; -- pwtest_str_contains(buffer, "pwtest journal"); -- } -- } -- pwtest_neg_errno_ok(rc); -- pwtest_bool_true(mark_line_found); -+ spa_scnprintf(token, sizeof(token), "MARK %s:%d", __func__, __LINE__); -+ spa_logt_info(iface, &topic, "%s", token); - -- result = PWTEST_PASS; -+ result = find_in_journal(journal, token, buffer, sizeof(buffer)); -+ pwtest_int_eq((int)result, PWTEST_PASS); -+ pwtest_str_contains(buffer, "pwtest journal"); - - cleanup: - sd_journal_close(journal); -@@ -526,6 +555,7 @@ PWTEST(logger_journal_chain) - }; - sd_journal *journal; - int rc; -+ char token[64]; - - pw_init(0, NULL); - pwtest_mkstemp(fname); -@@ -558,27 +588,19 @@ PWTEST(logger_journal_chain) - sd_journal_seek_tail(journal); - sd_journal_next(journal); - -- spa_logt_info(iface, &topic, "MARK\n"); -- while ((rc = sd_journal_next(journal)) > 0) { -- char buffer[1024] = {0}; -- const char *d; -- size_t l; -- int r = sd_journal_get_data(journal, "MESSAGE", (const void **)&d, &l); -- pwtest_neg_errno_ok(r); -- spa_scnprintf(buffer, sizeof(buffer), "%.*s", (int) l, d); -- if (strstr(buffer, "MARK")) { -- mark_line_found = true; -- pwtest_str_contains(buffer, "pwtest journal"); -- } -- } -- pwtest_neg_errno_ok(rc); -- pwtest_bool_true(mark_line_found); -+ spa_scnprintf(token, sizeof(token), "MARK %s:%d", __func__, __LINE__); -+ -+ spa_logt_info(iface, &topic, "%s", token); -+ result = find_in_journal(journal, token, buffer, sizeof(buffer)); -+ pwtest_int_eq((int)result, PWTEST_PASS); -+ pwtest_str_contains(buffer, "pwtest journal"); - - /* Now check that the line is in the chained file logger too */ -+ spa_memzero(buffer, sizeof(buffer)); - mark_line_found = false; - fp = fopen(fname, "r"); - while (fgets(buffer, sizeof(buffer), fp) != NULL) { -- if (strstr(buffer, "MARK")) { -+ if (strstr(buffer, token)) { - mark_line_found = true; - pwtest_ptr_null(strstr(buffer, SPA_ANSI_RESET)); - pwtest_ptr_null(strstr(buffer, SPA_ANSI_RED)); -diff --git a/test/pwtest.c b/test/pwtest.c -index 073014a..24a14f2 100644 ---- a/test/pwtest.c -+++ b/test/pwtest.c -@@ -987,6 +987,12 @@ error: - } - } - -+ for (size_t i = 0; i < SPA_N_ELEMENTS(t->logs); i++) { -+ char *e = pw_array_add(&t->logs[i], 1); -+ spa_assert_se(e); -+ *e = '\0'; -+ } -+ - close_pipes(read_fds); - close_pipes(write_fds); - -diff --git a/test/test-logger.c b/test/test-logger.c -index 338cd81..a1b0ff0 100644 ---- a/test/test-logger.c -+++ b/test/test-logger.c -@@ -24,6 +24,7 @@ - - #include "pwtest.h" - -+#include - #include - #include - -@@ -464,6 +465,9 @@ find_in_journal(sd_journal *journal, const char *needle, char *out, size_t out_s - const char *d; - size_t l; - int r = sd_journal_get_data(journal, "MESSAGE", (const void **)&d, &l); -+ if (r == -ENOENT || r == -E2BIG || r == -EBADMSG) -+ continue; -+ - pwtest_neg_errno_ok(r); - spa_scnprintf(buffer, sizeof(buffer), "%.*s", (int) l, d); - if (strstr(buffer, needle)) { diff --git a/fix-missing-NAME-define-under-arm.patch b/fix-missing-NAME-define-under-arm.patch deleted file mode 100644 index c03195aade0c52bfe248c7e52eca235b4dd51b62..0000000000000000000000000000000000000000 --- a/fix-missing-NAME-define-under-arm.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up pipewire-0.3.38/spa/plugins/support/cpu-arm.c.bak pipewire-0.3.38/spa/plugins/support/cpu-arm.c ---- pipewire-0.3.38/spa/plugins/support/cpu-arm.c.bak 2022-06-20 09:43:01.381000000 +0000 -+++ pipewire-0.3.38/spa/plugins/support/cpu-arm.c 2022-06-20 09:42:41.645000000 +0000 -@@ -28,6 +28,8 @@ - - #include - -+#define NAME "cpu-arm" -+ - #define MAX_BUFFER 4096 - - static char *get_cpuinfo_line(char *cpuinfo, const char *tag) diff --git a/pipewire-0.3.38.tar.gz b/pipewire-0.3.38.tar.gz deleted file mode 100644 index 5b913376708b7ff2c52d315de1ee2ebcb1357d78..0000000000000000000000000000000000000000 Binary files a/pipewire-0.3.38.tar.gz and /dev/null differ diff --git a/pipewire-0.3.63.tar.gz b/pipewire-0.3.63.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..6095eae08ea360037f5803fb8ff2d2543ee6f48b Binary files /dev/null and b/pipewire-0.3.63.tar.gz differ diff --git a/pipewire.spec b/pipewire.spec index 079b74b7b5338dc8ae10fdcd760980d87c208b5b..160638d9f9197cf32c3e36b5bf9e05a420c71942 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -2,7 +2,7 @@ %global spaversion 0.2 %global systemd 1 %global minorversion 3 -%global microversion 38 +%global microversion 63 %global soversion 0 %global multilib_archs x86_64 %global libversion %{soversion}.%(bash -c '((intversion = (%{minorversion} * 100) + %{microversion})); echo ${intversion}').0 @@ -13,20 +13,21 @@ %global enable_vulkan 0 Name: pipewire -Version: 0.3.38 -Release: 2 +Version: 0.3.63 +Release: 1 Summary: Multimedia processing graphs License: LGPLv2+ URL: https://pipewire.org/ Source0: https://github.com/pipewire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz -Patch01: fix-bug-of-build-fails-on-16-17-test-support.patch -Patch02: fix-missing-NAME-define-under-arm.patch +#Patch01: fix-bug-of-build-fails-on-16-17-test-support.patch +#Patch02: fix-missing-NAME-define-under-arm.patch -BuildRequires: meson gcc g++ pkgconf-pkg-config libudev-devel dbus-devel glib2-devel pipewire-gstreamer -BuildRequires: gstreamer1-devel gstreamer1-plugins-base-devel systemd-devel vulkan-loader-devel +BuildRequires: meson gcc g++ pkgconf-pkg-config libudev-devel dbus-devel glib2-devel >= 2.32 pipewire-gstreamer +BuildRequires: gstreamer1-devel >= 1.10.0 gstreamer1-plugins-base-devel >= 1.10.0 systemd-devel vulkan-loader-devel BuildRequires: alsa-lib-devel libv4l-devel doxygen xmltoman graphviz sbc-devel libsndfile-devel BuildRequires: bluez-devel SDL2-devel jack-audio-connection-kit-devel python3-docutils -BuildRequires: webrtc-audio-processing-devel libldac-devel libusbx-devel +BuildRequires: webrtc-audio-processing-devel >= 0.2 libldac-devel libusbx-devel +BuildRequires: readline-devel libcanberra-devel lilv-devel #remove rpath BuildRequires: chrpath @@ -176,7 +177,9 @@ This package provides a PulseAudio implementation based on PipeWire -D audiotestsrc=disabled -D videotestsrc=disabled \ -D volume=disabled -D bluez5-codec-aptx=disabled -D roc=disabled \ -D libcamera=disabled -D jack-devel=true -D pipewire-alsa=disabled \ - -D bluez5-codec-aac=disabled -D echo-cancel-webrtc=disabled + -D bluez5-codec-aac=disabled -D echo-cancel-webrtc=disabled \ + -D bluez5-codec-lc3plus=disabled -D bluez5-codec-opus=disabled \ + -D session-managers=[] %meson_build %install @@ -190,24 +193,24 @@ mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ echo %{_libdir}/pipewire-%{apiversion}/jack/ > %{buildroot}%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf %else rm %{buildroot}%{_datadir}/pipewire/jack.conf -rm %{buildroot}%{_datadir}/pipewire/media-session.d/with-jack +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/with-jack %endif # If the PulseAudio replacement isn't being offered, delete the files rm %{buildroot}%{_bindir}/pipewire-pulse rm %{buildroot}%{_userunitdir}/pipewire-pulse.* -rm %{buildroot}%{_datadir}/pipewire/media-session.d/with-pulseaudio +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/with-pulseaudio rm %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf # rm media_session related -rm %{buildroot}%{_datadir}/pipewire/media-session.d/alsa-monitor.conf -rm %{buildroot}%{_datadir}/pipewire/media-session.d/bluez-monitor.conf -rm %{buildroot}%{_datadir}/pipewire/media-session.d/media-session.conf -rm %{buildroot}%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/alsa-monitor.conf +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/bluez-monitor.conf +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/media-session.conf +#rm %{buildroot}%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf rm %{buildroot}%{_datadir}/spa-0.2/bluez5/bluez-hardware.conf # We don't start the media session with systemd yet -rm %{buildroot}%{_userunitdir}/pipewire-media-session.* +#rm %{buildroot}%{_userunitdir}/pipewire-media-session.* %find_lang %{name} @@ -250,16 +253,21 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || : %license LICENSE COPYING %{_libdir}/alsa-lib/libasound_module_* %{_bindir}/pipewire -%{_bindir}/pipewire-media-session +#%%{_bindir}/pipewire-media-session %{_userunitdir}/pipewire.* +%{_userunitdir}/filter-chain.service %{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/filter-chain/*.conf +%{_datadir}/pipewire/filter-chain.conf +%{_datadir}/pipewire/minimal.conf +%{_datadir}/pipewire/pipewire-avb.conf %files libs -f %{name}.lang %defattr(-,root,root) %license LICENSE COPYING %{_libdir}/libpipewire-%{apiversion}.so.* %{_libdir}/pipewire-%{apiversion}/libpipewire-*.so +%{_libdir}/pipewire-%{apiversion}/v4l2/ %dir %{_datadir}/alsa-card-profile/ %dir %{_datadir}/alsa-card-profile/mixer/ %{_datadir}/alsa-card-profile/mixer/paths/ @@ -274,6 +282,9 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || : %{_libdir}/spa-%{spaversion}/support/ %{_libdir}/spa-%{spaversion}/v4l2/ %{_libdir}/spa-%{spaversion}/videoconvert/ +%{_libdir}/spa-%{spaversion}/aec/ +%{_libdir}/spa-%{spaversion}/avb/ + %if 0%{?enable_vulkan} %{_libdir}/spa-%{spaversion}/vulkan/ %endif @@ -313,6 +324,10 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || : %{_bindir}/pw-link %{_bindir}/pw-loopback %{_bindir}/spa-json-dump +%{_bindir}/pipewire-avb +%{_bindir}/pw-cli +%{_bindir}/pw-top +%{_bindir}/pw-v4l2 %if 0%{?enable_alsa} %files alsa @@ -374,6 +389,9 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || : %{_datadir}/doc/pipewire/html/* %changelog +* Mon Jan 02 2023 lin zhang - 0.3.63-1 +- update version to 0.3.63 + * Tue Sep 13 2022 zhouwenpei - 0.3.38-2 - fix rpath compile option