%define _libdir64 %{_prefix}/lib64 %define dbus_uid 81 %define dbus_gid 81 Summary: D-BUS message bus Name: dbus Version: 1.6.8 Release: 1 URL: http://www.freedesktop.org/software/dbus/ Source0: http://dbus.freedesktop.org/releases/dbus/%{name}-%{version}.tar.gz Source1: dbus.aix.init Source2: 00-start-message-bus.sh Patch0: %{name}-%{version}-aix.patch License: GPLv2+ or AFL Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: doxygen BuildRequires: expat-devel >= 2.0.1-3 BuildRequires: patch BuildRequires: xmlto Requires: %{name}-libs = %{version}-%{release} Requires: expat >= 2.0.1-3 %description D-BUS is a system for sending messages between applications. It is used both for the system-wide message bus service, and as a per-user-login-session messaging facility. %package libs Summary: Libraries for accessing D-BUS Group: Development/Libraries %description libs This package contains lowlevel libraries for accessing D-BUS. The libraries are available as 32-bit and 64-bit. %package doc Summary: Developer documentation for D-BUS Group: Documentation Requires: %{name} = %{version}-%{release} %description doc This package contains developer documentation for D-Bus along with other supporting documentation such as the introspect dtd file. %package devel Summary: Development files for D-BUS Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: pkg-config %description devel This package contains libraries and header files needed for developing software that uses D-BUS. If you are compiling a 32-bit program, no special compiler options are needed. If you are compiling a 64-bit program, you have to compile and link your application with "xlc_r -q64" or "gcc -maix64". %package x11 Summary: X11-requiring add-ons for D-BUS Group: Development/Libraries Requires: %{name} = %{version}-%{release} %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 export PATH=/opt/freeware/bin:$PATH %patch0 # for some reason upstream ships these files as executable # make sure they are not chmod 0644 COPYING ChangeLog NEWS mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cd 32bit && tar cf - . | (cd ../64bit ; tar xpf -) %build export CONFIG_SHELL=/usr/bin/ksh export CONFIG_ENV_ARGS=/usr/bin/ksh export CC="xlc_r" cd 64bit # first build the 64-bit version export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=%{_mandir} \ --enable-shared --disable-static \ --disable-asserts \ --enable-xml-docs \ --enable-doxygen-docs \ --disable-tests \ --enable-stats \ --with-xml=expat \ --with-init-scripts=redhat \ --with-system-pid-file=/var/run/messagebus.pid \ --with-dbus-user=%{name} \ --with-x gmake %{?_smp_mflags} cd ../32bit # now build the 32-bit version export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --sysconfdir=/etc \ --localstatedir=/var \ --mandir=%{_mandir} \ --enable-shared --disable-static \ --disable-asserts \ --enable-xml-docs \ --enable-doxygen-docs \ --disable-tests \ --enable-stats \ --with-xml=expat \ --with-init-scripts=redhat \ --with-system-pid-file=/var/run/messagebus.pid \ --with-dbus-user=%{name} \ --with-x gmake %{?_smp_mflags} %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit export OBJECT_MODE=64 gmake DESTDIR=${RPM_BUILD_ROOT} install ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in * ; do mv -f ${f} ${f}_64 done ) cd ../32bit export OBJECT_MODE=32 gmake DESTDIR=${RPM_BUILD_ROOT} install /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_libdir64} for f in *.a ; do /usr/bin/ar -X64 -x ${f} done cd ${RPM_BUILD_ROOT}%{_libdir} for f in *.a ; do /usr/bin/ar -X32 -x ${f} done ) # add the 64-bit shared objects to the shared libraries containing already the # 32-bit shared objects /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}-1.a ${RPM_BUILD_ROOT}%{_libdir64}/lib%{name}-1.so* mkdir -p ${RPM_BUILD_ROOT}/etc/X11/xinit/xinitrc.d cp %{SOURCE2} ${RPM_BUILD_ROOT}/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh chmod 0755 ${RPM_BUILD_ROOT}/etc/X11/xinit/xinitrc.d/00-start-message-bus.sh mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/dbus-1/interfaces mkdir -p ${RPM_BUILD_ROOT}/var/lib/%{name} mkdir -p ${RPM_BUILD_ROOT}/var/run/%{name} mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/init.d cp %{SOURCE1} ${RPM_BUILD_ROOT}/etc/rc.d/init.d/messagebus chmod 0755 ${RPM_BUILD_ROOT}/etc/rc.d/init.d/messagebus mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/rc2.d/ mkdir -p ${RPM_BUILD_ROOT}/etc/rc.d/rc3.d/ ln -sf '../init.d/messagebus' ${RPM_BUILD_ROOT}/etc/rc.d/rc2.d/Smessagebus ln -sf '../init.d/messagebus' ${RPM_BUILD_ROOT}/etc/rc.d/rc2.d/Kmessagebus ln -sf '../init.d/messagebus' ${RPM_BUILD_ROOT}/etc/rc.d/rc3.d/Smessagebus ln -sf '../init.d/messagebus' ${RPM_BUILD_ROOT}/etc/rc.d/rc3.d/Kmessagebus ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../..%{_prefix}/${dir}/* . cd - done ) %pre # add the "dbus" group only if it does not yet exist result=`/usr/sbin/lsgroup %{name} | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "%{name}" ]] ; then /usr/bin/mkgroup -A id=%{dbus_gid} %{name} 2> /dev/null || : fi # add the "dbus" user only if it does not yet exist result=`/usr/sbin/lsuser %{name} | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "%{name}" ]] ; then /usr/bin/mkuser id=%{dbus_uid} pgrp=%{name} gecos='System Message Bus' \ login='false' rlogin='false' %{name} 2> /dev/null || : fi %preun if [ $1 = 0 ]; then /etc/rc.d/init.d/messagebus stop > /dev/null 2>&1 fi # remove "dbus" user and group /usr/sbin/rmuser -p dbus || : /usr/sbin/rmgroup dbus || : %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system) %doc 32bit/COPYING %dir /etc/dbus-1 %dir /etc/dbus-1/session.d %dir /etc/dbus-1/system.d %config /etc/dbus-1/*.conf %dir /var/run/%{name} %dir /var/lib/%{name} %{_bindir}/dbus-daemon* %{_bindir}/dbus-send* %{_bindir}/dbus-cleanup-sockets* %{_bindir}/dbus-monitor* %{_bindir}/dbus-uuidgen* %{_mandir}/man1/dbus-cleanup-sockets.1* %{_mandir}/man1/dbus-daemon.1* %{_mandir}/man1/dbus-monitor.1* %{_mandir}/man1/dbus-send.1* %{_mandir}/man1/dbus-uuidgen.1* %dir %{_datadir}/dbus-1 %{_datadir}/dbus-1/interfaces %{_datadir}/dbus-1/services %{_datadir}/dbus-1/system-services %dir %{_libdir}/dbus-1.0 %dir %{_libdir64}/dbus-1.0 /etc/rc.d/init.d/messagebus /etc/rc.d/rc2.d/Smessagebus /etc/rc.d/rc2.d/Kmessagebus /etc/rc.d/rc3.d/Smessagebus /etc/rc.d/rc3.d/Kmessagebus /usr/bin/dbus-daemon* /usr/bin/dbus-send* /usr/bin/dbus-cleanup-sockets* /usr/bin/dbus-monitor* /usr/bin/dbus-uuidgen* %files libs %defattr(-,root,system,-) %{_libdir}/*.a %{_libdir}/*.so* %{_libdir64}/*.so* /usr/lib/*.a /usr/lib/*.so* /usr/lib64/*.so* %files x11 %defattr(-,root,system) %{_bindir}/dbus-launch* %{_mandir}/man1/dbus-launch.1 /etc/X11/xinit/xinitrc.d/00-start-message-bus.sh /usr/bin/dbus-launch* %files doc %defattr(-,root,system) %doc 32bit/doc/introspect.dtd 32bit/doc/introspect.xsl %doc 32bit/doc/system-activation.txt %doc %{_datadir}/doc/dbus %files devel %defattr(-,root,system) %{_includedir}/* %{_libdir}/*.la %{_libdir64}/*.la %dir %{_libdir}/dbus-1.0 %{_libdir}/dbus-1.0/include %{_libdir64}/dbus-1.0/include %{_libdir}/pkgconfig/dbus-1.pc %{_libdir64}/pkgconfig/dbus-1.pc /usr/include/* /usr/lib/*.la /usr/lib64/*.la %changelog * Mon Nov 12 2012 Michael Perzl - 1.6.8-1 - update to version 1.6.8 * Mon Nov 12 2012 Michael Perzl - 1.4.24-1 - updated to version 1.4.24 * Mon Nov 12 2012 Michael Perzl - 1.2.30-1 - first version for AIX V5.1 and higher