mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-10 05:18:30 +03:00
e2956e2c08
This supports checking out a commit into a tree which is then converted into a composefs image containing fs-verity digests for all the regular files, and payloads that are relative to a the `repo/objects` directory of a bare ostree repo. Some specal files are always created in the image. This ensures that various directories (usr, etc, boot, var, sysroot) exists in the created image, even if they were not in the source commit. These are needed (as bindmount targets) if you want to boot from the image. In the non-composefs case these are just created as needed in the checked out deploydir, but we can't do that here. This is all controlled by the new ex-integrity config section, which has the following layout: ``` [ex-integrity] fsverity=yes/no/maybe composefs=yes/no/maybe composefs-apply-sig=yes/no composefs-add-metadata=yes/no composefs-keyfiile=/a/path composefs-certfile=/a/path ``` The `fsverity` key overrides the old `ex-fsverity` section if specified. The default for all these is for the new behaviour to be disabled. Additionally, enabling composefs implies fsverity defaults to `maybe`, to avoid having to set both.
309 lines
11 KiB
Plaintext
309 lines
11 KiB
Plaintext
# Makefile for C source code
|
|
#
|
|
# Copyright (C) 2011,2014 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/>.
|
|
|
|
include Makefile-libostree-defines.am
|
|
|
|
bupsplitpath = libbupsplit.la
|
|
noinst_LTLIBRARIES += libbupsplit.la
|
|
libbupsplit_la_SOURCES = src/libostree/bupsplit.h src/libostree/bupsplit.c
|
|
|
|
lib_LTLIBRARIES += libostree-1.la
|
|
|
|
libostreeincludedir = $(includedir)/ostree-1
|
|
libostreeinclude_HEADERS = $(libostree_public_headers) $(libostree_public_built_headers)
|
|
|
|
ENUM_TYPES = $(NULL)
|
|
ENUM_TYPES += $(srcdir)/src/libostree/ostree-fetcher.h
|
|
|
|
# TODO: GLIB_CHECK_VERSION > 2.5x: use --output instead of mv (see https://github.com/ostreedev/ostree/pull/1329)
|
|
src/libostree/ostree-enumtypes.h: src/libostree/ostree-enumtypes.h.template $(ENUM_TYPES)
|
|
$(AM_V_GEN) $(GLIB_MKENUMS) \
|
|
--template $< \
|
|
$(ENUM_TYPES) > $@.tmp && mv $@.tmp $@
|
|
|
|
src/libostree/ostree-enumtypes.c: src/libostree/ostree-enumtypes.c.template src/libostree/ostree-enumtypes.h $(ENUM_TYPES)
|
|
$(AM_V_GEN) $(GLIB_MKENUMS) \
|
|
--template $< \
|
|
$(ENUM_TYPES) > $@.tmp && mv $@.tmp $@
|
|
|
|
nodist_libostree_1_la_SOURCES = \
|
|
src/libostree/ostree-enumtypes.h \
|
|
src/libostree/ostree-enumtypes.c \
|
|
$(NULL)
|
|
|
|
BUILT_SOURCES += $(nodist_libostree_1_la_SOURCES)
|
|
|
|
CLEANFILES += $(BUILT_SOURCES)
|
|
|
|
libostree_1_la_SOURCES = \
|
|
src/libostree/ostree-async-progress.c \
|
|
src/libostree/ostree-cmd-private.h \
|
|
src/libostree/ostree-cmd-private.c \
|
|
src/libostree/ostree-core-private.h \
|
|
src/libostree/ostree-core.c \
|
|
src/libostree/ostree-date-utils.c \
|
|
src/libostree/ostree-date-utils-private.h \
|
|
src/libostree/ostree-dummy-enumtypes.c \
|
|
src/libostree/ostree-checksum-input-stream.c \
|
|
src/libostree/ostree-checksum-input-stream.h \
|
|
src/libostree/ostree-chain-input-stream.c \
|
|
src/libostree/ostree-chain-input-stream.h \
|
|
src/libostree/ostree-content-writer.c \
|
|
src/libostree/ostree-content-writer.h \
|
|
src/libostree/ostree-lzma-common.c \
|
|
src/libostree/ostree-lzma-common.h \
|
|
src/libostree/ostree-lzma-compressor.c \
|
|
src/libostree/ostree-lzma-compressor.h \
|
|
src/libostree/ostree-lzma-decompressor.c \
|
|
src/libostree/ostree-lzma-decompressor.h \
|
|
src/libostree/ostree-rollsum.h \
|
|
src/libostree/ostree-rollsum.c \
|
|
src/libostree/ostree-varint.h \
|
|
src/libostree/ostree-varint.c \
|
|
src/libostree/ostree-linuxfsutil.h \
|
|
src/libostree/ostree-linuxfsutil.c \
|
|
src/libostree/ostree-diff.c \
|
|
src/libostree/ostree-mutable-tree.c \
|
|
src/libostree/ostree-ref.c \
|
|
src/libostree/ostree-remote.c \
|
|
src/libostree/ostree-remote-private.h \
|
|
src/libostree/ostree-repo-os.c \
|
|
src/libostree/ostree-repo.c \
|
|
src/libostree/ostree-repo-checkout.c \
|
|
src/libostree/ostree-repo-commit.c \
|
|
src/libostree/ostree-repo-composefs.c \
|
|
src/libostree/ostree-repo-pull.c \
|
|
src/libostree/ostree-repo-pull-private.h \
|
|
src/libostree/ostree-repo-pull-verify.c \
|
|
src/libostree/ostree-repo-libarchive.c \
|
|
src/libostree/ostree-repo-prune.c \
|
|
src/libostree/ostree-repo-refs.c \
|
|
src/libostree/ostree-repo-verity.c \
|
|
src/libostree/ostree-repo-traverse.c \
|
|
src/libostree/ostree-repo-private.h \
|
|
src/libostree/ostree-repo-file.c \
|
|
src/libostree/ostree-repo-file-enumerator.c \
|
|
src/libostree/ostree-repo-file-enumerator.h \
|
|
src/libostree/ostree-sepolicy.c \
|
|
src/libostree/ostree-sepolicy-private.h \
|
|
src/libostree/ostree-sysroot-private.h \
|
|
src/libostree/ostree-sysroot.c \
|
|
src/libostree/ostree-sysroot-cleanup.c \
|
|
src/libostree/ostree-sysroot-deploy.c \
|
|
src/libostree/ostree-sysroot-upgrader.c \
|
|
src/libostree/ostree-impl-system-generator.c \
|
|
src/libostree/ostree-bootconfig-parser.c \
|
|
src/libostree/ostree-deployment.c \
|
|
src/libostree/ostree-bootloader.h \
|
|
src/libostree/ostree-bootloader.c \
|
|
src/libostree/ostree-bootloader-aboot.h \
|
|
src/libostree/ostree-bootloader-aboot.c \
|
|
src/libostree/ostree-bootloader-grub2.h \
|
|
src/libostree/ostree-bootloader-grub2.c \
|
|
src/libostree/ostree-bootloader-zipl.h \
|
|
src/libostree/ostree-bootloader-zipl.c \
|
|
src/libostree/ostree-bootloader-syslinux.h \
|
|
src/libostree/ostree-bootloader-syslinux.c \
|
|
src/libostree/ostree-bootloader-uboot.h \
|
|
src/libostree/ostree-bootloader-uboot.c \
|
|
src/libostree/ostree-repo-static-delta-core.c \
|
|
src/libostree/ostree-repo-static-delta-processing.c \
|
|
src/libostree/ostree-repo-static-delta-compilation.c \
|
|
src/libostree/ostree-repo-static-delta-compilation-analysis.c \
|
|
src/libostree/ostree-repo-static-delta-private.h \
|
|
src/libostree/ostree-autocleanups.h \
|
|
src/libostree/ostree-bloom.c \
|
|
src/libostree/ostree-bloom-private.h \
|
|
src/libostree/ostree-repo-finder.c \
|
|
src/libostree/ostree-repo-finder-avahi.c \
|
|
src/libostree/ostree-repo-finder-config.c \
|
|
src/libostree/ostree-repo-finder-mount.c \
|
|
src/libostree/ostree-repo-finder-override.c \
|
|
src/libostree/ostree-kernel-args.h \
|
|
src/libostree/ostree-kernel-args.c \
|
|
$(NULL)
|
|
if USE_LIBARCHIVE
|
|
libostree_1_la_SOURCES += src/libostree/ostree-libarchive-input-stream.h \
|
|
src/libostree/ostree-libarchive-input-stream.c \
|
|
src/libostree/ostree-libarchive-private.h \
|
|
$(NULL)
|
|
endif
|
|
if HAVE_LIBSOUP_CLIENT_CERTS
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-tls-cert-interaction.c \
|
|
src/libostree/ostree-tls-cert-interaction-private.h \
|
|
$(NULL)
|
|
endif
|
|
|
|
if USE_AVAHI
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-repo-finder-avahi-parser.c \
|
|
src/libostree/ostree-repo-finder-avahi-private.h \
|
|
$(NULL)
|
|
endif # USE_AVAHI
|
|
|
|
if USE_GPGME
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-gpg-verifier.c \
|
|
src/libostree/ostree-gpg-verifier.h \
|
|
src/libostree/ostree-gpg-verify-result.c \
|
|
src/libostree/ostree-gpg-verify-result-private.h \
|
|
$(NULL)
|
|
else
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-gpg-verify-result-dummy.c \
|
|
$(NULL)
|
|
endif # USE_GPGME
|
|
|
|
symbol_files = $(top_srcdir)/src/libostree/libostree-released.sym
|
|
|
|
# Uncomment this include when adding new development symbols.
|
|
#if BUILDOPT_IS_DEVEL_BUILD
|
|
#symbol_files += $(top_srcdir)/src/libostree/libostree-devel.sym
|
|
#endif
|
|
|
|
# http://blog.jgc.org/2007/06/escaping-comma-and-space-in-gnu-make.html
|
|
wl_versionscript_arg = -Wl,--version-script=
|
|
EXTRA_DIST += \
|
|
$(top_srcdir)/src/libostree/libostree-devel.sym \
|
|
$(top_srcdir)/src/libostree/libostree-released.sym \
|
|
$(NULL)
|
|
|
|
libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff -I$(srcdir)/libglnx -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree -I$(builddir)/src/libostree \
|
|
$(OT_INTERNAL_GIO_UNIX_CFLAGS) $(OT_INTERNAL_GPGME_CFLAGS) $(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) $(OT_DEP_CRYPTO_CFLAGS) \
|
|
-fvisibility=hidden '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) extern' \
|
|
-DPKGLIBEXECDIR=\"$(pkglibexecdir)\"
|
|
libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files))
|
|
libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GPGME_LIBS) \
|
|
$(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_LIBS)
|
|
# Some change between rust-1.21.0-1.fc27 and rust-1.22.1-1.fc27.x86_64
|
|
libostree_1_la_LIBADD += $(bupsplitpath)
|
|
EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)
|
|
|
|
if USE_LIBARCHIVE
|
|
libostree_1_la_CFLAGS += $(OT_DEP_LIBARCHIVE_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_LIBARCHIVE_LIBS)
|
|
endif
|
|
|
|
if USE_AVAHI
|
|
libostree_1_la_CFLAGS += $(OT_DEP_AVAHI_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_AVAHI_LIBS)
|
|
endif
|
|
|
|
if BUILDOPT_SYSTEMD
|
|
libostree_1_la_CFLAGS += $(LIBSYSTEMD_CFLAGS)
|
|
libostree_1_la_LIBADD += $(LIBSYSTEMD_LIBS)
|
|
endif
|
|
|
|
if USE_CURL_OR_SOUP
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-fetcher.h \
|
|
src/libostree/ostree-fetcher-util.h \
|
|
src/libostree/ostree-fetcher-util.c \
|
|
src/libostree/ostree-fetcher-uri.c \
|
|
src/libostree/ostree-metalink.h \
|
|
src/libostree/ostree-metalink.c \
|
|
$(NULL)
|
|
endif
|
|
|
|
# Only enable one fetcher backend.
|
|
if USE_CURL
|
|
libostree_1_la_SOURCES += src/libostree/ostree-fetcher-curl.c \
|
|
$(NULL)
|
|
libostree_1_la_CFLAGS += $(OT_DEP_CURL_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_CURL_LIBS)
|
|
else
|
|
if USE_LIBSOUP3
|
|
libostree_1_la_SOURCES += src/libostree/ostree-fetcher-soup3.c
|
|
libostree_1_la_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_INTERNAL_SOUP_LIBS)
|
|
else
|
|
if USE_LIBSOUP
|
|
libostree_1_la_SOURCES += src/libostree/ostree-fetcher-soup.c
|
|
libostree_1_la_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_INTERNAL_SOUP_LIBS)
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
if USE_LIBMOUNT
|
|
libostree_1_la_CFLAGS += $(OT_DEP_LIBMOUNT_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_LIBMOUNT_LIBS)
|
|
endif
|
|
|
|
if USE_SELINUX
|
|
libostree_1_la_CFLAGS += $(OT_DEP_SELINUX_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_SELINUX_LIBS)
|
|
endif
|
|
|
|
libostree_1_la_SOURCES += \
|
|
src/libostree/ostree-sign.c \
|
|
src/libostree/ostree-sign.h \
|
|
src/libostree/ostree-sign-dummy.c \
|
|
src/libostree/ostree-sign-dummy.h \
|
|
src/libostree/ostree-sign-ed25519.c \
|
|
src/libostree/ostree-sign-ed25519.h \
|
|
src/libostree/ostree-sign-private.h \
|
|
$(NULL)
|
|
|
|
if USE_LIBSODIUM
|
|
libostree_1_la_CFLAGS += $(OT_DEP_LIBSODIUM_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_LIBSODIUM_LIBS)
|
|
endif # USE_LIBSODIUM
|
|
|
|
if USE_COMPOSEFS
|
|
libostree_1_la_CFLAGS += $(OT_DEP_COMPOSEFS_CFLAGS)
|
|
libostree_1_la_LIBADD += $(OT_DEP_COMPOSEFS_LIBS)
|
|
endif # USE_COMPOSEFS
|
|
|
|
# XXX: work around clang being passed -fstack-clash-protection which it doesn't understand
|
|
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1672012
|
|
INTROSPECTION_SCANNER_ENV = CC=gcc
|
|
|
|
if BUILDOPT_INTROSPECTION
|
|
OSTree-1.0.gir: libostree-1.la Makefile
|
|
OSTree_1_0_gir_EXPORT_PACKAGES = ostree-1
|
|
OSTree_1_0_gir_INCLUDES = Gio-2.0
|
|
OSTree_1_0_gir_C_INCLUDES = ostree.h
|
|
OSTree_1_0_gir_CFLAGS = $(libostree_1_la_CFLAGS)
|
|
OSTree_1_0_gir_LIBS = libostree-1.la
|
|
OSTree_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=Ostree --symbol-prefix=ostree $(GI_SCANNERFLAGS)
|
|
OSTree_1_0_gir_FILES = $(libostreeinclude_HEADERS) $(filter-out %.h,$(libostree_1_la_SOURCES))
|
|
INTROSPECTION_GIRS += OSTree-1.0.gir
|
|
gir_DATA += OSTree-1.0.gir
|
|
typelib_DATA += OSTree-1.0.typelib
|
|
|
|
CLEANFILES += $(gir_DATA) $(typelib_DATA)
|
|
endif
|
|
|
|
pkgconfig_DATA += src/libostree/ostree-1.pc
|
|
|
|
gpgreadme_DATA = src/libostree/README-gpg
|
|
gpgreadmedir = $(datadir)/ostree/trusted.gpg.d
|
|
EXTRA_DIST += src/libostree/README-gpg src/libostree/bupsplit.h \
|
|
src/libostree/ostree-enumtypes.h.template \
|
|
src/libostree/ostree-enumtypes.c.template \
|
|
src/libostree/ostree-deployment-private.h \
|
|
src/libostree/ostree-repo-deprecated.h \
|
|
src/libostree/ostree-version.h
|
|
|
|
install-mkdir-remotes-d-hook:
|
|
mkdir -p $(DESTDIR)$(sysconfdir)/ostree/remotes.d
|
|
INSTALL_DATA_HOOKS += install-mkdir-remotes-d-hook
|