%define bootstrap 0 %{?_without_bootstrap: %global bootstrap 0} %{?_with_bootstrap: %global bootstrap 1} %define expat_version 2.0.1 %define lib_major 3 %define lib_api 1 %define lib_name %mklibname dbus %{lib_api} %{lib_major} %define develname %mklibname -d dbus %define enable_test 0 %define enable_verbose 0 %define git_url git://git.freedesktop.org/git/dbus/dbus Summary: D-Bus message bus Name: dbus Version: 1.6.8 Release: %mkrel 4 URL: http://www.freedesktop.org/Software/dbus Source0: http://dbus.freedesktop.org/releases/dbus/%{name}-%{version}.tar.gz # (cg) See https://bugs.freedesktop.org/show_bug.cgi?id=56043 Patch0: dbus-1.6.8-dbus-spawn-ignore-sigpipe.patch License: GPLv2+ or AFL Group: System/Servers BuildRequires: libx11-devel BuildRequires: expat-devel >= %{expat_version} %if !%bootstrap BuildRequires: xmlto docbook-dtd412-xml BuildRequires: doxygen %endif BuildRequires: libtool BuildRequires: libcap-ng-devel BuildRequires: pkgconfig(gio-2.0) >= 2.24 BuildRequires: pkgconfig(glib-2.0) >= 2.24 BuildRequires: pkgconfig(libsystemd-daemon) >= 32 BuildRequires: pkgconfig(libsystemd-login) >= 32 Requires(pre): rpm-helper >= 0.24.8-1 Requires(preun): rpm-helper >= 0.24.8-1 Provides: should-restart = system %description D-Bus is a system for sending messages between applications. It is used both for the systemwide message bus service, and as a per-user-login-session messaging facility. %package -n %{lib_name} Summary: Shared library for using D-Bus Group: System/Libraries Requires: dbus >= %{version} Obsoletes: %{_lib}dbus-1_3 < 1.6.0 %description -n %{lib_name} D-Bus shared library. %package -n %develname Summary: Libraries and headers for D-Bus Group: Development/C Requires: %{name} = %{version} Requires: %{lib_name} = %{version} Provides: lib%{name}-1-devel = %{version}-%{release} Provides: lib%{name}-devel = %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} Conflicts: %{_lib}dbus-1_0-devel Obsoletes: %{mklibname -d dbus- 1 3} < 1.6.0 Obsoletes: %{_lib}dbus-1-devel < 1.6.0 %description -n %develname Headers and static libraries for D-Bus. %package x11 Summary: X11-requiring add-ons for D-Bus Group: System/Servers Requires: dbus = %{version} %package doc Summary: Developer documentation for D-BUS Group: Documentation Requires: dbus = %{version} Suggests: devhelp BuildArch: noarch Conflicts: libdbus-1-devel < 1.2.20 Conflicts: lib64dbus-1-devel < 1.2.20 %description doc This package contains developer documentation for D-Bus along with other supporting documentation such as the introspect dtd file. %description x11 D-Bus contains some tools that require Xlib to be installed, those are in this separate package so server systems need not install X. %prep %setup -q %apply_patches %build COMMON_ARGS="--disable-static --disable-selinux --with-system-socket=/run/dbus/system_bus_socket --libexecdir=%{_libexecdir}/dbus-%{lib_api}" #### Build once with tests to make check %if %{enable_test} %configure2_5x $COMMON_ARGS --enable-tests=yes --enable-systemd \ --enable-verbose-mode=yes \ --enable-asserts=yes \ --disable-doxygen-docs \ --enable-userdb-cache \ --disable-xml-docs DBUS_VERBOSE=1 %make make check #### Clean up and build again make clean %endif %configure2_5x $COMMON_ARGS --disable-tests --disable-asserts \ %if !%bootstrap --enable-doxygen-docs --enable-xml-docs \ --htmldir=%{_datadir}/devhelp/books/%{name} \ %endif %if %enable_verbose --enable-verbose-mode=yes %else --enable-verbose-mode=no %endif %make %check make check %install %makeinstall_std mkdir -p %{buildroot}%{_sysconfdir}/X11/xinit.d cat << EOF > %{buildroot}%{_sysconfdir}/X11/xinit.d/30dbus # to be sourced if [ -z "\$DBUS_SESSION_BUS_ADDRESS" ]; then eval \`/usr/bin/dbus-launch --exit-with-session --sh-syntax\` fi EOF chmod 755 %{buildroot}%{_sysconfdir}/X11/xinit.d/30dbus # create directory mkdir %{buildroot}%{_datadir}/dbus-%{lib_api}/interfaces # This is legacy rm -rf %{buildroot}%{_unitdir}/dbus.target.wants # link devhelp docs in docdir mkdir -p %{buildroot}%{_docdir}/%{name}-doc pushd %{buildroot}%{_datadir}/devhelp/books/%{name} for f in *; do ln -s ../../devhelp/books/%{name}/$f %{buildroot}%{_docdir}/%{name}-doc done popd #remove unpackaged file find %{buildroot} -name '*.la' -delete %pre %_pre_useradd messagebus / /sbin/nologin %_pre_groupadd daemon messagebus %postun %_postun_userdel messagebus %_postun_groupdel daemon messagebus %files %doc COPYING NEWS %dir %{_sysconfdir}/dbus-%{lib_api} %exclude %{_sysconfdir}/rc.d/init.d/* %config(noreplace) %{_sysconfdir}/dbus-%{lib_api}/*.conf %dir %{_sysconfdir}/dbus-%{lib_api}/system.d %dir %{_sysconfdir}/dbus-%{lib_api}/session.d %dir %{_localstatedir}/lib/dbus %dir %{_libdir}/dbus-1.0 %{_bindir}/dbus-daemon %{_bindir}/dbus-send %{_bindir}/dbus-cleanup-sockets %{_bindir}/dbus-uuidgen %{_mandir}/man*/* %dir %{_datadir}/dbus-%{lib_api} %{_datadir}/dbus-%{lib_api}/system-services %{_datadir}/dbus-%{lib_api}/services %{_datadir}/dbus-%{lib_api}/interfaces # See doc/system-activation.txt in source tarball for the rationale # behind these permissions %dir %{_libexecdir}/dbus-%{lib_api} %attr(4750,root,messagebus) %{_libexecdir}/dbus-%{lib_api}/dbus-daemon-launch-helper %{_unitdir}/dbus.service %{_unitdir}/dbus.socket %{_unitdir}/multi-user.target.wants/dbus.service %{_unitdir}/sockets.target.wants/dbus.socket %files -n %{lib_name} %{_libdir}/*dbus-%{lib_api}*.so.%{lib_major}* %files -n %develname %doc ChangeLog %{_libdir}/libdbus-%{lib_api}.so %{_libdir}/dbus-1.0/include %{_libdir}/pkgconfig/dbus-%{lib_api}.pc %{_includedir}/dbus-1.0 %files x11 %{_sysconfdir}/X11/xinit.d/* %{_bindir}/dbus-launch %{_bindir}/dbus-monitor %files doc %doc %{_datadir}/devhelp/books/dbus %{_docdir}/%{name}-doc