95e9aa4284
There are a few different use cases here. First, for layering new packages, there's no good reason for us to force a reboot. Second, we want some support for cherry-picking security updates and allowing admins to restart services. Finally, at some point we should offer support for entirely replacing the running tree if that's what the user wants. Until now we've been very conservative, but there's a spectrum here. In particular, this patch changes things so we push a rollback before we start doing anything live. I think in practice, many use cases would be totally fine with doing most changes live, and falling back to the rollback if something went wrong. This initial code drop *only* supports live layering of new packages. However, a lot of the base infrastructure is laid for future work. For now, this will be classified as an experimental feature, hence `ex livefs`. Part of: https://github.com/projectatomic/rpm-ostree/issues/639 Closes: #652 Approved by: jlebon
118 lines
4.0 KiB
Plaintext
118 lines
4.0 KiB
Plaintext
dbus_built_sources = rpm-ostreed-generated.h rpm-ostreed-generated.c
|
|
|
|
# TODO: Add --c-generate-autocleanup=all once we depend on GLib 2.50+
|
|
# https://github.com/projectatomic/rpm-ostree/pull/705
|
|
rpm-ostreed-generated.h: rpm-ostreed-generated.c
|
|
rpm-ostreed-generated.c: Makefile $(top_srcdir)/src/daemon/org.projectatomic.rpmostree1.xml
|
|
$(AM_V_GEN) gdbus-codegen \
|
|
--interface-prefix org.projectatomic.rpmostree1 \
|
|
--c-namespace RPMOSTree \
|
|
--c-generate-object-manager \
|
|
--generate-c-code rpm-ostreed-generated \
|
|
--generate-docbook rpm-ostreed-generated \
|
|
$(top_srcdir)/src/daemon/org.projectatomic.rpmostree1.xml \
|
|
$(NULL)
|
|
BUILT_SOURCES += $(dbus_built_sources)
|
|
CLEANFILES += rpm-ostreed-generated-org.projectatomic.rpmostree1.OS.xml \
|
|
rpm-ostreed-generated-org.projectatomic.rpmostree1.OSExperimental.xml \
|
|
rpm-ostreed-generated-org.projectatomic.rpmostree1.Sysroot.xml \
|
|
rpm-ostreed-generated-org.projectatomic.rpmostree1.Transaction.xml \
|
|
$(NULL)
|
|
|
|
noinst_LTLIBRARIES += librpmostreed.la
|
|
nodist_librpmostreed_la_SOURCES = $(dbus_built_sources)
|
|
|
|
librpmostreed_la_SOURCES = \
|
|
src/daemon/rpmostreed-types.h \
|
|
src/daemon/rpmostreed-daemon.h \
|
|
src/daemon/rpmostreed-daemon.c \
|
|
src/daemon/rpmostreed-utils.h \
|
|
src/daemon/rpmostreed-utils.c \
|
|
src/daemon/rpmostreed-sysroot.h \
|
|
src/daemon/rpmostreed-sysroot.c \
|
|
src/daemon/rpmostree-sysroot-core.h \
|
|
src/daemon/rpmostree-sysroot-core.c \
|
|
src/daemon/rpmostree-sysroot-upgrader.h \
|
|
src/daemon/rpmostree-sysroot-upgrader.c \
|
|
src/daemon/rpmostreed-errors.h \
|
|
src/daemon/rpmostreed-errors.c \
|
|
src/daemon/rpmostreed-deployment-utils.h \
|
|
src/daemon/rpmostreed-deployment-utils.c \
|
|
src/daemon/rpmostreed-transaction.h \
|
|
src/daemon/rpmostreed-transaction.c \
|
|
src/daemon/rpmostreed-transaction-monitor.h \
|
|
src/daemon/rpmostreed-transaction-monitor.c \
|
|
src/daemon/rpmostreed-transaction-types.h \
|
|
src/daemon/rpmostreed-transaction-types.c \
|
|
src/daemon/rpmostreed-transaction-livefs.c \
|
|
src/daemon/rpmostree-package-variants.h \
|
|
src/daemon/rpmostree-package-variants.c \
|
|
src/daemon/rpmostreed-os.h \
|
|
src/daemon/rpmostreed-os.c \
|
|
src/daemon/rpmostreed-os-experimental.h \
|
|
src/daemon/rpmostreed-os-experimental.c \
|
|
$(NULL)
|
|
|
|
librpmostreed_la_CFLAGS = \
|
|
$(AM_CFLAGS) \
|
|
$(PKGDEP_RPMOSTREE_CFLAGS) \
|
|
-DG_LOG_DOMAIN=\"rpm-ostreed\" \
|
|
-D_RPMOSTREE_EXTERN= \
|
|
-I$(srcdir)/src/daemon \
|
|
-I$(srcdir)/src/lib \
|
|
-I$(srcdir)/src/libpriv \
|
|
-I$(libglnx_srcpath) \
|
|
$(NULL)
|
|
|
|
librpmostreed_la_LIBADD = \
|
|
$(PKGDEP_RPMOSTREE_LIBS) \
|
|
librpmostreepriv.la \
|
|
librpmostree-1.la \
|
|
$(CAP_LIBS)
|
|
$(NULL)
|
|
|
|
dbusconf_DATA = $(srcdir)/src/daemon/org.projectatomic.rpmostree1.conf
|
|
dbusconfdir = ${sysconfdir}/dbus-1/system.d
|
|
|
|
systemdunit_in_files = $(srcdir)/src/daemon/rpm-ostreed.service.in
|
|
systemdunit_DATA = $(systemdunit_in_files:.service.in=.service)
|
|
systemdunitdir = $(prefix)/lib/systemd/system/
|
|
if BUILDOPT_ASAN
|
|
daemon_asan_options = -e s,@SYSTEMD_ENVIRON\@,Environment=ASAN_OPTIONS=detect_leaks=false,
|
|
else
|
|
daemon_asan_options = -e /@SYSTEMD_ENVIRON\@/d
|
|
endif
|
|
$(systemdunit_DATA): Makefile
|
|
$(SED_SUBST) $(daemon_asan_options) $@.in > $@
|
|
|
|
# We keep this stub script around to have SELinux labeling work,
|
|
# plus some backwards compatibility.
|
|
libexec_SCRIPTS = rpm-ostreed
|
|
rpm-ostreed: $(srcdir)/src/daemon/rpm-ostreed-stub.sh.in Makefile
|
|
$(SED_SUBST) $< > $@.tmp && mv $@.tmp $@
|
|
|
|
install-daemon-altname-hook:
|
|
mv $(DESTDIR)$(systemdunitdir)/rpm-ostreed.service $(DESTDIR)$(systemdunitdir)/$(primaryname)d.service
|
|
ln -sf $(primaryname)d.service $(DESTDIR)$(systemdunitdir)/rpm-ostreed.service
|
|
if BUILDOPT_NEW_NAME
|
|
INSTALL_DATA_HOOKS += install-daemon-altname-hook
|
|
endif
|
|
|
|
# We don't yet rename the DBus related items
|
|
service_in_files = $(srcdir)/src/daemon/org.projectatomic.rpmostree1.service.in
|
|
service_DATA = $(service_in_files:.service.in=.service)
|
|
servicedir = $(dbusservicedir)
|
|
%.service: %.service.in Makefile
|
|
$(SED_SUBST) $@.in > $@.tmp && mv $@.tmp $@
|
|
|
|
EXTRA_DIST += \
|
|
$(dbusservice_DATA) \
|
|
$(service_in_files) \
|
|
$(systemdunit_in_files) \
|
|
$(NULL)
|
|
|
|
CLEANFILES += \
|
|
$(service_DATA) \
|
|
$(systemdunit_DATA) \
|
|
$(NULL)
|