David Herrmann 078e198
%global dbus_user_id 81
David Herrmann 078e198
7c504ca
Name:                 dbus-broker
c28f64f
Version:              21
0c55532
Release:              3%{?dist}
7c504ca
Summary:              Linux D-Bus Message Broker
7c504ca
License:              ASL 2.0
7c504ca
URL:                  https://github.com/bus1/dbus-broker
7c504ca
Source0:              https://github.com/bus1/dbus-broker/releases/download/v%{version}/dbus-broker-%{version}.tar.xz
d6b6951
Patch0:               0001-units-system-add-messagebus-alias.patch
24a45c8
Patch1:               0001-launch-improve-error-handling-for-opendir.patch
0c55532
Patch2:               0001-metrics-change-the-constant-used-for-invalid-timesta.patch
0c55532
Patch3:               0001-dbus-socket-treat-MSG_CTRUNC-gracefully.patch
7c504ca
Provides:             bundled(c-dvar) = 1
5829572
Provides:             bundled(c-ini) = 1
7c504ca
Provides:             bundled(c-list) = 3
7c504ca
Provides:             bundled(c-rbtree) = 3
5829572
Provides:             bundled(c-shquote) = 1
253b959
%{?systemd_requires}
7c504ca
BuildRequires:        pkgconfig(audit)
7c504ca
BuildRequires:        pkgconfig(expat)
7c504ca
BuildRequires:        pkgconfig(dbus-1)
7c504ca
BuildRequires:        pkgconfig(libcap-ng)
7c504ca
BuildRequires:        pkgconfig(libselinux)
7c504ca
BuildRequires:        pkgconfig(libsystemd)
7c504ca
BuildRequires:        pkgconfig(systemd)
7c504ca
BuildRequires:        gcc
7c504ca
BuildRequires:        glibc-devel
7c504ca
BuildRequires:        meson
7c504ca
BuildRequires:        python3-docutils
7c504ca
Requires:             dbus-common
7c504ca
Requires(pre):        shadow-utils
7c504ca
Requires(post):       /usr/bin/systemctl
7c504ca
# for triggerpostun
7c504ca
Requires:             /usr/bin/systemctl
253b959
253b959
%description
253b959
dbus-broker is an implementation of a message bus as defined by the D-Bus
253b959
specification. Its aim is to provide high performance and reliability, while
253b959
keeping compatibility to the D-Bus reference implementation. It is exclusively
253b959
written for Linux systems, and makes use of many modern features provided by
253b959
recent Linux kernel releases.
253b959
253b959
%prep
0c7b7fe
%autosetup -p1
253b959
253b959
%build
e853b1e
%meson -Dselinux=true -Daudit=true -Ddocs=true -Dsystem-console-users=gdm
253b959
%meson_build
253b959
253b959
%install
253b959
%meson_install
253b959
253b959
%check
253b959
%meson_test
253b959
David Herrmann 078e198
%pre
David Herrmann 078e198
# create dbus user and group
David Herrmann 078e198
getent group %{dbus_user_id} >/dev/null || \
David Herrmann 078e198
        /usr/sbin/groupadd \
David Herrmann 078e198
                -g %{dbus_user_id} \
David Herrmann 078e198
                -r dbus
David Herrmann 078e198
getent passwd %{dbus_user_id} >/dev/null || \
David Herrmann 078e198
        /usr/sbin/useradd \
David Herrmann 078e198
                -c 'System message bus' \
David Herrmann 078e198
                -u %{dbus_user_id} \
David Herrmann 078e198
                -g %{dbus_user_id} \
David Herrmann 078e198
                -s /sbin/nologin \
David Herrmann 078e198
                -d '/' \
David Herrmann 078e198
                -r dbus
David Herrmann 078e198
253b959
%post
David Herrmann 3638e65
# Since F30 dbus-broker is the default bus implementation. However, changing
David Herrmann 3638e65
# the systemd presets does not automatically switch over. Instead, we have to
74250ef
# explicitly disable dbus-daemon and enable dbus-broker. We do this on the first
74250ef
# install of this package.
74250ef
#
David Herrmann 3638e65
# Note that there is a virtual circular dependency between this package and the
David Herrmann 3638e65
# fedora presets (in 'fedora-release'). To break this, we explicitly enable
David Herrmann 3638e65
# dbus-broker here. Once the presets are in, we will be able to drop the
David Herrmann 3638e65
# explicit 'enable' calls and rely on the presets below.
b79dc68
#systemd_post dbus-broker.service
b79dc68
#systemd_user_post dbus-broker.service
74250ef
#
74250ef
# systemd has special checks if dbus.socket and dbus.service are active and
74250ef
# will close the dbus connection if they are not. When the symlinks are changed
74250ef
# from dbus-daemon to dbus-broker, systemd would think that dbus is gone,
74250ef
# because dbus.service (which now is an alias for dbus-broker.service) is not
74250ef
# active. Let's add a temporary override that will keep pid1 happy.
b79dc68
David Herrmann 3638e65
if [ $1 -eq 1 ] ; then
74250ef
        if systemctl is-enabled -q dbus-daemon.service; then
74250ef
                # Install a temporary generator that'll keep providing the
74250ef
                # alias as it was.
74250ef
                mkdir -p /run/systemd/system-generators/
74250ef
                cat >>/run/systemd/system-generators/dbus-symlink-generator <
74250ef
#!/bin/sh
74250ef
ln -s /usr/lib/systemd/system/dbus-daemon.service \$2/dbus.service
74250ef
EOF
74250ef
                chmod +x /run/systemd/system-generators/dbus-symlink-generator
74250ef
                chcon system_u:object_r:init_exec_t:s0 /run/systemd/system-generators/dbus-symlink-generator || :
74250ef
        fi
74250ef
74250ef
        if systemctl is-enabled -q --global dbus-daemon.service; then
74250ef
                mkdir -p /run/systemd/user-generators/
74250ef
                cat >>/run/systemd/user-generators/dbus-symlink-generator <
74250ef
#!/bin/sh
74250ef
ln -s /usr/lib/systemd/user/dbus-daemon.service \$2/dbus.service
74250ef
EOF
74250ef
                chmod +x /run/systemd/user-generators/dbus-symlink-generator
74250ef
        fi
74250ef
74250ef
        systemctl --no-reload -q          disable dbus-daemon.service || :
74250ef
        systemctl --no-reload -q --global disable dbus-daemon.service || :
74250ef
        systemctl --no-reload -q          enable dbus-broker.service || :
74250ef
        systemctl --no-reload -q --global enable dbus-broker.service || :
David Herrmann 3638e65
fi
253b959
2d52ac6
%journal_catalog_update
2d52ac6
253b959
%preun
253b959
%systemd_preun dbus-broker.service
180ae15
%systemd_user_preun dbus-broker.service
253b959
253b959
%postun
253b959
%systemd_postun dbus-broker.service
180ae15
%systemd_user_postun dbus-broker.service
253b959
db0a711
%triggerpostun -- dbus-daemon
4c195db
if [ $2 -eq 0 ] ; then
a9ff9ff
        # See above comment about presets.
74250ef
        #systemctl --no-reload preset dbus-broker.service || :
74250ef
        #systemctl --no-reload --global preset dbus-broker.service || :
74250ef
        systemctl --no-reload          enable dbus-broker.service || :
74250ef
        systemctl --no-reload --global enable dbus-broker.service || :
4c195db
fi
db0a711
253b959
%files
913764f
%license AUTHORS
253b959
%license LICENSE
253b959
%{_bindir}/dbus-broker
253b959
%{_bindir}/dbus-broker-launch
294ed20
%{_journalcatalogdir}/dbus-broker.catalog
294ed20
%{_journalcatalogdir}/dbus-broker-launch.catalog
253b959
%{_mandir}/man1/dbus-broker.1*
253b959
%{_mandir}/man1/dbus-broker-launch.1*
253b959
%{_unitdir}/dbus-broker.service
253b959
%{_userunitdir}/dbus-broker.service
253b959
253b959
%changelog
0c55532
*Thu May  9 2019 Tom Gundersen <teg@jklm.no> - 21-2
0c55532
- Gracefully handle missing FDs in received messages, #1706883
0c55532
- Minor bugfixes
0c55532
24a45c8
* Fri May  3 2019 Tom Gundersen <teg@jklm.no> - 21-1
24a45c8
- Don't fail on EACCESS when reading config, fixes #1704920
24a45c8
c28f64f
* Thu May  2 2019 Tom Gundersen <teg@jklm.no> - 21-1
c28f64f
- Minor bugfixes related to config reload for #1704488
c28f64f
af823ac
* Wed Apr 17 2019 Tom Gundersen <teg@jklm.no> - 20-4
af823ac
- Fix assert due to failing reload #1700514
af823ac
9fd8ca2
* Tue Apr 16 2019 Adam Williamson <awilliam@redhat.com> - 20-3
9fd8ca2
- Rebuild with Meson fix for #1699099
9fd8ca2
294ed20
* Thu Apr 11 2019 Tom Gundersen <teg@jklm.no> - 20-2
294ed20
- Fix the c_assert macro
294ed20
35d6d95
* Wed Apr 10 2019 Tom Gundersen <teg@jklm.no> - 20-1
35d6d95
- Improve handling of broken or deprecated configuration
294ed20
- Avoid at_console workaround if possible
35d6d95
74250ef
* Tue Apr  9 2019 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 19-2
74250ef
- Add a temporary generator to fix switching from dbus-daemon to
74250ef
  dbus-broker (#1674045)
74250ef
80f864a
* Thu Mar 28 2019 Tom Gundersen <teg@jklm.no> - 19-1
80f864a
- Minor bug fixes
80f864a
461f1df
* Thu Feb 21 2019 Tom Gundersen <teg@jklm.no> - 18-1
461f1df
- Minor bug fixes
461f1df
53a3b60
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 17-4
53a3b60
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
53a3b60
2db1a76
* Mon Jan 14 2019 Tom Gundersen <teg@jklm.no> - 17-3
2db1a76
- run in the root network namespace
2db1a76
1a13c47
* Sat Jan 12 2019 Tom Gundersen <teg@jklm.no> - 17-2
1a13c47
- ignore config files that cannot be opened (fix rhbz #1665450)
1a13c47
5829572
* Wed Jan 2 2019 Tom Gundersen <teg@jklm.no> - 17-1
5829572
- apply more sandboxing through systemd
5829572
- improve logging on disconnect
5829572
- don't send FDs to clients who don't declare support
5829572
a4826c4
* Wed Nov 28 2018 Tom Gundersen <teg@jklm.no> - 16-8
a4826c4
- don't apply presets on updates to dbus-daemon
a4826c4
18b7d70
* Mon Nov 26 2018 Tom Gundersen <teg@jklm.no> - 16-7
18b7d70
- enable service file correctly at install
18b7d70
8fc980f
* Mon Nov 26 2018 Tom Gundersen <teg@jklm.no> - 16-5
8fc980f
- use full paths when calling binaries from rpm scripts
8fc980f
e33e08e
* Sun Nov 25 2018 Tom Gundersen <teg@jklm.no> - 16-4
e33e08e
- fix SELinux bug
e33e08e
7c504ca
* Tue Oct 30 2018 Tom Gundersen <teg@jklm.no> - 16-3
7c504ca
- add explicit systemctl dependency
7c504ca
David Herrmann 078e198
* Tue Oct 23 2018 David Herrmann <dh.herrmann@gmail.com> - 16-2
David Herrmann 078e198
- create dbus user and group if non-existant
294ed20
- add explicit %%postlets to switch over to the broker as default
David Herrmann 078e198
db0a711
* Fri Oct 12 2018 Tom Gundersen <teg@jklm.no> - 16-1
db0a711
- make resource limits configurable
db0a711
- rerun presets in case dbus-daemon is disabled
db0a711
f37d282
* Thu Aug 30 2018 Tom Gundersen <teg@jklm.no> - 15-4
f37d282
- depend on dbus-common rather than dbus
f37d282
180ae15
* Wed Aug 29 2018 Tom Gundersen <teg@jklm.no> - 15-3
f37d282
- run %%systemd_user rpm macros
180ae15
9489ba6
* Mon Aug 27 2018 Tom Gundersen <teg@jklm.no> - 15-2
9489ba6
- add back --verbose switch for backwards compatibility
9489ba6
bb8a850
* Wed Aug 08 2018 Tom Gundersen <teg@jklm.no> - 15-1
bb8a850
- fix audit support
bb8a850
- make logging about invalid config less verbose
bb8a850
73fb87a
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 14-2
73fb87a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
73fb87a
e77ea58
* Tue Jul 03 2018 Tom Gundersen <teg@jklm.no> - 14-1
e77ea58
- use inotify to reload config automatically
e77ea58
- run as the right user
e77ea58
- new compatibility features, bugfixes and performance enhancements
e77ea58
92f2b2b
* Mon Apr 23 2018 Tom Gundersen <teg@jklm.no> - 13-1
92f2b2b
- Namespace transient systemd units per launcher instance
92f2b2b
- Reduce reliance on NSS
92f2b2b
- Fix deadlock with nss-systemd
92f2b2b
913764f
* Wed Feb 21 2018 Tom Gundersen <teg@jklm.no> - 11-1
913764f
- The 'gdm' user is now considered at_console=true
913764f
- Bugfixes and performance enhancements
913764f
17cac16
* Wed Feb 07 2018 Tom Gundersen <teg@jklm.no> - 10-1
17cac16
- Bugfixes and performance enhancements
17cac16
27727e5
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 9-2
27727e5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
27727e5
6b97ceb
* Thu Nov 30 2017 Tom Gundersen <teg@jklm.no> - 9-1
6b97ceb
- Avoid nss deadlock at start-up
6b97ceb
- Support ExecReload
6b97ceb
- Respect User= in service files
6b97ceb
764581a
* Tue Oct 17 2017 Tom Gundersen <teg@jklm.no> - 8-1
b42ed5b
- Dont clean-up children of activated services by default
b42ed5b
- Dont use audit from the user instance
764581a
- Support the ReloadConfig() API
764581a
0c7b7fe
* Tue Oct 17 2017 Tom Gundersen <teg@jklm.no> - 7-1
0c7b7fe
- Upstream bugfix release
0c7b7fe
871566c
* Mon Oct 16 2017 Tom Gundersen <teg@jklm.no> - 6-1
871566c
- Upstream bugfix release
871566c
3897c09
* Tue Oct 10 2017 Tom Gundersen <teg@jklm.no> - 5-1
3897c09
- Drop downstream SELinux module
3897c09
- Support (in a limited way) at_console= policies
3897c09
- Order dbus-broker before basic.target
3897c09
253b959
* Fri Sep 08 2017 Tom Gundersen <teg@jklm.no> - 4-1
253b959
- Use audit for SELinux logging
253b959
- Support full search-paths for service files
253b959
- Log policy failures
253b959
253b959
* Fri Aug 18 2017 Tom Gundersen <teg@jklm.no> - 3-1
253b959
- Add manpages
253b959
253b959
* Wed Aug 16 2017 Tom Gundersen <teg@jklm.no> - 2-2
253b959
- Add license to package
253b959
253b959
* Wed Aug 16 2017 Tom Gundersen <teg@jklm.no> - 2-1
253b959
- Add SELinux support
253b959
253b959
* Sun Aug 13 2017 Tom Gundersen <teg@jklm.no> - 1-1
253b959
- Initial RPM release
253b959