mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-15 08:56:38 -05:00
Release 0.1.4
Remove spec file Fix systemd service file Send error on link errors Init socket to -1 so that we don't close anything on error Wait for all proxy objects in device monitor
This commit is contained in:
parent
5cc4c5c378
commit
b7e334e55d
6 changed files with 22 additions and 181 deletions
|
|
@ -1,5 +1,5 @@
|
||||||
project('pipewire', 'c',
|
project('pipewire', 'c',
|
||||||
version : '0.1.3.1',
|
version : '0.1.4',
|
||||||
meson_version : '>= 0.36.0',
|
meson_version : '>= 0.36.0',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'c_std=gnu99',
|
'c_std=gnu99',
|
||||||
|
|
|
||||||
176
pipewire.spec
176
pipewire.spec
|
|
@ -1,176 +0,0 @@
|
||||||
%global majorminor 0.1
|
|
||||||
|
|
||||||
#global snap 20141103
|
|
||||||
#global gitrel 327
|
|
||||||
#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d
|
|
||||||
#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
|
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/983606
|
|
||||||
%global _hardened_build 1
|
|
||||||
|
|
||||||
# where/how to apply multilib hacks
|
|
||||||
%global multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 ppc64le
|
|
||||||
|
|
||||||
Name: pipewire
|
|
||||||
Summary: Media Sharing Server
|
|
||||||
Version: 0.1.3.1
|
|
||||||
Release: 1%{?snap:.%{snap}git%{shortcommit}}%{?dist}
|
|
||||||
License: LGPLv2+
|
|
||||||
URL: http://www.freedesktop.org/wiki/Software/PipeWire
|
|
||||||
%if 0%{?gitrel}
|
|
||||||
# git clone git://anongit.freedesktop.org/gstreamer/pipewire
|
|
||||||
# cd pipewire; git reset --hard %{gitcommit}; ./autogen.sh; make; make distcheck
|
|
||||||
Source0: pipewire-%{version}-%{gitrel}-g%{shortcommit}.tar.gz
|
|
||||||
%else
|
|
||||||
Source0: http://freedesktop.org/software/pipewire/releases/pipewire-%{version}.tar.gz
|
|
||||||
%endif
|
|
||||||
|
|
||||||
## upstream patches
|
|
||||||
|
|
||||||
## upstreamable patches
|
|
||||||
|
|
||||||
BuildRequires: meson >= 0.35.0
|
|
||||||
BuildRequires: pkgconfig
|
|
||||||
BuildRequires: pkgconfig(libudev)
|
|
||||||
BuildRequires: pkgconfig(dbus-1)
|
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.32
|
|
||||||
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32
|
|
||||||
BuildRequires: pkgconfig(gstreamer-1.0) >= 1.10.0
|
|
||||||
BuildRequires: pkgconfig(gstreamer-base-1.0) >= 1.10.0
|
|
||||||
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) >= 1.10.0
|
|
||||||
BuildRequires: pkgconfig(gstreamer-net-1.0) >= 1.10.0
|
|
||||||
BuildRequires: pkgconfig(gstreamer-allocators-1.0) >= 1.10.0
|
|
||||||
BuildRequires: systemd-devel >= 184
|
|
||||||
BuildRequires: alsa-lib-devel
|
|
||||||
BuildRequires: libv4l-devel
|
|
||||||
BuildRequires: doxygen
|
|
||||||
BuildRequires: xmltoman
|
|
||||||
BuildRequires: graphviz
|
|
||||||
|
|
||||||
Requires(pre): shadow-utils
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
||||||
Requires: systemd >= 184
|
|
||||||
Requires: rtkit
|
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/983606
|
|
||||||
%global _hardened_build 1
|
|
||||||
|
|
||||||
## enable systemd activation
|
|
||||||
%global systemd 1
|
|
||||||
|
|
||||||
%description
|
|
||||||
PipeWire is a multimedia server for Linux and other Unix like operating
|
|
||||||
systems.
|
|
||||||
|
|
||||||
%package libs
|
|
||||||
Summary: Libraries for PipeWire clients
|
|
||||||
License: LGPLv2+
|
|
||||||
|
|
||||||
%description libs
|
|
||||||
This package contains the runtime libraries for any application that wishes
|
|
||||||
to interface with a PipeWire media server.
|
|
||||||
|
|
||||||
%package devel
|
|
||||||
Summary: Headers and libraries for PipeWire client development
|
|
||||||
License: LGPLv2+
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
||||||
%description devel
|
|
||||||
Headers and libraries for developing applications that can communicate with
|
|
||||||
a PipeWire media server.
|
|
||||||
|
|
||||||
%package doc
|
|
||||||
Summary: PipeWire media server documentation
|
|
||||||
License: LGPLv2+
|
|
||||||
|
|
||||||
%description doc
|
|
||||||
This package contains documentation for the PipeWire media server.
|
|
||||||
|
|
||||||
%package utils
|
|
||||||
Summary: PipeWire media server utilities
|
|
||||||
License: LGPLv2+
|
|
||||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
|
||||||
|
|
||||||
%description utils
|
|
||||||
This package contains command line utilities for the PipeWire media server.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}}
|
|
||||||
|
|
||||||
%build
|
|
||||||
%meson
|
|
||||||
%meson_build
|
|
||||||
|
|
||||||
%install
|
|
||||||
%meson_install
|
|
||||||
|
|
||||||
%check
|
|
||||||
%meson_test
|
|
||||||
|
|
||||||
%pre
|
|
||||||
getent group pipewire >/dev/null || groupadd -r pipewire
|
|
||||||
getent passwd pipewire >/dev/null || \
|
|
||||||
useradd -r -g pipewire -d /var/run/pipewire -s /sbin/nologin -c "PipeWire System Daemon" pipewire
|
|
||||||
exit 0
|
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
|
||||||
%postun -p /sbin/ldconfig
|
|
||||||
|
|
||||||
%files
|
|
||||||
%license LICENSE GPL LGPL
|
|
||||||
%doc README
|
|
||||||
%if 0%{?systemd}
|
|
||||||
%{_userunitdir}/pipewire.*
|
|
||||||
%endif
|
|
||||||
%{_bindir}/pipewire
|
|
||||||
%{_libdir}/libpipewire-%{majorminor}.so.*
|
|
||||||
%{_libdir}/libspa-lib.so.*
|
|
||||||
%{_libdir}/gstreamer-1.0/libgstpipewire.*
|
|
||||||
%{_libdir}/pipewire-%{majorminor}/
|
|
||||||
%{_libdir}/spa/
|
|
||||||
%{_mandir}/man1/pipewire.1*
|
|
||||||
%{_sysconfdir}/pipewire/pipewire.conf
|
|
||||||
|
|
||||||
%files libs
|
|
||||||
%license LICENSE GPL LGPL
|
|
||||||
%doc README
|
|
||||||
%dir %{_sysconfdir}/pipewire/
|
|
||||||
#%dir %{_libdir}/pipewire/
|
|
||||||
|
|
||||||
%files devel
|
|
||||||
%{_libdir}/libpipewire-%{majorminor}.so
|
|
||||||
%{_libdir}/libspa-lib.so
|
|
||||||
%{_includedir}/pipewire/
|
|
||||||
%{_includedir}/spa/
|
|
||||||
%{_libdir}/pkgconfig/libpipewire-%{majorminor}.pc
|
|
||||||
%{_libdir}/pkgconfig/libspa-%{majorminor}.pc
|
|
||||||
|
|
||||||
%files doc
|
|
||||||
%{_datadir}/doc/pipewire/html
|
|
||||||
|
|
||||||
%files utils
|
|
||||||
%{_bindir}/pipewire-monitor
|
|
||||||
%{_mandir}/man1/pipewire-monitor.1*
|
|
||||||
%{_bindir}/spa-monitor
|
|
||||||
%{_bindir}/spa-inspect
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Wed Aug 09 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.3-1
|
|
||||||
- Update to 0.1.3
|
|
||||||
|
|
||||||
* Tue Jul 04 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.2-1
|
|
||||||
- Update to 0.1.2
|
|
||||||
- Added more build requirements
|
|
||||||
- Make separate doc package
|
|
||||||
|
|
||||||
* Mon Jun 26 2017 Wim Taymans <wtaymans@redhat.com> - 0.1.1-1
|
|
||||||
- Update to 0.1.1
|
|
||||||
- Add dbus-1 to BuildRequires
|
|
||||||
- change libs-devel to -devel
|
|
||||||
|
|
||||||
* Wed Sep 9 2015 Wim Taymans <wtaymans@redhat.com> - 0.1.0-2
|
|
||||||
- Fix BuildRequires to use pkgconfig, add all dependencies found in configure.ac
|
|
||||||
- Add user and groups if needed
|
|
||||||
- Add license to %%licence
|
|
||||||
|
|
||||||
* Tue Sep 1 2015 Wim Taymans <wtaymans@redhat.com> - 0.1.0-1
|
|
||||||
- First version
|
|
||||||
|
|
@ -16,8 +16,7 @@ Description=Multimedia Service
|
||||||
Requires=pipewire.socket
|
Requires=pipewire.socket
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
# Note that notify will only work if --daemonize=no
|
Type=simple
|
||||||
Type=notify
|
|
||||||
ExecStart=@PW_BINARY@
|
ExecStart=@PW_BINARY@
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -297,8 +297,11 @@ on_sync_reply (void *data, uint32_t seq)
|
||||||
GstPipeWireDeviceProvider *self = data;
|
GstPipeWireDeviceProvider *self = data;
|
||||||
if (seq == 1)
|
if (seq == 1)
|
||||||
pw_core_proxy_sync(self->core_proxy, 2);
|
pw_core_proxy_sync(self->core_proxy, 2);
|
||||||
else if (seq == 2)
|
else if (seq == 2) {
|
||||||
self->end = true;
|
self->end = true;
|
||||||
|
if (self->main_loop)
|
||||||
|
pw_thread_loop_signal (self->main_loop, FALSE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
@ -563,6 +566,13 @@ gst_pipewire_device_provider_start (GstDeviceProvider * provider)
|
||||||
pw_registry_proxy_add_listener(self->registry, &data->registry_listener, ®istry_events, data);
|
pw_registry_proxy_add_listener(self->registry, &data->registry_listener, ®istry_events, data);
|
||||||
pw_core_proxy_sync(self->core_proxy, 1);
|
pw_core_proxy_sync(self->core_proxy, 1);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
if (self->end)
|
||||||
|
break;
|
||||||
|
pw_thread_loop_wait (self->main_loop);
|
||||||
|
}
|
||||||
|
GST_DEBUG_OBJECT (self, "started");
|
||||||
|
|
||||||
pw_thread_loop_unlock (self->main_loop);
|
pw_thread_loop_unlock (self->main_loop);
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
||||||
|
|
@ -117,8 +117,15 @@ link_state_changed(void *data, enum pw_link_state old, enum pw_link_state state,
|
||||||
|
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case PW_LINK_STATE_ERROR:
|
case PW_LINK_STATE_ERROR:
|
||||||
|
{
|
||||||
|
struct pw_resource *owner = pw_node_get_owner(info->node);
|
||||||
|
|
||||||
pw_log_debug("module %p: link %p: state error: %s", impl, link, error);
|
pw_log_debug("module %p: link %p: state error: %s", impl, link, error);
|
||||||
|
if (owner)
|
||||||
|
pw_resource_error(owner, SPA_RESULT_ERROR, error);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case PW_LINK_STATE_UNLINKED:
|
case PW_LINK_STATE_UNLINKED:
|
||||||
pw_log_debug("module %p: link %p: unlinked", impl, link);
|
pw_log_debug("module %p: link %p: unlinked", impl, link);
|
||||||
|
|
|
||||||
|
|
@ -625,6 +625,7 @@ impl_new_client(struct pw_protocol *protocol,
|
||||||
this->disconnect = impl_disconnect;
|
this->disconnect = impl_disconnect;
|
||||||
this->destroy = impl_destroy;
|
this->destroy = impl_destroy;
|
||||||
|
|
||||||
|
impl->fd = -1;
|
||||||
impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
|
impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
|
||||||
|
|
||||||
spa_list_append(&protocol->client_list, &this->link);
|
spa_list_append(&protocol->client_list, &this->link);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue