%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}

%define gettext_package dbus
%define expat_version           2.0.1
%define pyrex_version           0.9.9
%define dbus_user_uid           81

%define _localstatedir %{_var}

Summary: D-BUS message bus
Summary(ja): D-BUS メッセージバスシステム
Name: dbus
Version: 1.4.16
Release: 1%{?_dist_release}
URL: http://www.freedesktop.org/software/dbus/
License: AFL/GPLv2
Group: System Environment/Libraries

Source0: %{name}-%{version}.tar.gz
Source1: doxygen_to_devhelp.xsl

# from fedora package
Patch0: dbus-0.60-start-early.patch
Patch1: dbus-1.0.1-generate-xml-docs.patch
Patch6: dbus-1.2.1-increase-timeout.patch

# Workaround for deny send_interface
# http://bugs.freedesktop.org/show_bug.cgi?id=18961
Patch10: dbus-1.2.12-workaround-deny-sendinterface.patch

BuildRoot: %{_tmppath}/%{name}-%{version}-root
Requires(post): chkconfig >= 1.3.34
Requires(preun): chkconfig >= 1.3.34
Requires(pre): shadow-utils
BuildRequires: libtool
BuildRequires: expat-devel >= %{expat_version}
BuildRequires: libxml2-devel
BuildRequires: python-pyrex >= %{pyrex_version}
BuildRequires: doxygen
BuildRequires: xmlto
BuildRequires: libxslt
BuildRequires: gettext
BuildRequires: libX11-devel
BuildRequires: libcap
BuildRequires: libSM-devel
Requires: libxml2-python

Vendor: Project Vine
Distribution: Vine Linux

%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.

%description -l ja
D-BUS はアプリケーション間でメッセージを送受信するためのシステムです。
システム全体のメッセージバスサービスとしても利用されますが、同様に
ユーザ毎のログインセッションにおけるメッセージ基盤としても利用されます。

%package devel
Summary: Libraries and headers for D-BUS
Summary(ja): D-BUS 用のライブラリとヘッダファイル
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}

%description devel
Headers and static libraries for D-BUS.

%package x11
Summary: X11-requiring add-ons for D-BUS
Summary(ja): X11 を利用する D-BUS 用ツール
Group: Applications/System
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.

%package doc
Summary: Developer documentation for D-BUS
Group: Documentation
Requires: %{name} = %{version}-%{release}
BuildArch: noarch

%description doc
This package contains developer documentation for D-Bus along with
other supporting documentation such as the introspect dtd file.

# compat32
%package -n compat32-%{name}
Summary: D-BUS message bus
Summary(ja): D-BUS メッセージバスシステム
Group: System Environment/Libraries

%description -n compat32-%{name}
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.

%description -n compat32-%{name} -l ja
D-BUS はアプリケーション間でメッセージを送受信するためのシステムです。
システム全体のメッセージバスサービスとしても利用されますが、同様に
ユーザ毎のログインセッションにおけるメッセージ基盤としても利用されます。

%package -n compat32-%{name}-devel
Summary: Libraries and headers for D-BUS
Summary(ja): D-BUS 用のライブラリとヘッダファイル
Group: Development/Libraries
Requires: compat32-%{name} = %{version}-%{release}
Requires: %{name}-devel = %{version}-%{release}

%description -n compat32-%{name}-devel
Headers and static libraries for D-BUS.

%prep
%setup -q
## %patch0 -p1 -b .start-early
## %patch1 -p1 -b .generate-xml-docs
%patch6 -p1 -b .increase-timeout

%patch10 -p1 -b .workaround-dbus-sendinterface

%build
autoreconf -f -i

COMMON_ARGS="--enable-selinux=no \
             --with-init-scripts=redhat \
	     --with-system-pid-file=%{_localstatedir}/run/messagebus.pid \
	     --with-dbus-user=dbus \
	     --libdir=/%{_lib} --bindir=/bin \
	     --libexecdir=/%{_lib}/dbus-1 \
	     --sysconfdir=%{_sysconfdir} --exec-prefix=/"

%configure $COMMON_ARGS --disable-tests --disable-verbose-mode --disable-asserts --enable-doxygen-docs --enable-xml-docs
%__make

doxygen Doxyfile

xsltproc -o dbus.devhelp %{SOURCE1} doc/api/xml/index.xml

%install
rm -rf %{buildroot}

%__make install DESTDIR=$RPM_BUILD_ROOT

mkdir -p $RPM_BUILD_ROOT/%{_libdir}/pkgconfig

#change the arch-deps.h include directory to /usr/lib[64] instead of /lib[64]
sed -e 's@-I${libdir}@-I${prefix}/%{_lib}@' $RPM_BUILD_ROOT/%{_lib}/pkgconfig/dbus-1.pc > $RPM_BUILD_ROOT/%{_libdir}/pkgconfig/dbus-1.pc
rm -f $RPM_BUILD_ROOT/%{_lib}/pkgconfig/dbus-1.pc

mkdir -p $RPM_BUILD_ROOT/%{_bindir}
mv -f $RPM_BUILD_ROOT/bin/dbus-launch $RPM_BUILD_ROOT/%{_bindir}
mkdir -p $RPM_BUILD_ROOT/%{_libdir}/dbus-1.0/include/
mv -f $RPM_BUILD_ROOT/%{_lib}/dbus-1.0/include/* $RPM_BUILD_ROOT/%{_libdir}/dbus-1.0/include/
rm -rf $RPM_BUILD_ROOT/%{_lib}/dbus-1.0

rm -f $RPM_BUILD_ROOT/%{_lib}/*.a
rm -f $RPM_BUILD_ROOT/%{_lib}/*.la

mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus
mkdir -p $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus/api

cp dbus.devhelp $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus
cp doc/dbus-specification.html $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus
cp doc/dbus-faq.html $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus
cp doc/dbus-tutorial.html $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus
cp doc/api/html/* $RPM_BUILD_ROOT%{_datadir}/devhelp/books/dbus/api

## %find_lang %{gettext_package}

mkdir -p $RPM_BUILD_ROOT%{_datadir}/dbus-1/interfaces

%clean
rm -rf %{buildroot}

%pre
# Add the "dbus" user
/usr/sbin/useradd -c 'System message bus' -u %{dbus_user_uid} \
	-s /sbin/nologin -r -d '/' dbus 2> /dev/null || :

%post
/sbin/ldconfig
/sbin/chkconfig --add messagebus
/sbin/chkconfig messagebus resetpriorities

%preun
if [ $1 = 0 ]; then
    service messagebus stop > /dev/null 2>&1
    /sbin/chkconfig --del messagebus
fi

%postun
/sbin/ldconfig

%post -n compat32-%{name} -p /sbin/ldconfig

%postun -n compat32-%{name} -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc COPYING ChangeLog NEWS
%dir %{_sysconfdir}/dbus-1
%config %{_sysconfdir}/dbus-1/*.conf
%{_sysconfdir}/rc.d/init.d/*
%dir %{_sysconfdir}/dbus-1/system.d
%dir %{_sysconfdir}/dbus-1/session.d
%dir %{_localstatedir}/run/dbus
%dir %{_localstatedir}/lib/dbus/
/bin/dbus-daemon
/bin/dbus-send
/bin/dbus-cleanup-sockets
/bin/dbus-monitor
/bin/dbus-uuidgen
/%{_lib}/*dbus-1*.so.*
%{_datadir}/man/man*/dbus-cleanup-sockets.1.gz
%{_datadir}/man/man*/dbus-daemon.1.gz
%{_datadir}/man/man*/dbus-monitor.1.gz
%{_datadir}/man/man*/dbus-send.1.gz
%{_datadir}/man/man*/dbus-uuidgen.1.gz
%dir %{_datadir}/dbus-1
%{_datadir}/dbus-1/services
%{_datadir}/dbus-1/system-services
%{_datadir}/dbus-1/interfaces
%dir /%{_lib}/dbus-1
%attr(4750,root,dbus) /%{_lib}/dbus-1/dbus-daemon-launch-helper

%files devel
%defattr(-,root,root)
/%{_lib}/lib*.so
%{_libdir}/dbus-1.0/include
%{_libdir}/pkgconfig/*
%{_includedir}/*
%{_datadir}/devhelp/books/dbus

%files x11
%defattr(-,root,root)
%{_bindir}/dbus-launch
%{_datadir}/man/man*/dbus-launch.1.gz

%files doc
%defattr(-,root,root)
%doc %{_docdir}/dbus

# compat32
%if %{build_compat32}
%files -n compat32-%{name}
/%{_lib}/*dbus-1*.so.*

%files -n compat32-%{name}-devel
%defattr(-,root,root)
/%{_lib}/lib*.so
%{_libdir}/dbus-1.0/include
%{_libdir}/pkgconfig/*
%endif

%changelog
* Fri Sep 23 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.16-1
- new upstream release

* Sun Aug 14 2011 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.14-1
- new upstream release
- drop Patch1
- create -doc sub package

* Sat Dec 25 2010 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.1-1
- new upstream release

* Sat Oct 02 2010 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.4.0-1
- new upstream release

* Tue Sep 21 2010 IWAI, Masaharu <iwai@alib.jp> 1.2.24-3
- add BuildRequires: libSM-devel

* Tue Sep 21 2010 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.24-2
- rebuilt with rpm-4.8.1

* Wed Mar 31 2010 Yoji TOYODA <bsyamato@sea.plala.or.jp> 1.2.24-1
- new upstream release
- drop Patch0

* Fri Feb 12 2010 MATSUBAYASHI Kohji <shaolin@vinelinux.org> - 1.2.16-2
- rebuilt with new toolchain

* Sat Sep 26 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.16-1
- new upstream release

* Mon Jul 20 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.14-1
- new upstream release
- do not restart dbus on upgrade

* Sun May 10 2009 NAKAMURA Kenta <kenta@vinelinux.org> 1.2.12-3
- added compat32 package for x86_64 arch support

* Fri Mar 27 2009 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.12-2
- add Patch10 for workaround deny send_interface
  http://bugs.freedesktop.org/show_bug.cgi?id=18961
  Bug 18961: Skip bare <deny send_interface=""/> for not (method_call|signal) 
  Bare <deny send_interface=""/> rules have a far larger impact than one would think.
  It's really always wrong to use them without also using send_destination.
  - XXX: this should be fixed in each dbus configuration.

* Tue Mar 17 2009 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.12-1
- new upstream release with security fix (CVE-2008-4311)

* Fri Oct 10 2008 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 1.2.4-1
- new upstream release with security fix (CVE-2008-3834)

* Fri Aug 08 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.3-1
- new upstream release

* Thu Aug 07 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.1-3
- own the directories /usr/share/dbus-1/{system-services,interfaces}
- set 'dbus' instead of '81' to --with-dbus-user
  
* Sun Aug 03 2008 Daisuke SUZUKI <daisuke@linux.or.jp> 1.2.1-2
- import some patches from fedora
- move dbus-daemon-launch-helper to /%%{_lib}/dbus-1/

* Wed May  7 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.2.1-1
- new upstream release

* Thu Mar 20 2008 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 1.1.20-1vl5
- new upstream release

* Wed Feb 20 2008 AKIYAMA Kazuhito <akiyama@yb3.so-net.ne.jp> 1.0.2-0vl4
- rebuild with expat-2.0.1

* Fri May 11 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.2-0vl3
- rebuild with new environment/toolchain

* Sat Apr 28 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.2-0vl2
- require new chkconfig to reset initscript priorities

* Thu Apr 26 2007 Daisuke SUZUKI <daisuke@linux.or.jp> 1.0.2-0vl1
- new upstream release
- split out bindings
- move base binaries and libraries to /bin and /%{_lib}

* Wed Dec 27 2006 Ryoichi INAGAKI <ryo1@bc.wakwak.com> 0.62-0vl2
- rebuilt for VineSeed

* Thu Dec 21 2006 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 0.62-0vl1.2
- add Vendor/Distribution tag

* Thu Dec 14 2006 Satoshi IWAMOTO <satoshi.iwamoto@nifty.ne.jp> 0.62-0vl1.1
- add patch100 for fix CVE-2006-6107

* Wed Nov 01 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 0.62-0vl1
- new upstream release

* Sun Jun 10 2006 NAKAMURA Kenta <kenta@vinelinux.org> 0.61-0vl2
- disabled dbus-qt
- added BuildConflicts: qt-devel
- removed work around for 64 bit archs

* Sun Mar 05 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 0.61-0vl1
- new upstream release

* Fri Jan 27 2006 Daisuke SUZUKI <daisuke@linux.or.jp> 0.60-0vl1
- new upstream release

* Wed Oct 05 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 0.50-0vl1
- new upstream release

* Sun Jul 10 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 0.34-0vl1
- new upstream release
- enable python bindings

* Sat Mar 19 2005 Daisuke SUZUKI <daisuke@linux.or.jp> 0.23-4vl1
- initial build for Vine Linux based on FC package
- disable python bindings
- disable selinux

* Tue Feb 01 2005 John (J5) Palmieri <johnp@redhat.com> - 0.23-4
- Explicitly pass in the pid file location to ./configure instead of
  letting it guess based on the build enviornment

* Mon Jan 31 2005 John (J5) Palmieri <johnp@redhat.com> - 0.23-3
- Add patch to fix random users from connecting to a users session bus

* Fri Jan 21 2005 John (J5) Palmieri <johnp@redhat.com> - 0.23-2
- Add Steve Grubb's SE-Linux audit patch (Bug# 144920)

* Fri Jan 21 2005 John (J5) Palmieri <johnp@redhat.com> - 0.23-1
- Update to upstream version 0.23
- Drop all patches except for the UDI patch as they have been 
  integrated upstream 
- List of API changes:
      * add setgroups() to drop supplementary groups
      * removed dbus_bug_get_with_g_main since it's been replaced by dbus_g_bus_get
      * added support for int64 and uint64 to the python bindings
      * use SerivceOwnerChanges signal instead of ServiceCreated and ServiceDeleted

* Mon Nov  8 2004 Jeremy Katz <katzj@redhat.com> - 0.22-12
- rebuild against python 2.4

* Tue Nov 02 2004 John (J5) Palmieri <johnp@redhat.com>
- Add a requires for glib2-devel in the devel package
- Add SE-Linux backport from Colin Walters that fixes 
  messages getting lost in SE-Linux contexts

* Wed Oct 13 2004 John (J5) Palmieri <johnp@redhat.com>
- Bump up release and rebuild

* Mon Oct 11 2004 Tim Waugh <twaugh@redhat.com>
- Run /sbin/ldconfig for glib sub-package (bug #134062).

* Wed Sep 22 2004 John (J5) Palmieri <johnp@redhat.com>
- Fixed patch to use dbus-1 instead of dbus-1.0
- (configure.in): Exported just the datadir instead of
  the full path to the dbus datadir for consistency

* Wed Sep 22 2004 John (J5) Palmieri <johnp@redhat.com>
- Adding patch to move /usr/lib/dbus-1.0/services to
  /usr/share/dbus-1.0/services 

* Thu Sep 16 2004 John (J5) Palmieri <johnp@redhat.com>
- reverting BuildRequires: redhat-release because of issues with build system
- added precompiled version of the messagebus init script

* Thu Sep 16 2004 John (J5) Palmieri <johnp@redhat.com>
- changed /etc/redhat-release to the package redhat-release

* Thu Sep 16 2004 John (J5) Palmieri <johnp@redhat.com>
- added python int64 patch from davidz

* Thu Sep 16 2004 John (J5) Palmieri <johnp@redhat.com>
- added BuildRequires: /etc/redhat-release (RH Bug #132436)

* Wed Aug 18 2004 John (J5) Palmieri <johnp@redhat.com>
- Added Steve Grubb's spec file patch (RH Bug #130201)

* Mon Aug 16 2004 John (J5) Palmieri <johnp@redhat.com>
- Disabled dbus-gtk since dbus-viewer doesn't do anything right now

* Mon Aug 16 2004 John (J5) Palmieri <johnp@redhat.com>
- Moved dbus-viewer to new dbus-gtk package so that dbus-glib
  no longer requires X or GTK libraries. (RH Bug #130029)

* Thu Aug 12 2004 John (J5) Palmieri <johnp@redhat.com>
- Update to new 0.22 release

* Thu Aug 05 2004 John (J5) Palmieri <johnp@redhat.com> 
- Added BuildRequires for libselinux-devel and Requires for libselinux

* Tue Aug 02 2004 Colin Walters <walters@redhat.com>
- Add SE-DBus patch

* Fri Jul 30 2004 John (J5) Palmieri <johnp@redhat.com>
- Added lib64 workaround for python bindings installing to
  the wrong lib directory on 64 bit archs

* Fri Jul 30 2004 John (J5) Palmieri <johnp@redhat.com>
- Updated console-auth patch
- rebuild
 
* Thu Jul 22 2004 John (J5) Palmieri <johnp@redhat.com>
- Update to upstream CVS build
- Added console-auth patch

* Fri Jun 25 2004 John (J5) Palmieri <johnp@redhat.com>
- Workaround added to fix gcc-3.4 bug on ia64

* Fri Jun 25 2004 John (J5) Palmieri <johnp@redhat.com>
- require new Pyrex version and see if it builds this time

* Fri Jun 25 2004 John (J5) Palmieri <johnp@redhat.com>
- rebuild with updated Pyrex (0.9.2.1)

* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Fri Jun 04 2004 John (J5) Palmieri <johnp@redhat.com>
- Moved dbus-viewer, dbus-monitor and dbus-glib-tool 
  into the dbus-glib package so that the main dbus
  package does not depend on glib (Bug #125285) 

* Thu Jun 03 2004 John (J5) Palmieri <johnp@redhat.com>
- rebuilt

* Thu May 27 2004 John (J5) Palmieri <johnp@redhat.com>
- added my Python patch
- took out the qt build requires
- added a gtk+ build requires 

* Fri Apr 23 2004 John (J5) Palmieri <johnp@redhat.com>
- Changed build requirement to version 0.9-3 of Pyrex
  to fix problem with builing on x86_64

* Tue Apr 20 2004 John (J5) Palmieri <johnp@redhat.com>
- update to upstream 0.21
- removed dbus-0.20-varargs.patch patch (fixed upstream)

* Mon Apr 19 2004 John (J5) Palmieri <johnp@redhat.com>
- added a dbus-python package to generate python bindings
- added Pyrex build dependacy

* Tue Mar 02 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Wed Feb 25 2004 Bill Nottingham <notting@redhat.com> 0.20-4
- fix dbus error functions on x86-64 (#116324)
- add prereq (#112027)

* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Fri Feb 13 2004 Tim Waugh <twaugh@redhat.com>
- Conflict with cups prior to configuration file change, so that the
  %%postun service condrestart works.

* Wed Feb 11 2004 Havoc Pennington <hp@redhat.com> 0.20-2
- rebuild in fc2, cups now updated

* Wed Jan  7 2004 Bill Nottingham <notting@redhat.com> 0.20-1
- update to upstream 0.20

* Thu Oct 16 2003 Havoc Pennington <hp@redhat.com> 0.13-6
- hmm, dbus doesn't support uids in the config file. fix.

* Thu Oct 16 2003 Havoc Pennington <hp@redhat.com> 0.13-5
- put uid instead of username in the config file, to keep things working with name change

* Thu Oct 16 2003 Havoc Pennington <hp@redhat.com> 0.13-4
- make subpackages require the specific release, not just version, of base package

* Thu Oct 16 2003 Havoc Pennington <hp@redhat.com> 0.13-3
- change system user "messagebus" -> "dbus" to be under 8 chars

* Mon Sep 29 2003 Havoc Pennington <hp@redhat.com> 0.13-2
- see if removing qt subpackage for now will get us through the build system,
  qt bindings not useful yet anyway

* Sun Sep 28 2003 Havoc Pennington <hp@redhat.com> 0.13-1
- 0.13 fixes a little security oops

* Mon Aug  4 2003 Havoc Pennington <hp@redhat.com> 0.11.91-3
- break the tiny dbus-launch that depends on X into separate package
  so a CUPS server doesn't need X installed

* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
- rebuilt

* Sat May 17 2003 Havoc Pennington <hp@redhat.com> 0.11.91-1
- 0.11.91 cvs snap properly merges system.d

* Fri May 16 2003 Havoc Pennington <hp@redhat.com> 0.11.90-1
- build a cvs snap with a few more fixes

* Fri May 16 2003 Havoc Pennington <hp@redhat.com> 0.11-2
- fix a crash that was breaking cups

* Thu May 15 2003 Havoc Pennington <hp@redhat.com> 0.11-1
- 0.11

* Thu May 15 2003 Havoc Pennington <hp@redhat.com> 0.10.90-1
- use rc.d/init.d not init.d, bug #90192
- include the new man pages

* Fri Apr 11 2003 Havoc Pennington <hp@redhat.com> 0.9-1
- 0.9
- export QTDIR explicitly
- re-enable qt, the problem was most likely D-BUS configure

* Tue Apr  1 2003 Havoc Pennington <hp@redhat.com> 0.6.94-1
- update from CVS with a fix to set uid after gid

* Tue Apr  1 2003 Havoc Pennington <hp@redhat.com> 0.6.93-1
- new cvs snap that actually forks to background and changes 
  user it's running as and so forth
- create our system user in pre

* Mon Mar 31 2003 Havoc Pennington <hp@redhat.com> 0.6.92-1
- fix for "make check" test that required a home directory

* Mon Mar 31 2003 Havoc Pennington <hp@redhat.com> 0.6.91-1
- disable qt for now because beehive hates me
- pull a slightly newer cvs snap that creates socket directory
- cat the make check log after make check fails

* Mon Mar 31 2003 Havoc Pennington <hp@redhat.com> 0.6.90-1
- initial build