diff --git a/README.md b/README.md index 13fbcac..8111408 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # dbus +D-BUS is a message bus, used for sending messages between applications. +Conceptually, it fits somewhere in between raw sockets and CORBA in terms of complexity. + diff --git a/dbus-1.0.1-cve_2006_6107.patch b/dbus-1.0.1-cve_2006_6107.patch new file mode 100644 index 0000000..747793d --- /dev/null +++ b/dbus-1.0.1-cve_2006_6107.patch @@ -0,0 +1,12 @@ +--- dbus-1.0.1/bus/signals.c.orig 2007-04-02 13:34:02.000000000 +0200 ++++ dbus-1.0.1/bus/signals.c 2007-04-02 13:35:19.000000000 +0200 +@@ -1067,6 +1067,9 @@ match_rule_equal (BusMatchRule *a, + if (a->flags != b->flags) + return FALSE; + ++ if (a->matches_go_to != b->matches_go_to) ++ return FALSE; ++ + if ((a->flags & BUS_MATCH_MESSAGE_TYPE) && + a->message_type != b->message_type) + return FALSE; diff --git a/dbus-1.6.8-initscript-rename.patch b/dbus-1.6.8-initscript-rename.patch new file mode 100644 index 0000000..5cd5a93 --- /dev/null +++ b/dbus-1.6.8-initscript-rename.patch @@ -0,0 +1,28 @@ +--- dbus-1.6.8.orig/bus/messagebus.in 2011-07-13 22:42:21.000000000 +0200 ++++ dbus-1.6.8/bus/messagebus.in 2013-03-29 14:19:22.268683800 +0100 +@@ -1,6 +1,6 @@ + #!/bin/sh + # +-# messagebus: The D-BUS systemwide message bus ++# dbus: The D-BUS systemwide message bus + # + # chkconfig: 345 22 85 + # description: This is a daemon which broadcasts notifications of system events \ +@@ -10,7 +10,7 @@ + # pidfile: @DBUS_SYSTEM_PID_FILE@ + # + ### BEGIN INIT INFO +-# Provides: messagebus ++# Provides: dbus + # Required-Start: $syslog $local_fs + # Required-Stop: $syslog $local_fs + # Default-Start: 2 3 4 5 +@@ -28,7 +28,7 @@ + + # so we can rearrange this easily + processname=dbus-daemon +-servicename=messagebus ++servicename=dbus + + RETVAL=0 + diff --git a/dbus-initscript b/dbus-initscript new file mode 100644 index 0000000..5668502 --- /dev/null +++ b/dbus-initscript @@ -0,0 +1,78 @@ +#!/bin/sh +# +# messagebus: The D-BUS systemwide message bus +# +# chkconfig: 345 15 80 +# description: This is a daemon which broadcasts notifications of system events \ +# and other messages. See http://www.freedesktop.org/software/dbus/ +# +# processname: dbus-daemon +# pidfile: /var/run/dbus/pid +# + +# Sanity checks. +[ -x /usr/bin/dbus-daemon ] || exit 0 + +# Source function library. +. /etc/rc.d/init.d/functions + +# so we can rearrange this easily +processname=dbus-daemon +servicename=messagebus + +RETVAL=0 + +start() { + echo -n $"Starting system message bus: " + daemon --check $servicename $processname --system + RETVAL=$? + echo + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$servicename +} + +stop() { + echo -n $"Stopping system message bus: " + + ## we don't want to kill all the per-user $processname, we want + ## to use the pid file *only*; because we use the fake nonexistent + ## program name "$servicename" that should be safe-ish + killproc -p /var/run/messagebus.pid $servicename -TERM + RETVAL=$? + echo + if [ $RETVAL -eq 0 ]; then + rm -f /var/lock/subsys/$servicename + rm -f /var/run/messagebus.pid + fi +} + +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + status) + status $processname + RETVAL=$? + ;; + restart) + stop + start + ;; + condrestart) + if [ -f /var/lock/subsys/$servicename ]; then + stop + start + fi + ;; + reload) + echo "Message bus can't reload its configuration, you have to restart it" + RETVAL=$? + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}" + ;; +esac +exit $RETVAL diff --git a/dbus-session-profile.sh b/dbus-session-profile.sh new file mode 100644 index 0000000..a316abb --- /dev/null +++ b/dbus-session-profile.sh @@ -0,0 +1,11 @@ +dbus_session_file=~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-0 +if [ -e "$dbus_session_file" ]; then + . "$dbus_session_file" + if [ "$DBUS_SESSION_BUS_PID" -a -e /proc/$DBUS_SESSION_BUS_PID -a \ + "`readlink /proc/$DBUS_SESSION_BUS_PID/exe`" = "/usr/bin/dbus-daemon" ]; then + export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID + else + unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID DBUS_SESSION_BUS_WINDOWID + fi +fi +unset dbus_session_file diff --git a/dbus.spec b/dbus.spec new file mode 100644 index 0000000..8cadf8e --- /dev/null +++ b/dbus.spec @@ -0,0 +1,420 @@ +%define messagebus_uid 25 +%define messagebus_gid 25 + +Name: dbus +Version: 1.8.0 +Release: 2mamba +Summary: A message bus, used for sending messages between applications +Group: System/Servers +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: http://www.freedesktop.org/Software/dbus +Source: http://dbus.freedesktop.org/releases/dbus/%{name}-%{version}.tar.gz +Source1: dbus-initscript +Source2: %{name}-session-profile.sh +Patch0: %{name}-1.0.1-cve_2006_6107.patch +Patch1: dbus-1.6.8-initscript-rename.patch +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +%if "%{stage1}" != "1" +BuildRequires: libICE-devel +BuildRequires: libSM-devel +BuildRequires: libX11-devel +%endif +BuildRequires: libaudit-devel +BuildRequires: libcap-ng-devel +BuildRequires: libexpat-devel +BuildRequires: libgcrypt-devel +BuildRequires: libgpg-error-devel +BuildRequires: liblzma-devel +BuildRequires: libpcre-devel +BuildRequires: libselinux-devel +BuildRequires: libsepol-devel +BuildRequires: systemd-devel +## AUTOBUILDREQ-END +%if "%{stage1}" != "1" +BuildRequires: libXau-devel +BuildRequires: libxcb-devel +BuildRequires: libXdmcp-devel +%endif +BuildRequires: pkgconfig >= 0.19 +BuildRequires: gettext-devel +BuildRequires: libxml2-devel +BuildRequires: libxml2-utils +BuildRequires: libglib-devel +%if "%{_build}" == "%{_host}" +BuildRequires: doxygen +BuildRequires: xmlto +%endif +Requires(pre): /usr/sbin/useradd +Requires(pre): /sbin/chkconfig +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} +Provides: dbus-tools +Obsoletes: dbus-tools +## *AUTOSPEC-OFF* +Obsoletes: dbus-viewer +Obsoletes: dbus1-viewer +Obsoletes: dbus1 +## *AUTOSPEC-ON* +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +D-BUS is a message bus, used for sending messages between applications. +Conceptually, it fits somewhere in between raw sockets and CORBA in terms of complexity. + +%package tools +Summary: Tools for D-BUS +Group: System/Tools +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} +Obsoletes: dbus1-tools + +%description tools +dbus-launch: utility to start a message bus from a shell script +dbus-monitor: debug probe to print message bus messages + +%package -n lib%{name} +Summary: Shared library for using D-Bus +Group: System/Libraries + +%description -n lib%{name} +D-Bus shared library. + +%package -n lib%{name}-devel +Summary: Devel package for %{name} +Group: Development/Libraries +Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release} +Obsoletes: dbus-devel +Provides: dbus-devel = %{?epoch:%epoch:}%{version}-%{release} +## *AUTOSPEC-OFF* +Obsoletes: dbus1-devel +Provides: dbus1-devel = %{?epoch:%epoch:}%{version}-%{release} +## *AUTOSPEC-ON* + +%description -n lib%{name}-devel +D-BUS is a message bus, used for sending messages between applications. +Conceptually, it fits somewhere in between raw sockets and CORBA in terms of complexity. +This package contains static libraries and header files need for development. + +%package apidocs +Group: Documentation +Summary: %{name} API documentation +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: gtk-doc + +%description apidocs +This package includes the %{name} API documentation. + +%debug_package + +%prep +%setup -q +%patch0 -p1 -b .cve_2006_6107 +%patch1 -p1 + +%build +%configure \ + --enable-dnotify \ + --enable-selinux \ + --enable-systemd \ + --disable-checks \ + --disable-asserts \ + --with-init-scripts=redhat \ + --with-system-pid-file=%{_var}/run/messagebus.pid \ + --with-system-socket=%{_var}/run/dbus/system_bus_socket \ + --with-session-socket-dir=/tmp \ +%if "%{stage1}" == "1" + --without-x +%endif + +%make +#make check + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +install -d 0755 %{buildroot}%{_datadir}/dbus-1/services +install -d %{buildroot}%{_sysconfdir}/dbus-1/system.d/ +install -d %{buildroot}%{_sysconfdir}/dbus-1/session.d/ +install -d %{buildroot}%{_var}/run/dbus +install -d %{buildroot}%{_var}/lib/dbus + +#install -m 0755 %{S:1} %{buildroot}%{_initrddir}/messagebus +install -D -m 0755 %{S:2} %{buildroot}%{_sysconfdir}/profile.d/dbus-session.sh + +# rename initscript for systemd compatibility +mv %{buildroot}%{_initrddir}/messagebus %{buildroot}%{_initrddir}/dbus + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%pre +if [ $1 -ge 1 ]; then + # add DBUS user + /usr/sbin/groupadd messagebus -g %{messagebus_gid} &>/dev/null + /usr/sbin/useradd -u %{messagebus_uid} -c 'DBUS user' -d /dev/null \ + -s /bin/false messagebus -g %{messagebus_gid} 2>/dev/null + /usr/sbin/usermod messagebus -g messagebus &>/dev/null +fi +: + +%post +if [ $1 -ge 1 ]; then + /sbin/ldconfig + /sbin/chkconfig --del messagebus 2>&1 || true + /sbin/chkconfig --add dbus + [ $1 -eq 1 ] && service dbus start + %{_bindir}/dbus-uuidgen --ensure +fi +: + +%preun +# erase +if [ $1 -eq 0 ]; then + service dbus stop 2>/dev/null + /sbin/chkconfig --del dbus + userdel messagebus || true + groupdel messagebus || true +fi +: + +%triggerpostun -- dbus1 +# this is required because the obsoletion of dbus1 removes the +# user and disables the service +/usr/sbin/useradd -u %{messagebus_uid} -c 'DBUS user' -d /dev/null \ + -s /bin/false messagebus 2>/dev/null +/sbin/chkconfig --add dbus +service dbus start +%{_bindir}/dbus-uuidgen --ensure +: + +%post -n lib%{name} -p /sbin/ldconfig +%postun -n lib%{name} -p /sbin/ldconfig + +%files +%defattr(-,root,root) +%{_initrddir}/dbus +%dir %{_sysconfdir}/dbus-1 +%config %{_sysconfdir}/dbus-1/session.conf +%config %{_sysconfdir}/dbus-1/system.conf +%dir %{_sysconfdir}/dbus-1/system.d/ +%dir %{_sysconfdir}/dbus-1/session.d/ +%{_sysconfdir}/profile.d/dbus-session.sh +%{_bindir}/dbus-cleanup-sockets +%{_bindir}/dbus-daemon +%{_bindir}/dbus-launch +%{_bindir}/dbus-monitor +%{_bindir}/dbus-run-session +%{_bindir}/dbus-send +%{_bindir}/dbus-uuidgen +%attr(4750,root,messagebus) %{_libexecdir}/dbus-daemon-launch-helper +/lib/systemd/system/dbus.service +/lib/systemd/system/dbus.socket +/lib/systemd/system/dbus.target.wants/dbus.socket +/lib/systemd/system/multi-user.target.wants/dbus.service +/lib/systemd/system/sockets.target.wants/dbus.socket +%dir %{_datadir}/dbus-1/services +%dir %{_var}/run/dbus +%dir %{_var}/lib/dbus +%{_mandir}/man1/dbus-cleanup-sockets.* +%{_mandir}/man1/dbus-daemon.* +%{_mandir}/man1/dbus-run-session.1.gz +%{_mandir}/man1/dbus-send.* +%{_mandir}/man1/dbus-uuidgen.* +%{_mandir}/man1/dbus-launch.* +%{_mandir}/man1/dbus-monitor.* + +%files -n lib%{name} +%defattr(-,root,root) +%{_libdir}/libdbus-1.so.* +%doc AUTHORS COPYING + +%files -n lib%{name}-devel +%defattr(-,root,root) +%{_libdir}/libdbus-1.so +%{_libdir}/libdbus-1.a +%{_libdir}/libdbus-1.la +%{_libdir}/pkgconfig/*.pc +%dir %{_libdir}/dbus-1.0/include/dbus +%{_libdir}/dbus-1.0/include/dbus/dbus-arch-deps.h +%dir %{_includedir}/dbus-1.0/dbus +%{_includedir}/dbus-1.0/dbus/dbus-address.h +%{_includedir}/dbus-1.0/dbus/dbus-bus.h +%{_includedir}/dbus-1.0/dbus/dbus-connection.h +%{_includedir}/dbus-1.0/dbus/dbus-errors.h +%{_includedir}/dbus-1.0/dbus/dbus-macros.h +%{_includedir}/dbus-1.0/dbus/dbus-memory.h +%{_includedir}/dbus-1.0/dbus/dbus-message.h +%{_includedir}/dbus-1.0/dbus/dbus-misc.h +%{_includedir}/dbus-1.0/dbus/dbus-pending-call.h +%{_includedir}/dbus-1.0/dbus/dbus-protocol.h +%{_includedir}/dbus-1.0/dbus/dbus-server.h +%{_includedir}/dbus-1.0/dbus/dbus-shared.h +%{_includedir}/dbus-1.0/dbus/dbus-signature.h +%{_includedir}/dbus-1.0/dbus/dbus-syntax.h +%{_includedir}/dbus-1.0/dbus/dbus-threads.h +%{_includedir}/dbus-1.0/dbus/dbus-types.h +%{_includedir}/dbus-1.0/dbus/dbus.h +%doc ChangeLog NEWS README + +%files apidocs +%defattr(-,root,root) +%dir %{_docdir}/dbus +%{_docdir}/dbus/* + +%changelog +* Tue Feb 11 2014 Silvan Calarco 1.8.0-2mamba +- docs moved to apidocs subpackage + +* Sat Jan 25 2014 Automatic Build System 1.8.0-1mamba +- automatic version update by autodist + +* Thu Oct 10 2013 Automatic Build System 1.7.6-1mamba +- automatic update by autodist + +* Sun Jun 16 2013 Automatic Build System 1.7.4-1mamba +- automatic version update by autodist + +* Sun May 19 2013 Automatic Build System 1.7.2-1mamba +- automatic update by autodist + +* Tue Apr 02 2013 Automatic Build System 1.7.0-1mamba +- automatic version update by autodist + +* Fri Mar 29 2013 Silvan Calarco 1.6.8-3mamba +- rename initscript from messagebus to dbus for systemd smooth compatibility + +* Sun Mar 17 2013 Silvan Calarco 1.6.8-2mamba +- rebuilt with systemd support + +* Wed Oct 10 2012 Automatic Build System 1.6.8-1mamba +- automatic version update by autodist + +* Tue Jul 31 2012 Silvan Calarco 1.6.4-1mamba +- update to 1.6.4 + +* Thu May 03 2012 Silvan Calarco 1.4.20-1mamba +- update to 1.4.20 +- more reliable check for existing dbus-session process in /etc/profile.d/dbus-session.sh + +* Sun Feb 19 2012 Silvan Calarco 1.4.16-1mamba +- update to 1.4.16 +- added /etc/profile.d script to export DBUS session variables + +* Sat Jul 30 2011 Silvan Calarco 1.4.14-1mamba +- update to 1.4.14 + +* Tue Feb 22 2011 Automatic Build System 1.4.6-1mamba +- automatic update by autodist + +* Wed Dec 22 2010 Silvan Calarco 1.4.1-1mamba +- update to 1.4.1 + +* Wed Oct 06 2010 Silvan Calarco 1.4.0-2mamba +- change socket name to more standard /var/run/dbus/system_bus_socket + +* Thu Sep 16 2010 Automatic Build System 1.4.0-1mamba +- automatic update by autodist + +* Sat Jun 26 2010 Silvan Calarco 1.2.24-1mamba +- update to 1.2.24 + +* Fri Jul 17 2009 Automatic Build System 1.2.16-1mamba +- automatic update by autodist + +* Fri May 08 2009 Automatic Build System 1.2.14-1mamba +- automatic update by autodist + +* Fri Apr 10 2009 Silvan Calarco 1.2.12-3mamba +- remove dbus-tools package + +* Thu Apr 09 2009 Silvan Calarco 1.2.12-2mamba +- sed suid permissions for dbus-daemon-launch-helper and moved from libdbus-devel to dbus package +- install upstream iniscript + +* Thu Jan 08 2009 Silvan Calarco 1.2.12-1mamba +- automatic update by autodist + +* Fri Nov 14 2008 Silvan Calarco 1.2.4-1mamba +- update to 1.2.4 + +* Fri Jun 13 2008 Silvan Calarco 1.1.20-1mamba +- update to 1.1.20 + +* Fri Mar 07 2008 Silvan Calarco 1.0.3-1mamba +- update to 1.0.3 + +* Fri Dec 28 2007 Silvan Calarco 1.0.2-2mamba +- initscript: start sooner in rc init sequence (15) and stop later (80) + +* Sat Apr 07 2007 Silvan Calarco 1.0.2-1mamba +- update to version 1.0.2 by autospec +- obsolete dbus1 packages + +* Mon Apr 02 2007 Davide Madrisan 1.0.1-2mamba +- fixed security issue CVE-2006-6107 +- added build requirements for Xorg7 and libexpat-devel + +* Thu Nov 23 2006 Silvan Calarco 1.0.1-1qilnx +- update to version 1.0.1 by autospec + +* Thu Nov 02 2006 Davide Madrisan 0.94-3qilnx +- run make check +- generates a universally unique machine ID in the %%post script +- shared libraries moved to the new lib%{name} package + +* Wed Oct 25 2006 Davide Madrisan 0.94-2qilnx +- rebuilt for QiLinux +- added build requirement for libselinux + +* Tue Oct 24 2006 Silvan Calarco 0.94-1qilnx +- update to version 0.94 by autospec + +* Tue Oct 24 2006 Silvan Calarco 0.93-1qilnx +- update to version 0.93 by autospec +- removed bootstrap handling because Qt, Glib and Python bindings are no longer + distributed with this package + +* Fri Apr 28 2006 Davide Madrisan 0.50-5qilnx +- use the rpm macro %%pyver to get the python version +- added some missing build requirements + +* Wed Mar 01 2006 Stefano Cotta Ramusino 0.50-4qilnx +- dbus-qt and dbus-viewer subpackages excluded from bootstrap compilation +- added PreReq + +* Mon Feb 06 2006 Silvan Calarco 0.50-3qilnx +- don't restart dbus on update + +* Thu Feb 02 2006 Silvan Calarco 0.50-2qilnx +- added package d-bus tools (depends on libX11) + +* Fri Jan 27 2006 Silvan Calarco 0.50-1qilnx +- update to version 0.50 by autospec + +* Sat Sep 03 2005 Silvan Calarco 0.36.2-1qilnx +- update to version 0.36.2 by autospec + +* Wed Aug 24 2005 Silvan Calarco 0.36-1qilnx +- update to version 0.36 by autospec +- added subpackage dbus-viewer + +* Mon Aug 08 2005 Silvan Calarco 0.35.2-1qilnx +- update to version 0.35.2 by autospec + +* Tue Jul 19 2005 Silvan Calarco 0.34-4qilnx +- other fixes to pre/post scripts + +* Mon Jul 18 2005 Silvan Calarco 0.34-3qilnx +- fixed pre/post scripts + +* Fri Jul 15 2005 Silvan Calarco 0.34-2qilnx +- added initscript and service automatic configuration on install + +* Thu Jul 14 2005 Silvan Calarco 0.34-1qilnx +- update to version 0.34 by autospec + +* Sat Jun 04 2005 Silvan Calarco 0.33-1qilnx +- package created by autospec