-#
-# TODO:
-# - finish with_apidocs
-# - check BRs for gtk+3
-# - make gtk3 bcond enabled by default when gtk+3 will be stable
-# - introspection files
-# - dbus files
+# TODO
+# - finish with_apidocs
+# - qt and Qt packages make file collisions on case insensitive filesystems,
+# consider adding version suffix to either of the pckages
#
# Conditional build:
%bcond_with apidocs # build API documentation
%bcond_without dotnet # build without dotnet bindings
%bcond_without gtk # build without GTK+
-%bcond_with gtk3 # build without GTK+3
+%bcond_without gtk3 # build without GTK+3
%bcond_without pygtk # build without PyGTK
%bcond_without qt # build without (any) qt bindings
%bcond_without qt3 # build without qt3 bindings
%undefine with_qt4
%endif
+# see http://lists.pld-linux.org/mailman/pipermail/pld-devel-pl/2012-October/155984.html
+%undefine _ssp_cflags
+
%{?with_dotnet:%include /usr/lib/rpm/macros.mono}
Summary: Free mDNS/DNS-SD/Zeroconf implementation
Summary(pl.UTF-8): Wolna implementacja mDNS/DNS-SD/Zeroconf
Name: avahi
-Version: 0.6.26
-Release: 2
+Version: 0.6.31
+Release: 7
License: LGPL v2.1+
Group: Applications
Source0: http://avahi.org/download/%{name}-%{version}.tar.gz
-# Source0-md5: 2b2b1899fcec5ae74e92f111598913a1
+# Source0-md5: 2f22745b8f7368ad5a0a3fddac343f2d
Source1: %{name}-daemon
Source2: %{name}-dnsconfd
Source3: %{name}.png
Patch4: nss-mdns-package.patch
Patch5: %{name}-dhclient_hooks.patch
Patch6: %{name}-autoipd-sbin_ip.patch
-Patch7: %{name}-gtk_detect.patch
-Patch8: gir.patch
+Patch7: 01_%{name}-daemon.conf.patch
+Patch8: %{name}-core-reserve-space-for-record-data-when-size-estimate.patch
URL: http://avahi.org/
-BuildRequires: autoconf
-BuildRequires: automake
+BuildRequires: autoconf >= 2.63
+BuildRequires: automake >= 1:1.11
BuildRequires: dbus-devel >= 0.92
%if %{with apidocs}
BuildRequires: doxygen
BuildRequires: expat-devel
BuildRequires: gdbm-devel
BuildRequires: gettext-devel
+BuildRequires: gobject-introspection-devel >= 0.9.5
%if %{with gtk}
BuildRequires: glib2-devel >= 1:2.12.2
-BuildRequires: gtk+2-devel >= 2:2.10.2
-BuildRequires: libglade2-devel >= 1:2.6.0
+BuildRequires: gtk+2-devel >= 2:2.14.0
%endif
%if %{with gtk3}
-BuildRequires: glib2-devel
-BuildRequires: gtk+3-devel
-BuildRequires: libglade2-devel
+BuildRequires: glib2-devel >= 1:2.28.0
+BuildRequires: gtk+3-devel >= 3.0.0
%endif
BuildRequires: intltool >= 0.35
BuildRequires: libcap-devel
-BuildRequires: libdaemon-devel >= 0.11
+BuildRequires: libdaemon-devel >= 0.14
BuildRequires: libtool
%if %{with dotnet}
BuildRequires: dotnet-gtk-sharp2-devel >= 2.10
BuildRequires: qt-devel >= 1:3.0
%endif
%if %{with qt4}
-BuildRequires: QtCore-devel
+BuildRequires: QtCore-devel >= 4.0.0
BuildRequires: qt4-build
%endif
BuildRequires: rpm-pythonprov
-BuildRequires: rpmbuild(macros) >= 1.561
+BuildRequires: rpmbuild(macros) >= 1.626
Requires(post,preun): /sbin/chkconfig
+Requires(post,preun,postun): systemd-units >= 38
Requires: %{name}-libs = %{version}-%{release}
Requires: dbus >= 0.92
-Requires: libdaemon >= 0.11
+Requires: libdaemon >= 0.14
Requires: rc-scripts >= 0.4.3
+Requires: systemd-units >= 38
Suggests: nss_mdns >= 0.10-2
Provides: group(avahi)
Provides: user(avahi)
+Obsoletes: avahi-systemd
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
Group: Daemons
Requires: %{name} = %{version}-%{release}
Requires: upstart >= 0.6
+Conflicts: syslog-ng-upstart < 3.2.4-1
%description upstart
Upstart jobs description for Avahi daemons.
Summary(pl.UTF-8): Biblioteka Avahi UI
Group: X11/Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: gtk+2 >= 2:2.10.2
+Requires: gtk+2 >= 2:2.14.0
%description ui
Common GTK+ UI support library for Avahi.
Group: X11/Development/Libraries
Requires: %{name}-devel = %{version}-%{release}
Requires: %{name}-ui = %{version}-%{release}
-Requires: gtk+2-devel >= 2:2.10.2
+Requires: %{name}-ui-devel-common = %{version}-%{release}
+Requires: gtk+2-devel >= 2:2.14.0
%description ui-devel
Header files for Avahi UI library.
%description ui-static -l pl.UTF-8
Statyczna biblioteka Avahi UI.
+%package ui-devel-common
+Summary: Header files for Avahi UI library
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Avahi UI
+Group: X11/Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description ui-devel-common
+Header files for Avahi UI library.
+
+%description ui-devel-common -l pl.UTF-8
+Pliki nagłówkowe biblioteki Avahi GTK+ UI.
+
+%package ui-gtk3
+Summary: Avahi UI library - GTK+ 3.x version
+Summary(pl.UTF-8): Biblioteka Avahi UI - wersja dla GTK+ 3.x
+Group: X11/Libraries
+Requires: %{name}-libs = %{version}-%{release}
+
+%description ui-gtk3
+Common GTK+ 3.x UI support library for Avahi.
+
+%description ui-gtk3 -l pl.UTF-8
+Biblioteka wspólnego interfejsu użytkownika GTK+ 3.x dla Avahi.
+
+%package ui-gtk3-devel
+Summary: Header files for Avahi UI library - GTK+ 3.x version
+Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Avahi UI - wersja dla GTK+ 3.x
+Group: X11/Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+Requires: %{name}-ui-devel-common = %{version}-%{release}
+Requires: %{name}-ui-gtk3 = %{version}-%{release}
+
+%description ui-gtk3-devel
+Header files for Avahi GTK+ 3.x UI library.
+
+%description ui-devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki Avahi GTK+ 3.x UI.
+
+%package ui-gtk3-static
+Summary: Static Avahi UI library - GTK+ 3.x version
+Summary(pl.UTF-8): Statyczna biblioteka Avahi UI - wersja GTK+ 3.x
+Group: X11/Development/Libraries
+Requires: %{name}-ui-gtk3-devel = %{version}-%{release}
+
+%description ui-gtk3-static
+Static Avahi GTK+ 3.x UI library.
+
+%description ui-gtk3-static -l pl.UTF-8
+Statyczna biblioteka Avahi GTK+ 3.x UI.
+
%package compat-libdns_sd
Summary: Avahi Bonjour compat library
Summary(pl.UTF-8): Biblioteka Avahi zgodna z Bonjour
Group: Libraries
+Requires: %{name}-libs = %{version}-%{release}
Provides: mdns-bonjour
Obsoletes: mDNSResponder-libs
%package bookmarks
Summary: Miniature web server
-Summary(pl.UTF-8): Miniaturowy serwer web
+Summary(pl.UTF-8): Miniaturowy serwer WWW
Group: Applications
%description bookmarks
%{__autoheader}
%{__automake}
%configure \
+ --disable-stack-protector \
--disable-silent-rules \
--enable-compat-libdns_sd \
--enable-compat-howl \
%{!?with_qt4:--disable-qt4} \
%{!?with_dotnet:--disable-mono} \
%{!?with_dotnet:--disable-monodoc} \
+ --with-systemdsystemunitdir=%{systemdunitdir} \
--with-avahi-priv-access-group=adm \
--with-autoipd-user=avahi \
--with-autoipd-group=avahi
pythondir=%{py_sitedir}
install -p %{SOURCE1} %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d
-cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_pixmapsdir}
+cp -p %{SOURCE3} $RPM_BUILD_ROOT%{_pixmapsdir}
-install %{SOURCE4} $RPM_BUILD_ROOT/etc/init/avahi-daemon.conf
-install %{SOURCE5} $RPM_BUILD_ROOT/etc/init/avahi-dnsconfd.conf
+cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/init/avahi-daemon.conf
+cp -p %{SOURCE5} $RPM_BUILD_ROOT/etc/init/avahi-dnsconfd.conf
ln -sf %{_includedir}/avahi-compat-libdns_sd/dns_sd.h \
$RPM_BUILD_ROOT%{_includedir}/dns_sd.h
%py_comp $RPM_BUILD_ROOT%{py_sitedir}
%py_postclean
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/{avahi-{browse-domains,publish-address,publish-service,resolve-address,resolve-host-name},bvnc}.1
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/avahi-{browse-domains,publish-address,publish-service,resolve-address,resolve-host-name}.1
+%{?with_gtk:%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/bvnc.1}
echo '.so avahi-browse.1' > $RPM_BUILD_ROOT%{_mandir}/man1/avahi-browse-domains.1
echo '.so avahi-publish.1' > $RPM_BUILD_ROOT%{_mandir}/man1/avahi-publish-address.1
echo '.so avahi-publish.1' > $RPM_BUILD_ROOT%{_mandir}/man1/avahi-publish-service.1
echo '.so avahi-resolve.1' > $RPM_BUILD_ROOT%{_mandir}/man1/avahi-resolve-address.1
echo '.so avahi-resolve.1' > $RPM_BUILD_ROOT%{_mandir}/man1/avahi-resolve-host-name.1
echo '.so bssh.1' > $RPM_BUILD_ROOT%{_mandir}/man1/bvnc.1
+echo '.so bssh.1' > $RPM_BUILD_ROOT%{_mandir}/man1/bshell.1
+
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
%find_lang %{name}
%service %{name}-daemon restart
/sbin/chkconfig --add %{name}-dnsconfd
%service %{name}-dnsconfd restart
+%systemd_post avahi-daemon.service avahi-dnsconfd.service avahi-daemon.socket
%preun
if [ "$1" = "0" ]; then
%service -q %{name}-daemon stop
/sbin/chkconfig --del %{name}-daemon
fi
+%systemd_preun avahi-daemon.service avahi-dnsconfd.service avahi-daemon.socket
%postun
if [ "$1" = "0" ]; then
%userremove avahi
%groupremove avahi
fi
+%systemd_reload
+
+%triggerpostun -- avahi < 0.6.30-7
+%systemd_trigger avahi-daemon.service avahi-dnsconfd.service avahi-daemon.socket
%postun autoipd
if [ "$1" = "0" ]; then
%post ui -p /sbin/ldconfig
%postun ui -p /sbin/ldconfig
+%post ui-gtk3 -p /sbin/ldconfig
+%postun ui-gtk3 -p /sbin/ldconfig
+
%post compat-libdns_sd -p /sbin/ldconfig
%postun compat-libdns_sd -p /sbin/ldconfig
%dir %{_sysconfdir}/avahi
%dir %{_sysconfdir}/avahi/services
+%attr(755,root,root) %{_sysconfdir}/avahi/avahi-dnsconfd.action
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/avahi-daemon.conf
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/avahi-dnsconfd.action
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/hosts
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/services/ssh.service
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/avahi/services/sftp-ssh.service
-%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/*
+%config(noreplace) %verify(not md5 mtime size) /etc/dbus-1/system.d/avahi-dbus.conf
+
+%{systemdunitdir}/avahi-daemon.service
+%{systemdunitdir}/avahi-daemon.socket
+%{systemdunitdir}/avahi-dnsconfd.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.Avahi.service
%attr(755,root,root) %{_bindir}/avahi-set-host-name
%attr(755,root,root) %{_sbindir}/avahi-daemon
%attr(755,root,root) %{_sbindir}/avahi-dnsconfd
-
-#%%dir %{_datadir}/%{name}/introspection
-#%%{_datadir}/%{name}/introspection/*.introspect
-%{_datadir}/%{name}/avahi-service.dtd
-%{_datadir}/%{name}/service-types
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/service-types.db
+%{_datadir}/%{name}/avahi-service.dtd
+%{_datadir}/%{name}/service-types
+%{_datadir}/dbus-1/interfaces/org.freedesktop.Avahi.*.xml
%{_mandir}/man1/avahi-set-host-name.1*
%{_mandir}/man5/avahi-daemon.conf.5*
%attr(754,root,root) /etc/rc.d/init.d/%{name}-daemon
%attr(754,root,root) /etc/rc.d/init.d/%{name}-dnsconfd
+%if "%{pld_release}" != "ti"
%files upstart
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) /etc/init/*.conf
+%endif
%files autoipd
%defattr(644,root,root,755)
%dir %{_sysconfdir}/avahi
%attr(755,root,root) %{_sysconfdir}/%{name}/avahi-autoipd.action
-%dir %{_sysconfdir}/dhclient-enter-hooks.d
%config(noreplace) %verify(not md5 mtime size) /etc/dhclient-enter-hooks.d/avahi-autoipd
-%dir %{_sysconfdir}/dhclient-exit-hooks.d
%config(noreplace) %verify(not md5 mtime size) /etc/dhclient-exit-hooks.d/avahi-autoipd
%attr(755,root,root) %{_sbindir}/avahi-autoipd
%{_mandir}/man8/avahi-autoipd.8*
%attr(755,root,root) %{_libdir}/libavahi-client.so
%attr(755,root,root) %{_libdir}/libavahi-common.so
%attr(755,root,root) %{_libdir}/libavahi-core.so
-%{_libdir}/libavahi-client.la
-%{_libdir}/libavahi-common.la
-%{_libdir}/libavahi-core.la
%{_includedir}/avahi-client
%{_includedir}/avahi-common
%{_includedir}/avahi-core
%if %{with gtk}
%files ui
%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libavahi-ui.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavahi-ui.so.0
+%if %{without gtk3}
%attr(755,root,root) %{_bindir}/bshell
%attr(755,root,root) %{_bindir}/bssh
%attr(755,root,root) %{_bindir}/bvnc
-%attr(755,root,root) %{_libdir}/libavahi-ui.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libavahi-ui.so.0
+%{_mandir}/man1/bshell.1*
%{_mandir}/man1/bssh.1*
%{_mandir}/man1/bvnc.1*
%{_desktopdir}/bssh.desktop
%{_desktopdir}/bvnc.desktop
+%endif
%files ui-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-ui.so
-%{_libdir}/libavahi-ui.la
-%{_includedir}/avahi-ui
%{_pkgconfigdir}/avahi-ui.pc
%files ui-static
%{_libdir}/libavahi-ui.a
%endif
+%if %{with gtk} || %{with gtk3}
+%files ui-devel-common
+%defattr(644,root,root,755)
+%{_includedir}/avahi-ui
+%endif
+
+%if %{with gtk3}
+%files ui-gtk3
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/bshell
+%attr(755,root,root) %{_bindir}/bssh
+%attr(755,root,root) %{_bindir}/bvnc
+%attr(755,root,root) %{_libdir}/libavahi-ui-gtk3.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libavahi-ui-gtk3.so.0
+%{_mandir}/man1/bshell.1*
+%{_mandir}/man1/bssh.1*
+%{_mandir}/man1/bvnc.1*
+%{_desktopdir}/bssh.desktop
+%{_desktopdir}/bvnc.desktop
+
+%files ui-gtk3-devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libavahi-ui-gtk3.so
+%{_pkgconfigdir}/avahi-ui-gtk3.pc
+
+%files ui-gtk3-static
+%defattr(644,root,root,755)
+%{_libdir}/libavahi-ui-gtk3.a
+%endif
+
%files compat-libdns_sd
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libdns_sd.so.*.*.*
%files compat-libdns_sd-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libdns_sd.so
-%{_libdir}/libdns_sd.la
%{_includedir}/avahi-compat-libdns_sd
%{_includedir}/dns_sd.h
%{_pkgconfigdir}/avahi-compat-libdns_sd.pc
%files compat-howl-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libhowl.so
-%{_libdir}/libhowl.la
%{_includedir}/avahi-compat-howl
%{_pkgconfigdir}/avahi-compat-howl.pc
%{_pkgconfigdir}/howl.pc
%files glib-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-glib.so
-%{_libdir}/libavahi-glib.la
%{_includedir}/avahi-glib
%{_pkgconfigdir}/avahi-glib.pc
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-gobject.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libavahi-gobject.so.0
+%{_libdir}/girepository-1.0/Avahi-0.6.typelib
+%{_libdir}/girepository-1.0/AvahiCore-0.6.typelib
%files gobject-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-gobject.so
-%{_libdir}/libavahi-gobject.la
%{_includedir}/avahi-gobject
%{_pkgconfigdir}/avahi-gobject.pc
+%{_datadir}/gir-1.0/Avahi-0.6.gir
+%{_datadir}/gir-1.0/AvahiCore-0.6.gir
%files gobject-static
%defattr(644,root,root,755)
%files qt-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-qt3.so
-%{_libdir}/libavahi-qt3.la
%{_includedir}/avahi-qt3
%{_pkgconfigdir}/avahi-qt3.pc
%files Qt-devel
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libavahi-qt4.so
-%{_libdir}/libavahi-qt4.la
%{_includedir}/avahi-qt4
%{_pkgconfigdir}/avahi-qt4.pc