diff --git a/diskimage_builder/elements/yum-minimal/install.d/11-ensure-dbus-broker b/diskimage_builder/elements/yum-minimal/install.d/11-ensure-dbus-broker new file mode 100755 index 000000000..2b767c6a8 --- /dev/null +++ b/diskimage_builder/elements/yum-minimal/install.d/11-ensure-dbus-broker @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Copyright 2019 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# + +if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then + set -x +fi +set -eu +set -o pipefail + +# Ensure that dbus-broker is enabled; it seems that because of the +# transition between dbus-daemon and dbus-broker (see +# https://pagure.io/fesco/issue/1853) the .spec files could possibly +# not enable this (likely related to ordering or something we do in +# the non-standardish chroot building) and a 2019 system with no dbus +# is very unhappy (networkmanager fails, etc). +if [[ ${DISTRO_NAME} == 'fedora' && ${DIB_RELEASE} -ge 29 ]]; then + systemctl --no-reload enable dbus-broker.service +fi diff --git a/diskimage_builder/elements/yum-minimal/root.d/08-yum-chroot b/diskimage_builder/elements/yum-minimal/root.d/08-yum-chroot index 67f9fa903..25f8c4b6f 100755 --- a/diskimage_builder/elements/yum-minimal/root.d/08-yum-chroot +++ b/diskimage_builder/elements/yum-minimal/root.d/08-yum-chroot @@ -278,6 +278,14 @@ _base_packages="systemd passwd findutils sudo util-linux-ng " # https://bugzilla.redhat.com/show_bug.cgi?id=1398505 _base_packages+="systemd-udev " +# F29 moved to dbus-broker as the default, but dbus-daemon is +# still available. Explicitly pull it in; note we have an +# install.d script to enable the service explicitly it as this +# seems required. +if [[ ${DISTRO_NAME} = fedora && ${DIB_RELEASE} -ge 29 ]]; then + _base_packages+="dbus-broker" +fi + # bootstrap the environment within the chroot; bring in new # metadata with an update and install some base packages we need. sudo -E chroot $TARGET_ROOT ${YUM} -y update