New upstream version 2018.1

This commit is contained in:
Simon McVittie 2018-01-17 12:13:15 +00:00
commit e91328b9e9
64 changed files with 1078 additions and 363 deletions

View File

@ -202,6 +202,10 @@ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff -I$(srcdir)/libglnx -I$(
libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files)) 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 libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GPGME_LIBS) \ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GPGME_LIBS) \
$(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_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
if ENABLE_RUST
libostree_1_la_LIBADD += -ldl
endif
libostree_1_la_LIBADD += $(bupsplitpath) libostree_1_la_LIBADD += $(bupsplitpath)
EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files) EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)

View File

@ -116,6 +116,7 @@ _installed_or_uninstalled_test_scripts = \
tests/test-pull-mirrorlist.sh \ tests/test-pull-mirrorlist.sh \
tests/test-summary-update.sh \ tests/test-summary-update.sh \
tests/test-summary-view.sh \ tests/test-summary-view.sh \
tests/test-no-initramfs.sh \
$(NULL) $(NULL)
experimental_test_scripts = \ experimental_test_scripts = \
@ -130,7 +131,13 @@ experimental_test_scripts = \
tests/test-summary-collections.sh \ tests/test-summary-collections.sh \
tests/test-pull-collections.sh \ tests/test-pull-collections.sh \
$(NULL) $(NULL)
test_extra_programs = $(NULL) test_extra_programs = \
tests/get-byte-order \
$(NULL)
tests_get_byte_order_SOURCES = tests/get-byte-order.c
tests_get_byte_order_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
tests_get_byte_order_LDADD = $(GLIB_LIBS)
tests_repo_finder_mount_SOURCES = tests/repo-finder-mount.c tests_repo_finder_mount_SOURCES = tests/repo-finder-mount.c
tests_repo_finder_mount_CFLAGS = $(common_tests_cflags) tests_repo_finder_mount_CFLAGS = $(common_tests_cflags)
@ -171,6 +178,7 @@ dist_installed_test_data = tests/archive-test.sh \
tests/pre-endian-deltas-repo-little.tar.xz \ tests/pre-endian-deltas-repo-little.tar.xz \
tests/fah-deltadata-old.tar.xz \ tests/fah-deltadata-old.tar.xz \
tests/fah-deltadata-new.tar.xz \ tests/fah-deltadata-new.tar.xz \
tests/ostree-path-traverse.tar.gz \
tests/libtest-core.sh \ tests/libtest-core.sh \
$(NULL) $(NULL)
@ -375,6 +383,14 @@ dist_test_scripts += $(_installed_or_uninstalled_test_scripts)
test_programs += $(_installed_or_uninstalled_test_programs) test_programs += $(_installed_or_uninstalled_test_programs)
endif endif
if !USE_LIBSOUP
no-soup-for-you-warning:
@echo "WARNING: $(PACKAGE) was built without libsoup, which is currently" 1>&2
@echo "WARNING: required for many unit tests." 1>&2
sleep 10
check: no-soup-for-you-warning
endif
# Unfortunately the glib test data APIs don't actually handle # Unfortunately the glib test data APIs don't actually handle
# non-recursive Automake, so we change our code to canonically look # non-recursive Automake, so we change our code to canonically look
# for tests/ which is just a symlink when installed. # for tests/ which is just a symlink when installed.

View File

@ -433,13 +433,15 @@ check_PROGRAMS = $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15)
@BUILDOPT_IS_DEVEL_BUILD_TRUE@am__append_24 = $(top_srcdir)/src/libostree/libostree-devel.sym @BUILDOPT_IS_DEVEL_BUILD_TRUE@am__append_24 = $(top_srcdir)/src/libostree/libostree-devel.sym
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_25 = $(top_srcdir)/src/libostree/libostree-experimental.sym @ENABLE_EXPERIMENTAL_API_TRUE@am__append_25 = $(top_srcdir)/src/libostree/libostree-experimental.sym
@USE_LIBARCHIVE_TRUE@am__append_26 = $(OT_DEP_LIBARCHIVE_CFLAGS) # Some change between rust-1.21.0-1.fc27 and rust-1.22.1-1.fc27.x86_64
@USE_LIBARCHIVE_TRUE@am__append_27 = $(OT_DEP_LIBARCHIVE_LIBS) @ENABLE_RUST_TRUE@am__append_26 = -ldl
@ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_28 = $(OT_DEP_AVAHI_CFLAGS) @USE_LIBARCHIVE_TRUE@am__append_27 = $(OT_DEP_LIBARCHIVE_CFLAGS)
@ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_29 = $(OT_DEP_AVAHI_LIBS) @USE_LIBARCHIVE_TRUE@am__append_28 = $(OT_DEP_LIBARCHIVE_LIBS)
@BUILDOPT_LIBSYSTEMD_TRUE@am__append_30 = $(LIBSYSTEMD_CFLAGS) @ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_29 = $(OT_DEP_AVAHI_CFLAGS)
@BUILDOPT_LIBSYSTEMD_TRUE@am__append_31 = $(LIBSYSTEMD_LIBS) @ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_30 = $(OT_DEP_AVAHI_LIBS)
@USE_CURL_OR_SOUP_TRUE@am__append_32 = \ @BUILDOPT_LIBSYSTEMD_TRUE@am__append_31 = $(LIBSYSTEMD_CFLAGS)
@BUILDOPT_LIBSYSTEMD_TRUE@am__append_32 = $(LIBSYSTEMD_LIBS)
@USE_CURL_OR_SOUP_TRUE@am__append_33 = \
@USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher.h \ @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.h \
@USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher-util.c \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-fetcher-util.c \
@ -448,32 +450,32 @@ check_PROGRAMS = $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15)
@USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-metalink.c \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/ostree-metalink.c \
@USE_CURL_OR_SOUP_TRUE@ $(NULL) @USE_CURL_OR_SOUP_TRUE@ $(NULL)
@USE_CURL_TRUE@am__append_33 = src/libostree/ostree-fetcher-curl.c \ @USE_CURL_TRUE@am__append_34 = 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-uri.h src/libostree/ostree-soup-uri.c \
@USE_CURL_TRUE@ src/libostree/ostree-soup-form.c \ @USE_CURL_TRUE@ src/libostree/ostree-soup-form.c \
@USE_CURL_TRUE@ $(NULL) @USE_CURL_TRUE@ $(NULL)
@USE_CURL_TRUE@am__append_34 = $(OT_DEP_CURL_CFLAGS) @USE_CURL_TRUE@am__append_35 = $(OT_DEP_CURL_CFLAGS)
@USE_CURL_TRUE@am__append_35 = $(OT_DEP_CURL_LIBS) @USE_CURL_TRUE@am__append_36 = $(OT_DEP_CURL_LIBS)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_36 = src/libostree/ostree-fetcher-soup.c @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_37 = src/libostree/ostree-fetcher-soup.c
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_37 = $(OT_INTERNAL_SOUP_CFLAGS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_38 = $(OT_INTERNAL_SOUP_CFLAGS)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_38 = $(OT_INTERNAL_SOUP_LIBS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_39 = $(OT_INTERNAL_SOUP_LIBS)
@USE_LIBMOUNT_TRUE@am__append_39 = $(OT_DEP_LIBMOUNT_CFLAGS) @USE_LIBMOUNT_TRUE@am__append_40 = $(OT_DEP_LIBMOUNT_CFLAGS)
@USE_LIBMOUNT_TRUE@am__append_40 = $(OT_DEP_LIBMOUNT_LIBS) @USE_LIBMOUNT_TRUE@am__append_41 = $(OT_DEP_LIBMOUNT_LIBS)
@USE_SELINUX_TRUE@am__append_41 = $(OT_DEP_SELINUX_CFLAGS) @USE_SELINUX_TRUE@am__append_42 = $(OT_DEP_SELINUX_CFLAGS)
@USE_SELINUX_TRUE@am__append_42 = $(OT_DEP_SELINUX_LIBS) @USE_SELINUX_TRUE@am__append_43 = $(OT_DEP_SELINUX_LIBS)
# When compiling this is set via config.h, but g-ir-scanner can't use that # When compiling this is set via config.h, but g-ir-scanner can't use that
@BUILDOPT_INTROSPECTION_TRUE@@ENABLE_EXPERIMENTAL_API_TRUE@am__append_43 = -DOSTREE_ENABLE_EXPERIMENTAL_API=1 @BUILDOPT_INTROSPECTION_TRUE@@ENABLE_EXPERIMENTAL_API_TRUE@am__append_44 = -DOSTREE_ENABLE_EXPERIMENTAL_API=1
@BUILDOPT_INTROSPECTION_TRUE@am__append_44 = OSTree-1.0.gir
@BUILDOPT_INTROSPECTION_TRUE@am__append_45 = OSTree-1.0.gir @BUILDOPT_INTROSPECTION_TRUE@am__append_45 = OSTree-1.0.gir
@BUILDOPT_INTROSPECTION_TRUE@am__append_46 = OSTree-1.0.typelib @BUILDOPT_INTROSPECTION_TRUE@am__append_46 = OSTree-1.0.gir
@BUILDOPT_INTROSPECTION_TRUE@am__append_47 = $(gir_DATA) $(typelib_DATA) @BUILDOPT_INTROSPECTION_TRUE@am__append_47 = OSTree-1.0.typelib
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_48 = \ @BUILDOPT_INTROSPECTION_TRUE@am__append_48 = $(gir_DATA) $(typelib_DATA)
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_49 = \
@ENABLE_EXPERIMENTAL_API_TRUE@ src/ostree/ot-builtin-create-usb.c \ @ENABLE_EXPERIMENTAL_API_TRUE@ src/ostree/ot-builtin-create-usb.c \
@ENABLE_EXPERIMENTAL_API_TRUE@ src/ostree/ot-builtin-find-remotes.c \ @ENABLE_EXPERIMENTAL_API_TRUE@ src/ostree/ot-builtin-find-remotes.c \
@ENABLE_EXPERIMENTAL_API_TRUE@ $(NULL) @ENABLE_EXPERIMENTAL_API_TRUE@ $(NULL)
@USE_CURL_OR_SOUP_TRUE@am__append_49 = src/ostree/ot-remote-builtin-add-cookie.c \ @USE_CURL_OR_SOUP_TRUE@am__append_50 = 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-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-builtin-list-cookies.c \
@USE_CURL_OR_SOUP_TRUE@ src/ostree/ot-remote-cookie-util.h \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ot-remote-cookie-util.h \
@ -481,66 +483,66 @@ check_PROGRAMS = $(am__EXEEXT_13) $(am__EXEEXT_14) $(am__EXEEXT_15)
@USE_CURL_OR_SOUP_TRUE@ $(NULL) src/ostree/ot-builtin-pull.c @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 # Eventually once we stop things from using this, we should support disabling this
@USE_LIBSOUP_TRUE@am__append_50 = src/ostree/ot-builtin-trivial-httpd.c @USE_LIBSOUP_TRUE@am__append_51 = src/ostree/ot-builtin-trivial-httpd.c
@USE_LIBSOUP_TRUE@am__append_51 = ostree-trivial-httpd @USE_LIBSOUP_TRUE@am__append_52 = ostree-trivial-httpd
# This is necessary for the cookie jar bits # This is necessary for the cookie jar bits
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_52 = $(OT_INTERNAL_SOUP_CFLAGS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_53 = $(OT_INTERNAL_SOUP_CFLAGS)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_53 = $(OT_INTERNAL_SOUP_LIBS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_54 = $(OT_INTERNAL_SOUP_LIBS)
@USE_LIBARCHIVE_TRUE@am__append_54 = $(OT_DEP_LIBARCHIVE_CFLAGS) @USE_LIBARCHIVE_TRUE@am__append_55 = $(OT_DEP_LIBARCHIVE_CFLAGS)
@USE_LIBARCHIVE_TRUE@am__append_55 = $(OT_DEP_LIBARCHIVE_LIBS) @USE_LIBARCHIVE_TRUE@am__append_56 = $(OT_DEP_LIBARCHIVE_LIBS)
@BUILDOPT_SYSTEMD_TRUE@am__append_56 = ostree-remount @BUILDOPT_SYSTEMD_TRUE@am__append_57 = ostree-remount
# It is built anyway as a side-effect of having the symlink in tests/, # 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 # and if we declare it here, it gets cleaned up properly
@BUILDOPT_SYSTEMD_FALSE@am__append_57 = ostree-remount @BUILDOPT_SYSTEMD_FALSE@am__append_58 = ostree-remount
@BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_58 = ostree-prepare-root @BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_59 = ostree-prepare-root
# This is the "new mode" of using a generator for /var; see # This is the "new mode" of using a generator for /var; see
# https://github.com/ostreedev/ostree/issues/855 # https://github.com/ostreedev/ostree/issues/855
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_59 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_60 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1 @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_60 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_61 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@systemdsystemgenerator_PROGRAMS = ostree-system-generator$(EXEEXT) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@systemdsystemgenerator_PROGRAMS = ostree-system-generator$(EXEEXT)
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_61 = $(systemdsystemgenerator_PROGRAMS) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_62 = $(systemdsystemgenerator_PROGRAMS)
# Allow the distcheck install under $prefix test to pass # Allow the distcheck install under $prefix test to pass
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_62 = --with-systemdsystemgeneratordir='$${libdir}/systemd/system-generators' @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_63 = --with-systemdsystemgeneratordir='$${libdir}/systemd/system-generators'
@BUILDOPT_FUSE_TRUE@am__append_63 = rofiles-fuse @BUILDOPT_FUSE_TRUE@am__append_64 = rofiles-fuse
@BUILDOPT_ASAN_TRUE@am__append_64 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc @BUILDOPT_ASAN_TRUE@am__append_65 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_65 = $(experimental_test_scripts) @ENABLE_EXPERIMENTAL_API_TRUE@am__append_66 = $(experimental_test_scripts)
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_66 = tests/repo-finder-mount @ENABLE_EXPERIMENTAL_API_TRUE@am__append_67 = tests/repo-finder-mount
@ENABLE_EXPERIMENTAL_API_FALSE@am__append_67 = $(experimental_test_scripts) @ENABLE_EXPERIMENTAL_API_FALSE@am__append_68 = $(experimental_test_scripts)
@BUILDOPT_FUSE_TRUE@am__append_68 = tests/test-rofiles-fuse.sh @BUILDOPT_FUSE_TRUE@am__append_69 = tests/test-rofiles-fuse.sh
@BUILDOPT_FUSE_TRUE@am__append_69 = tests/rofiles-fuse-symlink-stamp @BUILDOPT_FUSE_TRUE@am__append_70 = tests/rofiles-fuse-symlink-stamp
@BUILDOPT_FUSE_FALSE@am__append_70 = tests/test-rofiles-fuse.sh @BUILDOPT_FUSE_FALSE@am__append_71 = tests/test-rofiles-fuse.sh
@USE_LIBSOUP_TRUE@am__append_71 = tests/test-remote-cookies.sh @USE_LIBSOUP_TRUE@am__append_72 = tests/test-remote-cookies.sh
@BUILDOPT_GJS_TRUE@am__append_72 = $(js_tests) $(js_installed_tests) @BUILDOPT_GJS_TRUE@am__append_73 = $(js_tests) $(js_installed_tests)
@BUILDOPT_GJS_FALSE@am__append_73 = $(js_tests) @BUILDOPT_GJS_FALSE@am__append_74 = $(js_tests)
@BUILDOPT_GJS_FALSE@am__append_74 = $(js_installed_tests) @BUILDOPT_GJS_FALSE@am__append_75 = $(js_installed_tests)
@ENABLE_INSTALLED_TESTS_FALSE@am__append_75 = -rpath $(abs_builddir) @ENABLE_INSTALLED_TESTS_FALSE@am__append_76 = -rpath $(abs_builddir)
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_76 = \ @ENABLE_EXPERIMENTAL_API_TRUE@am__append_77 = \
@ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-bloom \ @ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-bloom \
@ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-repo-finder-config \ @ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-repo-finder-config \
@ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-repo-finder-mount \ @ENABLE_EXPERIMENTAL_API_TRUE@ tests/test-repo-finder-mount \
@ENABLE_EXPERIMENTAL_API_TRUE@ $(NULL) @ENABLE_EXPERIMENTAL_API_TRUE@ $(NULL)
@ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_77 = tests/test-repo-finder-avahi @ENABLE_EXPERIMENTAL_API_TRUE@@USE_AVAHI_TRUE@am__append_78 = tests/test-repo-finder-avahi
@USE_LIBARCHIVE_TRUE@am__append_78 = tests/test-libarchive-import @USE_LIBARCHIVE_TRUE@am__append_79 = tests/test-libarchive-import
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_79 = $(_installed_or_uninstalled_test_scripts) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_80 = $(_installed_or_uninstalled_test_scripts)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_80 = $(_installed_or_uninstalled_test_programs) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_81 = $(_installed_or_uninstalled_test_programs)
@ENABLE_INSTALLED_TESTS_TRUE@am__append_81 = install-installed-tests-extra @ENABLE_INSTALLED_TESTS_TRUE@am__append_82 = install-installed-tests-extra
# Allow the distcheck install under $prefix test to pass # Allow the distcheck install under $prefix test to pass
@BUILDOPT_SYSTEMD_TRUE@am__append_82 = --with-systemdsystemunitdir='$${libdir}/systemd/system' @BUILDOPT_SYSTEMD_TRUE@am__append_83 = --with-systemdsystemunitdir='$${libdir}/systemd/system'
# We're using the system grub2-mkconfig generator # We're using the system grub2-mkconfig generator
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_83 = src/boot/grub2/grub2-15_ostree @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_84 = src/boot/grub2/grub2-15_ostree
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_84 = install-grub2-config-hook @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_85 = install-grub2-config-hook
@BUILDOPT_TRIVIAL_HTTPD_TRUE@@ENABLE_MAN_TRUE@am__append_85 = ostree-trivial-httpd.1 @BUILDOPT_TRIVIAL_HTTPD_TRUE@@ENABLE_MAN_TRUE@am__append_86 = ostree-trivial-httpd.1
# We still want to distribute the source, even if we are not building it # We still want to distribute the source, even if we are not building it
@BUILDOPT_TRIVIAL_HTTPD_FALSE@@ENABLE_MAN_TRUE@am__append_86 = man/ostree-trivial-httpd.xml @BUILDOPT_TRIVIAL_HTTPD_FALSE@@ENABLE_MAN_TRUE@am__append_87 = man/ostree-trivial-httpd.xml
@BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_87 = rofiles-fuse.1 @BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_88 = rofiles-fuse.1
@ENABLE_MAN_TRUE@am__append_88 = $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) @ENABLE_MAN_TRUE@am__append_89 = $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml)
@ENABLE_MAN_TRUE@am__append_89 = \ @ENABLE_MAN_TRUE@am__append_90 = \
@ENABLE_MAN_TRUE@ $(man1_MANS) \ @ENABLE_MAN_TRUE@ $(man1_MANS) \
@ENABLE_MAN_TRUE@ $(man5_MANS) \ @ENABLE_MAN_TRUE@ $(man5_MANS) \
@ENABLE_MAN_TRUE@ $(NULL) @ENABLE_MAN_TRUE@ $(NULL)
@ -671,11 +673,11 @@ am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
libostree_1_la_DEPENDENCIES = libotutil.la libglnx.la libbsdiff.la \ libostree_1_la_DEPENDENCIES = libotutil.la libglnx.la libbsdiff.la \
libostree-kernel-args.la $(am__DEPENDENCIES_2) \ libostree-kernel-args.la $(am__DEPENDENCIES_2) \
$(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) $(bupsplitpath) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_4) $(am__DEPENDENCIES_5) \ $(am__DEPENDENCIES_1) $(bupsplitpath) $(am__DEPENDENCIES_4) \
$(am__DEPENDENCIES_6) $(am__DEPENDENCIES_7) \ $(am__DEPENDENCIES_5) $(am__DEPENDENCIES_6) \
$(am__DEPENDENCIES_8) $(am__DEPENDENCIES_9) \ $(am__DEPENDENCIES_7) $(am__DEPENDENCIES_8) \
$(am__DEPENDENCIES_10) $(am__DEPENDENCIES_9) $(am__DEPENDENCIES_10)
am__libostree_1_la_SOURCES_DIST = \ am__libostree_1_la_SOURCES_DIST = \
src/libostree/ostree-async-progress.c \ src/libostree/ostree-async-progress.c \
src/libostree/ostree-cmdprivate.h \ src/libostree/ostree-cmdprivate.h \
@ -932,7 +934,8 @@ am__EXEEXT_8 = $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \
$(am__EXEEXT_7) $(am__EXEEXT_7)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@am__EXEEXT_9 = $(am__EXEEXT_6) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@am__EXEEXT_9 = $(am__EXEEXT_6)
@ENABLE_EXPERIMENTAL_API_TRUE@am__EXEEXT_10 = tests/repo-finder-mount$(EXEEXT) @ENABLE_EXPERIMENTAL_API_TRUE@am__EXEEXT_10 = tests/repo-finder-mount$(EXEEXT)
am__EXEEXT_11 = $(am__EXEEXT_2) $(am__EXEEXT_10) am__EXEEXT_11 = tests/get-byte-order$(EXEEXT) $(am__EXEEXT_2) \
$(am__EXEEXT_10)
am__EXEEXT_12 = $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_11) am__EXEEXT_12 = $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_11)
@ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__EXEEXT_13 = $(am__EXEEXT_12) @ENABLE_ALWAYS_BUILD_TESTS_FALSE@am__EXEEXT_13 = $(am__EXEEXT_12)
am__EXEEXT_14 = test-libglnx-xattrs$(EXEEXT) \ am__EXEEXT_14 = test-libglnx-xattrs$(EXEEXT) \
@ -1114,7 +1117,7 @@ am__rofiles_fuse_SOURCES_DIST = src/rofiles-fuse/main.c
rofiles_fuse_OBJECTS = $(am_rofiles_fuse_OBJECTS) rofiles_fuse_OBJECTS = $(am_rofiles_fuse_OBJECTS)
@BUILDOPT_FUSE_TRUE@rofiles_fuse_DEPENDENCIES = libglnx.la \ @BUILDOPT_FUSE_TRUE@rofiles_fuse_DEPENDENCIES = libglnx.la \
@BUILDOPT_FUSE_TRUE@ $(am__DEPENDENCIES_1) \ @BUILDOPT_FUSE_TRUE@ $(am__DEPENDENCIES_1) \
@BUILDOPT_FUSE_TRUE@ $(am__DEPENDENCIES_2) @BUILDOPT_FUSE_TRUE@ $(am__DEPENDENCIES_2) libostree-1.la
rofiles_fuse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ rofiles_fuse_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(rofiles_fuse_CFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(rofiles_fuse_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
@ -1154,6 +1157,14 @@ test_libglnx_xattrs_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_libglnx_xattrs_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(test_libglnx_xattrs_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@ $(LDFLAGS) -o $@
am_tests_get_byte_order_OBJECTS = \
tests/tests_get_byte_order-get-byte-order.$(OBJEXT)
tests_get_byte_order_OBJECTS = $(am_tests_get_byte_order_OBJECTS)
tests_get_byte_order_DEPENDENCIES = $(am__DEPENDENCIES_1)
tests_get_byte_order_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(tests_get_byte_order_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
am_tests_repo_finder_mount_OBJECTS = \ am_tests_repo_finder_mount_OBJECTS = \
tests/tests_repo_finder_mount-repo-finder-mount.$(OBJEXT) tests/tests_repo_finder_mount-repo-finder-mount.$(OBJEXT)
tests_repo_finder_mount_OBJECTS = \ tests_repo_finder_mount_OBJECTS = \
@ -1398,7 +1409,7 @@ SOURCES = $(libbsdiff_la_SOURCES) $(libbupsplit_la_SOURCES) \
$(ostree_trivial_httpd_SOURCES) $(rofiles_fuse_SOURCES) \ $(ostree_trivial_httpd_SOURCES) $(rofiles_fuse_SOURCES) \
$(test_libglnx_errors_SOURCES) $(test_libglnx_fdio_SOURCES) \ $(test_libglnx_errors_SOURCES) $(test_libglnx_fdio_SOURCES) \
$(test_libglnx_macros_SOURCES) $(test_libglnx_shutil_SOURCES) \ $(test_libglnx_macros_SOURCES) $(test_libglnx_shutil_SOURCES) \
$(test_libglnx_xattrs_SOURCES) \ $(test_libglnx_xattrs_SOURCES) $(tests_get_byte_order_SOURCES) \
$(tests_repo_finder_mount_SOURCES) tests/test-basic-c.c \ $(tests_repo_finder_mount_SOURCES) tests/test-basic-c.c \
$(tests_test_bloom_SOURCES) tests/test-bsdiff.c \ $(tests_test_bloom_SOURCES) tests/test-bsdiff.c \
$(tests_test_checksum_SOURCES) \ $(tests_test_checksum_SOURCES) \
@ -1426,7 +1437,7 @@ DIST_SOURCES = $(libbsdiff_la_SOURCES) \
$(am__rofiles_fuse_SOURCES_DIST) \ $(am__rofiles_fuse_SOURCES_DIST) \
$(test_libglnx_errors_SOURCES) $(test_libglnx_fdio_SOURCES) \ $(test_libglnx_errors_SOURCES) $(test_libglnx_fdio_SOURCES) \
$(test_libglnx_macros_SOURCES) $(test_libglnx_shutil_SOURCES) \ $(test_libglnx_macros_SOURCES) $(test_libglnx_shutil_SOURCES) \
$(test_libglnx_xattrs_SOURCES) \ $(test_libglnx_xattrs_SOURCES) $(tests_get_byte_order_SOURCES) \
$(tests_repo_finder_mount_SOURCES) tests/test-basic-c.c \ $(tests_repo_finder_mount_SOURCES) tests/test-basic-c.c \
$(tests_test_bloom_SOURCES) tests/test-bsdiff.c \ $(tests_test_bloom_SOURCES) tests/test-bsdiff.c \
$(tests_test_checksum_SOURCES) \ $(tests_test_checksum_SOURCES) \
@ -1733,8 +1744,8 @@ am__EXEEXT_25 = tests/test-basic.sh tests/test-basic-user.sh \
tests/test-demo-buildsystem.sh tests/test-switchroot.sh \ tests/test-demo-buildsystem.sh tests/test-switchroot.sh \
tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \ tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \
tests/test-summary-update.sh tests/test-summary-view.sh \ tests/test-summary-update.sh tests/test-summary-view.sh \
$(am__EXEEXT_2) $(am__EXEEXT_22) $(am__append_68) \ tests/test-no-initramfs.sh $(am__EXEEXT_2) $(am__EXEEXT_22) \
$(am__append_71) $(am__EXEEXT_24) $(am__append_69) $(am__append_72) $(am__EXEEXT_24)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_26 = \ @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_26 = \
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_25) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_25)
am__EXEEXT_27 = $(am__EXEEXT_2) $(am__EXEEXT_26) am__EXEEXT_27 = $(am__EXEEXT_2) $(am__EXEEXT_26)
@ -2030,21 +2041,21 @@ AM_CFLAGS = -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS)
# Allow the distcheck install under $prefix test to pass # Allow the distcheck install under $prefix test to pass
AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man \ AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man \
--disable-maintainer-mode $(NULL) $(am__append_62) \ --disable-maintainer-mode $(NULL) $(am__append_63) \
$(am__append_82) \ $(am__append_83) \
BASH_COMPLETIONSDIR='$${datadir}/bash-completion/completions' BASH_COMPLETIONSDIR='$${datadir}/bash-completion/completions'
SUBDIRS = . $(am__append_14) SUBDIRS = . $(am__append_14)
NULL = NULL =
BUILT_SOURCES = $(nodist_libostree_1_la_SOURCES) BUILT_SOURCES = $(nodist_libostree_1_la_SOURCES)
MANPAGES = MANPAGES =
CLEANFILES = $(am__append_13) $(BUILT_SOURCES) $(am__append_47) \ CLEANFILES = $(am__append_13) $(BUILT_SOURCES) $(am__append_48) \
src/ostree/parse-datetime.c tests/libreaddir-rand.so \ src/ostree/parse-datetime.c tests/libreaddir-rand.so \
tests/ostree-symlink-stamp \ tests/ostree-symlink-stamp \
tests/ostree-prepare-root-symlink-stamp \ tests/ostree-prepare-root-symlink-stamp \
tests/ostree-remount-symlink-stamp \ tests/ostree-remount-symlink-stamp \
tests/rofiles-fuse-symlink-stamp tests/ostree \ tests/rofiles-fuse-symlink-stamp tests/ostree \
tests/ostree-prepare-root tests/ostree-remount \ tests/ostree-prepare-root tests/ostree-remount \
tests/rofiles-fuse $(am__append_89) tests/rofiles-fuse $(am__append_90)
EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \
COPYING README.md $(am__append_15) libglnx/README.md \ COPYING README.md $(am__append_15) libglnx/README.md \
libglnx/COPYING libglnx/libglnx.m4 $(NULL) \ libglnx/COPYING libglnx/libglnx.m4 $(NULL) \
@ -2061,19 +2072,19 @@ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \
src/libostree/ostree-repo-deprecated.h \ src/libostree/ostree-repo-deprecated.h \
src/libostree/ostree-version.h src/ostree/parse-datetime.y \ src/libostree/ostree-version.h src/ostree/parse-datetime.y \
buildutil/tap-driver.sh buildutil/tap-test tests/glib.supp \ buildutil/tap-driver.sh buildutil/tap-test tests/glib.supp \
tests/ostree.supp $(NULL) $(am__append_67) $(am__append_70) \ tests/ostree.supp $(NULL) $(am__append_68) $(am__append_71) \
$(am__append_73) tests/libtest.sh $(am__append_74) \ $(am__append_74) tests/libtest.sh $(am__append_75) \
tests/libostreetest.h tests/libtest.sh \ tests/libostreetest.h tests/libtest.sh \
tests/gpg-verify-data/README.md $(NULL) \ tests/gpg-verify-data/README.md $(NULL) \
src/boot/dracut/module-setup.sh src/boot/dracut/ostree.conf \ src/boot/dracut/module-setup.sh src/boot/dracut/ostree.conf \
src/boot/mkinitcpio/ostree \ src/boot/mkinitcpio/ostree \
src/boot/ostree-prepare-root.service \ src/boot/ostree-prepare-root.service \
src/boot/ostree-remount.service src/boot/grub2/grub2-15_ostree \ src/boot/ostree-remount.service src/boot/grub2/grub2-15_ostree \
src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_86) \ src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_87) \
$(am__append_88) $(am__append_89)
bin_SCRIPTS = bin_SCRIPTS =
lib_LTLIBRARIES = libostree-1.la lib_LTLIBRARIES = libostree-1.la
pkglibexec_SCRIPTS = $(am__append_83) pkglibexec_SCRIPTS = $(am__append_84)
noinst_LTLIBRARIES = $(am__append_1) libglnx.la libbsdiff.la \ noinst_LTLIBRARIES = $(am__append_1) libglnx.la libbsdiff.la \
libotutil.la libostree-kernel-args.la $(am__append_18) \ libotutil.la libostree-kernel-args.la $(am__append_18) \
libostreetest.la libostreetest.la
@ -2081,11 +2092,11 @@ privlibdir = $(pkglibdir)
privlib_LTLIBRARIES = privlib_LTLIBRARIES =
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = src/libostree/ostree-1.pc pkgconfig_DATA = src/libostree/ostree-1.pc
INTROSPECTION_GIRS = $(am__append_44) INTROSPECTION_GIRS = $(am__append_45)
girdir = $(datadir)/gir-1.0 girdir = $(datadir)/gir-1.0
gir_DATA = $(am__append_45) gir_DATA = $(am__append_46)
typelibdir = $(libdir)/girepository-1.0 typelibdir = $(libdir)/girepository-1.0
typelib_DATA = $(am__append_46) typelib_DATA = $(am__append_47)
gsettings_SCHEMAS = gsettings_SCHEMAS =
ostree_bootdir = $(prefix)/lib/ostree ostree_bootdir = $(prefix)/lib/ostree
@ -2104,7 +2115,7 @@ AM_TESTS_ENVIRONMENT = G_TEST_SRCDIR="$(abs_srcdir)" \
pwd)$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}} PATH=$$(cd \ pwd)$${LD_LIBRARY_PATH:+:$${LD_LIBRARY_PATH}} PATH=$$(cd \
$(top_builddir)/tests && pwd):$${PATH} \ $(top_builddir)/tests && pwd):$${PATH} \
OSTREE_FEATURES="$(OSTREE_FEATURES)" PYTHONUNBUFFERED=1 \ OSTREE_FEATURES="$(OSTREE_FEATURES)" PYTHONUNBUFFERED=1 \
$(NULL) $(am__append_64) $(NULL) $(am__append_65)
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/buildutil/tap-driver.sh LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) $(top_srcdir)/buildutil/tap-driver.sh
LOG_COMPILER = $(top_srcdir)/buildutil/tap-test LOG_COMPILER = $(top_srcdir)/buildutil/tap-test
installed_test_LTLIBRARIES = $(am__append_12) installed_test_LTLIBRARIES = $(am__append_12)
@ -2144,14 +2155,14 @@ all_test_ltlibs = $(test_ltlibraries) $(uninstalled_test_ltlibraries) $(installe
# This initializes some more variables # This initializes some more variables
# This is a special facility to chain together hooks easily # This is a special facility to chain together hooks easily
INSTALL_DATA_HOOKS = install-mkdir-remotes-d-hook $(am__append_81) \ INSTALL_DATA_HOOKS = install-mkdir-remotes-d-hook $(am__append_82) \
$(am__append_84) $(am__append_85)
ALL_LOCAL_RULES = tests/libreaddir-rand.so ALL_LOCAL_RULES = tests/libreaddir-rand.so
shortened_sysconfdir = $$(echo "$(sysconfdir)" | sed -e 's|^$(prefix)||' -e 's|^/||') 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) 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)
ACLOCAL_AMFLAGS = -I buildutil -I libglnx ${ACLOCAL_FLAGS} ACLOCAL_AMFLAGS = -I buildutil -I libglnx ${ACLOCAL_FLAGS}
GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in \ GITIGNOREFILES = aclocal.m4 build-aux/ buildutil/*.m4 config.h.in \
gtk-doc.make $(am__append_61) gtk-doc.make $(am__append_62)
OT_INTERNAL_GIO_UNIX_CFLAGS = $(OT_DEP_GIO_UNIX_CFLAGS) OT_INTERNAL_GIO_UNIX_CFLAGS = $(OT_DEP_GIO_UNIX_CFLAGS)
OT_INTERNAL_GIO_UNIX_LIBS = $(OT_DEP_GIO_UNIX_LIBS) OT_INTERNAL_GIO_UNIX_LIBS = $(OT_DEP_GIO_UNIX_LIBS)
OT_INTERNAL_SOUP_CFLAGS = $(OT_DEP_SOUP_CFLAGS) OT_INTERNAL_SOUP_CFLAGS = $(OT_DEP_SOUP_CFLAGS)
@ -2356,8 +2367,8 @@ libostree_1_la_SOURCES = src/libostree/ostree-async-progress.c \
src/libostree/ostree-gpg-verify-result-private.h \ src/libostree/ostree-gpg-verify-result-private.h \
src/libostree/ostree-autocleanups.h $(NULL) $(am__append_19) \ src/libostree/ostree-autocleanups.h $(NULL) $(am__append_19) \
$(am__append_20) $(am__append_21) $(am__append_22) \ $(am__append_20) $(am__append_21) $(am__append_22) \
$(am__append_23) $(am__append_32) $(am__append_33) \ $(am__append_23) $(am__append_33) $(am__append_34) \
$(am__append_36) $(am__append_37)
libostree_experimental_headers = \ libostree_experimental_headers = \
src/libostree/ostree-ref.h \ src/libostree/ostree-ref.h \
src/libostree/ostree-remote.h \ src/libostree/ostree-remote.h \
@ -2379,23 +2390,23 @@ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \
$(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) \ $(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) \
$(OT_DEP_CRYPTO_CFLAGS) -fvisibility=hidden \ $(OT_DEP_CRYPTO_CFLAGS) -fvisibility=hidden \
'-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \ '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \
extern' $(am__append_26) $(am__append_28) $(am__append_30) \ extern' $(am__append_27) $(am__append_29) $(am__append_31) \
$(am__append_34) $(am__append_37) $(am__append_39) \ $(am__append_35) $(am__append_38) $(am__append_40) \
$(am__append_41) $(am__append_42)
libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files)) 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 \ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \
libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) \ libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) \
$(OT_INTERNAL_GPGME_LIBS) $(OT_DEP_LZMA_LIBS) \ $(OT_INTERNAL_GPGME_LIBS) $(OT_DEP_LZMA_LIBS) \
$(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_LIBS) $(bupsplitpath) \ $(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_LIBS) $(am__append_26) \
$(am__append_27) $(am__append_29) $(am__append_31) \ $(bupsplitpath) $(am__append_28) $(am__append_30) \
$(am__append_35) $(am__append_38) $(am__append_40) \ $(am__append_32) $(am__append_36) $(am__append_39) \
$(am__append_42) $(am__append_41) $(am__append_43)
EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files) EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_EXPORT_PACKAGES = ostree-1 @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_EXPORT_PACKAGES = ostree-1
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_INCLUDES = Gio-2.0 @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_INCLUDES = Gio-2.0
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_CFLAGS = \ @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_CFLAGS = \
@BUILDOPT_INTROSPECTION_TRUE@ $(libostree_1_la_CFLAGS) \ @BUILDOPT_INTROSPECTION_TRUE@ $(libostree_1_la_CFLAGS) \
@BUILDOPT_INTROSPECTION_TRUE@ $(am__append_43) @BUILDOPT_INTROSPECTION_TRUE@ $(am__append_44)
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_LIBS = libostree-1.la @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_LIBS = libostree-1.la
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=Ostree --symbol-prefix=ostree $(GI_SCANNERFLAGS) @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_SCANNERFLAGS = --warn-all --identifier-prefix=Ostree --symbol-prefix=ostree $(GI_SCANNERFLAGS)
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_FILES = $(libostreeinclude_HEADERS) $(filter-out %-private.h %/ostree-soup-uri.h $(libostree_experimental_headers),$(libostree_1_la_SOURCES)) @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_FILES = $(libostreeinclude_HEADERS) $(filter-out %-private.h %/ostree-soup-uri.h $(libostree_experimental_headers),$(libostree_1_la_SOURCES))
@ -2423,7 +2434,7 @@ ostree_SOURCES = src/ostree/main.c src/ostree/ot-builtin-admin.c \
src/ostree/ot-main.c src/ostree/ot-dump.h src/ostree/ot-dump.c \ 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/ot-editor.c src/ostree/ot-editor.h \
src/ostree/parse-datetime.h src/ostree/parse-datetime.c \ src/ostree/parse-datetime.h src/ostree/parse-datetime.c \
$(NULL) $(am__append_48) src/ostree/ot-admin-builtin-init-fs.c \ $(NULL) $(am__append_49) src/ostree/ot-admin-builtin-init-fs.c \
src/ostree/ot-admin-builtin-diff.c \ src/ostree/ot-admin-builtin-diff.c \
src/ostree/ot-admin-builtin-deploy.c \ src/ostree/ot-admin-builtin-deploy.c \
src/ostree/ot-admin-builtin-undeploy.c \ src/ostree/ot-admin-builtin-undeploy.c \
@ -2450,7 +2461,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-show-url.c \
src/ostree/ot-remote-builtin-refs.c \ src/ostree/ot-remote-builtin-refs.c \
src/ostree/ot-remote-builtin-summary.c $(NULL) \ src/ostree/ot-remote-builtin-summary.c $(NULL) \
$(am__append_49) $(am__append_50) $(am__append_50) $(am__append_51)
ostree_bin_shared_cflags = $(AM_CFLAGS) -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree \ ostree_bin_shared_cflags = $(AM_CFLAGS) -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree \
-I$(builddir)/src/libostree -I$(srcdir)/src/ostree -I$(srcdir)/libglnx $(OT_INTERNAL_GIO_UNIX_CFLAGS) \ -I$(builddir)/src/libostree -I$(srcdir)/src/ostree -I$(srcdir)/libglnx $(OT_INTERNAL_GIO_UNIX_CFLAGS) \
-DPKGLIBEXECDIR=\"$(pkglibexecdir)\" -DPKGLIBEXECDIR=\"$(pkglibexecdir)\"
@ -2458,11 +2469,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 \ ostree_bin_shared_ldadd = $(AM_LDFLAGS) libglnx.la libotutil.la libostree-1.la \
$(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS)
ostree_CFLAGS = $(ostree_bin_shared_cflags) $(am__append_52) \ ostree_CFLAGS = $(ostree_bin_shared_cflags) $(am__append_53) \
$(am__append_54)
ostree_LDADD = $(ostree_bin_shared_ldadd) libbsdiff.la \
libostree-kernel-args.la $(LIBSYSTEMD_LIBS) $(am__append_53) \
$(am__append_55) $(am__append_55)
ostree_LDADD = $(ostree_bin_shared_ldadd) libbsdiff.la \
libostree-kernel-args.la $(LIBSYSTEMD_LIBS) $(am__append_54) \
$(am__append_56)
@USE_LIBSOUP_TRUE@ostree_trivial_httpd_SOURCES = src/ostree/ostree-trivial-httpd.c @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_CFLAGS = $(ostree_bin_shared_cflags) $(OT_INTERNAL_SOUP_CFLAGS)
@USE_LIBSOUP_TRUE@ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS) @USE_LIBSOUP_TRUE@ostree_trivial_httpd_LDADD = $(ostree_bin_shared_ldadd) $(OT_INTERNAL_SOUP_LIBS)
@ -2471,7 +2482,7 @@ ostree_prepare_root_SOURCES = \
src/switchroot/ostree-prepare-root.c \ src/switchroot/ostree-prepare-root.c \
$(NULL) $(NULL)
ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_59) ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_60)
# We're using our internal generator # We're using our internal generator
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@ostree_boot_SCRIPTS = src/boot/grub2/ostree-grub-generator @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@ostree_boot_SCRIPTS = src/boot/grub2/ostree-grub-generator
@ -2493,7 +2504,7 @@ ostree_remount_SOURCES = \
$(NULL) $(NULL)
ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) -Isrc/switchroot \ ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) -Isrc/switchroot \
$(am__append_60) $(am__append_61)
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_SOURCES = src/switchroot/ostree-mount-util.h \ @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_SOURCES = src/switchroot/ostree-mount-util.h \
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ src/switchroot/ostree-system-generator.c @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ src/switchroot/ostree-system-generator.c
@ -2501,11 +2512,14 @@ ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) -Isrc/switchroot \
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_CFLAGS = $(AM_CFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_CFLAGS = $(AM_CFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS)
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_LDADD = $(AM_LDFLAGS) libglnx.la libostree-1.la $(OT_INTERNAL_GIO_UNIX_LIBS) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@ostree_system_generator_LDADD = $(AM_LDFLAGS) libglnx.la libostree-1.la $(OT_INTERNAL_GIO_UNIX_LIBS)
@BUILDOPT_FUSE_TRUE@rofiles_fuse_SOURCES = src/rofiles-fuse/main.c @BUILDOPT_FUSE_TRUE@rofiles_fuse_SOURCES = src/rofiles-fuse/main.c
@BUILDOPT_FUSE_TRUE@rofiles_fuse_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(BUILDOPT_FUSE_CFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx $(NULL) @BUILDOPT_FUSE_TRUE@rofiles_fuse_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(BUILDOPT_FUSE_CFLAGS) \
@BUILDOPT_FUSE_TRUE@rofiles_fuse_LDADD = libglnx.la $(BUILDOPT_FUSE_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS) @BUILDOPT_FUSE_TRUE@ $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I $(srcdir)/src/libostree -I $(builddir)/src/libostree \
@BUILDOPT_FUSE_TRUE@ -I$(srcdir)/libglnx
@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 \ uninstalled_test_data = tests/ostree-symlink-stamp \
tests/ostree-prepare-root-symlink-stamp \ tests/ostree-prepare-root-symlink-stamp \
tests/ostree-remount-symlink-stamp $(am__append_69) tests/ostree-remount-symlink-stamp $(am__append_70)
dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh
# This logic implements ENABLE_INSTALLED_TESTS_EXCLUSIVE; see below. # This logic implements ENABLE_INSTALLED_TESTS_EXCLUSIVE; see below.
@ -2513,9 +2527,9 @@ dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh
# tests *only* run installed, to avoid having to run them twice in CI. # 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 # This overrides the glib-tap.mk emphasis on doing both, if we'd
# used e.g. `dist_test_scripts`. # used e.g. `dist_test_scripts`.
dist_test_scripts = $(NULL) $(am__append_79) dist_test_scripts = $(NULL) $(am__append_80)
test_programs = $(NULL) $(am__append_76) $(am__append_77) \ test_programs = $(NULL) $(am__append_77) $(am__append_78) \
$(am__append_80) $(am__append_81)
_installed_or_uninstalled_test_scripts = tests/test-basic.sh \ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \
tests/test-basic-user.sh tests/test-basic-user-only.sh \ tests/test-basic-user.sh tests/test-basic-user-only.sh \
tests/test-basic-root.sh tests/test-pull-subpath.sh \ tests/test-basic-root.sh tests/test-pull-subpath.sh \
@ -2555,8 +2569,8 @@ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \
tests/test-demo-buildsystem.sh tests/test-switchroot.sh \ tests/test-demo-buildsystem.sh tests/test-switchroot.sh \
tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \ tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \
tests/test-summary-update.sh tests/test-summary-view.sh \ tests/test-summary-update.sh tests/test-summary-view.sh \
$(NULL) $(am__append_65) $(am__append_68) $(am__append_71) \ tests/test-no-initramfs.sh $(NULL) $(am__append_66) \
$(am__append_72) $(am__append_69) $(am__append_72) $(am__append_73)
experimental_test_scripts = \ experimental_test_scripts = \
tests/test-create-usb.sh \ tests/test-create-usb.sh \
tests/test-find-remotes.sh \ tests/test-find-remotes.sh \
@ -2570,7 +2584,10 @@ experimental_test_scripts = \
tests/test-pull-collections.sh \ tests/test-pull-collections.sh \
$(NULL) $(NULL)
test_extra_programs = $(NULL) $(am__append_66) test_extra_programs = tests/get-byte-order $(NULL) $(am__append_67)
tests_get_byte_order_SOURCES = tests/get-byte-order.c
tests_get_byte_order_CFLAGS = $(AM_CFLAGS) $(GLIB_CFLAGS)
tests_get_byte_order_LDADD = $(GLIB_LIBS)
tests_repo_finder_mount_SOURCES = tests/repo-finder-mount.c tests_repo_finder_mount_SOURCES = tests/repo-finder-mount.c
tests_repo_finder_mount_CFLAGS = $(common_tests_cflags) tests_repo_finder_mount_CFLAGS = $(common_tests_cflags)
tests_repo_finder_mount_LDADD = $(common_tests_ldadd) libostreetest.la tests_repo_finder_mount_LDADD = $(common_tests_ldadd) libostreetest.la
@ -2586,6 +2603,7 @@ dist_installed_test_data = tests/archive-test.sh \
tests/pre-endian-deltas-repo-little.tar.xz \ tests/pre-endian-deltas-repo-little.tar.xz \
tests/fah-deltadata-old.tar.xz \ tests/fah-deltadata-old.tar.xz \
tests/fah-deltadata-new.tar.xz \ tests/fah-deltadata-new.tar.xz \
tests/ostree-path-traverse.tar.gz \
tests/libtest-core.sh \ tests/libtest-core.sh \
$(NULL) $(NULL)
@ -2628,7 +2646,7 @@ libreaddir_rand_la_LIBADD = \
$(NULL) $(NULL)
libreaddir_rand_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version \ libreaddir_rand_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version \
$(am__append_75) $(am__append_76)
_installed_or_uninstalled_test_programs = tests/test-varint \ _installed_or_uninstalled_test_programs = tests/test-varint \
tests/test-ot-unix-utils tests/test-bsdiff \ tests/test-ot-unix-utils tests/test-bsdiff \
tests/test-mutable-tree tests/test-keyfile-utils \ tests/test-mutable-tree tests/test-keyfile-utils \
@ -2636,7 +2654,7 @@ _installed_or_uninstalled_test_programs = tests/test-varint \
tests/test-gpg-verify-result tests/test-checksum \ tests/test-gpg-verify-result tests/test-checksum \
tests/test-lzma tests/test-rollsum tests/test-basic-c \ tests/test-lzma tests/test-rollsum tests/test-basic-c \
tests/test-sysroot-c tests/test-pull-c tests/test-repo \ tests/test-sysroot-c tests/test-pull-c tests/test-repo \
$(am__append_78) $(am__append_79)
common_tests_cflags = $(ostree_bin_shared_cflags) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx 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) 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 libostreetest_la_SOURCES = tests/libostreetest.c tests/test-mock-gio.c tests/test-mock-gio.h
@ -2739,8 +2757,8 @@ tests_test_gpg_verify_result_LDADD = $(TESTS_LDADD) $(OT_INTERNAL_GPGME_LIBS)
@ENABLE_MAN_TRUE@ ostree-pull.1 ostree-refs.1 ostree-remote.1 \ @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-reset.1 ostree-rev-parse.1 \
@ENABLE_MAN_TRUE@ ostree-show.1 ostree-summary.1 \ @ENABLE_MAN_TRUE@ ostree-show.1 ostree-summary.1 \
@ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_85) \ @ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_86) \
@ENABLE_MAN_TRUE@ $(am__append_87) @ENABLE_MAN_TRUE@ $(am__append_88)
@ENABLE_MAN_TRUE@man5_files = ostree.repo.5 ostree.repo-config.5 @ENABLE_MAN_TRUE@man5_files = ostree.repo.5 ostree.repo-config.5
@ENABLE_MAN_TRUE@man1_MANS = $(addprefix man/,$(man1_files)) @ENABLE_MAN_TRUE@man1_MANS = $(addprefix man/,$(man1_files))
@ENABLE_MAN_TRUE@man5_MANS = $(addprefix man/,$(man5_files)) @ENABLE_MAN_TRUE@man5_MANS = $(addprefix man/,$(man5_files))
@ -3874,6 +3892,12 @@ libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.$(OBJEXT): \
test-libglnx-xattrs$(EXEEXT): $(test_libglnx_xattrs_OBJECTS) $(test_libglnx_xattrs_DEPENDENCIES) $(EXTRA_test_libglnx_xattrs_DEPENDENCIES) test-libglnx-xattrs$(EXEEXT): $(test_libglnx_xattrs_OBJECTS) $(test_libglnx_xattrs_DEPENDENCIES) $(EXTRA_test_libglnx_xattrs_DEPENDENCIES)
@rm -f test-libglnx-xattrs$(EXEEXT) @rm -f test-libglnx-xattrs$(EXEEXT)
$(AM_V_CCLD)$(test_libglnx_xattrs_LINK) $(test_libglnx_xattrs_OBJECTS) $(test_libglnx_xattrs_LDADD) $(LIBS) $(AM_V_CCLD)$(test_libglnx_xattrs_LINK) $(test_libglnx_xattrs_OBJECTS) $(test_libglnx_xattrs_LDADD) $(LIBS)
tests/tests_get_byte_order-get-byte-order.$(OBJEXT): \
tests/$(am__dirstamp) tests/$(DEPDIR)/$(am__dirstamp)
tests/get-byte-order$(EXEEXT): $(tests_get_byte_order_OBJECTS) $(tests_get_byte_order_DEPENDENCIES) $(EXTRA_tests_get_byte_order_DEPENDENCIES) tests/$(am__dirstamp)
@rm -f tests/get-byte-order$(EXEEXT)
$(AM_V_CCLD)$(tests_get_byte_order_LINK) $(tests_get_byte_order_OBJECTS) $(tests_get_byte_order_LDADD) $(LIBS)
tests/tests_repo_finder_mount-repo-finder-mount.$(OBJEXT): \ tests/tests_repo_finder_mount-repo-finder-mount.$(OBJEXT): \
tests/$(am__dirstamp) tests/$(DEPDIR)/$(am__dirstamp) tests/$(am__dirstamp) tests/$(DEPDIR)/$(am__dirstamp)
@ -4429,6 +4453,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libostreetest_la-libostreetest.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libostreetest_la-libostreetest.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libostreetest_la-test-mock-gio.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libostreetest_la-test-mock-gio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libreaddir_rand_la-readdir-rand.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/libreaddir_rand_la-readdir-rand.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_test_basic_c-test-basic-c.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_test_basic_c-test-basic-c.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_test_bloom-test-bloom.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/tests_test_bloom-test-bloom.Po@am__quote@
@ -6037,6 +6062,20 @@ libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.obj: libglnx/tests/test-li
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_libglnx_xattrs_CFLAGS) $(CFLAGS) -c -o libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.obj `if test -f 'libglnx/tests/test-libglnx-xattrs.c'; then $(CYGPATH_W) 'libglnx/tests/test-libglnx-xattrs.c'; else $(CYGPATH_W) '$(srcdir)/libglnx/tests/test-libglnx-xattrs.c'; fi` @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_libglnx_xattrs_CFLAGS) $(CFLAGS) -c -o libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.obj `if test -f 'libglnx/tests/test-libglnx-xattrs.c'; then $(CYGPATH_W) 'libglnx/tests/test-libglnx-xattrs.c'; else $(CYGPATH_W) '$(srcdir)/libglnx/tests/test-libglnx-xattrs.c'; fi`
tests/tests_get_byte_order-get-byte-order.o: tests/get-byte-order.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_get_byte_order_CFLAGS) $(CFLAGS) -MT tests/tests_get_byte_order-get-byte-order.o -MD -MP -MF tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Tpo -c -o tests/tests_get_byte_order-get-byte-order.o `test -f 'tests/get-byte-order.c' || echo '$(srcdir)/'`tests/get-byte-order.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Tpo tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tests/get-byte-order.c' object='tests/tests_get_byte_order-get-byte-order.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_get_byte_order_CFLAGS) $(CFLAGS) -c -o tests/tests_get_byte_order-get-byte-order.o `test -f 'tests/get-byte-order.c' || echo '$(srcdir)/'`tests/get-byte-order.c
tests/tests_get_byte_order-get-byte-order.obj: tests/get-byte-order.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_get_byte_order_CFLAGS) $(CFLAGS) -MT tests/tests_get_byte_order-get-byte-order.obj -MD -MP -MF tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Tpo -c -o tests/tests_get_byte_order-get-byte-order.obj `if test -f 'tests/get-byte-order.c'; then $(CYGPATH_W) 'tests/get-byte-order.c'; else $(CYGPATH_W) '$(srcdir)/tests/get-byte-order.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Tpo tests/$(DEPDIR)/tests_get_byte_order-get-byte-order.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tests/get-byte-order.c' object='tests/tests_get_byte_order-get-byte-order.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_get_byte_order_CFLAGS) $(CFLAGS) -c -o tests/tests_get_byte_order-get-byte-order.obj `if test -f 'tests/get-byte-order.c'; then $(CYGPATH_W) 'tests/get-byte-order.c'; else $(CYGPATH_W) '$(srcdir)/tests/get-byte-order.c'; fi`
tests/tests_repo_finder_mount-repo-finder-mount.o: tests/repo-finder-mount.c tests/tests_repo_finder_mount-repo-finder-mount.o: tests/repo-finder-mount.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_repo_finder_mount_CFLAGS) $(CFLAGS) -MT tests/tests_repo_finder_mount-repo-finder-mount.o -MD -MP -MF tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Tpo -c -o tests/tests_repo_finder_mount-repo-finder-mount.o `test -f 'tests/repo-finder-mount.c' || echo '$(srcdir)/'`tests/repo-finder-mount.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_repo_finder_mount_CFLAGS) $(CFLAGS) -MT tests/tests_repo_finder_mount-repo-finder-mount.o -MD -MP -MF tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Tpo -c -o tests/tests_repo_finder_mount-repo-finder-mount.o `test -f 'tests/repo-finder-mount.c' || echo '$(srcdir)/'`tests/repo-finder-mount.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Tpo tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Po @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Tpo tests/$(DEPDIR)/tests_repo_finder_mount-repo-finder-mount.Po
@ -7727,6 +7766,13 @@ tests/test-summary-view.sh.log: tests/test-summary-view.sh
--log-file $$b.log --trs-file $$b.trs \ --log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT) "$$tst" $(AM_TESTS_FD_REDIRECT)
tests/test-no-initramfs.sh.log: tests/test-no-initramfs.sh
@p='tests/test-no-initramfs.sh'; \
b='tests/test-no-initramfs.sh'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
tests/test-create-usb.sh.log: tests/test-create-usb.sh tests/test-create-usb.sh.log: tests/test-create-usb.sh
@p='tests/test-create-usb.sh'; \ @p='tests/test-create-usb.sh'; \
b='tests/test-create-usb.sh'; \ b='tests/test-create-usb.sh'; \
@ -8443,6 +8489,12 @@ tests/%-symlink-stamp: % Makefile
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@check-local: @ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@check-local:
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@ echo "NOTE: Exclusive installed tests are enabled; to run them, make install, then: gnome-desktop-testing-runner -p 0 libostree/" @ENABLE_INSTALLED_TESTS_EXCLUSIVE_TRUE@ echo "NOTE: Exclusive installed tests are enabled; to run them, make install, then: gnome-desktop-testing-runner -p 0 libostree/"
@USE_LIBSOUP_FALSE@no-soup-for-you-warning:
@USE_LIBSOUP_FALSE@ @echo "WARNING: $(PACKAGE) was built without libsoup, which is currently" 1>&2
@USE_LIBSOUP_FALSE@ @echo "WARNING: required for many unit tests." 1>&2
@USE_LIBSOUP_FALSE@ sleep 10
@USE_LIBSOUP_FALSE@check: no-soup-for-you-warning
# Unfortunately the glib test data APIs don't actually handle # Unfortunately the glib test data APIs don't actually handle
# non-recursive Automake, so we change our code to canonically look # non-recursive Automake, so we change our code to canonically look
# for tests/ which is just a symlink when installed. # for tests/ which is just a symlink when installed.

View File

@ -52,6 +52,24 @@
# Boston, MA 02111-1307, USA. # Boston, MA 02111-1307, USA.
# -*- mode: makefile -*- # -*- mode: makefile -*-
#
# gtk-doc.make - make rules for gtk-doc
# Copyright (C) 2003 James Henstridge
# 2004-2007 Damon Chaplin
# 2007-2017 Stefan Sauer
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#################################### ####################################
# Everything below here is generic # # Everything below here is generic #
@ -830,6 +848,9 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HF
sgml.stamp: sgml-build.stamp sgml.stamp: sgml-build.stamp
@true @true
$(DOC_MAIN_SGML_FILE): sgml-build.stamp
@true
xml/gtkdocentities.ent: Makefile xml/gtkdocentities.ent: Makefile
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
echo "<!ENTITY package \"$(PACKAGE)\">"; \ echo "<!ENTITY package \"$(PACKAGE)\">"; \

View File

@ -6,7 +6,7 @@
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"> <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references"> <link rel="home" href="index.html" title="OSTree API references">
<link rel="next" href="reference.html" title="API Reference"> <link rel="next" href="reference.html" title="API Reference">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -14,7 +14,7 @@
<div class="titlepage"> <div class="titlepage">
<div> <div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">OSTree API references</p></th></tr></table></div> <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">OSTree API references</p></th></tr></table></div>
<div><p class="releaseinfo">for OSTree 2017.15</p></div> <div><p class="releaseinfo">for OSTree 2018.1</p></div>
</div> </div>
<hr> <hr>
</div> </div>
@ -68,6 +68,6 @@
</dl></div> </dl></div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="reference.html" title="API Reference"> <link rel="prev" href="reference.html" title="API Reference">
<link rel="next" href="ostree-OstreeRepo.html" title="OstreeRepo: Content-addressed object store"> <link rel="next" href="ostree-OstreeRepo.html" title="OstreeRepo: Content-addressed object store">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -2561,6 +2561,6 @@ Unix epoch in UTC, big-endian) when the commit was committed</p></li></ul></div>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-Simple-upgrade-class.html" title="Simple upgrade class"> <link rel="prev" href="ostree-Simple-upgrade-class.html" title="Simple upgrade class">
<link rel="next" href="ostree-ostree-bootconfig-parser.html" title="ostree-bootconfig-parser"> <link rel="next" href="ostree-ostree-bootconfig-parser.html" title="ostree-bootconfig-parser">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -560,6 +560,8 @@ These may be returned by any API which creates or verifies signatures.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeGpgVerifyResult"></a><h3>OstreeGpgVerifyResult</h3> <a name="OstreeGpgVerifyResult"></a><h3>OstreeGpgVerifyResult</h3>
<pre class="programlisting">typedef struct OstreeGpgVerifyResult OstreeGpgVerifyResult;
</pre>
<p>Private instance structure.</p> <p>Private instance structure.</p>
</div> </div>
<hr> <hr>
@ -705,6 +707,6 @@ for future variations.</p>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-OstreeRepo.html" title="OstreeRepo: Content-addressed object store"> <link rel="prev" href="ostree-OstreeRepo.html" title="OstreeRepo: Content-addressed object store">
<link rel="next" href="ostree-Root-partition-mount-point.html" title="Root partition mount point"> <link rel="next" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -358,11 +358,13 @@ ostree_mutable_tree_get_files (<em class="parameter"><code><a class="link" href=
<a name="ostree-In-memory-modifiable-filesystem-tree.other_details"></a><h2>Types and Values</h2> <a name="ostree-In-memory-modifiable-filesystem-tree.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeMutableTree"></a><h3>OstreeMutableTree</h3> <a name="OstreeMutableTree"></a><h3>OstreeMutableTree</h3>
<pre class="programlisting">typedef struct OstreeMutableTree OstreeMutableTree;
</pre>
<p>Private instance structure.</p> <p>Private instance structure.</p>
</div> </div>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions"> <link rel="prev" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions">
<link rel="next" href="ostree-In-memory-modifiable-filesystem-tree.html" title="In-memory modifiable filesystem tree"> <link rel="next" href="ostree-In-memory-modifiable-filesystem-tree.html" title="In-memory modifiable filesystem tree">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -7549,6 +7549,8 @@ order.</p>
<a name="ostree-OstreeRepo.other_details"></a><h2>Types and Values</h2> <a name="ostree-OstreeRepo.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeRepo"></a><h3>OstreeRepo</h3> <a name="OstreeRepo"></a><h3>OstreeRepo</h3>
<pre class="programlisting">typedef struct OstreeRepo OstreeRepo;
</pre>
<p>Private instance structure.</p> <p>Private instance structure.</p>
</div> </div>
<hr> <hr>
@ -7855,6 +7857,8 @@ by <a class="link" href="ostree-OstreeRepo.html#ostree-repo-load-commit" title="
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeRepoCommitModifier"></a><h3>OstreeRepoCommitModifier</h3> <a name="OstreeRepoCommitModifier"></a><h3>OstreeRepoCommitModifier</h3>
<pre class="programlisting">typedef struct OstreeRepoCommitModifier OstreeRepoCommitModifier;
</pre>
<p>A structure allowing control over commits.</p> <p>A structure allowing control over commits.</p>
</div> </div>
<hr> <hr>
@ -8264,6 +8268,6 @@ as - List of pack file checksums in which this object appears</p>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-Root-partition-mount-point.html" title="Root partition mount point"> <link rel="prev" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">
<link rel="next" href="ostree-SELinux-policy-management.html" title="SELinux policy management"> <link rel="next" href="ostree-SELinux-policy-management.html" title="SELinux policy management">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -540,10 +540,12 @@ events will be queued.</p>
<a name="ostree-Progress-notification-system-for-asynchronous-operations.other_details"></a><h2>Types and Values</h2> <a name="ostree-Progress-notification-system-for-asynchronous-operations.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeAsyncProgress"></a><h3>OstreeAsyncProgress</h3> <a name="OstreeAsyncProgress"></a><h3>OstreeAsyncProgress</h3>
<pre class="programlisting">typedef struct OstreeAsyncProgress OstreeAsyncProgress;
</pre>
</div> </div>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-In-memory-modifiable-filesystem-tree.html" title="In-memory modifiable filesystem tree"> <link rel="prev" href="ostree-In-memory-modifiable-filesystem-tree.html" title="In-memory modifiable filesystem tree">
<link rel="next" href="ostree-Progress-notification-system-for-asynchronous-operations.html" title="Progress notification system for asynchronous operations"> <link rel="next" href="ostree-Progress-notification-system-for-asynchronous-operations.html" title="Progress notification system for asynchronous operations">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -1686,6 +1686,8 @@ later, instead.</p>
<a name="ostree-Root-partition-mount-point.other_details"></a><h2>Types and Values</h2> <a name="ostree-Root-partition-mount-point.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeSysroot"></a><h3>OstreeSysroot</h3> <a name="OstreeSysroot"></a><h3>OstreeSysroot</h3>
<pre class="programlisting">typedef struct OstreeSysroot OstreeSysroot;
</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -1736,6 +1738,6 @@ later, instead.</p>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-Progress-notification-system-for-asynchronous-operations.html" title="Progress notification system for asynchronous operations"> <link rel="prev" href="ostree-Progress-notification-system-for-asynchronous-operations.html" title="Progress notification system for asynchronous operations">
<link rel="next" href="ostree-Simple-upgrade-class.html" title="Simple upgrade class"> <link rel="next" href="ostree-Simple-upgrade-class.html" title="Simple upgrade class">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -447,6 +447,8 @@ ostree_sepolicy_fscreatecon_cleanup (<em class="parameter"><code><span class="ty
<a name="ostree-SELinux-policy-management.other_details"></a><h2>Types and Values</h2> <a name="ostree-SELinux-policy-management.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeSePolicy"></a><h3>OstreeSePolicy</h3> <a name="OstreeSePolicy"></a><h3>OstreeSePolicy</h3>
<pre class="programlisting">typedef struct OstreeSePolicy OstreeSePolicy;
</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -482,6 +484,6 @@ ostree_sepolicy_fscreatecon_cleanup (<em class="parameter"><code><span class="ty
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-SELinux-policy-management.html" title="SELinux policy management"> <link rel="prev" href="ostree-SELinux-policy-management.html" title="SELinux policy management">
<link rel="next" href="ostree-GPG-signature-verification-results.html" title="GPG signature verification results"> <link rel="next" href="ostree-GPG-signature-verification-results.html" title="GPG signature verification results">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -642,6 +642,8 @@ with /etc, and update the bootloader configuration.</p>
<a name="ostree-Simple-upgrade-class.other_details"></a><h2>Types and Values</h2> <a name="ostree-Simple-upgrade-class.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeSysrootUpgrader"></a><h3>OstreeSysrootUpgrader</h3> <a name="OstreeSysrootUpgrader"></a><h3>OstreeSysrootUpgrader</h3>
<pre class="programlisting">typedef struct OstreeSysrootUpgrader OstreeSysrootUpgrader;
</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -708,6 +710,6 @@ with /etc, and update the bootloader configuration.</p>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-GPG-signature-verification-results.html" title="GPG signature verification results"> <link rel="prev" href="ostree-GPG-signature-verification-results.html" title="GPG signature verification results">
<link rel="next" href="ostree-ostree-chain-input-stream.html" title="ostree-chain-input-stream"> <link rel="next" href="ostree-ostree-chain-input-stream.html" title="ostree-chain-input-stream">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -256,6 +256,6 @@ ostree_bootconfig_parser_get (<em class="parameter"><code><a class="link" href="
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-bootconfig-parser.html" title="ostree-bootconfig-parser"> <link rel="prev" href="ostree-ostree-bootconfig-parser.html" title="ostree-bootconfig-parser">
<link rel="next" href="ostree-ostree-checksum-input-stream.html" title="ostree-checksum-input-stream"> <link rel="next" href="ostree-ostree-checksum-input-stream.html" title="ostree-checksum-input-stream">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -84,6 +84,6 @@ ostree_chain_input_stream_new (<em class="parameter"><code><span class="type">GP
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-chain-input-stream.html" title="ostree-chain-input-stream"> <link rel="prev" href="ostree-ostree-chain-input-stream.html" title="ostree-chain-input-stream">
<link rel="next" href="ostree-ostree-deployment.html" title="ostree-deployment"> <link rel="next" href="ostree-ostree-deployment.html" title="ostree-deployment">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -85,6 +85,6 @@ ostree_checksum_input_stream_new (<em class="parameter"><code><span class="type"
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-checksum-input-stream.html" title="ostree-checksum-input-stream"> <link rel="prev" href="ostree-ostree-checksum-input-stream.html" title="ostree-checksum-input-stream">
<link rel="next" href="ostree-ostree-diff.html" title="ostree-diff"> <link rel="next" href="ostree-ostree-diff.html" title="ostree-diff">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -522,6 +522,6 @@ ostree_deployment_unlocked_state_to_string
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-deployment.html" title="ostree-deployment"> <link rel="prev" href="ostree-ostree-deployment.html" title="ostree-deployment">
<link rel="next" href="ostree-ostree-repo-file.html" title="ostree-repo-file"> <link rel="next" href="ostree-ostree-repo-file.html" title="ostree-repo-file">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -363,6 +363,6 @@ ostree_diff_print (<em class="parameter"><code><span class="type">GFile</span> *
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -7,7 +7,7 @@
<link rel="home" href="index.html" title="OSTree API references"> <link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference"> <link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-diff.html" title="ostree-diff"> <link rel="prev" href="ostree-ostree-diff.html" title="ostree-diff">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -255,10 +255,12 @@ ostree_repo_file_tree_query_child (<em class="parameter"><code><a class="link" h
<a name="ostree-ostree-repo-file.other_details"></a><h2>Types and Values</h2> <a name="ostree-ostree-repo-file.other_details"></a><h2>Types and Values</h2>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeRepoFile"></a><h3>OstreeRepoFile</h3> <a name="OstreeRepoFile"></a><h3>OstreeRepoFile</h3>
<pre class="programlisting">typedef struct OstreeRepoFile OstreeRepoFile;
</pre>
</div> </div>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -8,7 +8,7 @@
<link rel="up" href="index.html" title="OSTree API references"> <link rel="up" href="index.html" title="OSTree API references">
<link rel="prev" href="index.html" title="OSTree API references"> <link rel="prev" href="index.html" title="OSTree API references">
<link rel="next" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions"> <link rel="next" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions">
<meta name="generator" content="GTK-Doc V1.26 (XML mode)"> <meta name="generator" content="GTK-Doc V1.27 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@ -1584,6 +1584,6 @@ OSTREE_YEAR_VERSION, macro in ostree-version
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<hr>Generated by GTK-Doc V1.26</div> <hr>Generated by GTK-Doc V1.27</div>
</body> </body>
</html> </html>

View File

@ -1 +1 @@
2017.15 2018.1

View File

@ -783,6 +783,8 @@ _ostree_commit() {
local options_with_args=" local options_with_args="
--add-detached-metadata-string --add-detached-metadata-string
--add-metadata-string --add-metadata-string
--add-metadata
--keep-metadata
--bind-ref --bind-ref
--body -m --body -m
--body-file -F --body-file -F

View File

@ -1,4 +1,29 @@
dnl -*- mode: autoconf -*- # -*- mode: autoconf -*-
#
# gtk-doc.m4 - configure macro to check for gtk-doc
# Copyright (C) 2003 James Henstridge
# 2007-2017 Stefan Sauer
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the above copyright owner gives unlimited
# permission to copy, distribute and modify the configure scripts that
# are the output of Autoconf when processing the Macro. You need not
# follow the terms of the GNU General Public License when using or
# distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
# serial 2 # serial 2

31
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libostree 2017.15. # Generated by GNU Autoconf 2.69 for libostree 2018.1.
# #
# Report bugs to <walters@verbum.org>. # Report bugs to <walters@verbum.org>.
# #
@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='libostree' PACKAGE_NAME='libostree'
PACKAGE_TARNAME='libostree' PACKAGE_TARNAME='libostree'
PACKAGE_VERSION='2017.15' PACKAGE_VERSION='2018.1'
PACKAGE_STRING='libostree 2017.15' PACKAGE_STRING='libostree 2018.1'
PACKAGE_BUGREPORT='walters@verbum.org' PACKAGE_BUGREPORT='walters@verbum.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -1541,7 +1541,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # 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. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures libostree 2017.15 to adapt to many kinds of systems. \`configure' configures libostree 2018.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1611,7 +1611,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of libostree 2017.15:";; short | recursive ) echo "Configuration of libostree 2018.1:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1853,7 +1853,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
libostree configure 2017.15 libostree configure 2018.1
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
@ -2325,7 +2325,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by libostree $as_me 2017.15, which was It was created by libostree $as_me 2018.1, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -3193,7 +3193,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libostree' PACKAGE='libostree'
VERSION='2017.15' VERSION='2018.1'
# Some tools Automake needs. # Some tools Automake needs.
@ -5925,11 +5925,11 @@ done
test -n "$YACC" || YACC="yacc" test -n "$YACC" || YACC="yacc"
YEAR_VERSION=2017 YEAR_VERSION=2018
RELEASE_VERSION=15 RELEASE_VERSION=1
PACKAGE_VERSION=2017.15 PACKAGE_VERSION=2018.1
if echo "$CFLAGS" | grep -q -E -e '-Werror($| )'; then : if echo "$CFLAGS" | grep -q -E -e '-Werror($| )'; then :
@ -5951,7 +5951,7 @@ else
-Werror=switch \ -Werror=switch \
-Werror=overflow \ -Werror=overflow \
-Werror=int-conversion \ -Werror=int-conversion \
-Werror=parenthesis \ -Werror=parentheses \
-Werror=undef \ -Werror=undef \
-Werror=incompatible-pointer-types \ -Werror=incompatible-pointer-types \
-Werror=misleading-indentation \ -Werror=misleading-indentation \
@ -15210,7 +15210,8 @@ fi
if test x$with_curl = xyes && test x$with_soup = xno; then : if test x$with_curl = xyes && test x$with_soup = xno; then :
as_fn_error $? "Curl enabled, but libsoup is not; libsoup is needed for tests" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)" >&5
$as_echo "$as_me: WARNING: Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)" >&2;}
fi fi
if test x$with_curl != xno || test x$with_soup != xno; then if test x$with_curl != xno || test x$with_soup != xno; then
@ -18380,7 +18381,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by libostree $as_me 2017.15, which was This file was extended by libostree $as_me 2018.1, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -18446,7 +18447,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
libostree config.status 2017.15 libostree config.status 2018.1
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"

View File

@ -3,8 +3,8 @@ dnl If doing a final release, remember to follow the instructions to
dnl update libostree-released.sym from libostree-devel.sym, and update the checksum dnl update libostree-released.sym from libostree-devel.sym, and update the checksum
dnl in test-symbols.sh, and also set is_release_build=yes below. Then make dnl in test-symbols.sh, and also set is_release_build=yes below. Then make
dnl another post-release commit to bump the version, and set is_release_build=no. dnl another post-release commit to bump the version, and set is_release_build=no.
m4_define([year_version], [2017]) m4_define([year_version], [2018])
m4_define([release_version], [15]) m4_define([release_version], [1])
m4_define([package_version], [year_version.release_version]) m4_define([package_version], [year_version.release_version])
AC_INIT([libostree], [package_version], [walters@verbum.org]) AC_INIT([libostree], [package_version], [walters@verbum.org])
is_release_build=yes is_release_build=yes
@ -43,7 +43,7 @@ CC_CHECK_FLAGS_APPEND([WARN_CFLAGS], [CFLAGS], [\
-Werror=switch \ -Werror=switch \
-Werror=overflow \ -Werror=overflow \
-Werror=int-conversion \ -Werror=int-conversion \
-Werror=parenthesis \ -Werror=parentheses \
-Werror=undef \ -Werror=undef \
-Werror=incompatible-pointer-types \ -Werror=incompatible-pointer-types \
-Werror=misleading-indentation \ -Werror=misleading-indentation \
@ -197,7 +197,7 @@ AM_COND_IF(BUILDOPT_TRIVIAL_HTTPD,
) )
AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [ AS_IF([test x$with_curl = xyes && test x$with_soup = xno], [
AC_MSG_ERROR([Curl enabled, but libsoup is not; libsoup is needed for tests]) AC_MSG_WARN([Curl enabled, but libsoup is not; libsoup is needed for tests (make check, etc.)])
]) ])
AM_CONDITIONAL(USE_CURL_OR_SOUP, test x$with_curl != xno || test x$with_soup != xno) AM_CONDITIONAL(USE_CURL_OR_SOUP, test x$with_curl != xno || test x$with_soup != xno)
AS_IF([test x$with_curl != xno || test x$with_soup != xno], AS_IF([test x$with_curl != xno || test x$with_soup != xno],

View File

@ -1,4 +1,22 @@
# -*- mode: makefile -*- # -*- mode: makefile -*-
#
# gtk-doc.make - make rules for gtk-doc
# Copyright (C) 2003 James Henstridge
# 2004-2007 Damon Chaplin
# 2007-2017 Stefan Sauer
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program 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 General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#################################### ####################################
# Everything below here is generic # # Everything below here is generic #
@ -152,6 +170,9 @@ sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(HF
sgml.stamp: sgml-build.stamp sgml.stamp: sgml-build.stamp
@true @true
$(DOC_MAIN_SGML_FILE): sgml-build.stamp
@true
xml/gtkdocentities.ent: Makefile xml/gtkdocentities.ent: Makefile
$(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \ $(GTK_DOC_V_XML)$(MKDIR_P) $(@D) && ( \
echo "<!ENTITY package \"$(PACKAGE)\">"; \ echo "<!ENTITY package \"$(PACKAGE)\">"; \

View File

@ -17,10 +17,14 @@
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, # Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307, USA. # Boston, MA 02111-1307, USA.
# Gracefully exit if ostree is not installed # Gracefully exit if ostree is not installed, or there's
# no system repository initialized.
if ! which ostree >/dev/null 2>/dev/null; then if ! which ostree >/dev/null 2>/dev/null; then
exit 0 exit 0
fi fi
if ! test -d /ostree/repo; then
exit 0
fi
# Make sure we're in the right environment # Make sure we're in the right environment
if ! test -n "${GRUB_DEVICE}"; then if ! test -n "${GRUB_DEVICE}"; then

View File

@ -1,7 +1,6 @@
#!/bin/sh #!/bin/sh
# To use a custrom script for generating grub.cfg, set the --with-grub2-mkconfig=no # The builtin grub.cfg generator.
# configure switch when configuring and building OSTree.
# #
# This script is called by ostree/src/libostree/ostree-bootloader-grub2.c whenever # This script is called by ostree/src/libostree/ostree-bootloader-grub2.c whenever
# boot loader configuration file needs to be updated. It can be used as a template # boot loader configuration file needs to be updated. It can be used as a template
@ -28,7 +27,7 @@ entries_path=$(dirname $new_grub2_cfg)/entries
read_config() read_config()
{ {
config_file=${entries_path}/${1} config_file=${1}
title="" title=""
initrd="" initrd=""
options="" options=""
@ -67,11 +66,13 @@ populate_menu()
else else
boot_prefix="${OSTREE_BOOT_PARTITION}" boot_prefix="${OSTREE_BOOT_PARTITION}"
fi fi
for config in $(ls ${entries_path}); do for config in $(ls $entries_path/*.conf); do
read_config ${config} read_config ${config}
menu="${menu}menuentry '${title}' {\n" menu="${menu}menuentry '${title}' {\n"
menu="${menu}\t linux ${boot_prefix}${linux} ${options}\n" menu="${menu}\t linux ${boot_prefix}${linux} ${options}\n"
menu="${menu}\t initrd ${boot_prefix}${initrd}\n" if [ -n "${initrd}" ] ; then
menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
fi
menu="${menu}}\n\n" menu="${menu}}\n\n"
done done
# The printf command seems to be more reliable across shells for special character (\n, \t) evaluation # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation

View File

@ -18,8 +18,8 @@
***/ ***/
/* Add new symbols here. Release commits should copy this section into -released.sym. */ /* Add new symbols here. Release commits should copy this section into -released.sym. */
LIBOSTREE_2017.16 { LIBOSTREE_2018.2 {
} LIBOSTREE_2017.15; } LIBOSTREE_2018.1;
/* Stub section for the stable release *after* this development one; don't /* Stub section for the stable release *after* this development one; don't
* edit this other than to update the last number. This is just a copy/paste * edit this other than to update the last number. This is just a copy/paste

View File

@ -451,6 +451,9 @@ LIBOSTREE_2017.15 {
ostree_break_hardlink; ostree_break_hardlink;
} LIBOSTREE_2017.14; } LIBOSTREE_2017.14;
LIBOSTREE_2018.1 {
} LIBOSTREE_2017.15;
/* NOTE: Only add more content here in release commits! See the /* NOTE: Only add more content here in release commits! See the
* comments at the top of this file. * comments at the top of this file.
*/ */

View File

@ -164,6 +164,17 @@ _ostree_loose_path (char *buf,
OstreeObjectType objtype, OstreeObjectType objtype,
OstreeRepoMode repo_mode); OstreeRepoMode repo_mode);
gboolean _ostree_validate_structureof_metadata (OstreeObjectType objtype,
GVariant *commit,
GError **error);
gboolean
_ostree_verify_metadata_object (OstreeObjectType objtype,
const char *expected_checksum,
GVariant *metadata,
GError **error);
#define _OSTREE_METADATA_GPGSIGS_NAME "ostree.gpgsigs" #define _OSTREE_METADATA_GPGSIGS_NAME "ostree.gpgsigs"
#define _OSTREE_METADATA_GPGSIGS_TYPE G_VARIANT_TYPE ("aay") #define _OSTREE_METADATA_GPGSIGS_TYPE G_VARIANT_TYPE ("aay")

View File

@ -2071,6 +2071,74 @@ validate_variant (GVariant *variant,
return TRUE; return TRUE;
} }
/* TODO: make this public later; just wraps the previously public
* commit/dirtree/dirmeta verifiers.
*/
gboolean
_ostree_validate_structureof_metadata (OstreeObjectType objtype,
GVariant *metadata,
GError **error)
{
g_assert (OSTREE_OBJECT_TYPE_IS_META (objtype));
switch (objtype)
{
case OSTREE_OBJECT_TYPE_COMMIT:
if (!ostree_validate_structureof_commit (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_DIR_TREE:
if (!ostree_validate_structureof_dirtree (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_DIR_META:
if (!ostree_validate_structureof_dirmeta (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT:
case OSTREE_OBJECT_TYPE_COMMIT_META:
/* TODO */
break;
case OSTREE_OBJECT_TYPE_FILE:
g_assert_not_reached ();
break;
}
return TRUE;
}
/* Used by fsck as well as pull. Verify the checksum of a metadata object
* and its "structure" or the additional schema we impose on GVariants such
* as ensuring the "ay" checksum entries are of length 32. Another important
* one is checking for path traversal in dirtree objects.
*/
gboolean
_ostree_verify_metadata_object (OstreeObjectType objtype,
const char *expected_checksum,
GVariant *metadata,
GError **error)
{
g_assert (expected_checksum);
g_auto(OtChecksum) hasher = { 0, };
ot_checksum_init (&hasher);
ot_checksum_update (&hasher, g_variant_get_data (metadata), g_variant_get_size (metadata));
char actual_checksum[OSTREE_SHA256_STRING_LEN+1];
ot_checksum_get_hexdigest (&hasher, actual_checksum, sizeof (actual_checksum));
if (!_ostree_compare_object_checksum (objtype, expected_checksum, actual_checksum, error))
return FALSE;
/* Add the checksum + objtype prefix here */
{ const char *error_prefix = glnx_strjoina (expected_checksum, ".", ostree_object_type_to_string (objtype));
GLNX_AUTO_PREFIX_ERROR(error_prefix, error);
if (!_ostree_validate_structureof_metadata (objtype, metadata, error))
return FALSE;
}
return TRUE;
}
/** /**
* ostree_validate_structureof_commit: * ostree_validate_structureof_commit:
* @commit: A commit object, %OSTREE_OBJECT_TYPE_COMMIT * @commit: A commit object, %OSTREE_OBJECT_TYPE_COMMIT

View File

@ -714,7 +714,7 @@ initiate_next_curl_request (FetcherRequest *req,
curl_easy_setopt (req->easy, CURLOPT_URL, uri); curl_easy_setopt (req->easy, CURLOPT_URL, uri);
} }
curl_easy_setopt (req->easy, CURLOPT_USERAGENT, "ostree "); curl_easy_setopt (req->easy, CURLOPT_USERAGENT, OSTREE_FETCHER_USERAGENT_STRING);
if (self->extra_headers) if (self->extra_headers)
curl_easy_setopt (req->easy, CURLOPT_HTTPHEADER, self->extra_headers); curl_easy_setopt (req->easy, CURLOPT_HTTPHEADER, self->extra_headers);

View File

@ -479,7 +479,7 @@ ostree_fetcher_session_thread (gpointer data)
g_main_context_push_thread_default (mainctx); g_main_context_push_thread_default (mainctx);
/* We retain ownership of the SoupSession reference. */ /* We retain ownership of the SoupSession reference. */
closure->session = soup_session_async_new_with_options (SOUP_SESSION_USER_AGENT, "ostree ", closure->session = soup_session_async_new_with_options (SOUP_SESSION_USER_AGENT, OSTREE_FETCHER_USERAGENT_STRING,
SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE, SOUP_SESSION_SSL_USE_SYSTEM_CA_FILE, TRUE,
SOUP_SESSION_USE_THREAD_CONTEXT, TRUE, SOUP_SESSION_USE_THREAD_CONTEXT, TRUE,
SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_REQUESTER, SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_REQUESTER,

View File

@ -25,6 +25,12 @@
G_BEGIN_DECLS G_BEGIN_DECLS
/* We used to only send "ostree/" but now include the version
* https://github.com/ostreedev/ostree/issues/1405
* This came up in allowing Fedora infrastructure to work around a libcurl bug with HTTP2.
*/
#define OSTREE_FETCHER_USERAGENT_STRING (PACKAGE_NAME "/" PACKAGE_VERSION)
static inline gboolean static inline gboolean
_ostree_fetcher_tmpf_from_flags (OstreeFetcherRequestFlags flags, _ostree_fetcher_tmpf_from_flags (OstreeFetcherRequestFlags flags,
int dfd, int dfd,

View File

@ -535,6 +535,10 @@ checkout_one_file_at (OstreeRepo *repo,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
/* Validate this up front to prevent path traversal attacks */
if (!ot_util_filename_validate (destination_name, error))
return FALSE;
gboolean need_copy = TRUE; gboolean need_copy = TRUE;
gboolean is_bare_user_symlink = FALSE; gboolean is_bare_user_symlink = FALSE;
char loose_path_buf[_OSTREE_LOOSE_PATH_MAX]; char loose_path_buf[_OSTREE_LOOSE_PATH_MAX];
@ -897,6 +901,15 @@ checkout_tree_at_recurse (OstreeRepo *self,
while (g_variant_iter_loop (&viter, "(&s@ay@ay)", &dname, while (g_variant_iter_loop (&viter, "(&s@ay@ay)", &dname,
&subdirtree_csum_v, &subdirmeta_csum_v)) &subdirtree_csum_v, &subdirmeta_csum_v))
{ {
/* Validate this up front to prevent path traversal attacks. Note that
* we don't validate at the top of this function like we do for
* checkout_one_file_at() becuase I believe in some cases this function
* can be called *initially* with user-specified paths for the root
* directory.
*/
if (!ot_util_filename_validate (dname, error))
return FALSE;
const size_t origlen = selabel_path_buf ? selabel_path_buf->len : 0; const size_t origlen = selabel_path_buf ? selabel_path_buf->len : 0;
if (selabel_path_buf) if (selabel_path_buf)
{ {

View File

@ -2027,6 +2027,13 @@ ostree_repo_write_metadata (OstreeRepo *self,
if (!metadata_size_valid (objtype, g_variant_get_size (normalized), error)) if (!metadata_size_valid (objtype, g_variant_get_size (normalized), error))
return FALSE; return FALSE;
/* For untrusted objects, verify their structure here */
if (expected_checksum)
{
if (!_ostree_validate_structureof_metadata (objtype, object, error))
return FALSE;
}
g_autoptr(GBytes) vdata = g_variant_get_data_as_bytes (normalized); g_autoptr(GBytes) vdata = g_variant_get_data_as_bytes (normalized);
if (!write_metadata_object (self, objtype, expected_checksum, if (!write_metadata_object (self, objtype, expected_checksum,
vdata, out_csum, cancellable, error)) vdata, out_csum, cancellable, error))
@ -4101,6 +4108,7 @@ _ostree_repo_import_object (OstreeRepo *self,
&variant, error)) &variant, error))
return FALSE; return FALSE;
/* Note this one also now verifies structure in the !trusted case */
g_autofree guchar *real_csum = NULL; g_autofree guchar *real_csum = NULL;
if (!ostree_repo_write_metadata (self, objtype, if (!ostree_repo_write_metadata (self, objtype,
checksum, variant, checksum, variant,

View File

@ -27,12 +27,12 @@
#include "libglnx.h" #include "libglnx.h"
#include "ostree.h" #include "ostree.h"
#include "otutil.h" #include "otutil.h"
#include "ostree-repo-pull-private.h"
#ifdef HAVE_LIBCURL_OR_LIBSOUP #ifdef HAVE_LIBCURL_OR_LIBSOUP
#include "ostree-core-private.h" #include "ostree-core-private.h"
#include "ostree-repo-private.h" #include "ostree-repo-private.h"
#include "ostree-repo-pull-private.h"
#include "ostree-repo-static-delta-private.h" #include "ostree-repo-static-delta-private.h"
#include "ostree-metalink.h" #include "ostree-metalink.h"
#include "ostree-fetcher-util.h" #include "ostree-fetcher-util.h"
@ -736,6 +736,12 @@ scan_dirtree_object (OtPullData *pull_data,
g_variant_get_child (files_variant, i, "(&s@ay)", &filename, &csum); g_variant_get_child (files_variant, i, "(&s@ay)", &filename, &csum);
/* Note this is now obsoleted by the _ostree_validate_structureof_metadata()
* but I'm keeping this since:
* 1) It's cheap
* 2) We want to continue to do validation for objects written to disk
* before libostree's validation was strengthened.
*/
if (!ot_util_filename_validate (filename, error)) if (!ot_util_filename_validate (filename, error))
return FALSE; return FALSE;
@ -810,6 +816,7 @@ scan_dirtree_object (OtPullData *pull_data,
g_variant_get_child (dirs_variant, i, "(&s@ay@ay)", g_variant_get_child (dirs_variant, i, "(&s@ay@ay)",
&dirname, &tree_csum, &meta_csum); &dirname, &tree_csum, &meta_csum);
/* See comment above for files */
if (!ot_util_filename_validate (dirname, error)) if (!ot_util_filename_validate (dirname, error))
return FALSE; return FALSE;
@ -1222,24 +1229,20 @@ meta_fetch_on_complete (GObject *object,
FALSE, &metadata, error)) FALSE, &metadata, error))
goto out; goto out;
/* For commit objects, compute the hash and check the GPG signature before /* Compute checksum and verify structure now. Note this is a recent change
* writing to the repo, and also write the .commitpartial to say that * (Jan 2018) - we used to verify the checksum only when writing down
* we're still processing this commit. * below. But we want to do "structure" verification early on as well
* before the object is written even to the staging directory.
*/
if (!_ostree_verify_metadata_object (objtype, checksum, metadata, error))
goto out;
/* For commit objects, check the GPG signature before writing to the repo,
* and also write the .commitpartial to say that we're still processing
* this commit.
*/ */
if (objtype == OSTREE_OBJECT_TYPE_COMMIT) if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
{ {
/* Verify checksum */
OtChecksum hasher = { 0, };
ot_checksum_init (&hasher);
{ g_autoptr(GBytes) bytes = g_variant_get_data_as_bytes (metadata);
ot_checksum_update_bytes (&hasher, bytes);
}
char hexdigest[OSTREE_SHA256_STRING_LEN+1];
ot_checksum_get_hexdigest (&hasher, hexdigest, sizeof (hexdigest));
if (!_ostree_compare_object_checksum (objtype, checksum, hexdigest, error))
goto out;
/* Do GPG verification. `detached_data` may be NULL if no detached /* Do GPG verification. `detached_data` may be NULL if no detached
* metadata was found during pull; that's handled by * metadata was found during pull; that's handled by
* gpg_verify_unwritten_commit(). If we ever change the pull code to * gpg_verify_unwritten_commit(). If we ever change the pull code to
@ -1256,7 +1259,13 @@ meta_fetch_on_complete (GObject *object,
goto out; goto out;
} }
ostree_repo_write_metadata_async (pull_data->repo, objtype, checksum, metadata, /* Note that we now (Jan 2018) pass NULL for checksum, which means "don't
* verify checksum", since we just did it above. Related to this...now
* that we're doing all the verification here, one thing we could do later
* just `glnx_link_tmpfile_at()` into the repository, like the content
* fetch path does for trusted commits.
*/
ostree_repo_write_metadata_async (pull_data->repo, objtype, NULL, metadata,
pull_data->cancellable, pull_data->cancellable,
on_metadata_written, fetch_data); on_metadata_written, fetch_data);
pull_data->n_outstanding_metadata_write_requests++; pull_data->n_outstanding_metadata_write_requests++;

View File

@ -497,8 +497,13 @@ dispatch_open_splice_and_close (OstreeRepo *repo,
goto out; goto out;
} }
metadata = g_variant_new_from_data (ostree_metadata_variant_type (state->output_objtype), /* Unfortunately we need a copy because GVariant wants pointer-alignment
state->payload_data + offset, length, TRUE, NULL, NULL); * and we didn't guarantee that in static deltas. We can do so in the
* future.
*/
g_autoptr(GBytes) metadata_copy = g_bytes_new (state->payload_data + offset, length);
metadata = g_variant_new_from_bytes (ostree_metadata_variant_type (state->output_objtype),
metadata_copy, FALSE);
{ {
g_autofree guchar *actual_csum = NULL; g_autofree guchar *actual_csum = NULL;

View File

@ -3941,6 +3941,7 @@ ostree_repo_delete_object (OstreeRepo *self,
return TRUE; return TRUE;
} }
/* Thin wrapper for _ostree_verify_metadata_object() */
static gboolean static gboolean
fsck_metadata_object (OstreeRepo *self, fsck_metadata_object (OstreeRepo *self,
OstreeObjectType objtype, OstreeObjectType objtype,
@ -3956,39 +3957,7 @@ fsck_metadata_object (OstreeRepo *self,
cancellable, error)) cancellable, error))
return FALSE; return FALSE;
g_auto(OtChecksum) hasher = { 0, }; return _ostree_verify_metadata_object (objtype, sha256, metadata, error);
ot_checksum_init (&hasher);
ot_checksum_update (&hasher, g_variant_get_data (metadata), g_variant_get_size (metadata));
char actual_checksum[OSTREE_SHA256_STRING_LEN+1];
ot_checksum_get_hexdigest (&hasher, actual_checksum, sizeof (actual_checksum));
if (!_ostree_compare_object_checksum (objtype, sha256, actual_checksum, error))
return FALSE;
switch (objtype)
{
case OSTREE_OBJECT_TYPE_COMMIT:
if (!ostree_validate_structureof_commit (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_DIR_TREE:
if (!ostree_validate_structureof_dirtree (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_DIR_META:
if (!ostree_validate_structureof_dirmeta (metadata, error))
return FALSE;
break;
case OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT:
case OSTREE_OBJECT_TYPE_COMMIT_META:
/* TODO */
break;
case OSTREE_OBJECT_TYPE_FILE:
g_assert_not_reached ();
break;
}
return TRUE;
} }
static gboolean static gboolean

View File

@ -1700,21 +1700,29 @@ install_deployment_kernel (OstreeSysroot *sysroot,
g_autofree char * boot_relpath = g_strconcat ("/", bootcsumdir, "/", kernel_layout->kernel_namever, NULL); g_autofree char * boot_relpath = g_strconcat ("/", bootcsumdir, "/", kernel_layout->kernel_namever, NULL);
ostree_bootconfig_parser_set (bootconfig, "linux", boot_relpath); ostree_bootconfig_parser_set (bootconfig, "linux", boot_relpath);
val = ostree_bootconfig_parser_get (bootconfig, "options");
g_autoptr(OstreeKernelArgs) kargs = _ostree_kernel_args_from_string (val);
if (kernel_layout->initramfs_namever) if (kernel_layout->initramfs_namever)
{ {
g_autofree char * boot_relpath = g_strconcat ("/", bootcsumdir, "/", kernel_layout->initramfs_namever, NULL); g_autofree char * boot_relpath = g_strconcat ("/", bootcsumdir, "/", kernel_layout->initramfs_namever, NULL);
ostree_bootconfig_parser_set (bootconfig, "initrd", boot_relpath); ostree_bootconfig_parser_set (bootconfig, "initrd", boot_relpath);
} }
else
val = ostree_bootconfig_parser_get (bootconfig, "options"); {
g_autofree char *prepare_root_arg = NULL;
prepare_root_arg = g_strdup_printf ("init=/ostree/boot.%d/%s/%s/%d/usr/lib/ostree/ostree-prepare-root",
new_bootversion, osname, bootcsum,
ostree_deployment_get_bootserial (deployment));
_ostree_kernel_args_replace_take (kargs, g_steal_pointer (&prepare_root_arg));
}
/* Note this is parsed in ostree-impl-system-generator.c */ /* Note this is parsed in ostree-impl-system-generator.c */
g_autofree char *ostree_kernel_arg = g_strdup_printf ("ostree=/ostree/boot.%d/%s/%s/%d", g_autofree char *ostree_kernel_arg = g_strdup_printf ("ostree=/ostree/boot.%d/%s/%s/%d",
new_bootversion, osname, bootcsum, new_bootversion, osname, bootcsum,
ostree_deployment_get_bootserial (deployment)); ostree_deployment_get_bootserial (deployment));
g_autoptr(OstreeKernelArgs) kargs = _ostree_kernel_args_from_string (val); _ostree_kernel_args_replace_take (kargs, g_steal_pointer (&ostree_kernel_arg));
_ostree_kernel_args_replace_take (kargs, ostree_kernel_arg);
ostree_kernel_arg = NULL;
g_autofree char *options_key = _ostree_kernel_args_to_string (kargs); g_autofree char *options_key = _ostree_kernel_args_to_string (kargs);
ostree_bootconfig_parser_set (bootconfig, "options", options_key); ostree_bootconfig_parser_set (bootconfig, "options", options_key);

View File

@ -34,7 +34,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_YEAR_VERSION (2017) #define OSTREE_YEAR_VERSION (2018)
/** /**
* OSTREE_RELEASE_VERSION: * OSTREE_RELEASE_VERSION:
@ -43,7 +43,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_RELEASE_VERSION (15) #define OSTREE_RELEASE_VERSION (1)
/** /**
* OSTREE_VERSION * OSTREE_VERSION
@ -52,7 +52,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_VERSION (2017.15) #define OSTREE_VERSION (2018.1)
/** /**
* OSTREE_VERSION_S: * OSTREE_VERSION_S:
@ -62,7 +62,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_VERSION_S "2017.15" #define OSTREE_VERSION_S "2018.1"
#define OSTREE_ENCODE_VERSION(year,release) \ #define OSTREE_ENCODE_VERSION(year,release) \
((year) << 16 | (release)) ((year) << 16 | (release))

View File

@ -40,6 +40,7 @@ static char **opt_kernel_argv_append;
static gboolean opt_kernel_proc_cmdline; static gboolean opt_kernel_proc_cmdline;
static char *opt_osname; static char *opt_osname;
static char *opt_origin_path; static char *opt_origin_path;
static gboolean opt_kernel_arg_none;
/* ATTENTION: /* ATTENTION:
* Please remember to update the bash-completion script (bash/ostree) and * Please remember to update the bash-completion script (bash/ostree) and
@ -56,6 +57,7 @@ static GOptionEntry options[] = {
{ "karg-proc-cmdline", 0, 0, G_OPTION_ARG_NONE, &opt_kernel_proc_cmdline, "Import current /proc/cmdline", NULL }, { "karg-proc-cmdline", 0, 0, G_OPTION_ARG_NONE, &opt_kernel_proc_cmdline, "Import current /proc/cmdline", NULL },
{ "karg", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_kernel_argv, "Set kernel argument, like root=/dev/sda1; this overrides any earlier argument with the same name", "NAME=VALUE" }, { "karg", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_kernel_argv, "Set kernel argument, like root=/dev/sda1; this overrides any earlier argument with the same name", "NAME=VALUE" },
{ "karg-append", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_kernel_argv_append, "Append kernel argument; useful with e.g. console= that can be used multiple times", "NAME=VALUE" }, { "karg-append", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_kernel_argv_append, "Append kernel argument; useful with e.g. console= that can be used multiple times", "NAME=VALUE" },
{ "karg-none", 0, 0, G_OPTION_ARG_NONE, &opt_kernel_arg_none, "Do not import kernel arguments", NULL },
{ NULL } { NULL }
}; };
@ -79,6 +81,12 @@ ot_admin_builtin_deploy (int argc, char **argv, OstreeCommandInvocation *invocat
return FALSE; return FALSE;
} }
if (opt_kernel_proc_cmdline && opt_kernel_arg_none)
{
ot_util_usage_error (context, "Can't specify both --karg-proc-cmdline and --karg-none", error);
return FALSE;
}
const char *refspec = argv[1]; const char *refspec = argv[1];
OstreeRepo *repo = ostree_sysroot_repo (sysroot); OstreeRepo *repo = ostree_sysroot_repo (sysroot);
@ -130,7 +138,7 @@ ot_admin_builtin_deploy (int argc, char **argv, OstreeCommandInvocation *invocat
if (!_ostree_kernel_args_append_proc_cmdline (kargs, cancellable, error)) if (!_ostree_kernel_args_append_proc_cmdline (kargs, cancellable, error))
return FALSE; return FALSE;
} }
else if (merge_deployment) else if (merge_deployment && !opt_kernel_arg_none)
{ {
OstreeBootconfigParser *bootconfig = ostree_deployment_get_bootconfig (merge_deployment); OstreeBootconfigParser *bootconfig = ostree_deployment_get_bootconfig (merge_deployment);
g_auto(GStrv) previous_args = g_strsplit (ostree_bootconfig_parser_get (bootconfig, "options"), " ", -1); g_auto(GStrv) previous_args = g_strsplit (ostree_bootconfig_parser_get (bootconfig, "options"), " ", -1);

View File

@ -45,6 +45,7 @@ static char *opt_skiplist_file;
static char **opt_metadata_strings; static char **opt_metadata_strings;
static char **opt_metadata_variants; static char **opt_metadata_variants;
static char **opt_detached_metadata_strings; static char **opt_detached_metadata_strings;
static char **opt_metadata_keep;
static gboolean opt_link_checkout_speedup; static gboolean opt_link_checkout_speedup;
static gboolean opt_skip_if_unchanged; static gboolean opt_skip_if_unchanged;
static gboolean opt_tar_autocreate_parents; static gboolean opt_tar_autocreate_parents;
@ -96,6 +97,7 @@ static GOptionEntry options[] = {
{ "tree", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_trees, "Overlay the given argument as a tree", "dir=PATH or tar=TARFILE or ref=COMMIT" }, { "tree", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_trees, "Overlay the given argument as a tree", "dir=PATH or tar=TARFILE or ref=COMMIT" },
{ "add-metadata-string", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_metadata_strings, "Add a key/value pair to metadata", "KEY=VALUE" }, { "add-metadata-string", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_metadata_strings, "Add a key/value pair to metadata", "KEY=VALUE" },
{ "add-metadata", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_metadata_variants, "Add a key/value pair to metadata, where the KEY is a string, an VALUE is g_variant_parse() formatted", "KEY=VALUE" }, { "add-metadata", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_metadata_variants, "Add a key/value pair to metadata, where the KEY is a string, an VALUE is g_variant_parse() formatted", "KEY=VALUE" },
{ "keep-metadata", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_metadata_keep, "Keep metadata KEY and its associated VALUE from parent", "KEY" },
{ "add-detached-metadata-string", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_detached_metadata_strings, "Add a key/value pair to detached metadata", "KEY=VALUE" }, { "add-detached-metadata-string", 0, 0, G_OPTION_ARG_STRING_ARRAY, &opt_detached_metadata_strings, "Add a key/value pair to detached metadata", "KEY=VALUE" },
{ "owner-uid", 0, 0, G_OPTION_ARG_INT, &opt_owner_uid, "Set file ownership user id", "UID" }, { "owner-uid", 0, 0, G_OPTION_ARG_INT, &opt_owner_uid, "Set file ownership user id", "UID" },
{ "owner-gid", 0, 0, G_OPTION_ARG_INT, &opt_owner_gid, "Set file ownership group id", "GID" }, { "owner-gid", 0, 0, G_OPTION_ARG_INT, &opt_owner_gid, "Set file ownership group id", "GID" },
@ -466,7 +468,47 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio
goto out; goto out;
} }
if (opt_metadata_strings || opt_metadata_variants) if (!(opt_branch || opt_orphan))
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"A branch must be specified with --branch, or use --orphan");
goto out;
}
if (opt_parent)
{
if (g_str_equal (opt_parent, "none"))
parent = NULL;
else
{
if (!ostree_validate_checksum_string (opt_parent, error))
goto out;
parent = g_strdup (opt_parent);
}
}
else if (!opt_orphan)
{
if (!ostree_repo_resolve_rev (repo, opt_branch, TRUE, &parent, error))
{
if (g_error_matches (*error, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY))
{
/* A folder exists with the specified ref name,
* which is handled by _ostree_repo_write_ref */
g_clear_error (error);
}
else goto out;
}
}
if (!parent && opt_metadata_keep)
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Either --branch or --parent must be specified when using "
"--keep-metadata");
goto out;
}
if (opt_metadata_strings || opt_metadata_variants || opt_metadata_keep)
{ {
g_autoptr(GVariantBuilder) builder = g_autoptr(GVariantBuilder) builder =
g_variant_builder_new (G_VARIANT_TYPE ("a{sv}")); g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
@ -479,6 +521,31 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio
!parse_keyvalue_strings (builder, opt_metadata_variants, TRUE, error)) !parse_keyvalue_strings (builder, opt_metadata_variants, TRUE, error))
goto out; goto out;
if (opt_metadata_keep)
{
g_assert (parent);
g_autoptr(GVariant) parent_commit = NULL;
if (!ostree_repo_load_commit (repo, parent, &parent_commit, NULL, error))
goto out;
g_auto(GVariantDict) dict;
g_variant_dict_init (&dict, g_variant_get_child_value (parent_commit, 0));
for (char **keyp = opt_metadata_keep; keyp && *keyp; keyp++)
{
const char *key = *keyp;
g_autoptr(GVariant) val = g_variant_dict_lookup_value (&dict, key, NULL);
if (!val)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Missing metadata key '%s' from commit '%s'", key, parent);
goto out;
}
g_variant_builder_add (builder, "{sv}", key, val);
}
}
metadata = g_variant_ref_sink (g_variant_builder_end (builder)); metadata = g_variant_ref_sink (g_variant_builder_end (builder));
} }
@ -493,13 +560,6 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio
detached_metadata = g_variant_ref_sink (g_variant_builder_end (builder)); detached_metadata = g_variant_ref_sink (g_variant_builder_end (builder));
} }
if (!(opt_branch || opt_orphan))
{
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"A branch must be specified with --branch, or use --orphan");
goto out;
}
if (opt_no_xattrs) if (opt_no_xattrs)
flags |= OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS; flags |= OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS;
if (opt_consume) if (opt_consume)
@ -543,31 +603,6 @@ ostree_builtin_commit (int argc, char **argv, OstreeCommandInvocation *invocatio
} }
} }
if (opt_parent)
{
if (g_str_equal (opt_parent, "none"))
parent = NULL;
else
{
if (!ostree_validate_checksum_string (opt_parent, error))
goto out;
parent = g_strdup (opt_parent);
}
}
else if (!opt_orphan)
{
if (!ostree_repo_resolve_rev (repo, opt_branch, TRUE, &parent, error))
{
if (g_error_matches (*error, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY))
{
/* A folder exists with the specified ref name,
* which is handled by _ostree_repo_write_ref */
g_clear_error (error);
}
else goto out;
}
}
if (opt_editor) if (opt_editor)
{ {
if (!commit_editor (repo, opt_branch, &opt_subject, &commit_body, cancellable, error)) if (!commit_editor (repo, opt_branch, &opt_subject, &commit_body, cancellable, error))

View File

@ -30,12 +30,14 @@
#include "ostree-remote-private.h" #include "ostree-remote-private.h"
static gchar *opt_cache_dir = NULL; static gchar *opt_cache_dir = NULL;
static gchar *opt_finders = NULL;
static gboolean opt_disable_fsync = FALSE; static gboolean opt_disable_fsync = FALSE;
static gboolean opt_pull = FALSE; static gboolean opt_pull = FALSE;
static GOptionEntry options[] = static GOptionEntry options[] =
{ {
{ "cache-dir", 0, 0, G_OPTION_ARG_FILENAME, &opt_cache_dir, "Use custom cache dir", NULL }, { "cache-dir", 0, 0, G_OPTION_ARG_FILENAME, &opt_cache_dir, "Use custom cache dir", NULL },
{ "finders", 0, 0, G_OPTION_ARG_STRING, &opt_finders, "Use the specified comma separated list of finders (e.g. config,lan,mount)", "FINDERS" },
{ "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL }, { "disable-fsync", 0, 0, G_OPTION_ARG_NONE, &opt_disable_fsync, "Do not invoke fsync()", NULL },
{ "pull", 0, 0, G_OPTION_ARG_NONE, &opt_pull, "Pull the updates after finding them", NULL }, { "pull", 0, 0, G_OPTION_ARG_NONE, &opt_pull, "Pull the updates after finding them", NULL },
{ NULL } { NULL }
@ -116,6 +118,52 @@ collection_ref_free0 (OstreeCollectionRef *ref)
ostree_collection_ref_free (ref); ostree_collection_ref_free (ref);
} }
static gboolean
validate_finders_list (char **finders,
GOptionContext *context,
GError **error)
{
typedef struct {
gchar *finder_name;
gboolean already_used;
} Finder;
Finder valid_finders[] = {
{.finder_name = "config", .already_used = FALSE},
{.finder_name = "lan", .already_used = FALSE},
{.finder_name = "mount", .already_used = FALSE}
};
if (finders == NULL || *finders == NULL)
{
ot_util_usage_error (context, "List of finders in --finders option must not be empty", error);
return FALSE;
}
for (char **iter = finders; iter && *iter; iter++)
{
gboolean is_valid_finder = FALSE;
for (int i = 0; i < 3; i++)
{
if (valid_finders[i].already_used == TRUE)
continue;
if (g_strcmp0 (*iter, valid_finders[i].finder_name) == 0)
{
is_valid_finder = TRUE;
valid_finders[i].already_used = TRUE;
}
}
if (!is_valid_finder)
{
g_autofree gchar *error_msg = NULL;
error_msg = g_strdup_printf ("Unknown or duplicate finder type given in --finders option: %s", *iter);
ot_util_usage_error (context, error_msg, error);
return FALSE;
}
}
return TRUE;
}
/* TODO: Add a man page. */ /* TODO: Add a man page. */
gboolean gboolean
ostree_builtin_find_remotes (int argc, ostree_builtin_find_remotes (int argc,
@ -127,12 +175,17 @@ ostree_builtin_find_remotes (int argc,
g_autoptr(GOptionContext) context = NULL; g_autoptr(GOptionContext) context = NULL;
g_autoptr(OstreeRepo) repo = NULL; g_autoptr(OstreeRepo) repo = NULL;
g_autoptr(GPtrArray) refs = NULL; /* (element-type OstreeCollectionRef) */ g_autoptr(GPtrArray) refs = NULL; /* (element-type OstreeCollectionRef) */
g_autoptr(GPtrArray) finders = NULL; /* (element-type OstreeRepoFinder) */
g_autoptr(OstreeRepoFinder) finder_config = NULL;
g_autoptr(OstreeRepoFinder) finder_mount = NULL;
g_autoptr(OstreeRepoFinder) finder_avahi = NULL;
g_autoptr(OstreeAsyncProgress) progress = NULL; g_autoptr(OstreeAsyncProgress) progress = NULL;
gsize i; gsize i;
g_autoptr(GAsyncResult) find_result = NULL, pull_result = NULL; g_autoptr(GAsyncResult) find_result = NULL, pull_result = NULL;
g_auto(OstreeRepoFinderResultv) results = NULL; g_auto(OstreeRepoFinderResultv) results = NULL;
g_auto(GLnxConsoleRef) console = { 0, }; g_auto(GLnxConsoleRef) console = { 0, };
g_autoptr(GHashTable) refs_found = NULL; /* set (element-type OstreeCollectionRef) */ g_autoptr(GHashTable) refs_found = NULL; /* set (element-type OstreeCollectionRef) */
g_auto(GStrv) finders_strings = NULL;
context = g_option_context_new ("COLLECTION-ID REF [COLLECTION-ID REF...]"); context = g_option_context_new ("COLLECTION-ID REF [COLLECTION-ID REF...]");
@ -176,18 +229,65 @@ ostree_builtin_find_remotes (int argc,
g_ptr_array_add (refs, NULL); g_ptr_array_add (refs, NULL);
/* Build the array of OstreeRepoFinder instances */
if (opt_finders != NULL)
{
g_auto(GStrv) finders_strings = NULL;
finders_strings = g_strsplit (opt_finders, ",", 0);
if (!validate_finders_list (finders_strings, context, error))
return FALSE;
finders = g_ptr_array_new ();
for (char **iter =finders_strings; iter && *iter; iter++)
{
if (g_strcmp0 (*iter, "config") == 0)
{
finder_config = OSTREE_REPO_FINDER (ostree_repo_finder_config_new ());
g_ptr_array_add (finders, finder_config);
}
else if (g_strcmp0 (*iter, "mount") == 0)
{
finder_mount = OSTREE_REPO_FINDER (ostree_repo_finder_mount_new (NULL));
g_ptr_array_add (finders, finder_mount);
}
else if (g_strcmp0 (*iter, "lan") == 0)
{
#ifdef HAVE_AVAHI
GMainContext *main_context = g_main_context_get_thread_default ();
g_autoptr(GError) local_error = NULL;
finder_avahi = OSTREE_REPO_FINDER (ostree_repo_finder_avahi_new (main_context));
ostree_repo_finder_avahi_start (OSTREE_REPO_FINDER_AVAHI (finder_avahi), &local_error);
if (local_error != NULL)
{
g_warning ("Avahi finder failed; removing it: %s", local_error->message);
g_clear_object (&finder_avahi);
}
else
g_ptr_array_add (finders, finder_avahi);
#else
ot_util_usage_error (context, "LAN repo finder requested but ostree was compiled without Avahi support", error);
return FALSE;
#endif /* HAVE_AVAHI */
}
else
g_assert_not_reached ();
}
g_ptr_array_add (finders, NULL);
}
/* Run the operation. */ /* Run the operation. */
glnx_console_lock (&console); glnx_console_lock (&console);
if (console.is_tty) if (console.is_tty)
progress = ostree_async_progress_new_and_connect (ostree_repo_pull_default_console_progress_changed, &console); progress = ostree_async_progress_new_and_connect (ostree_repo_pull_default_console_progress_changed, &console);
/* FIXME: Eventually some command line options for customising the finders
* list would be good. */
ostree_repo_find_remotes_async (repo, ostree_repo_find_remotes_async (repo,
(const OstreeCollectionRef * const *) refs->pdata, (const OstreeCollectionRef * const *) refs->pdata,
NULL /* no options */, NULL /* no options */,
NULL /* default finders */, finders != NULL ? (OstreeRepoFinder **) finders->pdata : NULL,
progress, cancellable, progress, cancellable,
get_result_cb, &find_result); get_result_cb, &find_result);

View File

@ -41,7 +41,7 @@ static OstreeCommand remote_subcommands[] = {
{ "gpg-import", OSTREE_BUILTIN_FLAG_NONE, { "gpg-import", OSTREE_BUILTIN_FLAG_NONE,
ot_remote_builtin_gpg_import, ot_remote_builtin_gpg_import,
"Import GPG keys" }, "Import GPG keys" },
#ifdef HAVE_LIBSOUP #ifdef HAVE_LIBCURL_OR_LIBSOUP
{ "add-cookie", OSTREE_BUILTIN_FLAG_NONE, { "add-cookie", OSTREE_BUILTIN_FLAG_NONE,
ot_remote_builtin_add_cookie, ot_remote_builtin_add_cookie,
"Add a cookie to remote" }, "Add a cookie to remote" },

View File

@ -31,7 +31,7 @@ BUILTINPROTO(add);
BUILTINPROTO(delete); BUILTINPROTO(delete);
BUILTINPROTO(gpg_import); BUILTINPROTO(gpg_import);
BUILTINPROTO(list); BUILTINPROTO(list);
#ifdef HAVE_LIBSOUP #ifdef HAVE_LIBCURL_OR_LIBSOUP
BUILTINPROTO(add_cookie); BUILTINPROTO(add_cookie);
BUILTINPROTO(list_cookies); BUILTINPROTO(list_cookies);
BUILTINPROTO(delete_cookie); BUILTINPROTO(delete_cookie);

View File

@ -19,5 +19,7 @@ bin_PROGRAMS += rofiles-fuse
rofiles_fuse_SOURCES = src/rofiles-fuse/main.c rofiles_fuse_SOURCES = src/rofiles-fuse/main.c
rofiles_fuse_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(BUILDOPT_FUSE_CFLAGS) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I$(srcdir)/libglnx $(NULL) rofiles_fuse_CFLAGS = $(AM_CFLAGS) -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $(BUILDOPT_FUSE_CFLAGS) \
rofiles_fuse_LDADD = libglnx.la $(BUILDOPT_FUSE_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GIO_UNIX_CFLAGS) -I $(srcdir)/src/libostree -I $(builddir)/src/libostree \
-I$(srcdir)/libglnx
rofiles_fuse_LDADD = libglnx.la $(BUILDOPT_FUSE_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS) libostree-1.la

View File

@ -35,9 +35,14 @@
#include <glib.h> #include <glib.h>
#include "libglnx.h" #include "libglnx.h"
#include "ostree.h"
// Global to store our read-write path // Global to store our read-write path
static int basefd = -1; static int basefd = -1;
/* Whether or not to automatically "copyup" (in overlayfs terms).
* What we're really doing is breaking hardlinks.
*/
static gboolean opt_copyup;
static inline const char * static inline const char *
ENSURE_RELPATH (const char *path) ENSURE_RELPATH (const char *path)
@ -200,52 +205,103 @@ callback_link (const char *from, const char *to)
/* Check whether @stbuf refers to a hardlinked regfile or symlink, and if so /* Check whether @stbuf refers to a hardlinked regfile or symlink, and if so
* return -EROFS. Otherwise return 0. * return -EROFS. Otherwise return 0.
*/ */
static int static gboolean
can_write_stbuf (struct stat *stbuf) can_write_stbuf (const struct stat *stbuf)
{ {
/* If it's not a regular file or symlink, ostree won't hardlink it, so allow /* If it's not a regular file or symlink, ostree won't hardlink it, so allow
* writes - it might be a FIFO or device that somehow * writes - it might be a FIFO or device that somehow
* ended up underneath our mount. * ended up underneath our mount.
*/ */
if (!(S_ISREG (stbuf->st_mode) || S_ISLNK (stbuf->st_mode))) if (!(S_ISREG (stbuf->st_mode) || S_ISLNK (stbuf->st_mode)))
return 0; return TRUE;
/* If the object isn't hardlinked, it's OK to write */ /* If the object isn't hardlinked, it's OK to write */
if (stbuf->st_nlink <= 1) if (stbuf->st_nlink <= 1)
return 0; return TRUE;
/* Otherwise, it's a hardlinked file or symlink; it must be /* Otherwise, it's a hardlinked file or symlink; it must be
* immutable. * immutable.
*/ */
return -EROFS; return FALSE;
} }
/* Check whether @path refers to a hardlinked regfile or symlink, and if so
* return -EROFS. Otherwise return 0.
*/
static int static int
can_write (const char *path) gioerror_to_errno (GIOErrorEnum e)
{ {
struct stat stbuf; /* It's obviously crappy to have to do this but
if (fstatat (basefd, path, &stbuf, AT_SYMLINK_NOFOLLOW) == -1) * we also don't want to try to have "raw errno" versions
* of everything down in ostree_break_hardlink() so...
* let's just reverse map a few ones I think are going to be common.
*/
switch (e)
{ {
if (errno == ENOENT) case G_IO_ERROR_NOT_FOUND:
return 0; return ENOENT;
else case G_IO_ERROR_IS_DIRECTORY:
return -errno; return EISDIR;
case G_IO_ERROR_PERMISSION_DENIED:
return EPERM;
case G_IO_ERROR_NO_SPACE:
return ENOSPC;
default:
return EIO;
} }
return can_write_stbuf (&stbuf);
} }
#define VERIFY_WRITE(path) do { \ static int
int r = can_write (path); \ verify_write_or_copyup (const char *path, const struct stat *stbuf,
if (r != 0) \ gboolean *out_did_copyup)
return r; \ {
struct stat stbuf_local;
if (out_did_copyup)
*out_did_copyup = FALSE;
/* If a stbuf wasn't provided, gather it now */
if (!stbuf)
{
if (fstatat (basefd, path, &stbuf_local, AT_SYMLINK_NOFOLLOW) == -1)
{
if (errno == ENOENT)
return 0;
else
return -errno;
}
stbuf = &stbuf_local;
}
/* Verify writability, if that fails, perform copy-up if enabled */
if (!can_write_stbuf (stbuf))
{
if (opt_copyup)
{
g_autoptr(GError) tmp_error = NULL;
if (!ostree_break_hardlink (basefd, path, FALSE, NULL, &tmp_error))
return -gioerror_to_errno ((GIOErrorEnum)tmp_error->code);
if (out_did_copyup)
*out_did_copyup = TRUE;
}
else
return -EROFS;
}
return 0;
}
/* Given a path (which is absolute), convert it
* to a relative path (even for the caller) and
* perform either write verification or copy-up.
*/
#define PATH_WRITE_ENTRYPOINT(path) do { \
path = ENSURE_RELPATH (path); \
int r = verify_write_or_copyup (path, NULL, NULL); \
if (r != 0) \
return r; \
} while (0) } while (0)
static int static int
callback_chmod (const char *path, mode_t mode) callback_chmod (const char *path, mode_t mode)
{ {
path = ENSURE_RELPATH (path); PATH_WRITE_ENTRYPOINT (path);
VERIFY_WRITE(path);
/* Note we can't use AT_SYMLINK_NOFOLLOW yet; /* Note we can't use AT_SYMLINK_NOFOLLOW yet;
* https://marc.info/?l=linux-kernel&m=148830147803162&w=2 * https://marc.info/?l=linux-kernel&m=148830147803162&w=2
* https://marc.info/?l=linux-fsdevel&m=149193779929561&w=2 * https://marc.info/?l=linux-fsdevel&m=149193779929561&w=2
@ -258,8 +314,8 @@ callback_chmod (const char *path, mode_t mode)
static int static int
callback_chown (const char *path, uid_t uid, gid_t gid) callback_chown (const char *path, uid_t uid, gid_t gid)
{ {
path = ENSURE_RELPATH (path); PATH_WRITE_ENTRYPOINT (path);
VERIFY_WRITE(path);
if (fchownat (basefd, path, uid, gid, AT_SYMLINK_NOFOLLOW) != 0) if (fchownat (basefd, path, uid, gid, AT_SYMLINK_NOFOLLOW) != 0)
return -errno; return -errno;
return 0; return 0;
@ -268,12 +324,9 @@ callback_chown (const char *path, uid_t uid, gid_t gid)
static int static int
callback_truncate (const char *path, off_t size) callback_truncate (const char *path, off_t size)
{ {
glnx_autofd int fd = -1; PATH_WRITE_ENTRYPOINT (path);
path = ENSURE_RELPATH (path); glnx_autofd int fd = openat (basefd, path, O_NOFOLLOW|O_WRONLY);
VERIFY_WRITE(path);
fd = openat (basefd, path, O_NOFOLLOW|O_WRONLY);
if (fd == -1) if (fd == -1)
return -errno; return -errno;
@ -286,6 +339,9 @@ callback_truncate (const char *path, off_t size)
static int static int
callback_utimens (const char *path, const struct timespec tv[2]) callback_utimens (const char *path, const struct timespec tv[2])
{ {
/* This one isn't write-verified, we support changing times
* even for hardlinked files.
*/
path = ENSURE_RELPATH (path); path = ENSURE_RELPATH (path);
if (utimensat (basefd, path, tv, AT_SYMLINK_NOFOLLOW) == -1) if (utimensat (basefd, path, tv, AT_SYMLINK_NOFOLLOW) == -1)
@ -324,20 +380,39 @@ do_open (const char *path, mode_t mode, struct fuse_file_info *finfo)
return -errno; return -errno;
} }
int r = can_write_stbuf (&stbuf); gboolean did_copyup;
int r = verify_write_or_copyup (path, &stbuf, &did_copyup);
if (r != 0) if (r != 0)
{ {
(void) close (fd); (void) close (fd);
return r; return r;
} }
/* Handle O_TRUNC here only after verifying hardlink state */ /* In the copyup case, we need to re-open */
if (finfo->flags & O_TRUNC) if (did_copyup)
{ {
if (ftruncate (fd, 0) == -1) (void) close (fd);
/* Note that unlike the initial open, we will pass through
* O_TRUNC. More ideally in this copyup case we'd avoid copying
* the whole file in the first place, but eh. It's not like we're
* high performance anyways.
*/
fd = openat (basefd, path, finfo->flags & ~(O_EXCL|O_CREAT), mode);
if (fd == -1)
return -errno;
}
else
{
/* In the non-copyup case we handle O_TRUNC here, after we've verified
* the hardlink state above with verify_write_or_copyup().
*/
if (finfo->flags & O_TRUNC)
{ {
(void) close (fd); if (ftruncate (fd, 0) == -1)
return -errno; {
(void) close (fd);
return -errno;
}
} }
} }
} }
@ -521,6 +596,7 @@ struct fuse_operations callback_oper = {
enum { enum {
KEY_HELP, KEY_HELP,
KEY_VERSION, KEY_VERSION,
KEY_COPYUP,
}; };
static void static void
@ -565,6 +641,9 @@ rofs_parse_opt (void *data, const char *arg, int key,
case KEY_HELP: case KEY_HELP:
usage (outargs->argv[0]); usage (outargs->argv[0]);
exit (EXIT_SUCCESS); exit (EXIT_SUCCESS);
case KEY_COPYUP:
opt_copyup = TRUE;
return 0;
default: default:
fprintf (stderr, "see `%s -h' for usage\n", outargs->argv[0]); fprintf (stderr, "see `%s -h' for usage\n", outargs->argv[0]);
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
@ -577,6 +656,7 @@ static struct fuse_opt rofs_opts[] = {
FUSE_OPT_KEY ("--help", KEY_HELP), FUSE_OPT_KEY ("--help", KEY_HELP),
FUSE_OPT_KEY ("-V", KEY_VERSION), FUSE_OPT_KEY ("-V", KEY_VERSION),
FUSE_OPT_KEY ("--version", KEY_VERSION), FUSE_OPT_KEY ("--version", KEY_VERSION),
FUSE_OPT_KEY ("--copyup", KEY_COPYUP),
FUSE_OPT_END FUSE_OPT_END
}; };

View File

@ -102,10 +102,16 @@ main(int argc, char *argv[])
struct stat stbuf; struct stat stbuf;
int we_mounted_proc = 0; int we_mounted_proc = 0;
if (argc < 2) if (getpid() == 1)
root_arg = "/"; {
root_arg = "/";
}
else else
root_arg = argv[1]; {
if (argc < 2)
err (EXIT_FAILURE, "usage: ostree-prepare-root SYSROOT");
root_arg = argv[1];
}
if (stat ("/proc/cmdline", &stbuf) < 0) if (stat ("/proc/cmdline", &stbuf) < 0)
{ {

View File

@ -19,7 +19,7 @@
set -euo pipefail set -euo pipefail
echo "1..$((78 + ${extra_basic_tests:-0}))" echo "1..$((79 + ${extra_basic_tests:-0}))"
CHECKOUT_U_ARG="" CHECKOUT_U_ARG=""
CHECKOUT_H_ARGS="-H" CHECKOUT_H_ARGS="-H"
@ -759,14 +759,38 @@ $OSTREE show --print-metadata-key=FOO test2 > test2-meta
assert_file_has_content test2-meta "BAR" assert_file_has_content test2-meta "BAR"
$OSTREE show --print-metadata-key=KITTENS test2 > test2-meta $OSTREE show --print-metadata-key=KITTENS test2 > test2-meta
assert_file_has_content test2-meta "CUTE" assert_file_has_content test2-meta "CUTE"
$OSTREE show --print-metadata-key=SOMENUM test2 > test2-meta $OSTREE show --print-metadata-key=SOMENUM test2 > test2-meta
assert_file_has_content test2-meta "uint64 3026418949592973312" case "$("${test_builddir}/get-byte-order")" in
(4321)
assert_file_has_content test2-meta "uint64 42"
;;
(1234)
assert_file_has_content test2-meta "uint64 3026418949592973312"
;;
(*)
fatal "neither little-endian nor big-endian?"
;;
esac
$OSTREE show -B --print-metadata-key=SOMENUM test2 > test2-meta $OSTREE show -B --print-metadata-key=SOMENUM test2 > test2-meta
assert_file_has_content test2-meta "uint64 42" assert_file_has_content test2-meta "uint64 42"
$OSTREE show --print-detached-metadata-key=SIGNATURE test2 > test2-meta $OSTREE show --print-detached-metadata-key=SIGNATURE test2 > test2-meta
assert_file_has_content test2-meta "HANCOCK" assert_file_has_content test2-meta "HANCOCK"
echo "ok metadata commit with strings" echo "ok metadata commit with strings"
$OSTREE commit ${COMMIT_ARGS} -b test2 --tree=ref=test2 \
--add-detached-metadata-string=SIGNATURE=HANCOCK \
--keep-metadata=KITTENS --keep-metadata=SOMENUM
if $OSTREE show --print-metadata-key=FOO test2; then
assert_not_reached "FOO was kept without explicit --keep-metadata?"
fi
$OSTREE show --print-metadata-key=KITTENS test2 > test2-meta
assert_file_has_content test2-meta "CUTE"
$OSTREE show -B --print-metadata-key=SOMENUM test2 > test2-meta
assert_file_has_content test2-meta "uint64 42"
echo "ok keep metadata from parent"
cd ${test_tmpdir} cd ${test_tmpdir}
$OSTREE show --print-metadata-key=ostree.ref-binding test2 > test2-ref-binding $OSTREE show --print-metadata-key=ostree.ref-binding test2 > test2-ref-binding
assert_file_has_content test2-ref-binding 'test2' assert_file_has_content test2-ref-binding 'test2'

12
tests/get-byte-order.c Normal file
View File

@ -0,0 +1,12 @@
/* Helper for OSTree tests: return host byte order */
#include "config.h"
#include <glib.h>
int
main (void)
{
g_print ("%d\n", G_BYTE_ORDER);
return 0;
}

View File

@ -112,9 +112,12 @@ assert_file_has_content () {
} }
assert_file_has_content_literal () { assert_file_has_content_literal () {
if ! grep -q -F -e "$2" "$1"; then fpath=$1; shift
_fatal_print_file "$1" "File '$1' doesn't match fixed string list '$2'" for s in "$@"; do
fi if ! grep -q -F -e "$s" "$fpath"; then
_fatal_print_file "$fpath" "File '$fpath' doesn't match fixed string list '$s'"
fi
done
} }
assert_file_has_mode () { assert_file_has_mode () {

View File

@ -1,7 +1,6 @@
#!/bin/sh #!/bin/sh
# To use a custrom script for generating grub.cfg, set the --with-grub2-mkconfig=no # The builtin grub.cfg generator.
# configure switch when configuring and building OSTree.
# #
# This script is called by ostree/src/libostree/ostree-bootloader-grub2.c whenever # This script is called by ostree/src/libostree/ostree-bootloader-grub2.c whenever
# boot loader configuration file needs to be updated. It can be used as a template # boot loader configuration file needs to be updated. It can be used as a template
@ -28,7 +27,7 @@ entries_path=$(dirname $new_grub2_cfg)/entries
read_config() read_config()
{ {
config_file=${entries_path}/${1} config_file=${1}
title="" title=""
initrd="" initrd=""
options="" options=""
@ -67,11 +66,13 @@ populate_menu()
else else
boot_prefix="${OSTREE_BOOT_PARTITION}" boot_prefix="${OSTREE_BOOT_PARTITION}"
fi fi
for config in $(ls ${entries_path}); do for config in $(ls $entries_path/*.conf); do
read_config ${config} read_config ${config}
menu="${menu}menuentry '${title}' {\n" menu="${menu}menuentry '${title}' {\n"
menu="${menu}\t linux ${boot_prefix}${linux} ${options}\n" menu="${menu}\t linux ${boot_prefix}${linux} ${options}\n"
menu="${menu}\t initrd ${boot_prefix}${initrd}\n" if [ -n "${initrd}" ] ; then
menu="${menu}\t initrd ${boot_prefix}${initrd}\n"
fi
menu="${menu}}\n\n" menu="${menu}}\n\n"
done done
# The printf command seems to be more reliable across shells for special character (\n, \t) evaluation # The printf command seems to be more reliable across shells for special character (\n, \t) evaluation

Binary file not shown.

View File

@ -52,7 +52,7 @@ function verify_initial_contents() {
assert_file_has_content baz/cow '^moo$' assert_file_has_content baz/cow '^moo$'
} }
echo "1..33" echo "1..34"
# Try both syntaxes # Try both syntaxes
repo_init --no-gpg-verify repo_init --no-gpg-verify
@ -217,6 +217,24 @@ else
echo "ok corruption (skipped)" echo "ok corruption (skipped)"
fi fi
cd ${test_tmpdir}/ostree-srv
tar xf ${test_srcdir}/ostree-path-traverse.tar.gz
cd ${test_tmpdir}
rm corruptrepo -rf
ostree_repo_init corruptrepo --mode=archive
${CMD_PREFIX} ostree --repo=corruptrepo remote add --set=gpg-verify=false pathtraverse $(cat httpd-address)/ostree/ostree-path-traverse/repo
if ${CMD_PREFIX} ostree --repo=corruptrepo pull pathtraverse pathtraverse-test 2>err.txt; then
fatal "Pulled a repo with path traversal in dirtree"
fi
assert_file_has_content_literal err.txt 'ae9a5d2701a02740aa2ee317ba53b13e3efb0f29609cd4896e1bafeee4caddb5.dirtree: Invalid / in filename ../afile'
# And verify we didn't write the object into the staging directory even
find corruptrepo/tmp -name '9a5d2701a02740aa2ee317ba53b13e3efb0f29609cd4896e1bafeee4caddb5.dirtree' >find.txt
assert_not_file_has_content find.txt '9a5d2701a02740aa2ee317ba53b13e3efb0f29609cd4896e1bafeee4caddb5'
rm corruptrepo -rf
echo "ok path traversal checked on pull"
cd ${test_tmpdir} cd ${test_tmpdir}
rm mirrorrepo/refs/remotes/* -rf rm mirrorrepo/refs/remotes/* -rf
${CMD_PREFIX} ostree --repo=mirrorrepo prune --refs-only ${CMD_PREFIX} ostree --repo=mirrorrepo prune --refs-only

View File

@ -104,18 +104,20 @@ cd ${test_tmpdir}
rm -rf test2-checkout rm -rf test2-checkout
$OSTREE checkout -H -U test2 test2-checkout $OSTREE checkout -H -U test2 test2-checkout
# With --link-checkout-speedup, specifying --owner-uid should "win" by default. # With --link-checkout-speedup, specifying --owner-uid should "win" by default.
myid=$(id -u) myuid=$(id -u)
newid=$((${myid} + 1)) mygid=$(id -g)
$OSTREE commit ${COMMIT_ARGS} --owner-uid ${newid} --owner-gid ${newid} \ newuid=$((${myuid} + 1))
newgid=$((${mygid} + 1))
$OSTREE commit ${COMMIT_ARGS} --owner-uid ${newuid} --owner-gid ${newgid} \
--link-checkout-speedup -b test2-linkcheckout-test --tree=dir=test2-checkout --link-checkout-speedup -b test2-linkcheckout-test --tree=dir=test2-checkout
$OSTREE ls test2-linkcheckout-test /baz/cow > ls.txt $OSTREE ls test2-linkcheckout-test /baz/cow > ls.txt
assert_file_has_content ls.txt "^-006.. ${newid} ${newid} .*/baz/cow" assert_file_has_content ls.txt "^-006.. ${newuid} ${newgid} .*/baz/cow"
# But --devino-canonical should override that # But --devino-canonical should override that
$OSTREE commit ${COMMIT_ARGS} --owner-uid ${newid} --owner-gid ${newid} \ $OSTREE commit ${COMMIT_ARGS} --owner-uid ${newuid} --owner-gid ${newgid} \
-I -b test2-devino-test --tree=dir=test2-checkout -I -b test2-devino-test --tree=dir=test2-checkout
$OSTREE ls test2-devino-test /baz/cow > ls.txt $OSTREE ls test2-devino-test /baz/cow > ls.txt
assert_file_has_content ls.txt "^-006.. ${myid} ${myid} .*/baz/cow" assert_file_has_content ls.txt "^-006.. ${myuid} ${mygid} .*/baz/cow"
$OSTREE refs --delete test2-{linkcheckout,devino}-test $OSTREE refs --delete test2-{linkcheckout,devino}-test
echo "ok commit with -I" echo "ok commit with -I"

View File

@ -19,7 +19,7 @@
set -euo pipefail set -euo pipefail
echo "1..4" echo "1..6"
. $(dirname $0)/libtest.sh . $(dirname $0)/libtest.sh
@ -72,3 +72,18 @@ fi
assert_file_has_content_literal err.txt "Loading commit for ref test2: No such metadata object" assert_file_has_content_literal err.txt "Loading commit for ref test2: No such metadata object"
echo "ok missing commit" echo "ok missing commit"
cd ${test_tmpdir}
tar xf ${test_srcdir}/ostree-path-traverse.tar.gz
if ${CMD_PREFIX} ostree --repo=ostree-path-traverse/repo fsck -q 2>err.txt; then
fatal "fsck unexpectedly succeeded"
fi
assert_file_has_content_literal err.txt '.dirtree: Invalid / in filename ../afile'
echo "ok path traverse fsck"
cd ${test_tmpdir}
if ${CMD_PREFIX} ostree --repo=ostree-path-traverse/repo checkout pathtraverse-test pathtraverse-test 2>err.txt; then
fatal "checkout with path traversal unexpectedly succeeded"
fi
assert_file_has_content_literal err.txt 'Invalid / in filename ../afile'
echo "ok path traverse checkout"

View File

@ -86,7 +86,7 @@ assert_file_has_content local-mirror/refs/mirrors/org.example.OsCollection/os/am
for repo in local local-mirror; do for repo in local local-mirror; do
# Try finding an update for an existing branch. # Try finding an update for an existing branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.AppsCollection app1 > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.AppsCollection app1 > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$"
assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$" assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$"
@ -94,7 +94,7 @@ for repo in local local-mirror; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Find several updates for several existing branches. # Find several updates for several existing branches.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.AppsCollection app1 org.example.OsCollection os/amd64/master > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.AppsCollection app1 org.example.OsCollection os/amd64/master > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$"
assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$" assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$"
@ -105,7 +105,7 @@ for repo in local local-mirror; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Find some updates and a new branch. # Find some updates and a new branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.AppsCollection app1 org.example.AppsCollection app2 org.example.OsCollection os/amd64/master > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.AppsCollection app1 org.example.AppsCollection app2 org.example.OsCollection os/amd64/master > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$"
assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$" assert_file_has_content find "^ - (org.example.AppsCollection, app1) = $(cat app1-checksum)$"
@ -117,7 +117,7 @@ for repo in local local-mirror; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Find an update and a non-existent branch. # Find an update and a non-existent branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.AppsCollection app1 org.example.AppsCollection not-an-app > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.AppsCollection app1 org.example.AppsCollection not-an-app > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/apps-collection$"
assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: apps-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.AppsCollection, not-an-app) = (not found)$" assert_file_has_content find "^ - (org.example.AppsCollection, not-an-app) = (not found)$"
@ -128,20 +128,20 @@ for repo in local local-mirror; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Do all the above, but pull this time. # Do all the above, but pull this time.
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.AppsCollection app1 > pull || true ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.AppsCollection app1 > pull || true
assert_file_has_content pull "^1/1 refs were found.$" assert_file_has_content pull "^1/1 refs were found.$"
assert_file_has_content pull "^Pulled 1/1 refs successfully.$" assert_file_has_content pull "^Pulled 1/1 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
assert_ref $repo app1 $(cat app1-checksum) assert_ref $repo app1 $(cat app1-checksum)
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.AppsCollection app1 org.example.OsCollection os/amd64/master > pull ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.AppsCollection app1 org.example.OsCollection os/amd64/master > pull
assert_file_has_content pull "^2/2 refs were found.$" assert_file_has_content pull "^2/2 refs were found.$"
assert_file_has_content pull "^Pulled 2/2 refs successfully.$" assert_file_has_content pull "^Pulled 2/2 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
assert_ref $repo app1 $(cat app1-checksum) assert_ref $repo app1 $(cat app1-checksum)
assert_ref $repo os/amd64/master $(cat os-checksum) assert_ref $repo os/amd64/master $(cat os-checksum)
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.AppsCollection app1 org.example.AppsCollection app2 org.example.OsCollection os/amd64/master > pull ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.AppsCollection app1 org.example.AppsCollection app2 org.example.OsCollection os/amd64/master > pull
assert_file_has_content pull "^3/3 refs were found.$" assert_file_has_content pull "^3/3 refs were found.$"
assert_file_has_content pull "^Pulled 3/3 refs successfully.$" assert_file_has_content pull "^Pulled 3/3 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
@ -149,7 +149,7 @@ for repo in local local-mirror; do
assert_ref $repo app2 $(cat app2-checksum) assert_ref $repo app2 $(cat app2-checksum)
assert_ref $repo os/amd64/master $(cat os-checksum) assert_ref $repo os/amd64/master $(cat os-checksum)
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.AppsCollection app1 org.example.AppsCollection not-an-app > pull ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.AppsCollection app1 org.example.AppsCollection not-an-app > pull
assert_file_has_content pull "^1/2 refs were found.$" assert_file_has_content pull "^1/2 refs were found.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
assert_ref $repo app1 $(cat app1-checksum) assert_ref $repo app1 $(cat app1-checksum)
@ -164,7 +164,7 @@ ${CMD_PREFIX} ostree --repo=os-collection summary --update --gpg-homedir=${TEST_
for repo in local-mirror; do for repo in local-mirror; do
# Try finding an update for that branch. # Try finding an update for that branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.OsCollection os/amd64/master > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.OsCollection os/amd64/master > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$"
assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-2)$" assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-2)$"
@ -172,7 +172,7 @@ for repo in local-mirror; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Pull it. # Pull it.
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.OsCollection os/amd64/master > pull || true ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.OsCollection os/amd64/master > pull || true
assert_file_has_content pull "^1/1 refs were found.$" assert_file_has_content pull "^1/1 refs were found.$"
assert_file_has_content pull "^Pulled 1/1 refs successfully.$" assert_file_has_content pull "^Pulled 1/1 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
@ -191,7 +191,7 @@ ${CMD_PREFIX} ostree --repo=local remote add os-remote-local-mirror file://$(pwd
for repo in local; do for repo in local; do
# Try finding an update for that branch. # Try finding an update for that branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.OsCollection os/amd64/master > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.OsCollection os/amd64/master > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$"
assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-2)$" assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-2)$"
@ -202,7 +202,7 @@ for repo in local; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Pull it. # Pull it.
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.OsCollection os/amd64/master > pull || true ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.OsCollection os/amd64/master > pull || true
assert_file_has_content pull "^1/1 refs were found.$" assert_file_has_content pull "^1/1 refs were found.$"
assert_file_has_content pull "^Pulled 1/1 refs successfully.$" assert_file_has_content pull "^Pulled 1/1 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"
@ -218,7 +218,7 @@ ${CMD_PREFIX} ostree --repo=os-collection summary --update --gpg-homedir=${TEST_
for repo in local; do for repo in local; do
# Try finding an update for that branch. # Try finding an update for that branch.
${CMD_PREFIX} ostree --repo=$repo find-remotes org.example.OsCollection os/amd64/master > find ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config org.example.OsCollection os/amd64/master > find
assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$" assert_file_has_content find "^Result [0-9]\+: file://$(pwd)/os-collection$"
assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$" assert_file_has_content find "^ - Keyring: os-remote.trustedkeys.gpg$"
assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-3)$" assert_file_has_content find "^ - (org.example.OsCollection, os/amd64/master) = $(cat os-checksum-3)$"
@ -226,7 +226,7 @@ for repo in local; do
assert_not_file_has_content find "^No results.$" assert_not_file_has_content find "^No results.$"
# Pull it. # Pull it.
${CMD_PREFIX} ostree --repo=$repo find-remotes --pull org.example.OsCollection os/amd64/master > pull || true ${CMD_PREFIX} ostree --repo=$repo find-remotes --finders=config --pull org.example.OsCollection os/amd64/master > pull || true
assert_file_has_content pull "^1/1 refs were found.$" assert_file_has_content pull "^1/1 refs were found.$"
assert_file_has_content pull "^Pulled 1/1 refs successfully.$" assert_file_has_content pull "^Pulled 1/1 refs successfully.$"
assert_not_file_has_content pull "Failed to pull some refs from the remotes" assert_not_file_has_content pull "Failed to pull some refs from the remotes"

78
tests/test-no-initramfs.sh Executable file
View File

@ -0,0 +1,78 @@
#!/bin/bash
. $(dirname $0)/libtest.sh
echo "1..7"
setup_os_repository "archive-z2" "uboot"
cd ${test_tmpdir}
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo remote add --set=gpg-verify=false testos $(cat httpd-address)/ostree/testos-repo
${CMD_PREFIX} ostree --repo=sysroot/ostree/repo pull testos testos/buildmaster/x86_64-runtime
${CMD_PREFIX} ostree admin deploy --karg=root=LABEL=rootfs --os=testos testos:testos/buildmaster/x86_64-runtime
assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'root=LABEL=rootfs'
assert_not_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'init='
echo "ok deployment with initramfs"
pull_test_tree() {
kernel_contents=$1
initramfs_contents=$2
printf "TEST SETUP:\n kernel: %s\n initramfs: %s\n layout: %s\n" \
"$kernel_contents" "$initramfs_contents" "$layout"
rm -rf ${test_tmpdir}/osdata/usr/lib/modules/3.6.0/{initramfs.img,vmlinuz} \
${test_tmpdir}/osdata/usr/lib/ostree-boot \
${test_tmpdir}/osdata/boot
if [ "$layout" = "/usr/lib/modules" ]; then
# Fedora compatible layout
cd ${test_tmpdir}/osdata/usr/lib/modules/3.6.0
echo -n "$kernel_contents" > vmlinuz
[ -n "$initramfs_contents" ] && echo -n "$initramfs_contents" > initramfs.img
elif [ "$layout" = "/usr/lib/ostree-boot" ] || [ "$layout" = "/boot" ]; then
# "Legacy" layout
mkdir -p "${test_tmpdir}/osdata/$layout"
cd "${test_tmpdir}/osdata/$layout"
bootcsum=$(echo -n "$kernel_contents$initramfs_contents" \
| sha256sum | cut -f 1 -d ' ')
echo -n "$kernel_contents" > vmlinuz-${bootcsum}
[ -n "$initramfs_contents" ] && echo -n "$initramfs_contents" > initramfs-${bootcsum}
else
exit 1
fi
cd -
${CMD_PREFIX} ostree --repo=${test_tmpdir}/testos-repo commit --tree=dir=osdata/ -b testos/buildmaster/x86_64-runtime
${CMD_PREFIX} ostree pull testos:testos/buildmaster/x86_64-runtime
}
get_key_from_bootloader_conf() {
conffile=$1
key=$2
assert_file_has_content "$conffile" "^$key"
awk "/^$key/ { print \$2 }" "$conffile"
}
for layout in /usr/lib/modules /usr/lib/ostree-boot /boot;
do
pull_test_tree "the kernel only"
${CMD_PREFIX} ostree admin deploy --os=testos --karg=root=/dev/sda2 --karg=rootwait testos:testos/buildmaster/x86_64-runtime
assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'rootwait'
assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'init='
assert_not_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'initrd'
echo "ok switching to bootdir with no initramfs layout=$layout"
pull_test_tree "the kernel" "initramfs to assist the kernel"
${CMD_PREFIX} ostree admin deploy --os=testos --karg-none --karg=root=LABEL=rootfs testos:testos/buildmaster/x86_64-runtime
assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'initrd'
assert_file_has_content sysroot/boot/$(get_key_from_bootloader_conf sysroot/boot/loader/entries/ostree-testos-0.conf "initrd") "initramfs to assist the kernel"
assert_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'root=LABEL=rootfs'
assert_not_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'rootwait'
assert_not_file_has_content sysroot/boot/loader/entries/ostree-testos-0.conf 'init='
echo "ok switching from no initramfs to initramfs enabled sysroot layout=$layout"
done

View File

@ -1,6 +1,7 @@
#!/bin/bash #!/bin/bash
# #
# Copyright (C) 2014 Alexander Larsson <alexl@redhat.com> # Copyright (C) 2014 Alexander Larsson <alexl@redhat.com>
# Copyright (C) 2018 Red Hat, Inc.
# #
# This library is free software; you can redistribute it and/or # This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public # modify it under the terms of the GNU Lesser General Public
@ -22,7 +23,7 @@ set -euo pipefail
. $(dirname $0)/libtest.sh . $(dirname $0)/libtest.sh
echo '1..3' echo '1..4'
setup_test_repository "bare" setup_test_repository "bare"
@ -60,10 +61,20 @@ else
fi fi
rm -rf repo2 rm -rf repo2
mkdir repo2
ostree_repo_init repo2 --mode="bare" ostree_repo_init repo2 --mode="bare"
if ${CMD_PREFIX} ostree --repo=repo2 pull-local --untrusted repo; then if ${CMD_PREFIX} ostree --repo=repo2 pull-local --untrusted repo; then
assert_not_reached "corrupted untrusted pull unexpectedly failed!" assert_not_reached "corrupted untrusted pull unexpectedly failed!"
else else
echo "ok untrusted pull with corruption failed" echo "ok untrusted pull with corruption failed"
fi fi
cd ${test_tmpdir}
tar xf ${test_srcdir}/ostree-path-traverse.tar.gz
rm -rf repo2
ostree_repo_init repo2 --mode=archive
if ${CMD_PREFIX} ostree --repo=repo2 pull-local --untrusted ostree-path-traverse/repo pathtraverse-test 2>err.txt; then
fatal "pull-local unexpectedly succeeded"
fi
assert_file_has_content_literal err.txt 'Invalid / in filename ../afile'
echo "ok untrusted pull-local path traversal"

View File

@ -109,12 +109,12 @@ for fs_type in ext4 vfat; do
ostree_repo_init peer-repo_$fs_type ostree_repo_init peer-repo_$fs_type
${CMD_PREFIX} ostree --repo=peer-repo_$fs_type remote add remote1 file://just-here-for-the-keyring --collection-id org.example.Collection1 --gpg-import="${test_tmpdir}/gpghome/key1.asc" ${CMD_PREFIX} ostree --repo=peer-repo_$fs_type remote add remote1 file://just-here-for-the-keyring --collection-id org.example.Collection1 --gpg-import="${test_tmpdir}/gpghome/key1.asc"
${CMD_PREFIX} ostree --repo=peer-repo_$fs_type find-remotes org.example.Collection1 test-1 > find-results ${CMD_PREFIX} ostree --repo=peer-repo_$fs_type find-remotes --finders=mount org.example.Collection1 test-1 > find-results
assert_not_file_has_content find-results "^No results.$" assert_not_file_has_content find-results "^No results.$"
assert_file_has_content find-results "^Result 0: file://${usb_mount}" assert_file_has_content find-results "^Result 0: file://${usb_mount}"
assert_file_has_content find-results "(org.example.Collection1, test-1) = $(cat ref1-checksum)$" assert_file_has_content find-results "(org.example.Collection1, test-1) = $(cat ref1-checksum)$"
${CMD_PREFIX} ostree --repo=peer-repo_$fs_type find-remotes --pull org.example.Collection1 test-1 > pull-results ${CMD_PREFIX} ostree --repo=peer-repo_$fs_type find-remotes --finders=mount --pull org.example.Collection1 test-1 > pull-results
assert_file_has_content pull-results "^Pulled 1/1 refs successfully.$" assert_file_has_content pull-results "^Pulled 1/1 refs successfully.$"
${CMD_PREFIX} ostree --repo=peer-repo_$fs_type refs --collections > refs ${CMD_PREFIX} ostree --repo=peer-repo_$fs_type refs --collections > refs

View File

@ -26,7 +26,7 @@ skip_without_user_xattrs
setup_test_repository "bare" setup_test_repository "bare"
echo "1..8" echo "1..11"
cd ${test_tmpdir} cd ${test_tmpdir}
mkdir mnt mkdir mnt
@ -117,3 +117,58 @@ echo "ok checkout copy fallback"
# check that O_RDONLY|O_CREAT is handled correctly; used by flock(1) at least # check that O_RDONLY|O_CREAT is handled correctly; used by flock(1) at least
flock mnt/nonexistent-file echo "ok create file in ro mode" flock mnt/nonexistent-file echo "ok create file in ro mode"
echo "ok flock"
# And now with --copyup enabled
copyup_reset() {
cd ${test_tmpdir}
fusermount -u mnt
rm checkout-test2 -rf
$OSTREE checkout -H test2 checkout-test2
rofiles-fuse --copyup checkout-test2 mnt
}
assert_test_file() {
t=$1
f=$2
if ! test ${t} "${f}"; then
ls -al "${f}"
fatal "Failed test ${t} ${f}"
fi
}
copyup_reset
assert_file_has_content mnt/firstfile first
echo "ok copyup mount"
# Test O_TRUNC directly
firstfile_orig_inode=$(stat -c %i checkout-test2/firstfile)
echo -n truncating > mnt/firstfile
assert_streq "$(cat mnt/firstfile)" truncating
firstfile_new_inode=$(stat -c %i checkout-test2/firstfile)
assert_not_streq "${firstfile_orig_inode}" "${firstfile_new_inode}"
assert_test_file -f checkout-test2/firstfile
copyup_reset
firstfile_link_orig_inode=$(stat -c %i checkout-test2/firstfile-link)
firstfile_orig_inode=$(stat -c %i checkout-test2/firstfile)
# Now write via the symlink
echo -n truncating > mnt/firstfile-link
assert_streq "$(cat mnt/firstfile)" truncating
firstfile_new_inode=$(stat -c %i checkout-test2/firstfile)
firstfile_link_new_inode=$(stat -c %i checkout-test2/firstfile-link)
assert_not_streq "${firstfile_orig_inode}" "${firstfile_new_inode}"
assert_streq "${firstfile_link_orig_inode}" "${firstfile_link_new_inode}"
assert_test_file -f checkout-test2/firstfile
# Verify we didn't replace the link with a regfile somehow
assert_test_file -L checkout-test2/firstfile-link
# These both end up creating new files; in the sed case we'll then do a rename()
copyup_reset
echo "hello new file" > mnt/a-new-non-copyup-file
assert_file_has_content_literal mnt/a-new-non-copyup-file "hello new file"
sed -i -e s,first,second, mnt/firstfile
assert_file_has_content_literal mnt/firstfile "second"
echo "ok copyup"

View File

@ -52,7 +52,7 @@ echo 'ok documented symbols'
# ONLY update this checksum in release commits! # ONLY update this checksum in release commits!
cat > released-sha256.txt <<EOF cat > released-sha256.txt <<EOF
3dbe0aa610c7229050f4a651fd18893742f8a24c34f3e25bf807ff98fbfc7f72 ${released_syms} e880ade1f3b4cc7587dc1a7a30059ab1d5287484ee70843f1bb4f258fbec677c ${released_syms}
EOF EOF
sha256sum -c released-sha256.txt sha256sum -c released-sha256.txt