diff --git a/Makefile-libostree.am b/Makefile-libostree.am index d40de48d..6b94f76f 100644 --- a/Makefile-libostree.am +++ b/Makefile-libostree.am @@ -173,9 +173,9 @@ 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 +# 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= diff --git a/Makefile.in b/Makefile.in index d4547f89..e3f1350b 100644 --- a/Makefile.in +++ b/Makefile.in @@ -450,16 +450,13 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) @USE_GPGME_FALSE@ src/libostree/ostree-gpg-verify-result-dummy.c \ @USE_GPGME_FALSE@ $(NULL) - -# Uncomment this include when adding new development symbols. -@BUILDOPT_IS_DEVEL_BUILD_TRUE@am__append_21 = $(top_srcdir)/src/libostree/libostree-devel.sym -@USE_LIBARCHIVE_TRUE@am__append_22 = $(OT_DEP_LIBARCHIVE_CFLAGS) -@USE_LIBARCHIVE_TRUE@am__append_23 = $(OT_DEP_LIBARCHIVE_LIBS) -@USE_AVAHI_TRUE@am__append_24 = $(OT_DEP_AVAHI_CFLAGS) -@USE_AVAHI_TRUE@am__append_25 = $(OT_DEP_AVAHI_LIBS) -@BUILDOPT_SYSTEMD_TRUE@am__append_26 = $(LIBSYSTEMD_CFLAGS) -@BUILDOPT_SYSTEMD_TRUE@am__append_27 = $(LIBSYSTEMD_LIBS) -@USE_CURL_OR_SOUP_TRUE@am__append_28 = \ +@USE_LIBARCHIVE_TRUE@am__append_21 = $(OT_DEP_LIBARCHIVE_CFLAGS) +@USE_LIBARCHIVE_TRUE@am__append_22 = $(OT_DEP_LIBARCHIVE_LIBS) +@USE_AVAHI_TRUE@am__append_23 = $(OT_DEP_AVAHI_CFLAGS) +@USE_AVAHI_TRUE@am__append_24 = $(OT_DEP_AVAHI_LIBS) +@BUILDOPT_SYSTEMD_TRUE@am__append_25 = $(LIBSYSTEMD_CFLAGS) +@BUILDOPT_SYSTEMD_TRUE@am__append_26 = $(LIBSYSTEMD_LIBS) +@USE_CURL_OR_SOUP_TRUE@am__append_27 = \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher.h \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher-util.h \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher-util.c \ @@ -468,41 +465,41 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-metalink.c \ @USE_CURL_OR_SOUP_TRUE@ $(NULL) -@USE_CURL_TRUE@am__append_29 = src/libostree/ostree-fetcher-curl.c \ +@USE_CURL_TRUE@am__append_28 = src/libostree/ostree-fetcher-curl.c \ @USE_CURL_TRUE@ src/libostree/ostree-soup-uri.h src/libostree/ostree-soup-uri.c \ @USE_CURL_TRUE@ src/libostree/ostree-soup-form.c \ @USE_CURL_TRUE@ $(NULL) -@USE_CURL_TRUE@am__append_30 = $(OT_DEP_CURL_CFLAGS) -@USE_CURL_TRUE@am__append_31 = $(OT_DEP_CURL_LIBS) -@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_32 = src/libostree/ostree-fetcher-soup.c -@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_33 = $(OT_INTERNAL_SOUP_CFLAGS) -@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_34 = $(OT_INTERNAL_SOUP_LIBS) -@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@am__append_35 = src/libostree/ostree-soup-uri.h \ +@USE_CURL_TRUE@am__append_29 = $(OT_DEP_CURL_CFLAGS) +@USE_CURL_TRUE@am__append_30 = $(OT_DEP_CURL_LIBS) +@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_31 = src/libostree/ostree-fetcher-soup.c +@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_32 = $(OT_INTERNAL_SOUP_CFLAGS) +@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_33 = $(OT_INTERNAL_SOUP_LIBS) +@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@am__append_34 = src/libostree/ostree-soup-uri.h \ @USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ src/libostree/ostree-soup-uri.c \ @USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ src/libostree/ostree-soup-form.c \ @USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ $(NULL) -@USE_LIBMOUNT_TRUE@am__append_36 = $(OT_DEP_LIBMOUNT_CFLAGS) -@USE_LIBMOUNT_TRUE@am__append_37 = $(OT_DEP_LIBMOUNT_LIBS) -@USE_SELINUX_TRUE@am__append_38 = $(OT_DEP_SELINUX_CFLAGS) -@USE_SELINUX_TRUE@am__append_39 = $(OT_DEP_SELINUX_LIBS) -@USE_LIBSODIUM_TRUE@am__append_40 = $(OT_DEP_LIBSODIUM_CFLAGS) -@USE_LIBSODIUM_TRUE@am__append_41 = $(OT_DEP_LIBSODIUM_LIBS) +@USE_LIBMOUNT_TRUE@am__append_35 = $(OT_DEP_LIBMOUNT_CFLAGS) +@USE_LIBMOUNT_TRUE@am__append_36 = $(OT_DEP_LIBMOUNT_LIBS) +@USE_SELINUX_TRUE@am__append_37 = $(OT_DEP_SELINUX_CFLAGS) +@USE_SELINUX_TRUE@am__append_38 = $(OT_DEP_SELINUX_LIBS) +@USE_LIBSODIUM_TRUE@am__append_39 = $(OT_DEP_LIBSODIUM_CFLAGS) +@USE_LIBSODIUM_TRUE@am__append_40 = $(OT_DEP_LIBSODIUM_LIBS) +@BUILDOPT_INTROSPECTION_TRUE@am__append_41 = OSTree-1.0.gir @BUILDOPT_INTROSPECTION_TRUE@am__append_42 = OSTree-1.0.gir -@BUILDOPT_INTROSPECTION_TRUE@am__append_43 = OSTree-1.0.gir -@BUILDOPT_INTROSPECTION_TRUE@am__append_44 = OSTree-1.0.typelib -@BUILDOPT_INTROSPECTION_TRUE@am__append_45 = $(gir_DATA) $(typelib_DATA) -@USE_GPGME_TRUE@am__append_46 = \ +@BUILDOPT_INTROSPECTION_TRUE@am__append_43 = OSTree-1.0.typelib +@BUILDOPT_INTROSPECTION_TRUE@am__append_44 = $(gir_DATA) $(typelib_DATA) +@USE_GPGME_TRUE@am__append_45 = \ @USE_GPGME_TRUE@ src/ostree/ot-builtin-gpg-sign.c \ @USE_GPGME_TRUE@ $(NULL) -@USE_GPGME_TRUE@am__append_47 = \ +@USE_GPGME_TRUE@am__append_46 = \ @USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-import.c \ @USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-list-keys.c \ @USE_GPGME_TRUE@ $(NULL) -@USE_CURL_OR_SOUP_TRUE@am__append_48 = src/ostree/ot-remote-builtin-add-cookie.c \ +@USE_CURL_OR_SOUP_TRUE@am__append_47 = src/ostree/ot-remote-builtin-add-cookie.c \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ot-remote-builtin-delete-cookie.c \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ot-remote-builtin-list-cookies.c \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ot-remote-cookie-util.h \ @@ -510,20 +507,20 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) @USE_CURL_OR_SOUP_TRUE@ $(NULL) src/ostree/ot-builtin-pull.c # Eventually once we stop things from using this, we should support disabling this -@USE_LIBSOUP_TRUE@am__append_49 = src/ostree/ot-builtin-trivial-httpd.c -@USE_LIBSOUP_TRUE@am__append_50 = ostree-trivial-httpd +@USE_LIBSOUP_TRUE@am__append_48 = src/ostree/ot-builtin-trivial-httpd.c +@USE_LIBSOUP_TRUE@am__append_49 = ostree-trivial-httpd # This is necessary for the cookie jar bits -@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_51 = $(OT_INTERNAL_SOUP_CFLAGS) -@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_52 = $(OT_INTERNAL_SOUP_LIBS) -@USE_LIBARCHIVE_TRUE@am__append_53 = $(OT_DEP_LIBARCHIVE_CFLAGS) -@USE_LIBARCHIVE_TRUE@am__append_54 = $(OT_DEP_LIBARCHIVE_LIBS) -@USE_LIBSODIUM_TRUE@am__append_55 = $(OT_DEP_LIBSODIUM_CFLAGS) -@USE_LIBSODIUM_TRUE@am__append_56 = $(OT_DEP_LIBSODIUM_LIBS) -@BUILDOPT_SYSTEMD_TRUE@am__append_57 = ostree-remount +@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_50 = $(OT_INTERNAL_SOUP_CFLAGS) +@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_51 = $(OT_INTERNAL_SOUP_LIBS) +@USE_LIBARCHIVE_TRUE@am__append_52 = $(OT_DEP_LIBARCHIVE_CFLAGS) +@USE_LIBARCHIVE_TRUE@am__append_53 = $(OT_DEP_LIBARCHIVE_LIBS) +@USE_LIBSODIUM_TRUE@am__append_54 = $(OT_DEP_LIBSODIUM_CFLAGS) +@USE_LIBSODIUM_TRUE@am__append_55 = $(OT_DEP_LIBSODIUM_LIBS) +@BUILDOPT_SYSTEMD_TRUE@am__append_56 = ostree-remount # It is built anyway as a side-effect of having the symlink in tests/, # and if we declare it here, it gets cleaned up properly -@BUILDOPT_SYSTEMD_FALSE@am__append_58 = ostree-remount +@BUILDOPT_SYSTEMD_FALSE@am__append_57 = ostree-remount # ostree-prepare-root can be used as init in a system without a populated /lib. # To support this use case we need to link statically as we will be unable to @@ -535,65 +532,65 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14) # to get autotools to install this as an executable but without generating rules # to make it itself which we have specified manually. See # https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html -@BUILDOPT_USE_STATIC_COMPILER_TRUE@am__append_59 = ostree-prepare-root -@BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_60 = ostree-prepare-root -@BUILDOPT_SYSTEMD_TRUE@am__append_61 = -DHAVE_SYSTEMD=1 +@BUILDOPT_USE_STATIC_COMPILER_TRUE@am__append_58 = ostree-prepare-root +@BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_59 = ostree-prepare-root +@BUILDOPT_SYSTEMD_TRUE@am__append_60 = -DHAVE_SYSTEMD=1 # This is the "new mode" of using a generator for /var; see # https://github.com/ostreedev/ostree/issues/855 +@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_61 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1 @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_62 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1 -@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_63 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1 @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@systemdsystemgenerator_PROGRAMS = ostree-system-generator$(EXEEXT) -@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_64 = $(systemdsystemgenerator_PROGRAMS) +@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_63 = $(systemdsystemgenerator_PROGRAMS) # Allow the distcheck install under $prefix test to pass -@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_65 = --with-systemdsystemgeneratordir='$${libdir}/systemd/system-generators' -@BUILDOPT_FUSE_TRUE@am__append_66 = rofiles-fuse -@BUILDOPT_ASAN_TRUE@am__append_67 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc -@USE_GPGME_TRUE@am__append_68 = \ +@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_64 = --with-systemdsystemgeneratordir='$${libdir}/systemd/system-generators' +@BUILDOPT_FUSE_TRUE@am__append_65 = rofiles-fuse +@BUILDOPT_ASAN_TRUE@am__append_66 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc +@USE_GPGME_TRUE@am__append_67 = \ @USE_GPGME_TRUE@ tests/test-remote-gpg-import.sh \ @USE_GPGME_TRUE@ tests/test-remote-gpg-list-keys.sh \ @USE_GPGME_TRUE@ tests/test-gpg-signed-commit.sh \ @USE_GPGME_TRUE@ tests/test-admin-gpg.sh \ @USE_GPGME_TRUE@ $(NULL) -@BUILDOPT_FUSE_TRUE@am__append_69 = tests/test-rofiles-fuse.sh -@BUILDOPT_FUSE_TRUE@am__append_70 = tests/rofiles-fuse-symlink-stamp -@BUILDOPT_FUSE_FALSE@am__append_71 = tests/test-rofiles-fuse.sh -@USE_LIBSOUP_TRUE@am__append_72 = tests/test-remote-cookies.sh -@BUILDOPT_GJS_TRUE@am__append_73 = $(js_tests) $(js_installed_tests) -@BUILDOPT_GJS_FALSE@am__append_74 = $(js_tests) -@BUILDOPT_GJS_FALSE@am__append_75 = $(js_installed_tests) -@ENABLE_INSTALLED_TESTS_FALSE@am__append_76 = -rpath $(abs_builddir) -@USE_GPGME_TRUE@am__append_77 = \ +@BUILDOPT_FUSE_TRUE@am__append_68 = tests/test-rofiles-fuse.sh +@BUILDOPT_FUSE_TRUE@am__append_69 = tests/rofiles-fuse-symlink-stamp +@BUILDOPT_FUSE_FALSE@am__append_70 = tests/test-rofiles-fuse.sh +@USE_LIBSOUP_TRUE@am__append_71 = tests/test-remote-cookies.sh +@BUILDOPT_GJS_TRUE@am__append_72 = $(js_tests) $(js_installed_tests) +@BUILDOPT_GJS_FALSE@am__append_73 = $(js_tests) +@BUILDOPT_GJS_FALSE@am__append_74 = $(js_installed_tests) +@ENABLE_INSTALLED_TESTS_FALSE@am__append_75 = -rpath $(abs_builddir) +@USE_GPGME_TRUE@am__append_76 = \ @USE_GPGME_TRUE@ tests/test-gpg-verify-result \ @USE_GPGME_TRUE@ $(NULL) -@USE_AVAHI_TRUE@am__append_78 = tests/test-repo-finder-avahi -@USE_LIBARCHIVE_TRUE@am__append_79 = tests/test-libarchive-import -@USE_GPGME_TRUE@am__append_80 = \ +@USE_AVAHI_TRUE@am__append_77 = tests/test-repo-finder-avahi +@USE_LIBARCHIVE_TRUE@am__append_78 = tests/test-libarchive-import +@USE_GPGME_TRUE@am__append_79 = \ @USE_GPGME_TRUE@ tests/gpg-verify-data/README.md \ @USE_GPGME_TRUE@ $(NULL) -@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_81 = $(_installed_or_uninstalled_test_scripts) -@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_82 = $(_installed_or_uninstalled_test_programs) -@ENABLE_INSTALLED_TESTS_TRUE@am__append_83 = install-installed-tests-extra +@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_80 = $(_installed_or_uninstalled_test_scripts) +@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_81 = $(_installed_or_uninstalled_test_programs) +@ENABLE_INSTALLED_TESTS_TRUE@am__append_82 = install-installed-tests-extra # Allow the distcheck install under $prefix test to pass -@BUILDOPT_SYSTEMD_TRUE@am__append_84 = --with-systemdsystemunitdir='$${libdir}/systemd/system' +@BUILDOPT_SYSTEMD_TRUE@am__append_83 = --with-systemdsystemunitdir='$${libdir}/systemd/system' # We're using the system grub2-mkconfig generator -@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_85 = src/boot/grub2/grub2-15_ostree -@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_86 = install-grub2-config-hook +@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_84 = src/boot/grub2/grub2-15_ostree +@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_85 = install-grub2-config-hook # We're using our internal generator -@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@am__append_87 = src/boot/grub2/ostree-grub-generator -@ENABLE_MAN_TRUE@@USE_LIBSOUP_TRUE@am__append_88 = ostree-trivial-httpd.1 +@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@am__append_86 = src/boot/grub2/ostree-grub-generator +@ENABLE_MAN_TRUE@@USE_LIBSOUP_TRUE@am__append_87 = ostree-trivial-httpd.1 # We still want to distribute the source, even if we are not building it -@ENABLE_MAN_TRUE@@USE_LIBSOUP_FALSE@am__append_89 = man/ostree-trivial-httpd.xml -@BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_90 = rofiles-fuse.1 -@ENABLE_MAN_TRUE@@USE_GPGME_TRUE@am__append_91 = ostree-gpg-sign.1 -@ENABLE_MAN_TRUE@am__append_92 = $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) -@ENABLE_MAN_TRUE@am__append_93 = \ +@ENABLE_MAN_TRUE@@USE_LIBSOUP_FALSE@am__append_88 = man/ostree-trivial-httpd.xml +@BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_89 = rofiles-fuse.1 +@ENABLE_MAN_TRUE@@USE_GPGME_TRUE@am__append_90 = ostree-gpg-sign.1 +@ENABLE_MAN_TRUE@am__append_91 = $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) +@ENABLE_MAN_TRUE@am__append_92 = \ @ENABLE_MAN_TRUE@ $(man1_MANS) \ @ENABLE_MAN_TRUE@ $(man5_MANS) \ @ENABLE_MAN_TRUE@ $(NULL) @@ -2105,7 +2102,7 @@ am__EXEEXT_23 = tests/test-basic.sh tests/test-basic-user.sh \ tests/test-signed-commit.sh tests/test-signed-pull.sh \ tests/test-pre-signed-pull.sh \ tests/test-signed-pull-summary.sh $(am__EXEEXT_2) \ - $(am__EXEEXT_20) $(am__append_69) $(am__append_72) \ + $(am__EXEEXT_20) $(am__append_68) $(am__append_71) \ $(am__EXEEXT_22) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_24 = \ @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_23) @@ -2407,21 +2404,21 @@ AM_CFLAGS = -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS) # Allow the distcheck install under $prefix test to pass AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man \ - --disable-maintainer-mode $(NULL) $(am__append_65) \ - $(am__append_84) \ + --disable-maintainer-mode $(NULL) $(am__append_64) \ + $(am__append_83) \ BASH_COMPLETIONSDIR='$${datadir}/bash-completion/completions' SUBDIRS = . $(am__append_14) NULL = BUILT_SOURCES = $(nodist_libostree_1_la_SOURCES) MANPAGES = -CLEANFILES = $(am__append_13) $(BUILT_SOURCES) $(am__append_45) \ +CLEANFILES = $(am__append_13) $(BUILT_SOURCES) $(am__append_44) \ src/ostree/parse-datetime.c tests/libreaddir-rand.so \ tests/ostree-symlink-stamp \ tests/ostree-prepare-root-symlink-stamp \ tests/ostree-remount-symlink-stamp \ tests/rofiles-fuse-symlink-stamp tests/ostree \ tests/ostree-prepare-root tests/ostree-remount \ - tests/rofiles-fuse $(am__append_93) + tests/rofiles-fuse $(am__append_92) EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \ COPYING README.md libglnx/README.md libglnx/COPYING \ libglnx/libglnx.m4 $(NULL) libglnx/Makefile-libglnx.am \ @@ -2436,8 +2433,8 @@ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \ src/libostree/ostree-repo-deprecated.h \ src/libostree/ostree-version.h src/ostree/parse-datetime.y \ buildutil/tap-driver.sh buildutil/tap-test tests/glib.supp \ - tests/ostree.supp $(NULL) $(am__append_71) $(am__append_74) \ - tests/libtest.sh $(am__append_75) $(am__append_80) \ + tests/ostree.supp $(NULL) $(am__append_70) $(am__append_73) \ + tests/libtest.sh $(am__append_74) $(am__append_79) \ tests/libostreetest.h tests/libtest.sh $(NULL) \ src/boot/dracut/module-setup.sh src/boot/dracut/ostree.conf \ src/boot/mkinitcpio src/boot/ostree-prepare-root.service \ @@ -2445,25 +2442,25 @@ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \ src/boot/ostree-remount.service \ src/boot/ostree-finalize-staged.service \ src/boot/grub2/grub2-15_ostree \ - src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_89) \ - $(am__append_92) + src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_88) \ + $(am__append_91) bin_SCRIPTS = lib_LTLIBRARIES = libostree-1.la -pkglibexec_SCRIPTS = $(am__append_85) +pkglibexec_SCRIPTS = $(am__append_84) noinst_LTLIBRARIES = $(am__append_1) libglnx.la libbsdiff.la \ libotutil.la libbupsplit.la libostreetest.la privlibdir = $(pkglibdir) privlib_LTLIBRARIES = pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = src/libostree/ostree-1.pc -INTROSPECTION_GIRS = $(am__append_42) +INTROSPECTION_GIRS = $(am__append_41) girdir = $(datadir)/gir-1.0 -gir_DATA = $(am__append_43) +gir_DATA = $(am__append_42) typelibdir = $(libdir)/girepository-1.0 -typelib_DATA = $(am__append_44) +typelib_DATA = $(am__append_43) gsettings_SCHEMAS = ostree_bootdir = $(prefix)/lib/ostree -ostree_boot_SCRIPTS = $(am__append_59) $(am__append_87) +ostree_boot_SCRIPTS = $(am__append_58) $(am__append_86) # We should probably consider flipping the default for DEBUG. Also, # include the builddir in $PATH so we find our just-built ostree @@ -2480,7 +2477,7 @@ AM_TESTS_ENVIRONMENT = G_TEST_SRCDIR="$(abs_srcdir)" \ pwd)$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}} PATH=$$(cd \ $(top_builddir)/tests && pwd):$${PATH} \ OSTREE_FEATURES="$(OSTREE_FEATURES)" PYTHONUNBUFFERED=1 \ - $(NULL) $(am__append_67) + $(NULL) $(am__append_66) LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/buildutil/tap-driver.sh LOG_COMPILER = $(top_srcdir)/buildutil/tap-test installed_test_LTLIBRARIES = $(am__append_12) @@ -2520,8 +2517,8 @@ all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installe # This initializes some more variables # This is a special facility to chain together hooks easily -INSTALL_DATA_HOOKS = install-mkdir-remotes-d-hook $(am__append_83) \ - $(am__append_86) +INSTALL_DATA_HOOKS = install-mkdir-remotes-d-hook $(am__append_82) \ + $(am__append_85) ALL_LOCAL_RULES = tests/libreaddir-rand.so shortened_sysconfdir = $$(echo "$(sysconfdir)" | sed -e 's|^$(prefix)||' -e 's|^/||') OSTREE_GITREV = $(shell cd $(srcdir) && if command -v git >/dev/null 2>&1 && test -d .git; then git describe --abbrev=42 --tags --always HEAD; fi) @@ -2535,7 +2532,7 @@ ACLOCAL_AMFLAGS = -I buildutil -I libglnx ${ACLOCAL_FLAGS} GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in \ gtk-doc.make fastbuild-*.qcow2 _kola_temp/ target/ Cargo.lock \ docs/.bundle/ docs/Gemfile.lock docs/_site/ docs/reference/ \ - docs/vendor/ $(NULL) $(am__append_64) + docs/vendor/ $(NULL) $(am__append_63) OT_INTERNAL_GIO_UNIX_CFLAGS = $(OT_DEP_GIO_UNIX_CFLAGS) OT_INTERNAL_GIO_UNIX_LIBS = $(OT_DEP_GIO_UNIX_LIBS) OT_INTERNAL_SOUP_CFLAGS = $(OT_DEP_SOUP_CFLAGS) @@ -2745,14 +2742,18 @@ libostree_1_la_SOURCES = src/libostree/ostree-async-progress.c \ src/libostree/ostree-kernel-args.h \ src/libostree/ostree-kernel-args.c $(NULL) $(am__append_16) \ $(am__append_17) $(am__append_18) $(am__append_19) \ - $(am__append_20) $(am__append_28) $(am__append_29) \ - $(am__append_32) $(am__append_35) src/libostree/ostree-sign.c \ + $(am__append_20) $(am__append_27) $(am__append_28) \ + $(am__append_31) $(am__append_34) 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 $(NULL) -symbol_files = $(top_srcdir)/src/libostree/libostree-released.sym \ - $(am__append_21) +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= @@ -2763,17 +2764,17 @@ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \ $(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) \ $(OT_DEP_CRYPTO_CFLAGS) -fvisibility=hidden \ '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \ - extern' $(am__append_22) $(am__append_24) $(am__append_26) \ - $(am__append_30) $(am__append_33) $(am__append_36) \ - $(am__append_38) $(am__append_40) + extern' $(am__append_21) $(am__append_23) $(am__append_25) \ + $(am__append_29) $(am__append_32) $(am__append_35) \ + $(am__append_37) $(am__append_39) libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files)) # Some change between rust-1.21.0-1.fc27 and rust-1.22.1-1.fc27.x86_64 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) \ - $(bupsplitpath) $(am__append_23) $(am__append_25) \ - $(am__append_27) $(am__append_31) $(am__append_34) \ - $(am__append_37) $(am__append_39) $(am__append_41) + $(bupsplitpath) $(am__append_22) $(am__append_24) \ + $(am__append_26) $(am__append_30) $(am__append_33) \ + $(am__append_36) $(am__append_38) $(am__append_40) EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files) # XXX: work around clang being passed -fstack-clash-protection which it doesn't understand @@ -2810,7 +2811,7 @@ ostree_SOURCES = src/ostree/main.c src/ostree/ot-builtin-admin.c \ src/ostree/ot-builtin-static-delta.c src/ostree/ot-main.h \ src/ostree/ot-main.c src/ostree/ot-dump.h src/ostree/ot-dump.c \ src/ostree/ot-editor.c src/ostree/ot-editor.h \ - src/ostree/parse-datetime.h $(NULL) $(am__append_46) \ + src/ostree/parse-datetime.h $(NULL) $(am__append_45) \ src/ostree/ot-admin-builtin-init-fs.c \ src/ostree/ot-admin-builtin-diff.c \ src/ostree/ot-admin-builtin-deploy.c \ @@ -2839,7 +2840,7 @@ ostree_SOURCES = src/ostree/main.c src/ostree/ot-builtin-admin.c \ src/ostree/ot-remote-builtin-show-url.c \ src/ostree/ot-remote-builtin-refs.c \ src/ostree/ot-remote-builtin-summary.c $(NULL) \ - $(am__append_47) $(am__append_48) $(am__append_49) + $(am__append_46) $(am__append_47) $(am__append_48) nodist_ostree_SOURCES = \ src/ostree/parse-datetime.c \ $(NULL) @@ -2851,11 +2852,11 @@ ostree_bin_shared_cflags = $(AM_CFLAGS) -I$(srcdir)/src/libotutil -I$(srcdir)/sr ostree_bin_shared_ldadd = $(AM_LDFLAGS) libglnx.la libotutil.la libostree-1.la \ $(OT_INTERNAL_GIO_UNIX_LIBS) -ostree_CFLAGS = $(ostree_bin_shared_cflags) $(am__append_51) \ - $(am__append_53) $(am__append_55) +ostree_CFLAGS = $(ostree_bin_shared_cflags) $(am__append_50) \ + $(am__append_52) $(am__append_54) ostree_LDADD = $(ostree_bin_shared_ldadd) libbsdiff.la \ - $(LIBSYSTEMD_LIBS) $(am__append_52) $(am__append_54) \ - $(am__append_56) + $(LIBSYSTEMD_LIBS) $(am__append_51) $(am__append_53) \ + $(am__append_55) @USE_LIBSOUP_TRUE@ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c @USE_LIBSOUP_TRUE@ostree_trivial_httpd_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS) @USE_LIBSOUP_TRUE@ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS) @@ -2864,8 +2865,8 @@ ostree_prepare_root_SOURCES = \ src/switchroot/ostree-prepare-root.c \ $(NULL) -ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_61) \ - $(am__append_62) +ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_60) \ + $(am__append_61) @BUILDOPT_USE_STATIC_COMPILER_FALSE@ostree_prepare_root_CFLAGS = $(AM_CFLAGS) -Isrc/switchroot ostree_remount_SOURCES = \ src/switchroot/ostree-mount-util.h \ @@ -2874,7 +2875,7 @@ ostree_remount_SOURCES = \ ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) \ $(OT_INTERNAL_GIO_UNIX_CFLAGS) -Isrc/switchroot \ - -I$(srcdir)/libglnx $(am__append_63) + -I$(srcdir)/libglnx $(am__append_62) ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la @BUILDOPT_SYSTEMD_TRUE@ostree_prepare_root_LDADD = $(AM_LDFLAGS) $(LIBSYSTEMD_LIBS) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_SOURCES = src/switchroot/ostree-mount-util.h \ @@ -2891,7 +2892,7 @@ ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la @BUILDOPT_FUSE_TRUE@rofiles_fuse_LDADD = libglnx.la $(BUILDOPT_FUSE_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS) libostree-1.la uninstalled_test_data = tests/ostree-symlink-stamp \ tests/ostree-prepare-root-symlink-stamp \ - tests/ostree-remount-symlink-stamp $(am__append_70) + tests/ostree-remount-symlink-stamp $(am__append_69) dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh # This logic implements ENABLE_INSTALLED_TESTS_EXCLUSIVE; see below. @@ -2899,10 +2900,10 @@ dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh # tests *only* run installed, to avoid having to run them twice in CI. # This overrides the glib-tap.mk emphasis on doing both, if we'd # used e.g. `dist_test_scripts`. -dist_test_scripts = $(NULL) $(am__append_81) +dist_test_scripts = $(NULL) $(am__append_80) test_programs = tests/test-bloom tests/test-repo-finder-config \ - tests/test-repo-finder-mount $(NULL) $(am__append_78) \ - $(am__append_82) + tests/test-repo-finder-mount $(NULL) $(am__append_77) \ + $(am__append_81) _installed_or_uninstalled_test_scripts = tests/test-basic.sh \ tests/test-basic-user.sh tests/test-basic-user-only.sh \ tests/test-basic-root.sh tests/test-pull-subpath.sh \ @@ -2958,8 +2959,8 @@ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \ tests/test-pull-collections.sh tests/test-config.sh \ tests/test-signed-commit.sh tests/test-signed-pull.sh \ tests/test-pre-signed-pull.sh \ - tests/test-signed-pull-summary.sh $(NULL) $(am__append_68) \ - $(am__append_69) $(am__append_72) $(am__append_73) + tests/test-signed-pull-summary.sh $(NULL) $(am__append_67) \ + $(am__append_68) $(am__append_71) $(am__append_72) test_extra_programs = \ tests/get-byte-order \ tests/repo-finder-mount \ @@ -3035,7 +3036,7 @@ libreaddir_rand_la_LIBADD = \ $(NULL) libreaddir_rand_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version \ - $(am__append_76) + $(am__append_75) _installed_or_uninstalled_test_programs = tests/test-varint \ tests/test-ot-unix-utils tests/test-bsdiff \ tests/test-mutable-tree tests/test-keyfile-utils \ @@ -3043,7 +3044,7 @@ _installed_or_uninstalled_test_programs = tests/test-varint \ tests/test-checksum tests/test-lzma tests/test-rollsum \ tests/test-basic-c tests/test-sysroot-c tests/test-pull-c \ tests/test-repo tests/test-include-ostree-h tests/test-kargs \ - tests/test-rfc2616-dates $(am__append_77) $(am__append_79) + tests/test-rfc2616-dates $(am__append_76) $(am__append_78) common_tests_cflags = $(ostree_bin_shared_cflags) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx common_tests_ldadd = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_GIO_UNIX_LIBS) libostreetest_la_SOURCES = tests/libostreetest.c tests/test-mock-gio.c tests/test-mock-gio.h @@ -3172,8 +3173,8 @@ tests_test_commit_sign_sh_ext_LDADD = $(TESTS_LDADD) @ENABLE_MAN_TRUE@ ostree-pull.1 ostree-refs.1 ostree-remote.1 \ @ENABLE_MAN_TRUE@ ostree-reset.1 ostree-rev-parse.1 \ @ENABLE_MAN_TRUE@ ostree-show.1 ostree-sign.1 ostree-summary.1 \ -@ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_88) \ -@ENABLE_MAN_TRUE@ $(am__append_90) $(am__append_91) +@ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_87) \ +@ENABLE_MAN_TRUE@ $(am__append_89) $(am__append_90) @ENABLE_MAN_TRUE@man5_files = ostree.repo.5 ostree.repo-config.5 @ENABLE_MAN_TRUE@man1_MANS = $(addprefix man/,$(man1_files)) @ENABLE_MAN_TRUE@man5_MANS = $(addprefix man/,$(man5_files)) diff --git a/apidoc/html/ostree-In-memory-modifiable-filesystem-tree.html b/apidoc/html/ostree-In-memory-modifiable-filesystem-tree.html index 67afe627..6ce4b817 100644 --- a/apidoc/html/ostree-In-memory-modifiable-filesystem-tree.html +++ b/apidoc/html/ostree-In-memory-modifiable-filesystem-tree.html @@ -52,6 +52,14 @@ OstreeMutableTree * +ostree_mutable_tree_new_from_commit () + + + + +OstreeMutableTree * + + ostree_mutable_tree_new_from_checksum () @@ -203,6 +211,44 @@ ostree_mutable_tree_new (void
+

ostree_mutable_tree_new_from_commit ()

+
OstreeMutableTree *
+ostree_mutable_tree_new_from_commit (OstreeRepo *repo,
+                                     const char *rev,
+                                     GError **error);
+

Creates a new OstreeMutableTree with the contents taken from the given commit. +The data will be loaded from the repo lazily as needed.

+
+

Parameters

+
+++++ + + + + + + + + + + + + +

repo

The repo which contains the objects refered by the checksums.

 

rev

ref or SHA-256 checksum

 
+
+
+

Returns

+

A new tree.

+

[transfer full]

+
+

Since: 2021.5

+
+
+

ostree_mutable_tree_new_from_checksum ()

OstreeMutableTree *
 ostree_mutable_tree_new_from_checksum (OstreeRepo *repo,
diff --git a/apidoc/html/ostree-SELinux-policy-management.html b/apidoc/html/ostree-SELinux-policy-management.html
index a56e1f7d..d3cd48b4 100644
--- a/apidoc/html/ostree-SELinux-policy-management.html
+++ b/apidoc/html/ostree-SELinux-policy-management.html
@@ -57,6 +57,14 @@
 
 
 
+OstreeSePolicy *
+
+
+ostree_sepolicy_new_from_commit ()
+
+
+
+
 GFile *
 
 
@@ -222,9 +230,76 @@ ostree_sepolicy_new_at (int
 
+

ostree_sepolicy_new_from_commit ()

+
OstreeSePolicy *
+ostree_sepolicy_new_from_commit (OstreeRepo *repo,
+                                 const char *rev,
+                                 GCancellable *cancellable,
+                                 GError **error);
+

Extract the SELinux policy from a commit object via a partial checkout. This is useful +for labeling derived content as separate commits.

+

This function is the backend of ostree_repo_commit_modifier_set_sepolicy_from_commit().

+
+

Parameters

+
+++++ + + + + + + + + + + + + + + + + + + + + + + +

repo

The repo

 

rev

ostree ref or checksum

 

cancellable

Cancellable

 

error

Error

 
+
+
+

Returns

+

A new policy.

+

[transfer full]

+
+
+
+

ostree_sepolicy_get_path ()

GFile *
 ostree_sepolicy_get_path (OstreeSePolicy *self);
+

This API should be considered deprecated, because it's supported for +policy objects to be created from file-descriptor relative paths, which +may not be globally accessible.

+
+

Parameters

+
+++++ + + + + + +

self

A SePolicy object

 
+

Returns

Path to rootfs.

diff --git a/apidoc/html/ostree.devhelp2 b/apidoc/html/ostree.devhelp2 index d5aa3c73..5964a01e 100644 --- a/apidoc/html/ostree.devhelp2 +++ b/apidoc/html/ostree.devhelp2 @@ -276,6 +276,7 @@ + @@ -358,6 +359,7 @@ + diff --git a/apidoc/html/reference.html b/apidoc/html/reference.html index c9491026..86cbaada 100644 --- a/apidoc/html/reference.html +++ b/apidoc/html/reference.html @@ -711,6 +711,10 @@ OSTREE_META_KEY_DEPLOY_COLLECTION_ID, macro in ostree-repo-remote-finder
+ostree_mutable_tree_new_from_commit, function in In-memory modifiable filesystem tree +
+
+
ostree_mutable_tree_remove, function in In-memory modifiable filesystem tree
@@ -1711,6 +1715,10 @@ ostree_repo_resolve_keyring_for_collection, function in ostree-repo-remote-finde
+ostree_sepolicy_new_from_commit, function in SELinux policy management +
+
+
ostree_sepolicy_restorecon, function in SELinux policy management
diff --git a/apidoc/ostree-sections.txt b/apidoc/ostree-sections.txt index f0901f21..aa74c839 100644 --- a/apidoc/ostree-sections.txt +++ b/apidoc/ostree-sections.txt @@ -268,6 +268,7 @@ OstreeLzmaDecompressorClass ostree-mutable-tree OstreeMutableTree ostree_mutable_tree_new +ostree_mutable_tree_new_from_commit ostree_mutable_tree_new_from_checksum ostree_mutable_tree_check_error ostree_mutable_tree_set_metadata_checksum @@ -522,6 +523,7 @@ ostree_repo_file_get_type OstreeSePolicy ostree_sepolicy_new ostree_sepolicy_new_at +ostree_sepolicy_new_from_commit ostree_sepolicy_get_path ostree_sepolicy_get_name ostree_sepolicy_get_label diff --git a/configure b/configure index 2a1dbf7c..f0ebd20e 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for libostree 2021.4. +# Generated by GNU Autoconf 2.69 for libostree 2021.5. # # Report bugs to . # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libostree' PACKAGE_TARNAME='libostree' -PACKAGE_VERSION='2021.4' -PACKAGE_STRING='libostree 2021.4' +PACKAGE_VERSION='2021.5' +PACKAGE_STRING='libostree 2021.5' PACKAGE_BUGREPORT='walters@verbum.org' PACKAGE_URL='' @@ -1562,7 +1562,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libostree 2021.4 to adapt to many kinds of systems. +\`configure' configures libostree 2021.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1633,7 +1633,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libostree 2021.4:";; + short | recursive ) echo "Configuration of libostree 2021.5:";; esac cat <<\_ACEOF @@ -1895,7 +1895,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libostree configure 2021.4 +libostree configure 2021.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2367,7 +2367,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libostree $as_me 2021.4, which was +It was created by libostree $as_me 2021.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3235,7 +3235,7 @@ fi # Define the identity of the package. PACKAGE='libostree' - VERSION='2021.4' + VERSION='2021.5' # Some tools Automake needs. @@ -5969,9 +5969,9 @@ test -n "$YACC" || YACC="yacc" YEAR_VERSION=2021 -RELEASE_VERSION=4 +RELEASE_VERSION=5 -PACKAGE_VERSION=2021.4 +PACKAGE_VERSION=2021.5 if echo "$CFLAGS" | grep -q -E -e '-Werror($| )'; then : @@ -18871,7 +18871,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libostree $as_me 2021.4, which was +This file was extended by libostree $as_me 2021.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -18937,7 +18937,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -libostree config.status 2021.4 +libostree config.status 2021.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.ac b/configure.ac index 1c528b19..b5a3c82a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ([2.63]) dnl To perform a release, follow the instructions in `docs/CONTRIBUTING.md`. m4_define([year_version], [2021]) -m4_define([release_version], [4]) +m4_define([release_version], [5]) m4_define([package_version], [year_version.release_version]) AC_INIT([libostree], [package_version], [walters@verbum.org]) is_release_build=yes diff --git a/src/libostree/libostree-released.sym b/src/libostree/libostree-released.sym index 1e359bfb..d38362ba 100644 --- a/src/libostree/libostree-released.sym +++ b/src/libostree/libostree-released.sym @@ -668,6 +668,12 @@ global: ostree_repo_signature_verify_commit_data; } LIBOSTREE_2021.3; +LIBOSTREE_2021.5 { +global: + ostree_sepolicy_new_from_commit; + ostree_mutable_tree_new_from_commit; +} LIBOSTREE_2021.4; + /* NOTE: Only add more content here in release commits! See the * comments at the top of this file. */ diff --git a/src/libostree/ostree-mutable-tree.c b/src/libostree/ostree-mutable-tree.c index 8509d156..bba3cf91 100644 --- a/src/libostree/ostree-mutable-tree.c +++ b/src/libostree/ostree-mutable-tree.c @@ -681,3 +681,39 @@ ostree_mutable_tree_new_from_checksum (OstreeRepo *repo, out->metadata_checksum = g_strdup (metadata_checksum); return out; } + +/** + * ostree_mutable_tree_new_from_commit: + * @repo: The repo which contains the objects refered by the checksums. + * @rev: ref or SHA-256 checksum + * + * Creates a new OstreeMutableTree with the contents taken from the given commit. + * The data will be loaded from the repo lazily as needed. + * + * Returns: (transfer full): A new tree + * Since: 2021.5 + */ +OstreeMutableTree * +ostree_mutable_tree_new_from_commit (OstreeRepo *repo, + const char *rev, + GError **error) +{ + g_autofree char *commit = NULL; + if (!ostree_repo_resolve_rev (repo, rev, FALSE, &commit, error)) + return NULL; + g_autoptr(GVariant) commit_v = NULL; + if (!ostree_repo_load_commit (repo, commit, &commit_v, NULL, error)) + return NULL; + + g_autoptr(GVariant) contents_checksum_v = NULL; + g_autoptr(GVariant) metadata_checksum_v = NULL; + char contents_checksum[OSTREE_SHA256_STRING_LEN + 1]; + char metadata_checksum[OSTREE_SHA256_STRING_LEN + 1]; + g_variant_get_child (commit_v, 6, "@ay", &contents_checksum_v); + ostree_checksum_inplace_from_bytes (g_variant_get_data (contents_checksum_v), + contents_checksum); + g_variant_get_child (commit_v, 7, "@ay", &metadata_checksum_v); + ostree_checksum_inplace_from_bytes (g_variant_get_data (metadata_checksum_v), + metadata_checksum); + return ostree_mutable_tree_new_from_checksum (repo, contents_checksum, metadata_checksum); +} diff --git a/src/libostree/ostree-mutable-tree.h b/src/libostree/ostree-mutable-tree.h index 753f96e7..9bf36802 100644 --- a/src/libostree/ostree-mutable-tree.h +++ b/src/libostree/ostree-mutable-tree.h @@ -52,6 +52,12 @@ GType ostree_mutable_tree_get_type (void) G_GNUC_CONST; _OSTREE_PUBLIC OstreeMutableTree *ostree_mutable_tree_new (void); +_OSTREE_PUBLIC +OstreeMutableTree * +ostree_mutable_tree_new_from_commit (OstreeRepo *repo, + const char *rev, + GError **error); + _OSTREE_PUBLIC OstreeMutableTree * ostree_mutable_tree_new_from_checksum (OstreeRepo *repo, const char *contents_checksum, diff --git a/src/libostree/ostree-repo-commit.c b/src/libostree/ostree-repo-commit.c index 8dc2355e..8ac963e7 100644 --- a/src/libostree/ostree-repo-commit.c +++ b/src/libostree/ostree-repo-commit.c @@ -1672,14 +1672,18 @@ ostree_repo_prepare_transaction (OstreeRepo *self, GCancellable *cancellable, GError **error) { + g_assert (self != NULL); + guint64 reserved_bytes = 0; g_return_val_if_fail (self->in_transaction == FALSE, FALSE); g_debug ("Preparing transaction in repository %p", self); - /* Set up to abort the transaction if we return early from this function. */ - g_autoptr(_OstreeRepoAutoTransaction) txn = self; + /* Set up to abort the transaction if we return early from this function. + * This needs to be manually built here due to a circular dependency. */ + g_autoptr(OstreeRepoAutoTransaction) txn = g_malloc(sizeof(OstreeRepoAutoTransaction)); + txn->repo = self; (void) txn; /* Add use to silence static analysis */ memset (&self->txn.stats, 0, sizeof (OstreeRepoTransactionStats)); @@ -1736,7 +1740,7 @@ ostree_repo_prepare_transaction (OstreeRepo *self, return FALSE; /* Success: do not abort the transaction when returning. */ - txn = NULL; (void) txn; + txn->repo = NULL; (void) txn; if (out_transaction_resume) *out_transaction_resume = ret_transaction_resume; @@ -4314,7 +4318,6 @@ ostree_repo_commit_modifier_unref (OstreeRepoCommitModifier *modifier) g_clear_pointer (&modifier->devino_cache, (GDestroyNotify)g_hash_table_unref); g_clear_object (&modifier->sepolicy); - (void) glnx_tmpdir_delete (&modifier->sepolicy_tmpdir, NULL, NULL); g_free (modifier); return; @@ -4386,38 +4389,10 @@ ostree_repo_commit_modifier_set_sepolicy_from_commit (OstreeRepoCommitModifier GCancellable *cancellable, GError **error) { - GLNX_AUTO_PREFIX_ERROR ("setting sepolicy from commit", error); - g_autofree char *commit = NULL; - g_autoptr(GFile) root = NULL; - if (!ostree_repo_read_commit (repo, rev, &root, &commit, cancellable, error)) - return FALSE; - const char policypath[] = "usr/etc/selinux"; - g_autoptr(GFile) policyroot = g_file_get_child (root, policypath); - if (!g_file_query_exists (policyroot, NULL)) - return TRUE; /* No policy, nothing to do */ - - GLnxTmpDir tmpdir = {0,}; - if (!glnx_mkdtemp ("ostree-commit-sepolicy-XXXXXX", 0700, &tmpdir, error)) - return FALSE; - if (!glnx_shutil_mkdir_p_at (tmpdir.fd, "usr/etc", 0755, cancellable, error)) - return FALSE; - - OstreeRepoCheckoutAtOptions coopts = {0,}; - coopts.mode = OSTREE_REPO_CHECKOUT_MODE_USER; - coopts.subpath = glnx_strjoina ("/", policypath); - - if (!ostree_repo_checkout_at (repo, &coopts, tmpdir.fd, policypath, commit, cancellable, error)) - return glnx_prefix_error (error, "policy checkout"); - - g_autoptr(OstreeSePolicy) policy = ostree_sepolicy_new_at (tmpdir.fd, cancellable, error); + g_autoptr(OstreeSePolicy) policy = ostree_sepolicy_new_from_commit (repo, rev, cancellable, error); if (!policy) - return glnx_prefix_error (error, "reading policy"); - + return FALSE; ostree_repo_commit_modifier_set_sepolicy (modifier, policy); - /* Transfer ownership */ - modifier->sepolicy_tmpdir = tmpdir; - tmpdir.initialized = FALSE; - return TRUE; } diff --git a/src/libostree/ostree-repo-private.h b/src/libostree/ostree-repo-private.h index 67f755bd..a2666dec 100644 --- a/src/libostree/ostree-repo-private.h +++ b/src/libostree/ostree-repo-private.h @@ -229,36 +229,6 @@ struct OstreeRepo { OstreeRepo *parent_repo; }; -/* Taken from flatpak; may be made into public API later */ -typedef OstreeRepo _OstreeRepoAutoTransaction; -static inline void -_ostree_repo_auto_transaction_cleanup (void *p) -{ - if (p == NULL) - return; - g_return_if_fail (OSTREE_IS_REPO (p)); - - OstreeRepo *repo = p; - g_autoptr(GError) error = NULL; - - if (!ostree_repo_abort_transaction (repo, NULL, &error)) - g_warning("Failed to auto-cleanup OSTree transaction: %s", error->message); - - g_object_unref (repo); -} - -static inline _OstreeRepoAutoTransaction * -_ostree_repo_auto_transaction_start (OstreeRepo *repo, - GCancellable *cancellable, - GError **error) -{ - if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error)) - return NULL; - - return (_OstreeRepoAutoTransaction *) g_object_ref (repo); -} -G_DEFINE_AUTOPTR_CLEANUP_FUNC (_OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_cleanup) - typedef struct { dev_t dev; ino_t ino; @@ -544,4 +514,39 @@ _ostree_repo_verify_bindings (const char *collection_id, GVariant *commit, GError **error); +/** + * OstreeRepoAutoTransaction: + * + * A transaction guard for a specific #OstreeRepo. It can be explicitly + * completed through abort/commit. If the guard has not been completed + * beforehand, on cleanup it is automatically aborted. + * + * Taken from flatpak; may be made into public API later + */ +typedef struct +{ + OstreeRepo *repo; +} OstreeRepoAutoTransaction; + +OstreeRepoAutoTransaction * +_ostree_repo_auto_transaction_start (OstreeRepo *repo, + GCancellable *cancellable, + GError **error); + +gboolean +_ostree_repo_auto_transaction_abort (OstreeRepoAutoTransaction *txn, + GCancellable *cancellable, + GError **error); + +gboolean +_ostree_repo_auto_transaction_commit (OstreeRepoAutoTransaction *txn, + OstreeRepoTransactionStats *out_stats, + GCancellable *cancellable, + GError **error); + +void +_ostree_repo_auto_transaction_cleanup (void *p); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_cleanup); + G_END_DECLS diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c index 42d2b0e0..772eae26 100644 --- a/src/libostree/ostree-repo.c +++ b/src/libostree/ostree-repo.c @@ -711,6 +711,118 @@ ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *auto_lock) } } + +/** + * _ostree_repo_auto_transaction_start: + * @repo: an #OsreeRepo object + * @cancellable: Cancellable + * @error: a #GError + * + * Start a transaction and return a guard for it. + * + * Returns: (transfer full): an #OsreeRepoAutoTransaction guard on success, + * %NULL otherwise. + */ +OstreeRepoAutoTransaction * +_ostree_repo_auto_transaction_start (OstreeRepo *repo, + GCancellable *cancellable, + GError **error) +{ + g_assert (repo != NULL); + + if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error)) + return NULL; + + OstreeRepoAutoTransaction *txn = g_malloc(sizeof(OstreeRepoAutoTransaction)); + txn->repo = g_object_ref (repo); + + return g_steal_pointer (&txn); +} + +/** + * _ostree_repo_auto_transaction_abort: + * @txn: an #OsreeRepoAutoTransaction guard + * @cancellable: Cancellable + * @error: a #GError + * + * Abort a transaction, marking the related guard as completed. + * + * Returns: %TRUE on successful commit, %FALSE otherwise. + */ +gboolean +_ostree_repo_auto_transaction_abort (OstreeRepoAutoTransaction *txn, + GCancellable *cancellable, + GError **error) +{ + g_assert (txn != NULL); + + if (txn->repo == NULL) { + return glnx_throw (error, "transaction already completed"); + } + + if (!ostree_repo_abort_transaction (txn->repo, cancellable, error)) + return FALSE; + + g_clear_object (&txn->repo); + + return TRUE; +} + +/** + * _ostree_repo_auto_transaction_commit: + * @txn: an #OsreeRepoAutoTransaction guard + * @cancellable: Cancellable + * @error: a #GError + * + * Commit a transaction, marking the related guard as completed. + * + * Returns: %TRUE on successful aborting, %FALSE otherwise. + */ +gboolean +_ostree_repo_auto_transaction_commit (OstreeRepoAutoTransaction *txn, + OstreeRepoTransactionStats *out_stats, + GCancellable *cancellable, + GError **error) +{ + g_assert (txn != NULL); + + if (txn->repo == NULL) { + return glnx_throw (error, "transaction already completed"); + } + + if (!ostree_repo_commit_transaction (txn->repo, out_stats, cancellable, error)) + return FALSE; + + g_clear_object (&txn->repo); + + return TRUE; +} + +/** + * _ostree_repo_auto_transaction_cleanup: + * @p: pointer to an #OsreeRepoAutoTransaction guard + * + * Destroy a transaction guard. If the transaction has not yet been completed, + * it gets aborted. + */ +void +_ostree_repo_auto_transaction_cleanup (void *p) +{ + if (p == NULL) + return; + + OstreeRepoAutoTransaction *txn = p; + // Auto-abort only if transaction has not already been aborted/committed. + if (txn->repo != NULL) + { + g_autoptr(GError) error = NULL; + if (!_ostree_repo_auto_transaction_abort (txn, NULL, &error)) { + g_warning("Failed to auto-cleanup OSTree transaction: %s", error->message); + g_clear_object (&txn->repo); + } + } +} + static GFile * get_remotes_d_dir (OstreeRepo *self, GFile *sysroot); diff --git a/src/libostree/ostree-sepolicy.c b/src/libostree/ostree-sepolicy.c index e6b9a0e1..9b2ce0ab 100644 --- a/src/libostree/ostree-sepolicy.c +++ b/src/libostree/ostree-sepolicy.c @@ -29,6 +29,7 @@ #include "otutil.h" #include "ostree-sepolicy.h" +#include "ostree-repo.h" #include "ostree-sepolicy-private.h" #include "ostree-bootloader-uboot.h" #include "ostree-bootloader-syslinux.h" @@ -47,6 +48,7 @@ struct OstreeSePolicy { int rootfs_dfd; int rootfs_dfd_owned; GFile *path; + GLnxTmpDir tmpdir; #ifdef HAVE_SELINUX GFile *selinux_policy_root; @@ -77,6 +79,8 @@ ostree_sepolicy_finalize (GObject *object) { OstreeSePolicy *self = OSTREE_SEPOLICY (object); + (void) glnx_tmpdir_delete (&self->tmpdir, NULL, NULL); + g_clear_object (&self->path); if (self->rootfs_dfd_owned != -1) (void) close (self->rootfs_dfd_owned); @@ -266,6 +270,58 @@ get_policy_checksum (char **out_csum, #endif +/** + * ostree_sepolicy_new_from_commit: + * @repo: The repo + * @rev: ostree ref or checksum + * @cancellable: Cancellable + * @error: Error + * + * Extract the SELinux policy from a commit object via a partial checkout. This is useful + * for labeling derived content as separate commits. + * + * This function is the backend of `ostree_repo_commit_modifier_set_sepolicy_from_commit()`. + * + * Returns: (transfer full): A new policy + */ +OstreeSePolicy* +ostree_sepolicy_new_from_commit (OstreeRepo *repo, + const char *rev, + GCancellable *cancellable, + GError **error) +{ + GLNX_AUTO_PREFIX_ERROR ("setting sepolicy from commit", error); + g_autoptr(GFile) root = NULL; + g_autofree char *commit = NULL; + if (!ostree_repo_read_commit (repo, rev, &root, &commit, cancellable, error)) + return NULL; + const char policypath[] = "usr/etc/selinux"; + g_autoptr(GFile) policyroot = g_file_get_child (root, policypath); + + GLnxTmpDir tmpdir = {0,}; + if (!glnx_mkdtemp ("ostree-commit-sepolicy-XXXXXX", 0700, &tmpdir, error)) + return FALSE; + if (!glnx_shutil_mkdir_p_at (tmpdir.fd, "usr/etc", 0755, cancellable, error)) + return FALSE; + + if (g_file_query_exists (policyroot, NULL)) + { + OstreeRepoCheckoutAtOptions coopts = {0,}; + coopts.mode = OSTREE_REPO_CHECKOUT_MODE_USER; + coopts.subpath = glnx_strjoina ("/", policypath); + + if (!ostree_repo_checkout_at (repo, &coopts, tmpdir.fd, policypath, commit, cancellable, error)) + return glnx_prefix_error_null (error, "policy checkout"); + } + + OstreeSePolicy *ret = ostree_sepolicy_new_at (tmpdir.fd, cancellable, error); + if (!ret) + return NULL; + /* Transfer ownership of tmpdir */ + ret->tmpdir = tmpdir; + tmpdir.initialized = FALSE; + return ret; +} /* Workaround for http://marc.info/?l=selinux&m=149323809332417&w=2 */ #ifdef HAVE_SELINUX @@ -443,7 +499,11 @@ ostree_sepolicy_new_at (int rootfs_dfd, /** * ostree_sepolicy_get_path: - * @self: + * @self: A SePolicy object + * + * This API should be considered deprecated, because it's supported for + * policy objects to be created from file-descriptor relative paths, which + * may not be globally accessible. * * Returns: (transfer none): Path to rootfs */ diff --git a/src/libostree/ostree-sepolicy.h b/src/libostree/ostree-sepolicy.h index 7e90527f..0e8cf5af 100644 --- a/src/libostree/ostree-sepolicy.h +++ b/src/libostree/ostree-sepolicy.h @@ -44,6 +44,11 @@ OstreeSePolicy* ostree_sepolicy_new_at (int rootfs_dfd, GCancellable *cancellable, GError **error); +_OSTREE_PUBLIC +OstreeSePolicy* ostree_sepolicy_new_from_commit (OstreeRepo *repo, + const char *rev, + GCancellable *cancellable, + GError **error); _OSTREE_PUBLIC GFile * ostree_sepolicy_get_path (OstreeSePolicy *self); diff --git a/src/libostree/ostree-sysroot-cleanup.c b/src/libostree/ostree-sysroot-cleanup.c index 91381cb0..c22a6851 100644 --- a/src/libostree/ostree-sysroot-cleanup.c +++ b/src/libostree/ostree-sysroot-cleanup.c @@ -445,7 +445,7 @@ generate_deployment_refs (OstreeSysroot *self, cancellable, error)) return FALSE; - g_autoptr(_OstreeRepoAutoTransaction) txn = + g_autoptr(OstreeRepoAutoTransaction) txn = _ostree_repo_auto_transaction_start (repo, cancellable, error); if (!txn) return FALSE; @@ -458,7 +458,7 @@ generate_deployment_refs (OstreeSysroot *self, ostree_repo_transaction_set_refspec (repo, refname, ostree_deployment_get_csum (deployment)); } - if (!ostree_repo_commit_transaction (repo, NULL, cancellable, error)) + if (!_ostree_repo_auto_transaction_commit (txn, NULL, cancellable, error)) return FALSE; return TRUE; diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c index 6a13a41b..a8bf9f44 100644 --- a/src/libostree/ostree-sysroot-deploy.c +++ b/src/libostree/ostree-sysroot-deploy.c @@ -488,9 +488,7 @@ copy_modified_config_file (int orig_etc_fd, } else { - return glnx_throw (error, - "Unsupported non-regular/non-symlink file in /etc '%s'", - path); + ot_journal_print (LOG_INFO, "Ignoring non-regular/non-symlink file found during /etc merge: %s", path); } return TRUE; diff --git a/src/libostree/ostree-version.h b/src/libostree/ostree-version.h index f9c97ab3..8bb26ecd 100644 --- a/src/libostree/ostree-version.h +++ b/src/libostree/ostree-version.h @@ -43,7 +43,7 @@ * * Since: 2017.4 */ -#define OSTREE_RELEASE_VERSION (4) +#define OSTREE_RELEASE_VERSION (5) /** * OSTREE_VERSION @@ -52,7 +52,7 @@ * * Since: 2017.4 */ -#define OSTREE_VERSION (2021.4) +#define OSTREE_VERSION (2021.5) /** * OSTREE_VERSION_S: @@ -62,7 +62,7 @@ * * Since: 2017.4 */ -#define OSTREE_VERSION_S "2021.4" +#define OSTREE_VERSION_S "2021.5" #define OSTREE_ENCODE_VERSION(year,release) \ ((year) << 16 | (release)) diff --git a/src/ostree/ot-builtin-commit.c b/src/ostree/ot-builtin-commit.c index 370e085c..a306c114 100644 --- a/src/ostree/ot-builtin-commit.c +++ b/src/ostree/ot-builtin-commit.c @@ -602,6 +602,17 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio filter_data.skip_list = skip_list; modifier = ostree_repo_commit_modifier_new (flags, commit_filter, &filter_data, NULL); + + if (opt_selinux_policy) + { + glnx_autofd int rootfs_dfd = -1; + if (!glnx_opendirat (AT_FDCWD, opt_selinux_policy, TRUE, &rootfs_dfd, error)) + goto out; + policy = ostree_sepolicy_new_at (rootfs_dfd, cancellable, error); + if (!policy) + goto out; + ostree_repo_commit_modifier_set_sepolicy (modifier, policy); + } } if (opt_editor) @@ -627,20 +638,14 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio if (opt_base) { - g_autofree char *base_commit = NULL; - g_autoptr(GFile) base_root = NULL; - if (!ostree_repo_read_commit (repo, opt_base, &base_root, &base_commit, cancellable, error)) + mtree = ostree_mutable_tree_new_from_commit (repo, opt_base, error); + if (!mtree) goto out; - OstreeRepoFile *rootf = (OstreeRepoFile*) base_root; - - mtree = ostree_mutable_tree_new_from_checksum (repo, - ostree_repo_file_tree_get_contents_checksum (rootf), - ostree_repo_file_tree_get_metadata_checksum (rootf)); if (opt_selinux_policy_from_base) { g_assert (modifier); - if (!ostree_repo_commit_modifier_set_sepolicy_from_commit (modifier, repo, base_commit, cancellable, error)) + if (!ostree_repo_commit_modifier_set_sepolicy_from_commit (modifier, repo, opt_base, cancellable, error)) goto out; /* Don't try to handle it twice */ opt_selinux_policy_from_base = FALSE; @@ -691,14 +696,8 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio { if (first && opt_selinux_policy_from_base) { - opt_selinux_policy = g_strdup (tree); - opt_selinux_policy_from_base = FALSE; - } - if (first && opt_selinux_policy) - { - g_assert (modifier); glnx_autofd int rootfs_dfd = -1; - if (!glnx_opendirat (AT_FDCWD, opt_selinux_policy, TRUE, &rootfs_dfd, error)) + if (!glnx_opendirat (AT_FDCWD, tree, TRUE, &rootfs_dfd, error)) goto out; policy = ostree_sepolicy_new_at (rootfs_dfd, cancellable, error); if (!policy) diff --git a/src/ostree/ot-builtin-fsck.c b/src/ostree/ot-builtin-fsck.c index dea03af4..f7a72601 100644 --- a/src/ostree/ot-builtin-fsck.c +++ b/src/ostree/ot-builtin-fsck.c @@ -459,5 +459,8 @@ ostree_builtin_fsck (int argc, char **argv, OstreeCommandInvocation *invocation, if (n_fsck_partial > 0) return glnx_throw (error, "%u partial commits from fsck-detected corruption", n_partial); + g_print ("object fsck of %d commits completed successfully - no errors found.\n", + (guint)g_hash_table_size (commits)); + return TRUE; } diff --git a/tests/libtest-core.sh b/tests/libtest-core.sh index 9632e905..75b9063a 100644 --- a/tests/libtest-core.sh +++ b/tests/libtest-core.sh @@ -35,6 +35,17 @@ assert_not_reached () { fatal "$@" } +# Output an ok message for TAP +n_tap_tests=0 +tap_ok() { + echo "ok" "$@" + n_tap_tests=$(($n_tap_tests+1)) +} + +tap_end() { + echo "1..${n_tap_tests}" +} + # Some tests look for specific English strings. Use a UTF-8 version # of the C (POSIX) locale if we have one, or fall back to en_US.UTF-8 # (https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) diff --git a/tests/pull-test.sh b/tests/pull-test.sh index fcc22812..7d363f47 100644 --- a/tests/pull-test.sh +++ b/tests/pull-test.sh @@ -54,11 +54,12 @@ function verify_initial_contents() { assert_file_has_content baz/cow '^moo$' } +n_base_tests=35 +gpg_tests=3 if has_gpgme; then - echo "1..38" + echo "1..$(($n_base_tests+$gpg_tests))" else - # 3 tests needs GPG support - echo "1..35" + echo "1..$((n_base_tests))" fi # Try both syntaxes diff --git a/tests/test-admin-deploy-etcmerge-cornercases.sh b/tests/test-admin-deploy-etcmerge-cornercases.sh index 4f55bc3a..ef4ddeec 100755 --- a/tests/test-admin-deploy-etcmerge-cornercases.sh +++ b/tests/test-admin-deploy-etcmerge-cornercases.sh @@ -26,8 +26,6 @@ set -euo pipefail # Exports OSTREE_SYSROOT so --sysroot not needed. setup_os_repository "archive" "syslinux" -echo "1..2" - ${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull-local --remote=testos testos-repo testos/buildmain/x86_64-runtime rev=$(${CMD_PREFIX} ostree --repo=sysroot/ostree/repo rev-parse testos/buildmain/x86_64-runtime) export rev @@ -53,6 +51,9 @@ chmod 700 ${etc}/a/long/dir/forking # Symlink to nonexistent path, to ensure we aren't walking symlinks ln -s no-such-file ${etc}/a/link-to-no-such-file +# fifo which should be ignored +mkfifo "${etc}/fifo-to-ignore" + # Remove a directory rm ${etc}/testdirectory -rf @@ -68,6 +69,10 @@ newetc=${newroot}/etc assert_file_has_content ${newroot}/usr/etc/NetworkManager/nm.conf "a default daemon file" assert_file_has_content ${newetc}/NetworkManager/nm.conf "a modified config file" +if test -e "${newetc}"/fifo-to-ignore; then + fatal "Should not have copied fifo!" +fi + assert_file_has_mode() { stat -c '%a' $1 > mode.txt if ! grep -q -e "$2" mode.txt; then @@ -89,7 +94,7 @@ test -L ${newetc}/a/link-to-no-such-file || assert_not_reached "should have syml assert_has_dir ${newroot}/usr/etc/testdirectory assert_not_has_dir ${newetc}/testdirectory -echo "ok" +tap_ok first # Add /etc/initially-empty cd "${test_tmpdir}/osdata" @@ -141,4 +146,6 @@ assert_not_has_file sysroot/ostree/deploy/testos/deploy/${rev}.0/usr/etc/initial assert_has_file sysroot/ostree/deploy/testos/deploy/${rev}.0/etc/initially-empty/mynewfile rm ${newconfpath} -echo "ok" +tap_ok second + +tap_end diff --git a/tests/test-symbols.sh b/tests/test-symbols.sh index 0de87be4..a094a944 100755 --- a/tests/test-symbols.sh +++ b/tests/test-symbols.sh @@ -56,7 +56,7 @@ echo 'ok documented symbols' # ONLY update this checksum in release commits! cat > released-sha256.txt <