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:
Wim Taymans 2017-08-23 10:45:08 +02:00
parent 5cc4c5c378
commit b7e334e55d
6 changed files with 22 additions and 181 deletions

View file

@ -1,5 +1,5 @@
project('pipewire', 'c',
version : '0.1.3.1',
version : '0.1.4',
meson_version : '>= 0.36.0',
default_options : [ 'warning_level=1',
'c_std=gnu99',

View file

@ -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

View file

@ -16,8 +16,7 @@ Description=Multimedia Service
Requires=pipewire.socket
[Service]
# Note that notify will only work if --daemonize=no
Type=notify
Type=simple
ExecStart=@PW_BINARY@
Restart=on-failure

View file

@ -297,8 +297,11 @@ on_sync_reply (void *data, uint32_t seq)
GstPipeWireDeviceProvider *self = data;
if (seq == 1)
pw_core_proxy_sync(self->core_proxy, 2);
else if (seq == 2)
else if (seq == 2) {
self->end = true;
if (self->main_loop)
pw_thread_loop_signal (self->main_loop, FALSE);
}
}
static void
@ -563,6 +566,13 @@ gst_pipewire_device_provider_start (GstDeviceProvider * provider)
pw_registry_proxy_add_listener(self->registry, &data->registry_listener, &registry_events, data);
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);
return TRUE;

View file

@ -117,8 +117,15 @@ link_state_changed(void *data, enum pw_link_state old, enum pw_link_state state,
switch (state) {
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);
if (owner)
pw_resource_error(owner, SPA_RESULT_ERROR, error);
break;
}
case PW_LINK_STATE_UNLINKED:
pw_log_debug("module %p: link %p: unlinked", impl, link);

View file

@ -625,7 +625,8 @@ impl_new_client(struct pw_protocol *protocol,
this->disconnect = impl_disconnect;
this->destroy = impl_destroy;
impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
impl->fd = -1;
impl->flush_event = pw_loop_add_event(remote->core->main_loop, do_flush_event, impl);
spa_list_append(&protocol->client_list, &this->link);