mirror of
https://github.com/ostreedev/ostree.git
synced 2025-03-26 22:50:32 +03:00
This effectively reverts ac1a919f ("boot: Add ostree-finalize-staged.path"). A bug came in on the OCP side that demonstrates that the way things are setup right now is racy. If a reboot is triggered quickly after staging a deployment, the whole pipeline of: - ostree-finalize-staged.path, which triggers - ostree-finalize-staged.service, which triggers - ostree-finalize-staged-hold.service, may not fully have happened before systemd isolates to `reboot.target` which will want to kill all pending jobs. Just directly starting the systemd unit is less elegant but much more explicit and gets rid of any possible race because it's directly part of the staging operation. Fixes: https://issues.redhat.com/browse/OCPBUGS-51150
78 lines
2.8 KiB
Plaintext
78 lines
2.8 KiB
Plaintext
# Makefile for boot module
|
|
#
|
|
# Copyright (C) 2013 Colin Walters <walters@verbum.org>
|
|
#
|
|
# SPDX-License-Identifier: LGPL-2.0+
|
|
#
|
|
# This library is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2 of the License, or (at your option) any later version.
|
|
#
|
|
# This library is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
if BUILDOPT_DRACUT
|
|
# Not using $(libdir) here is intentional, dracut modules go in prefix/lib
|
|
dracutmoddir = $(prefix)/lib/dracut/modules.d/98ostree
|
|
dracutmod_SCRIPTS = src/boot/dracut/module-setup.sh
|
|
endif
|
|
if BUILDOPT_DRACUT_CONF
|
|
dracutconfdir = $(sysconfdir)/dracut.conf.d
|
|
dracutconf_DATA = src/boot/dracut/ostree.conf
|
|
endif
|
|
|
|
if BUILDOPT_MKINITCPIO
|
|
mkinitcpioinstalldir = $(prefix)/lib/initcpio/install
|
|
mkinitcpioinstall_SCRIPTS = src/boot/mkinitcpio/ostree
|
|
|
|
mkinitcpioconfdir = $(sysconfdir)
|
|
mkinitcpioconf_DATA = src/boot/mkinitcpio/ostree-mkinitcpio.conf
|
|
endif
|
|
|
|
if BUILDOPT_SYSTEMD
|
|
systemdsystemunit_DATA = src/boot/ostree-prepare-root.service \
|
|
src/boot/ostree-remount.service \
|
|
src/boot/ostree-boot-complete.service \
|
|
src/boot/ostree-finalize-staged.service \
|
|
src/boot/ostree-finalize-staged-hold.service \
|
|
src/boot/ostree-state-overlay@.service \
|
|
$(NULL)
|
|
systemdtmpfilesdir = $(prefix)/lib/tmpfiles.d
|
|
dist_systemdtmpfiles_DATA = src/boot/ostree-tmpfiles.conf
|
|
|
|
# Allow the distcheck install under $prefix test to pass
|
|
AM_DISTCHECK_CONFIGURE_FLAGS += --with-systemdsystemunitdir='$${libdir}/systemd/system'
|
|
endif
|
|
|
|
if !BUILDOPT_BUILTIN_GRUB2_MKCONFIG
|
|
# We're using the system grub2-mkconfig generator
|
|
pkglibexec_SCRIPTS += src/boot/grub2/grub2-15_ostree
|
|
install-grub2-config-hook:
|
|
mkdir -p $(DESTDIR)$(grub2configdir)
|
|
ln -sf $(pkglibexecdir)/grub2-15_ostree $(DESTDIR)$(grub2configdir)/15_ostree
|
|
grub2configdir = $(sysconfdir)/grub.d
|
|
INSTALL_DATA_HOOKS += install-grub2-config-hook
|
|
else
|
|
# We're using our internal generator
|
|
ostree_boot_SCRIPTS += src/boot/grub2/ostree-grub-generator
|
|
endif
|
|
|
|
EXTRA_DIST += src/boot/dracut/module-setup.sh \
|
|
src/boot/dracut/ostree.conf \
|
|
src/boot/mkinitcpio \
|
|
src/boot/ostree-boot-complete.service \
|
|
src/boot/ostree-prepare-root.service \
|
|
src/boot/ostree-remount.service \
|
|
src/boot/ostree-finalize-staged.service \
|
|
src/boot/ostree-finalize-staged-hold.service \
|
|
src/boot/ostree-state-overlay@.service \
|
|
src/boot/grub2/grub2-15_ostree \
|
|
src/boot/grub2/ostree-grub-generator \
|
|
$(NULL)
|