From: Anas Nashif Date: Tue, 30 Oct 2012 23:28:05 +0000 (-0700) Subject: add packaging X-Git-Tag: submit/tizen/20130620.084139~29 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=af26865cffd12a87b99081a34932b8d6e3ce0e0f;p=platform%2Fupstream%2Fdbus.git add packaging --- diff --git a/packaging/baselibs.conf b/packaging/baselibs.conf new file mode 100644 index 0000000..afa6594 --- /dev/null +++ b/packaging/baselibs.conf @@ -0,0 +1,3 @@ +dbus +dbus-devel +libdbus diff --git a/packaging/dbus-x11.spec b/packaging/dbus-x11.spec new file mode 100644 index 0000000..5771181 --- /dev/null +++ b/packaging/dbus-x11.spec @@ -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 index 0000000..90d9f1e --- /dev/null +++ b/packaging/dbus-x11.spec.in @@ -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 index 0000000..64fb4d6 --- /dev/null +++ b/packaging/dbus.spec @@ -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 index 0000000..411eb6d --- /dev/null +++ b/packaging/dbus_at_console.ck @@ -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 index 0000000..c785089 --- /dev/null +++ b/packaging/pre_checkin.sh @@ -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 index 0000000..fba8e81 --- /dev/null +++ b/packaging/rc.boot.dbus @@ -0,0 +1,123 @@ +#!/bin/sh +# Author: Timo Hoenig +# +# /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 +