add packaging
authorAnas Nashif <anas.nashif@intel.com>
Tue, 30 Oct 2012 23:28:05 +0000 (16:28 -0700)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Tue, 19 Feb 2013 17:08:32 +0000 (17:08 +0000)
packaging/baselibs.conf [new file with mode: 0644]
packaging/dbus-x11.spec [new file with mode: 0644]
packaging/dbus-x11.spec.in [new file with mode: 0644]
packaging/dbus.spec [new file with mode: 0644]
packaging/dbus_at_console.ck [new file with mode: 0644]
packaging/pre_checkin.sh [new file with mode: 0644]
packaging/rc.boot.dbus [new file with mode: 0644]

diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf
new file mode 100644 (file)
index 0000000..afa6594
--- /dev/null
@@ -0,0 +1,3 @@
+dbus
+dbus-devel
+libdbus
diff --git a/packaging/dbus-x11.spec b/packaging/dbus-x11.spec
new file mode 100644 (file)
index 0000000..5771181
--- /dev/null
@@ -0,0 +1,116 @@
+#
+# spec file for package dbus-x11
+#
+# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+
+Name:           dbus-x11
+%define _name   dbus
+BuildRequires:  pkgconfig(x11)
+Url:            http://dbus.freedesktop.org/
+Summary:        D-Bus Message Bus System
+License:        GPL-2.0+ or AFL-2.1
+Group:          System/Daemons
+# COMMON1-BEGIN
+# COMMON1-BEGIN
+
+# We can't enable this right now, because it will create a build cycle between
+# dbus-1 and systemd. Fun!
+%define with_systemd 0
+
+BuildRequires:  doxygen
+BuildRequires:  expat-devel
+BuildRequires:  libtool
+BuildRequires:  libzio
+BuildRequires:  pkg-config
+%if %{with_systemd}
+BuildRequires:  pkgconfig(libsystemd-daemon)
+BuildRequires:  pkgconfig(libsystemd-login)
+%endif
+Version:        1.5.12
+Release:        0
+Source0:        http://dbus.freedesktop.org/releases/dbus/%{_name}-%{version}.tar.gz
+Source1:        rc.boot.dbus
+Source3:        dbus_at_console.ck
+Source4:        baselibs.conf
+Patch0:         dbus-log-deny.patch
+# PATCH-FIX-OPENSUSE coolo@suse.de -- force a feature configure won't accept without x11 in buildrequires
+Patch1:         dbus-do-autolaunch.patch
+Patch2:         dbus-cve-2012-3524.patch
+BuildRequires:  libcap-ng-devel
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+# COMMON1-END
+# COMMON1-END
+
+%description
+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
+# COMMON2-BEGIN
+# COMMON2-BEGIN
+%setup -n %{_name}-%{version} -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+
+%build
+autoreconf -fi
+# We use -fpie/-pie for the whole build; this is the recommended way to harden
+# the build upstream, see discussion in fdo#46570
+export CFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -fpie"
+export LDFLAGS="-pie"
+export CXXFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing"
+export CFLAGS="$CFLAGS -fstack-protector"
+export CXXFLAGS="$CXXFLAGS -fstack-protector"
+export V=1
+%configure \
+    --disable-static                                                   \
+    --with-pic                                                                 \
+    --bindir=/bin                                                      \
+    --libexecdir=/lib/%{name}                                  \
+    --libdir=/%{_lib}                                                  \
+    --with-init-scripts=suse                                           \
+    --enable-inotify                                                   \
+    --enable-doxygen-docs                                              \
+%if %{with_systemd}
+    --enable-systemd                                                   \
+%endif
+    --with-console-auth-dir=/var/run/dbus/at_console/                  \
+    --with-systemdsystemunitdir=/lib/systemd/system                     
+make %{?_smp_mflags}
+doxygen -u && doxygen
+./cleanup-man-pages.sh
+
+%install
+# COMMON2-END
+# COMMON2-END
+tdir=$(mktemp -d)
+make DESTDIR=$tdir install
+mkdir -p %{buildroot}/%{_bindir}
+mkdir -p %{buildroot}/%{_mandir}/man1
+mv $tdir/bin/dbus-launch %{buildroot}/%{_bindir}
+mv $tdir/%{_mandir}/man1/dbus-launch.1* %{buildroot}/%{_mandir}/man1
+rm -rf $tdir
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%{_bindir}/dbus-launch
+%{_mandir}/man1/dbus-launch.1*
+
+%changelog
diff --git a/packaging/dbus-x11.spec.in b/packaging/dbus-x11.spec.in
new file mode 100644 (file)
index 0000000..90d9f1e
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# spec file for package dbus-1-x11 (Version 1.4.1)
+#
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+#
+# All modifications and additions to the file contributed by third parties
+# remain the property of their copyright owners, unless otherwise agreed
+# upon. The license for this file, and modifications and additions to the
+# file, is the same license as for the pristine package itself (unless the
+# license for the pristine package is not an Open Source License, in which
+# case the license is the MIT License). An "Open Source License" is a
+# license that conforms to the Open Source Definition (Version 1.9)
+# published by the Open Source Initiative.
+
+# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
+
+# norootforbuild
+
+Name:           dbus-x11
+%define _name   dbus
+BuildRequires:  xorg-x11-devel
+Url:            http://dbus.freedesktop.org/
+License:        GPL2+ or AFL 2.1
+Group:          System/Daemons
+Summary:        D-Bus Message Bus System
+# COMMON1-BEGIN
+# COMMON1-END
+
+%description
+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
+# COMMON2-BEGIN
+# COMMON2-END
+tdir=$(mktemp -d)
+make DESTDIR=$tdir install
+mkdir -p %{buildroot}/%{_bindir}
+mkdir -p %{buildroot}/%{_mandir}/man1
+mv $tdir/bin/dbus-launch %{buildroot}/%{_bindir}
+mv $tdir/%{_mandir}/man1/dbus-launch.1* %{buildroot}/%{_mandir}/man1
+rm -rf $tdir
+
+%clean
+%{__rm} -rf %{buildroot}
+
+%files
+%defattr(-,root,root)
+%{_bindir}/dbus-launch
+%{_mandir}/man1/dbus-launch.1*
+
+%changelog
diff --git a/packaging/dbus.spec b/packaging/dbus.spec
new file mode 100644 (file)
index 0000000..64fb4d6
--- /dev/null
@@ -0,0 +1,220 @@
+%define dbus_user_uid           81
+
+Name:           dbus
+%define _libname libdbus
+Url:            http://dbus.freedesktop.org/
+Summary:        D-Bus Message Bus System
+License:        GPL-2.0+ or AFL-2.1
+Group:          System/Daemons
+# COMMON1-BEGIN
+
+# We can't enable this right now, because it will create a build cycle between
+# dbus-1 and systemd. Fun!
+%define with_systemd 1
+
+BuildRequires:  doxygen
+BuildRequires:  expat-devel
+BuildRequires:  libtool
+BuildRequires:  libzio
+BuildRequires:  pkg-config
+%if %{with_systemd}
+BuildRequires:  pkgconfig(libsystemd-daemon)
+BuildRequires:  pkgconfig(libsystemd-login)
+%endif
+Version:        1.6.8
+Release:        0
+Source0:        http://dbus.freedesktop.org/releases/dbus/%{name}-%{version}.tar.gz
+Source1:        rc.boot.dbus
+Source3:        dbus_at_console.ck
+Source4:        baselibs.conf
+BuildRequires:  libcap-ng-devel
+# COMMON1-END
+Requires(pre):  /usr/sbin/groupadd /usr/sbin/useradd
+
+Provides:      dbus-1
+
+%package -n %{_libname}
+
+Summary:        Library package for D-Bus
+Group:          Development/Libraries/Other
+
+%package devel
+
+Summary:        Developer package for D-Bus
+Group:          Development/Libraries/Other
+Requires:       %{_libname} = %{version}
+Requires:       dbus
+Requires:       glibc-devel
+
+%package devel-doc
+
+Summary:        Developer documentation package for D-Bus
+Group:          Development/Libraries/Other
+Requires:       %{name} = %{version}
+BuildArch:      noarch
+
+%description
+D-Bus is a message bus system, a simple way for applications to talk to
+one another. D-Bus supplies both a system daemon and a
+per-user-login-session daemon. Also, the message bus is built on top of
+a general one-to-one message passing framework, which can be used by
+any two apps to communicate directly (without going through the message
+bus daemon).
+
+%description -n %{_libname}
+D-Bus is a message bus system, a simple way for applications to talk to
+one another. D-Bus supplies both a system daemon and a
+per-user-login-session daemon. Also, the message bus is built on top of
+a general one-to-one message passing framework, which can be used by
+any two apps to communicate directly (without going through the message
+bus daemon).
+
+%description devel
+D-Bus is a message bus system, a simple way for applications to talk to
+one another. D-Bus supplies both a system daemon and a
+per-user-login-session daemon. Also, the message bus is built on top of
+a general one-to-one message passing framework, which can be used by
+any two apps to communicate directly (without going through the message
+bus daemon).
+
+%description devel-doc
+D-Bus is a message bus system, a simple way for applications to talk to
+one another. D-BUS supplies both a system daemon and a
+per-user-login-session daemon. Also, the message bus is built on top of
+a general one-to-one message passing framework, which can be used by
+any two apps to communicate directly (without going through the message
+bus daemon).
+
+%prep
+# COMMON2-BEGIN
+%setup -n %{name}-%{version} -q
+
+%build
+autoreconf -fi
+# We use -fpie/-pie for the whole build; this is the recommended way to harden
+# the build upstream, see discussion in fdo#46570
+export CFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing -fPIC -fpie"
+export LDFLAGS="-pie"
+export CXXFLAGS="${RPM_OPT_FLAGS} -fno-strict-aliasing"
+export CFLAGS="$CFLAGS -fstack-protector"
+export CXXFLAGS="$CXXFLAGS -fstack-protector"
+export V=1
+%configure \
+    --disable-static                                                   \
+    --with-pic                                                                 \
+    --with-dbus-user=dbus                                              \
+    --libexecdir=%{_libdir}/%{name}                                    \
+    --libdir=%{_libdir}                                                        \
+    --with-init-scripts=suse                                           \
+    --enable-inotify                                                   \
+    --enable-doxygen-docs                                              \
+%if %{with_systemd}
+    --enable-systemd                                                   \
+%endif
+    --with-console-auth-dir=/var/run/dbus/at_console/                  \
+    --with-systemdsystemunitdir=%{_unitdir}                     
+make %{?_smp_mflags}
+
+%install
+# COMMON2-END
+make DESTDIR=%{buildroot} install
+mkdir -p %{buildroot}/etc/init.d
+mkdir -p %{buildroot}/usr/sbin
+install -m 755 %{SOURCE1} %{buildroot}/%{_sysconfdir}/init.d/dbus
+ln -sf %{_sysconfdir}/init.d/dbus %{buildroot}/%{_sbindir}/rcdbus
+install -d %{buildroot}/%{_localstatedir}/run/dbus
+mkdir -p %{buildroot}/%{_libdir}/pkgconfig
+mkdir -p %{buildroot}/lib/dbus-1/system-services
+mkdir -p %{buildroot}/%{_datadir}/dbus-1/system-services
+mkdir -p %{buildroot}/%{_datadir}/dbus-1/interfaces
+#mkdir -p %{buildroot}/%{_libdir}/dbus-1.0/include/
+rm -f %{buildroot}/%{_libdir}/*.la
+#
+rm -f %{buildroot}/%{_bindir}/dbus-launch
+rm -f %{buildroot}/%{_mandir}/man1/dbus-launch.1*
+chmod a-x AUTHORS COPYING HACKING NEWS README doc/*.txt doc/file-boilerplate.c doc/TODO
+#
+install -d %{buildroot}%{_sysconfdir}/ConsoleKit/run-session.d
+install -m 755 %{SOURCE3} %{buildroot}%{_sysconfdir}/ConsoleKit/run-session.d
+mkdir -p %{buildroot}%{_localstatedir}%{_libdir}/dbus
+touch %{buildroot}/%{_localstatedir}%{_libdir}/dbus/machine-id
+
+
+
+%pre
+# Add the "dbus" user and group
+/usr/sbin/groupadd -r -g %{dbus_user_uid} dbus 2>/dev/null || :
+/usr/sbin/useradd -c 'System message bus' -u %{dbus_user_uid} -g %{dbus_user_uid} \
+        -s /sbin/nologin -r -d '/' dbus 2> /dev/null || :
+
+%post -n %{_libname} -p /sbin/ldconfig
+
+%postun -n %{_libname} -p /sbin/ldconfig
+
+%docs_package
+
+%files
+%defattr(-, root, root)
+%dir %{_localstatedir}%{_libdir}/dbus
+%dir /lib/dbus-1
+%dir /lib/dbus-1/system-services
+%doc  COPYING 
+%config(noreplace) %{_sysconfdir}/dbus-1/session.conf
+%config(noreplace) %{_sysconfdir}/dbus-1/system.conf
+%{_sysconfdir}/init.d/dbus
+%{_sysconfdir}/ConsoleKit
+%{_bindir}/dbus-cleanup-sockets
+%{_bindir}/dbus-daemon
+%{_bindir}/dbus-monitor
+%{_bindir}/dbus-send
+%{_bindir}/dbus-uuidgen
+%{_sbindir}/rcdbus
+# See doc/system-activation.txt in source tarball for the rationale
+# behind these permissions
+%attr(4750,root,dbus) %verify(not mode) %{_libdir}/dbus/dbus-daemon-launch-helper
+%ghost %{_localstatedir}/run/dbus
+%ghost %{_localstatedir}%{_libdir}/dbus/machine-id
+%dir %{_unitdir}
+%{_unitdir}/dbus.service
+%{_unitdir}/dbus.socket
+%dir %{_unitdir}/dbus.target.wants
+%{_unitdir}/dbus.target.wants/dbus.socket
+%dir %{_unitdir}/multi-user.target.wants
+%{_unitdir}/multi-user.target.wants/dbus.service
+%dir %{_unitdir}/sockets.target.wants
+%{_unitdir}/sockets.target.wants/dbus.socket
+
+%files -n %{_libname}
+%defattr(-, root, root)
+%{_libdir}/libdbus-1.so.*
+# Own those directories in the library instead of dbus-1, since dbus users
+# often ship files there
+%dir %{_sysconfdir}/dbus-1
+%dir %{_sysconfdir}/dbus-1/session.d
+%dir %{_sysconfdir}/dbus-1/system.d
+%dir %{_datadir}/dbus-1
+%dir %{_datadir}/dbus-1/interfaces
+%dir %{_datadir}/dbus-1/services
+%dir %{_datadir}/dbus-1/system-services
+
+%files devel
+%defattr(-,root,root)
+%{_includedir}/*
+%{_libdir}/libdbus-1.so
+%dir %{_libdir}/dbus-1.0
+%{_libdir}/dbus-1.0/include
+%{_libdir}/pkgconfig/dbus-1.pc
+
+%files devel-doc
+%defattr(-,root,root)
+%dir %{_datadir}/doc/dbus
+%{_datadir}/doc/dbus/api/
+%doc %{_datadir}/doc/dbus/dbus-faq.html
+%doc %{_datadir}/doc/dbus/dbus-specification.html
+%doc %{_datadir}/doc/dbus/dbus-test-plan.html
+%doc %{_datadir}/doc/dbus/dbus-tutorial.html
+%doc %{_datadir}/doc/dbus/diagram.*
+%doc %{_datadir}/doc/dbus/system-activation.txt
+%doc doc/*.txt doc/file-boilerplate.c doc/TODO
+
+%changelog
diff --git a/packaging/dbus_at_console.ck b/packaging/dbus_at_console.ck
new file mode 100644 (file)
index 0000000..411eb6d
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+#
+# use consolekit to support legacy at_console setting
+#
+reason="$1"
+
+dir=/var/run/dbus/at_console
+
+# for at_console we are only interested in local sessions
+test "$CK_SESSION_IS_LOCAL" = true || exit 0
+test "$reason" = "session_added" -o "$reason" = "session_removed" || exit 0
+
+sessid=${CK_SESSION_ID##*/}
+sessid=${sessid//[^A-Za-z0-9]/_}
+test -n "$sessid" || exit 1
+
+name=`getent passwd "$CK_SESSION_USER_UID" 2>/dev/null | awk -F: '{print $1}'`
+
+test -n "$name" || exit 1
+
+if test "$reason" = "session_added"; then
+       mkdir -p "$dir/$name"
+       touch "$dir/$name/$sessid"
+else
+       rm "$dir/$name/$sessid"
+       rmdir "$dir/$name"
+fi
diff --git a/packaging/pre_checkin.sh b/packaging/pre_checkin.sh
new file mode 100644 (file)
index 0000000..c785089
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+# vim:sw=4 et
+# This script is called automatically during autobuild checkin.
+
+cp -lf dbus.changes dbus-x11.changes
+
+for spec in dbus-x11.spec; do
+    cp -f $spec.in $spec
+    for n in $(seq 1 10); do
+        grep -q "COMMON$n-BEGIN" dbus.spec || continue
+        { sed -n -e "1,/COMMON$n-BEGIN/p" $spec
+          sed -n -e "/COMMON$n-BEGIN/,/COMMON$n-END/p" dbus.spec
+          sed -n -e "/COMMON$n-END/,\$p" $spec.in; } > $spec.tmp && mv $spec.tmp $spec
+    done
+
+    # assuming hilbert has no such dir 
+    #if test -x /mounts/work/src/bin/tools/prepare_spec; then
+    #    /mounts/work/src/bin/tools/prepare_spec $spec > $spec.tmp && mv $spec.tmp $spec
+    #fi
+done
+
+osc service localrun format_spec_file
diff --git a/packaging/rc.boot.dbus b/packaging/rc.boot.dbus
new file mode 100644 (file)
index 0000000..fba8e81
--- /dev/null
@@ -0,0 +1,123 @@
+#!/bin/sh
+# Author: Timo Hoenig <thoenig@suse.de>
+#
+# /etc/init.d/dbus
+#
+### BEGIN INIT INFO
+# Provides:          dbus
+# Required-Start:    $local_fs
+# Should-Start:
+# Required-Stop:     $local_fs
+# Should-Stop:
+# Default-Start:     2 3 5
+# Default-Stop:      
+# Short-Description: D-Bus is a message bus system for applications to talk to one another.
+# Description:       D-Bus supplies both a system daemon and a per-user-login-session daemon.
+#                    Also, the message bus is built on top of a general one-to-one message
+#                    passing framework, which can be used by any two apps to communicate
+#                    directly (without going through the message bus daemon).
+### END INIT INFO
+
+DBUS_DAEMON_BIN=/bin/dbus-daemon
+test -x $DBUS_DAEMON_BIN || exit 5
+
+DBUS_DAEMON_PARAMETER="--system";
+DBUS_DAEMON_PID_DIR="/var/run/dbus"
+DBUS_DAEMON_PID=$DBUS_DAEMON_PID_DIR/pid
+
+DBUS_MACHINE_ID_DIR="/var/lib/dbus"
+DBUS_MACHINE_ID=$DBUS_MACHINE_ID_DIR/machine-id
+
+DBUS_UUIIDGEN_BIN=/bin/dbus-uuidgen
+
+CONSOLEKIT_DAEMON_BIN="/usr/sbin/console-kit-daemon"
+CONSOLEKIT_PID_DIR="/var/run/ConsoleKit"
+CONSOLEKIT_PID=$CONSOLEKIT_PID_DIR/pid
+
+# Source LSB init functions
+# providing start_daemon, killproc, pidofproc, 
+# log_success_msg, log_failure_msg and log_warning_msg.
+# This is currently not used by UnitedLinux based distributions and
+# not needed for init scripts for UnitedLinux only. If it is used,
+# the functions from rc.status should not be sourced or used.
+#. /lib/lsb/init-functions
+
+. /etc/rc.status
+
+# Reset status of this service
+rc_reset
+
+case "$1" in
+    start)
+       if [ -x $DBUS_UUIIDGEN_BIN -a ! -e $DBUS_MACHINE_ID ] ; then
+               if [ ! -d $DBUS_MACHINE_ID_DIR ] ; then
+                       mkdir -p $DBUS_MACHINE_ID_DIR
+                       chown messagebus:messagebus $DBUS_MACHINE_ID_DIR
+               fi
+               echo -n "Creating universally unique ID..."
+               $DBUS_UUIIDGEN_BIN --ensure
+               rc_status -v
+       fi
+       if checkproc -k -p $DBUS_DAEMON_PID $DBUS_DAEMON_BIN ; then
+               echo "D-Bus already started. Not starting."
+               exit 0
+       fi
+       if [ ! -d $DBUS_DAEMON_PID_DIR ] ; then
+               mkdir -p $DBUS_DAEMON_PID_DIR
+               chown messagebus:messagebus $DBUS_DAEMON_PID_DIR
+       fi
+       if [ -e $DBUS_DAEMON_PID ] ; then
+               echo "Removing stale PID file $DBUS_DAEMON_PID."
+               rm -f $DBUS_DAEMON_PID
+       fi
+       echo -n "Starting D-Bus daemon"
+       start_daemon -f $DBUS_DAEMON_BIN $DBUS_DAEMON_PARAMETER
+       rc_status -v
+       ;;
+    stop)
+       echo -n "Shutting down D-Bus daemon"
+       if [ -x $CONSOLEKIT_DAEMON_BIN ] ; then
+               killproc -p $CONSOLEKIT_PID  -TERM $CONSOLEKIT_DAEMON_BIN
+       fi
+       killproc -p $DBUS_DAEMON_PID -TERM $DBUS_DAEMON_BIN
+       rc_status -v
+       ;;
+    try-restart)
+       $0 status >/dev/null &&  $0 restart
+       rc_status
+       ;;
+    restart)
+       $0 stop
+       $0 start
+       rc_status
+       ;;
+    force-reload)
+       $0 reload
+       rc_status
+       ;;
+    reload)
+       echo -n "Reload service D-Bus daemon"
+       dbus-send --type=method_call --system --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig
+       rc_status -v
+       ;;
+    status)
+       echo -n "Checking for service D-Bus daemon"
+       checkproc -k -p $DBUS_DAEMON_PID $DBUS_DAEMON_BIN
+       if [ $? -eq 7 ]; then
+               rc_failed 3
+       fi
+       rc_status -v
+       ;;
+    probe)
+       ## Optional: Probe for the necessity of a reload, print out the
+       ## argument to this init script which is required for a reload.
+       ## Note: probe is not (yet) part of LSB (as of 1.2)
+       # test /etc/FOO/FOO.conf -nt /var/run/FOO.pid && echo reload
+       ;;
+    *)
+       echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|probe}"
+       exit 1
+       ;;
+esac
+rc_exit
+