Update upstream source from tag 'upstream/2022.3'

Update to upstream version '2022.3'
with Debian dir 06c9530539
This commit is contained in:
Dan Nicholson 2022-06-08 16:33:05 +00:00
commit b2d33f1be5
73 changed files with 4210 additions and 2294 deletions

View File

@ -38,6 +38,7 @@ endif
if BUILDOPT_SYSTEMD if BUILDOPT_SYSTEMD
systemdsystemunit_DATA = src/boot/ostree-prepare-root.service \ systemdsystemunit_DATA = src/boot/ostree-prepare-root.service \
src/boot/ostree-remount.service \ src/boot/ostree-remount.service \
src/boot/ostree-boot-complete.service \
src/boot/ostree-finalize-staged.service \ src/boot/ostree-finalize-staged.service \
src/boot/ostree-finalize-staged.path \ src/boot/ostree-finalize-staged.path \
$(NULL) $(NULL)
@ -64,6 +65,7 @@ endif
EXTRA_DIST += src/boot/dracut/module-setup.sh \ EXTRA_DIST += src/boot/dracut/module-setup.sh \
src/boot/dracut/ostree.conf \ src/boot/dracut/ostree.conf \
src/boot/mkinitcpio \ src/boot/mkinitcpio \
src/boot/ostree-boot-complete.service \
src/boot/ostree-prepare-root.service \ src/boot/ostree-prepare-root.service \
src/boot/ostree-finalize-staged.path \ src/boot/ostree-finalize-staged.path \
src/boot/ostree-remount.service \ src/boot/ostree-remount.service \

View File

@ -221,8 +221,6 @@ endif
if USE_CURL if USE_CURL
libostree_1_la_SOURCES += src/libostree/ostree-fetcher-curl.c \ libostree_1_la_SOURCES += src/libostree/ostree-fetcher-curl.c \
src/libostree/ostree-soup-uri.h src/libostree/ostree-soup-uri.c \
src/libostree/ostree-soup-form.c \
$(NULL) $(NULL)
libostree_1_la_CFLAGS += $(OT_DEP_CURL_CFLAGS) libostree_1_la_CFLAGS += $(OT_DEP_CURL_CFLAGS)
libostree_1_la_LIBADD += $(OT_DEP_CURL_LIBS) libostree_1_la_LIBADD += $(OT_DEP_CURL_LIBS)
@ -231,13 +229,6 @@ if USE_LIBSOUP
libostree_1_la_SOURCES += src/libostree/ostree-fetcher-soup.c libostree_1_la_SOURCES += src/libostree/ostree-fetcher-soup.c
libostree_1_la_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS) libostree_1_la_CFLAGS += $(OT_INTERNAL_SOUP_CFLAGS)
libostree_1_la_LIBADD += $(OT_INTERNAL_SOUP_LIBS) libostree_1_la_LIBADD += $(OT_INTERNAL_SOUP_LIBS)
else
if USE_AVAHI
libostree_1_la_SOURCES += src/libostree/ostree-soup-uri.h \
src/libostree/ostree-soup-uri.c \
src/libostree/ostree-soup-form.c \
$(NULL)
endif
endif endif
endif endif

View File

@ -19,6 +19,8 @@
if ENABLE_MAN if ENABLE_MAN
# If you add a new man page here, add a reference to it in index.xml and
# ostree.xml.
man1_files = ostree.1 ostree-admin-cleanup.1 \ man1_files = ostree.1 ostree-admin-cleanup.1 \
ostree-admin-config-diff.1 ostree-admin-deploy.1 \ ostree-admin-config-diff.1 ostree-admin-deploy.1 \
ostree-admin-init-fs.1 ostree-admin-instutil.1 ostree-admin-os-init.1 \ ostree-admin-init-fs.1 ostree-admin-instutil.1 ostree-admin-os-init.1 \
@ -52,9 +54,25 @@ man5_files = ostree.repo.5 ostree.repo-config.5
man1_MANS = $(addprefix man/,$(man1_files)) man1_MANS = $(addprefix man/,$(man1_files))
man5_MANS = $(addprefix man/,$(man5_files)) man5_MANS = $(addprefix man/,$(man5_files))
EXTRA_DIST += $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) manhtml_files = \
man/html/index.html \
$(addprefix man/html/,$(man1_files:.1=.html)) \
$(addprefix man/html/,$(man5_files:.5=.html)) \
$(NULL)
XSLT_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl if ENABLE_MAN_HTML
noinst_DATA += $(manhtml_files)
# Convenience target for building the just the HTML man pages
manhtml: $(manhtml_files)
.PHONY: manhtml
endif
EXTRA_DIST += man/index.xml $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml)
XSLT_MAN_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
XSLT_HTML_STYLESHEET = man/html.xsl
EXTRA_DIST += $(XSLT_HTML_STYLESHEET)
XSLTPROC_FLAGS = \ XSLTPROC_FLAGS = \
--nonet \ --nonet \
@ -67,14 +85,19 @@ XSLTPROC_FLAGS = \
XSLTPROC_MAN = $(XSLTPROC) $(XSLTPROC_FLAGS) XSLTPROC_MAN = $(XSLTPROC) $(XSLTPROC_FLAGS)
%.1: %.xml %.1: %.xml
$(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_STYLESHEET) $< $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_MAN_STYLESHEET) $<
%.5: %.xml %.5: %.xml
$(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_STYLESHEET) $< $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_MAN_STYLESHEET) $<
man/html/%.html: man/%.xml
@mkdir -p man/html
$(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_HTML_STYLESHEET) $<
CLEANFILES += \ CLEANFILES += \
$(man1_MANS) \ $(man1_MANS) \
$(man5_MANS) \ $(man5_MANS) \
$(manhtml_files) \
$(NULL) $(NULL)
endif endif

View File

@ -70,6 +70,7 @@ ostree_SOURCES += \
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-finalize-staged.c \ src/ostree/ot-admin-builtin-finalize-staged.c \
src/ostree/ot-admin-builtin-boot-complete.c \
src/ostree/ot-admin-builtin-undeploy.c \ src/ostree/ot-admin-builtin-undeploy.c \
src/ostree/ot-admin-builtin-instutil.c \ src/ostree/ot-admin-builtin-instutil.c \
src/ostree/ot-admin-builtin-cleanup.c \ src/ostree/ot-admin-builtin-cleanup.c \

View File

@ -202,7 +202,7 @@ dist_installed_test_data = tests/archive-test.sh \
tests/ostree-path-traverse.tar.gz \ tests/ostree-path-traverse.tar.gz \
tests/pre-signed-pull-data.tar.gz \ tests/pre-signed-pull-data.tar.gz \
tests/libtest-core.sh \ tests/libtest-core.sh \
tests/fixtures/bare-split-xattrs/basic.tar.xz \ tests/bare-split-xattrs-basic.tar.xz \
$(NULL) $(NULL)
EXTRA_DIST += tests/libtest.sh EXTRA_DIST += tests/libtest.sh

View File

@ -29,7 +29,7 @@ AM_CPPFLAGS += -DDATADIR='"$(datadir)"' -DLIBEXECDIR='"$(libexecdir)"' \
-DOSTREE_COMPILATION \ -DOSTREE_COMPILATION \
-DG_LOG_DOMAIN=\"OSTree\" \ -DG_LOG_DOMAIN=\"OSTree\" \
-DOSTREE_GITREV='"$(OSTREE_GITREV)"' \ -DOSTREE_GITREV='"$(OSTREE_GITREV)"' \
-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_44 '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,50)' \ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66 '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,70)' \
-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)' -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)'
# For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622 # For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622
AM_CFLAGS += -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS) AM_CFLAGS += -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS)

View File

@ -442,8 +442,6 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14)
@USE_CURL_OR_SOUP_TRUE@ $(NULL) @USE_CURL_OR_SOUP_TRUE@ $(NULL)
@USE_CURL_TRUE@am__append_28 = src/libostree/ostree-fetcher-curl.c \ @USE_CURL_TRUE@am__append_28 = src/libostree/ostree-fetcher-curl.c \
@USE_CURL_TRUE@ src/libostree/ostree-soup-uri.h src/libostree/ostree-soup-uri.c \
@USE_CURL_TRUE@ src/libostree/ostree-soup-form.c \
@USE_CURL_TRUE@ $(NULL) @USE_CURL_TRUE@ $(NULL)
@USE_CURL_TRUE@am__append_29 = $(OT_DEP_CURL_CFLAGS) @USE_CURL_TRUE@am__append_29 = $(OT_DEP_CURL_CFLAGS)
@ -451,31 +449,26 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_31 = src/libostree/ostree-fetcher-soup.c @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_31 = src/libostree/ostree-fetcher-soup.c
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_32 = $(OT_INTERNAL_SOUP_CFLAGS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_32 = $(OT_INTERNAL_SOUP_CFLAGS)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_33 = $(OT_INTERNAL_SOUP_LIBS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_33 = $(OT_INTERNAL_SOUP_LIBS)
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@am__append_34 = src/libostree/ostree-soup-uri.h \ @USE_LIBMOUNT_TRUE@am__append_34 = $(OT_DEP_LIBMOUNT_CFLAGS)
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ src/libostree/ostree-soup-uri.c \ @USE_LIBMOUNT_TRUE@am__append_35 = $(OT_DEP_LIBMOUNT_LIBS)
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ src/libostree/ostree-soup-form.c \ @USE_SELINUX_TRUE@am__append_36 = $(OT_DEP_SELINUX_CFLAGS)
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ $(NULL) @USE_SELINUX_TRUE@am__append_37 = $(OT_DEP_SELINUX_LIBS)
@USE_LIBSODIUM_TRUE@am__append_38 = $(OT_DEP_LIBSODIUM_CFLAGS)
@USE_LIBMOUNT_TRUE@am__append_35 = $(OT_DEP_LIBMOUNT_CFLAGS) @USE_LIBSODIUM_TRUE@am__append_39 = $(OT_DEP_LIBSODIUM_LIBS)
@USE_LIBMOUNT_TRUE@am__append_36 = $(OT_DEP_LIBMOUNT_LIBS) @BUILDOPT_INTROSPECTION_TRUE@am__append_40 = OSTree-1.0.gir
@USE_SELINUX_TRUE@am__append_37 = $(OT_DEP_SELINUX_CFLAGS)
@USE_SELINUX_TRUE@am__append_38 = $(OT_DEP_SELINUX_LIBS)
@USE_LIBSODIUM_TRUE@am__append_39 = $(OT_DEP_LIBSODIUM_CFLAGS)
@USE_LIBSODIUM_TRUE@am__append_40 = $(OT_DEP_LIBSODIUM_LIBS)
@BUILDOPT_INTROSPECTION_TRUE@am__append_41 = OSTree-1.0.gir @BUILDOPT_INTROSPECTION_TRUE@am__append_41 = OSTree-1.0.gir
@BUILDOPT_INTROSPECTION_TRUE@am__append_42 = OSTree-1.0.gir @BUILDOPT_INTROSPECTION_TRUE@am__append_42 = OSTree-1.0.typelib
@BUILDOPT_INTROSPECTION_TRUE@am__append_43 = OSTree-1.0.typelib @BUILDOPT_INTROSPECTION_TRUE@am__append_43 = $(gir_DATA) $(typelib_DATA)
@BUILDOPT_INTROSPECTION_TRUE@am__append_44 = $(gir_DATA) $(typelib_DATA) @USE_GPGME_TRUE@am__append_44 = \
@USE_GPGME_TRUE@am__append_45 = \
@USE_GPGME_TRUE@ src/ostree/ot-builtin-gpg-sign.c \ @USE_GPGME_TRUE@ src/ostree/ot-builtin-gpg-sign.c \
@USE_GPGME_TRUE@ $(NULL) @USE_GPGME_TRUE@ $(NULL)
@USE_GPGME_TRUE@am__append_46 = \ @USE_GPGME_TRUE@am__append_45 = \
@USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-import.c \ @USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-import.c \
@USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-list-keys.c \ @USE_GPGME_TRUE@ src/ostree/ot-remote-builtin-gpg-list-keys.c \
@USE_GPGME_TRUE@ $(NULL) @USE_GPGME_TRUE@ $(NULL)
@USE_CURL_OR_SOUP_TRUE@am__append_47 = src/ostree/ot-remote-builtin-add-cookie.c \ @USE_CURL_OR_SOUP_TRUE@am__append_46 = 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 \
@ -483,20 +476,20 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14)
@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_48 = src/ostree/ot-builtin-trivial-httpd.c @USE_LIBSOUP_TRUE@am__append_47 = src/ostree/ot-builtin-trivial-httpd.c
@USE_LIBSOUP_TRUE@am__append_49 = ostree-trivial-httpd @USE_LIBSOUP_TRUE@am__append_48 = 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_50 = $(OT_INTERNAL_SOUP_CFLAGS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_49 = $(OT_INTERNAL_SOUP_CFLAGS)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_51 = $(OT_INTERNAL_SOUP_LIBS) @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__append_50 = $(OT_INTERNAL_SOUP_LIBS)
@USE_LIBARCHIVE_TRUE@am__append_52 = $(OT_DEP_LIBARCHIVE_CFLAGS) @USE_LIBARCHIVE_TRUE@am__append_51 = $(OT_DEP_LIBARCHIVE_CFLAGS)
@USE_LIBARCHIVE_TRUE@am__append_53 = $(OT_DEP_LIBARCHIVE_LIBS) @USE_LIBARCHIVE_TRUE@am__append_52 = $(OT_DEP_LIBARCHIVE_LIBS)
@USE_LIBSODIUM_TRUE@am__append_54 = $(OT_DEP_LIBSODIUM_CFLAGS) @USE_LIBSODIUM_TRUE@am__append_53 = $(OT_DEP_LIBSODIUM_CFLAGS)
@USE_LIBSODIUM_TRUE@am__append_55 = $(OT_DEP_LIBSODIUM_LIBS) @USE_LIBSODIUM_TRUE@am__append_54 = $(OT_DEP_LIBSODIUM_LIBS)
@BUILDOPT_SYSTEMD_TRUE@am__append_56 = ostree-remount @BUILDOPT_SYSTEMD_TRUE@am__append_55 = 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_56 = ostree-remount
# ostree-prepare-root can be used as init in a system without a populated /lib. # ostree-prepare-root can be used as init in a system without a populated /lib.
# To support this use case we need to link statically as we will be unable to # To support this use case we need to link statically as we will be unable to
@ -508,67 +501,70 @@ check_PROGRAMS = $(am__EXEEXT_12) $(am__EXEEXT_13) $(am__EXEEXT_14)
# to get autotools to install this as an executable but without generating rules # to get autotools to install this as an executable but without generating rules
# to make it itself which we have specified manually. See # to make it itself which we have specified manually. See
# https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html # https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html
@BUILDOPT_USE_STATIC_COMPILER_TRUE@am__append_58 = ostree-prepare-root @BUILDOPT_USE_STATIC_COMPILER_TRUE@am__append_57 = ostree-prepare-root
@BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_59 = ostree-prepare-root @BUILDOPT_USE_STATIC_COMPILER_FALSE@am__append_58 = ostree-prepare-root
@BUILDOPT_SYSTEMD_TRUE@am__append_60 = -DHAVE_SYSTEMD=1 @BUILDOPT_SYSTEMD_TRUE@am__append_59 = -DHAVE_SYSTEMD=1
# 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_60 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_61 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1 @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_61 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_62 = -DHAVE_SYSTEMD_AND_LIBMOUNT=1
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@systemdsystemgenerator_PROGRAMS = ostree-system-generator$(EXEEXT) @BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@systemdsystemgenerator_PROGRAMS = ostree-system-generator$(EXEEXT)
@BUILDOPT_SYSTEMD_AND_LIBMOUNT_TRUE@am__append_63 = $(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_64 = --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_65 = rofiles-fuse @BUILDOPT_FUSE_TRUE@am__append_64 = rofiles-fuse
@BUILDOPT_ASAN_TRUE@am__append_66 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc @BUILDOPT_ASAN_TRUE@am__append_65 = OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc
@USE_GPGME_TRUE@am__append_67 = \ @USE_GPGME_TRUE@am__append_66 = \
@USE_GPGME_TRUE@ tests/test-remote-gpg-import.sh \ @USE_GPGME_TRUE@ tests/test-remote-gpg-import.sh \
@USE_GPGME_TRUE@ tests/test-remote-gpg-list-keys.sh \ @USE_GPGME_TRUE@ tests/test-remote-gpg-list-keys.sh \
@USE_GPGME_TRUE@ tests/test-gpg-signed-commit.sh \ @USE_GPGME_TRUE@ tests/test-gpg-signed-commit.sh \
@USE_GPGME_TRUE@ tests/test-admin-gpg.sh \ @USE_GPGME_TRUE@ tests/test-admin-gpg.sh \
@USE_GPGME_TRUE@ $(NULL) @USE_GPGME_TRUE@ $(NULL)
@BUILDOPT_FUSE_TRUE@am__append_68 = tests/test-rofiles-fuse.sh @BUILDOPT_FUSE_TRUE@am__append_67 = tests/test-rofiles-fuse.sh
@BUILDOPT_FUSE_TRUE@am__append_69 = tests/rofiles-fuse-symlink-stamp @BUILDOPT_FUSE_TRUE@am__append_68 = tests/rofiles-fuse-symlink-stamp
@BUILDOPT_FUSE_FALSE@am__append_70 = tests/test-rofiles-fuse.sh @BUILDOPT_FUSE_FALSE@am__append_69 = tests/test-rofiles-fuse.sh
@USE_LIBSOUP_TRUE@am__append_71 = tests/test-remote-cookies.sh @USE_LIBSOUP_TRUE@am__append_70 = tests/test-remote-cookies.sh
@BUILDOPT_GJS_TRUE@am__append_72 = $(js_tests) $(js_installed_tests) @BUILDOPT_GJS_TRUE@am__append_71 = $(js_tests) $(js_installed_tests)
@BUILDOPT_GJS_FALSE@am__append_73 = $(js_tests) @BUILDOPT_GJS_FALSE@am__append_72 = $(js_tests)
@BUILDOPT_GJS_FALSE@am__append_74 = $(js_installed_tests) @BUILDOPT_GJS_FALSE@am__append_73 = $(js_installed_tests)
@ENABLE_INSTALLED_TESTS_FALSE@am__append_75 = -rpath $(abs_builddir) @ENABLE_INSTALLED_TESTS_FALSE@am__append_74 = -rpath $(abs_builddir)
@USE_GPGME_TRUE@am__append_76 = \ @USE_GPGME_TRUE@am__append_75 = \
@USE_GPGME_TRUE@ tests/test-gpg-verify-result \ @USE_GPGME_TRUE@ tests/test-gpg-verify-result \
@USE_GPGME_TRUE@ $(NULL) @USE_GPGME_TRUE@ $(NULL)
@USE_AVAHI_TRUE@am__append_77 = tests/test-repo-finder-avahi @USE_AVAHI_TRUE@am__append_76 = tests/test-repo-finder-avahi
@USE_LIBARCHIVE_TRUE@am__append_78 = tests/test-libarchive-import @USE_LIBARCHIVE_TRUE@am__append_77 = tests/test-libarchive-import
@USE_GPGME_TRUE@am__append_79 = \ @USE_GPGME_TRUE@am__append_78 = \
@USE_GPGME_TRUE@ tests/gpg-verify-data/README.md \ @USE_GPGME_TRUE@ tests/gpg-verify-data/README.md \
@USE_GPGME_TRUE@ $(NULL) @USE_GPGME_TRUE@ $(NULL)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_80 = $(_installed_or_uninstalled_test_scripts) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_79 = $(_installed_or_uninstalled_test_scripts)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_81 = $(_installed_or_uninstalled_test_programs) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__append_80 = $(_installed_or_uninstalled_test_programs)
@ENABLE_INSTALLED_TESTS_TRUE@am__append_82 = install-installed-tests-extra @ENABLE_INSTALLED_TESTS_TRUE@am__append_81 = 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_83 = --with-systemdsystemunitdir='$${libdir}/systemd/system' @BUILDOPT_SYSTEMD_TRUE@am__append_82 = --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_84 = src/boot/grub2/grub2-15_ostree @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_83 = src/boot/grub2/grub2-15_ostree
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_85 = install-grub2-config-hook @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_84 = install-grub2-config-hook
# We're using our internal generator # We're using our internal generator
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@am__append_86 = src/boot/grub2/ostree-grub-generator @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_TRUE@am__append_85 = src/boot/grub2/ostree-grub-generator
@ENABLE_MAN_TRUE@@USE_LIBSOUP_TRUE@am__append_87 = ostree-trivial-httpd.1 @ENABLE_MAN_TRUE@@USE_LIBSOUP_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
@ENABLE_MAN_TRUE@@USE_LIBSOUP_FALSE@am__append_88 = man/ostree-trivial-httpd.xml @ENABLE_MAN_TRUE@@USE_LIBSOUP_FALSE@am__append_87 = man/ostree-trivial-httpd.xml
@BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_89 = rofiles-fuse.1 @BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_88 = rofiles-fuse.1
@ENABLE_MAN_TRUE@@USE_GPGME_TRUE@am__append_90 = ostree-gpg-sign.1 @ENABLE_MAN_TRUE@@USE_GPGME_TRUE@am__append_89 = ostree-gpg-sign.1
@ENABLE_MAN_TRUE@am__append_91 = $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) @ENABLE_MAN_HTML_TRUE@@ENABLE_MAN_TRUE@am__append_90 = $(manhtml_files)
@ENABLE_MAN_TRUE@am__append_91 = man/index.xml $(man1_MANS:.1=.xml) \
@ENABLE_MAN_TRUE@ $(man5_MANS:.5=.xml) $(XSLT_HTML_STYLESHEET)
@ENABLE_MAN_TRUE@am__append_92 = \ @ENABLE_MAN_TRUE@am__append_92 = \
@ENABLE_MAN_TRUE@ $(man1_MANS) \ @ENABLE_MAN_TRUE@ $(man1_MANS) \
@ENABLE_MAN_TRUE@ $(man5_MANS) \ @ENABLE_MAN_TRUE@ $(man5_MANS) \
@ENABLE_MAN_TRUE@ $(manhtml_files) \
@ENABLE_MAN_TRUE@ $(NULL) @ENABLE_MAN_TRUE@ $(NULL)
subdir = . subdir = .
@ -840,9 +836,6 @@ am__libostree_1_la_SOURCES_DIST = \
src/libostree/ostree-metalink.h \ src/libostree/ostree-metalink.h \
src/libostree/ostree-metalink.c \ src/libostree/ostree-metalink.c \
src/libostree/ostree-fetcher-curl.c \ src/libostree/ostree-fetcher-curl.c \
src/libostree/ostree-soup-uri.h \
src/libostree/ostree-soup-uri.c \
src/libostree/ostree-soup-form.c \
src/libostree/ostree-fetcher-soup.c \ src/libostree/ostree-fetcher-soup.c \
src/libostree/ostree-sign.c src/libostree/ostree-sign.h \ src/libostree/ostree-sign.c src/libostree/ostree-sign.h \
src/libostree/ostree-sign-dummy.c \ src/libostree/ostree-sign-dummy.c \
@ -865,13 +858,8 @@ am__libostree_1_la_SOURCES_DIST = \
@USE_CURL_OR_SOUP_TRUE@ src/libostree/libostree_1_la-ostree-metalink.lo \ @USE_CURL_OR_SOUP_TRUE@ src/libostree/libostree_1_la-ostree-metalink.lo \
@USE_CURL_OR_SOUP_TRUE@ $(am__objects_1) @USE_CURL_OR_SOUP_TRUE@ $(am__objects_1)
@USE_CURL_TRUE@am__objects_8 = src/libostree/libostree_1_la-ostree-fetcher-curl.lo \ @USE_CURL_TRUE@am__objects_8 = src/libostree/libostree_1_la-ostree-fetcher-curl.lo \
@USE_CURL_TRUE@ src/libostree/libostree_1_la-ostree-soup-uri.lo \
@USE_CURL_TRUE@ src/libostree/libostree_1_la-ostree-soup-form.lo \
@USE_CURL_TRUE@ $(am__objects_1) @USE_CURL_TRUE@ $(am__objects_1)
@USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__objects_9 = src/libostree/libostree_1_la-ostree-fetcher-soup.lo @USE_CURL_FALSE@@USE_LIBSOUP_TRUE@am__objects_9 = src/libostree/libostree_1_la-ostree-fetcher-soup.lo
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@am__objects_10 = src/libostree/libostree_1_la-ostree-soup-uri.lo \
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ src/libostree/libostree_1_la-ostree-soup-form.lo \
@USE_AVAHI_TRUE@@USE_CURL_FALSE@@USE_LIBSOUP_FALSE@ $(am__objects_1)
am_libostree_1_la_OBJECTS = \ am_libostree_1_la_OBJECTS = \
src/libostree/libostree_1_la-ostree-async-progress.lo \ src/libostree/libostree_1_la-ostree-async-progress.lo \
src/libostree/libostree_1_la-ostree-cmdprivate.lo \ src/libostree/libostree_1_la-ostree-cmdprivate.lo \
@ -931,7 +919,7 @@ am_libostree_1_la_OBJECTS = \
$(am__objects_1) $(am__objects_2) $(am__objects_3) \ $(am__objects_1) $(am__objects_2) $(am__objects_3) \
$(am__objects_4) $(am__objects_5) $(am__objects_6) \ $(am__objects_4) $(am__objects_5) $(am__objects_6) \
$(am__objects_7) $(am__objects_8) $(am__objects_9) \ $(am__objects_7) $(am__objects_8) $(am__objects_9) \
$(am__objects_10) src/libostree/libostree_1_la-ostree-sign.lo \ src/libostree/libostree_1_la-ostree-sign.lo \
src/libostree/libostree_1_la-ostree-sign-dummy.lo \ src/libostree/libostree_1_la-ostree-sign-dummy.lo \
src/libostree/libostree_1_la-ostree-sign-ed25519.lo \ src/libostree/libostree_1_la-ostree-sign-ed25519.lo \
$(am__objects_1) $(am__objects_1)
@ -974,7 +962,7 @@ am__libotutil_la_SOURCES_DIST = src/libotutil/ot-checksum-utils.c \
src/libotutil/ot-tool-util.h src/libotutil/ot-gpg-utils.c \ src/libotutil/ot-tool-util.h src/libotutil/ot-gpg-utils.c \
src/libotutil/ot-gpg-utils.h src/libotutil/zbase32.c \ src/libotutil/ot-gpg-utils.h src/libotutil/zbase32.c \
src/libotutil/zbase32.h src/libotutil/zbase32.h
@USE_GPGME_TRUE@am__objects_11 = \ @USE_GPGME_TRUE@am__objects_10 = \
@USE_GPGME_TRUE@ src/libotutil/libotutil_la-ot-gpg-utils.lo \ @USE_GPGME_TRUE@ src/libotutil/libotutil_la-ot-gpg-utils.lo \
@USE_GPGME_TRUE@ src/libotutil/libotutil_la-zbase32.lo \ @USE_GPGME_TRUE@ src/libotutil/libotutil_la-zbase32.lo \
@USE_GPGME_TRUE@ $(am__objects_1) @USE_GPGME_TRUE@ $(am__objects_1)
@ -989,7 +977,7 @@ am_libotutil_la_OBJECTS = \
src/libotutil/libotutil_la-ot-variant-builder.lo \ src/libotutil/libotutil_la-ot-variant-builder.lo \
src/libotutil/libotutil_la-ot-gio-utils.lo \ src/libotutil/libotutil_la-ot-gio-utils.lo \
src/libotutil/libotutil_la-ot-tool-util.lo $(am__objects_1) \ src/libotutil/libotutil_la-ot-tool-util.lo $(am__objects_1) \
$(am__objects_11) $(am__objects_10)
libotutil_la_OBJECTS = $(am_libotutil_la_OBJECTS) libotutil_la_OBJECTS = $(am_libotutil_la_OBJECTS)
libotutil_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ libotutil_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libotutil_la_CFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libotutil_la_CFLAGS) \
@ -1031,6 +1019,7 @@ am__ostree_SOURCES_DIST = src/ostree/main.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-finalize-staged.c \ src/ostree/ot-admin-builtin-finalize-staged.c \
src/ostree/ot-admin-builtin-boot-complete.c \
src/ostree/ot-admin-builtin-undeploy.c \ src/ostree/ot-admin-builtin-undeploy.c \
src/ostree/ot-admin-builtin-instutil.c \ src/ostree/ot-admin-builtin-instutil.c \
src/ostree/ot-admin-builtin-cleanup.c \ src/ostree/ot-admin-builtin-cleanup.c \
@ -1064,18 +1053,18 @@ am__ostree_SOURCES_DIST = src/ostree/main.c \
src/ostree/ot-remote-cookie-util.c \ src/ostree/ot-remote-cookie-util.c \
src/ostree/ot-builtin-pull.c \ src/ostree/ot-builtin-pull.c \
src/ostree/ot-builtin-trivial-httpd.c src/ostree/ot-builtin-trivial-httpd.c
@USE_GPGME_TRUE@am__objects_12 = src/ostree/ostree-ot-builtin-gpg-sign.$(OBJEXT) \ @USE_GPGME_TRUE@am__objects_11 = src/ostree/ostree-ot-builtin-gpg-sign.$(OBJEXT) \
@USE_GPGME_TRUE@ $(am__objects_1) @USE_GPGME_TRUE@ $(am__objects_1)
@USE_GPGME_TRUE@am__objects_13 = src/ostree/ostree-ot-remote-builtin-gpg-import.$(OBJEXT) \ @USE_GPGME_TRUE@am__objects_12 = src/ostree/ostree-ot-remote-builtin-gpg-import.$(OBJEXT) \
@USE_GPGME_TRUE@ src/ostree/ostree-ot-remote-builtin-gpg-list-keys.$(OBJEXT) \ @USE_GPGME_TRUE@ src/ostree/ostree-ot-remote-builtin-gpg-list-keys.$(OBJEXT) \
@USE_GPGME_TRUE@ $(am__objects_1) @USE_GPGME_TRUE@ $(am__objects_1)
@USE_CURL_OR_SOUP_TRUE@am__objects_14 = src/ostree/ostree-ot-remote-builtin-add-cookie.$(OBJEXT) \ @USE_CURL_OR_SOUP_TRUE@am__objects_13 = src/ostree/ostree-ot-remote-builtin-add-cookie.$(OBJEXT) \
@USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-builtin-delete-cookie.$(OBJEXT) \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-builtin-delete-cookie.$(OBJEXT) \
@USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-builtin-list-cookies.$(OBJEXT) \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-builtin-list-cookies.$(OBJEXT) \
@USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-cookie-util.$(OBJEXT) \ @USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-remote-cookie-util.$(OBJEXT) \
@USE_CURL_OR_SOUP_TRUE@ $(am__objects_1) \ @USE_CURL_OR_SOUP_TRUE@ $(am__objects_1) \
@USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-builtin-pull.$(OBJEXT) @USE_CURL_OR_SOUP_TRUE@ src/ostree/ostree-ot-builtin-pull.$(OBJEXT)
@USE_LIBSOUP_TRUE@am__objects_15 = src/ostree/ostree-ot-builtin-trivial-httpd.$(OBJEXT) @USE_LIBSOUP_TRUE@am__objects_14 = src/ostree/ostree-ot-builtin-trivial-httpd.$(OBJEXT)
am_ostree_OBJECTS = src/ostree/ostree-main.$(OBJEXT) \ am_ostree_OBJECTS = src/ostree/ostree-main.$(OBJEXT) \
src/ostree/ostree-ot-builtin-admin.$(OBJEXT) \ src/ostree/ostree-ot-builtin-admin.$(OBJEXT) \
src/ostree/ostree-ot-builtin-cat.$(OBJEXT) \ src/ostree/ostree-ot-builtin-cat.$(OBJEXT) \
@ -1104,11 +1093,12 @@ am_ostree_OBJECTS = src/ostree/ostree-main.$(OBJEXT) \
src/ostree/ostree-ot-main.$(OBJEXT) \ src/ostree/ostree-ot-main.$(OBJEXT) \
src/ostree/ostree-ot-dump.$(OBJEXT) \ src/ostree/ostree-ot-dump.$(OBJEXT) \
src/ostree/ostree-ot-editor.$(OBJEXT) $(am__objects_1) \ src/ostree/ostree-ot-editor.$(OBJEXT) $(am__objects_1) \
$(am__objects_12) \ $(am__objects_11) \
src/ostree/ostree-ot-admin-builtin-init-fs.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-init-fs.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-diff.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-diff.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-deploy.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-deploy.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-finalize-staged.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-finalize-staged.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-boot-complete.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-undeploy.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-undeploy.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-instutil.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-instutil.$(OBJEXT) \
src/ostree/ostree-ot-admin-builtin-cleanup.$(OBJEXT) \ src/ostree/ostree-ot-admin-builtin-cleanup.$(OBJEXT) \
@ -1130,8 +1120,8 @@ am_ostree_OBJECTS = src/ostree/ostree-main.$(OBJEXT) \
src/ostree/ostree-ot-remote-builtin-show-url.$(OBJEXT) \ src/ostree/ostree-ot-remote-builtin-show-url.$(OBJEXT) \
src/ostree/ostree-ot-remote-builtin-refs.$(OBJEXT) \ src/ostree/ostree-ot-remote-builtin-refs.$(OBJEXT) \
src/ostree/ostree-ot-remote-builtin-summary.$(OBJEXT) \ src/ostree/ostree-ot-remote-builtin-summary.$(OBJEXT) \
$(am__objects_1) $(am__objects_13) $(am__objects_14) \ $(am__objects_1) $(am__objects_12) $(am__objects_13) \
$(am__objects_15) $(am__objects_14)
nodist_ostree_OBJECTS = src/ostree/ostree-parse-datetime.$(OBJEXT) \ nodist_ostree_OBJECTS = src/ostree/ostree-parse-datetime.$(OBJEXT) \
$(am__objects_1) $(am__objects_1)
ostree_OBJECTS = $(am_ostree_OBJECTS) $(nodist_ostree_OBJECTS) ostree_OBJECTS = $(am_ostree_OBJECTS) $(nodist_ostree_OBJECTS)
@ -1187,9 +1177,9 @@ rofiles_fuse_OBJECTS = $(am_rofiles_fuse_OBJECTS)
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 $@
am__objects_16 = \ am__objects_15 = \
libglnx/tests/test_libglnx_errors-libglnx-testlib.$(OBJEXT) libglnx/tests/test_libglnx_errors-libglnx-testlib.$(OBJEXT)
am_test_libglnx_errors_OBJECTS = $(am__objects_16) \ am_test_libglnx_errors_OBJECTS = $(am__objects_15) \
libglnx/tests/test_libglnx_errors-test-libglnx-errors.$(OBJEXT) libglnx/tests/test_libglnx_errors-test-libglnx-errors.$(OBJEXT)
test_libglnx_errors_OBJECTS = $(am_test_libglnx_errors_OBJECTS) test_libglnx_errors_OBJECTS = $(am_test_libglnx_errors_OBJECTS)
test_libglnx_errors_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la test_libglnx_errors_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la
@ -1197,9 +1187,9 @@ test_libglnx_errors_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_libglnx_errors_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(test_libglnx_errors_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@ $(LDFLAGS) -o $@
am__objects_17 = \ am__objects_16 = \
libglnx/tests/test_libglnx_fdio-libglnx-testlib.$(OBJEXT) libglnx/tests/test_libglnx_fdio-libglnx-testlib.$(OBJEXT)
am_test_libglnx_fdio_OBJECTS = $(am__objects_17) \ am_test_libglnx_fdio_OBJECTS = $(am__objects_16) \
libglnx/tests/test_libglnx_fdio-test-libglnx-fdio.$(OBJEXT) libglnx/tests/test_libglnx_fdio-test-libglnx-fdio.$(OBJEXT)
test_libglnx_fdio_OBJECTS = $(am_test_libglnx_fdio_OBJECTS) test_libglnx_fdio_OBJECTS = $(am_test_libglnx_fdio_OBJECTS)
test_libglnx_fdio_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la test_libglnx_fdio_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la
@ -1207,9 +1197,9 @@ test_libglnx_fdio_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_libglnx_fdio_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ $(test_libglnx_fdio_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-o $@ -o $@
am__objects_18 = \ am__objects_17 = \
libglnx/tests/test_libglnx_macros-libglnx-testlib.$(OBJEXT) libglnx/tests/test_libglnx_macros-libglnx-testlib.$(OBJEXT)
am_test_libglnx_macros_OBJECTS = $(am__objects_18) \ am_test_libglnx_macros_OBJECTS = $(am__objects_17) \
libglnx/tests/test_libglnx_macros-test-libglnx-macros.$(OBJEXT) libglnx/tests/test_libglnx_macros-test-libglnx-macros.$(OBJEXT)
test_libglnx_macros_OBJECTS = $(am_test_libglnx_macros_OBJECTS) test_libglnx_macros_OBJECTS = $(am_test_libglnx_macros_OBJECTS)
test_libglnx_macros_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la test_libglnx_macros_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la
@ -1217,9 +1207,9 @@ test_libglnx_macros_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_libglnx_macros_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(test_libglnx_macros_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@ $(LDFLAGS) -o $@
am__objects_19 = \ am__objects_18 = \
libglnx/tests/test_libglnx_shutil-libglnx-testlib.$(OBJEXT) libglnx/tests/test_libglnx_shutil-libglnx-testlib.$(OBJEXT)
am_test_libglnx_shutil_OBJECTS = $(am__objects_19) \ am_test_libglnx_shutil_OBJECTS = $(am__objects_18) \
libglnx/tests/test_libglnx_shutil-test-libglnx-shutil.$(OBJEXT) libglnx/tests/test_libglnx_shutil-test-libglnx-shutil.$(OBJEXT)
test_libglnx_shutil_OBJECTS = $(am_test_libglnx_shutil_OBJECTS) test_libglnx_shutil_OBJECTS = $(am_test_libglnx_shutil_OBJECTS)
test_libglnx_shutil_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la test_libglnx_shutil_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la
@ -1227,9 +1217,9 @@ test_libglnx_shutil_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(test_libglnx_shutil_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ $(test_libglnx_shutil_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@ $(LDFLAGS) -o $@
am__objects_20 = \ am__objects_19 = \
libglnx/tests/test_libglnx_xattrs-libglnx-testlib.$(OBJEXT) libglnx/tests/test_libglnx_xattrs-libglnx-testlib.$(OBJEXT)
am_test_libglnx_xattrs_OBJECTS = $(am__objects_20) \ am_test_libglnx_xattrs_OBJECTS = $(am__objects_19) \
libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.$(OBJEXT) libglnx/tests/test_libglnx_xattrs-test-libglnx-xattrs.$(OBJEXT)
test_libglnx_xattrs_OBJECTS = $(am_test_libglnx_xattrs_OBJECTS) test_libglnx_xattrs_OBJECTS = $(am_test_libglnx_xattrs_OBJECTS)
test_libglnx_xattrs_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la test_libglnx_xattrs_DEPENDENCIES = $(am__DEPENDENCIES_2) libglnx.la
@ -1584,8 +1574,6 @@ am__depfiles_remade = bsdiff/$(DEPDIR)/libbsdiff_la-bsdiff.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo \
src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo \ src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo \
@ -1617,6 +1605,7 @@ am__depfiles_remade = bsdiff/$(DEPDIR)/libbsdiff_la-bsdiff.Plo \
src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo \ src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo \
src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo \ src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo \
src/ostree/$(DEPDIR)/ostree-main.Po \ src/ostree/$(DEPDIR)/ostree-main.Po \
src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po \
src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po \ src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po \
src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po \ src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po \
src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po \ src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po \
@ -2079,7 +2068,7 @@ am__EXEEXT_23 = tests/test-basic.sh \
tests/test-signed-commit.sh tests/test-signed-pull.sh \ tests/test-signed-commit.sh tests/test-signed-pull.sh \
tests/test-pre-signed-pull.sh \ tests/test-pre-signed-pull.sh \
tests/test-signed-pull-summary.sh $(am__EXEEXT_2) \ tests/test-signed-pull-summary.sh $(am__EXEEXT_2) \
$(am__EXEEXT_20) $(am__append_68) $(am__append_71) \ $(am__EXEEXT_20) $(am__append_67) $(am__append_70) \
$(am__EXEEXT_22) $(am__EXEEXT_22)
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_24 = \ @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_24 = \
@ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_23) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_23)
@ -2377,8 +2366,8 @@ AM_CPPFLAGS = -DDATADIR='"$(datadir)"' -DLIBEXECDIR='"$(libexecdir)"' \
-DSHORTENED_SYSCONFDIR=\"$(shortened_sysconfdir)\" \ -DSHORTENED_SYSCONFDIR=\"$(shortened_sysconfdir)\" \
-DOSTREE_FEATURES='"$(OSTREE_FEATURES)"' -DOSTREE_COMPILATION \ -DOSTREE_FEATURES='"$(OSTREE_FEATURES)"' -DOSTREE_COMPILATION \
-DG_LOG_DOMAIN=\"OSTree\" -DOSTREE_GITREV='"$(OSTREE_GITREV)"' \ -DG_LOG_DOMAIN=\"OSTree\" -DOSTREE_GITREV='"$(OSTREE_GITREV)"' \
-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_44 \ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_66 \
'-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,50)' \ '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,70)' \
-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 \ -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 \
'-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)' '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)'
# For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622 # For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622
@ -2386,8 +2375,8 @@ 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_64) \ --disable-maintainer-mode $(NULL) $(am__append_63) \
$(am__append_83) \ $(am__append_82) \
BASH_COMPLETIONSDIR='$${datadir}/bash-completion/completions' BASH_COMPLETIONSDIR='$${datadir}/bash-completion/completions'
SUBDIRS = . $(am__append_14) SUBDIRS = . $(am__append_14)
NULL = NULL =
@ -2395,7 +2384,7 @@ BUILT_SOURCES = $(top_builddir)/libglnx-config.h \
$(nodist_libostree_1_la_SOURCES) $(nodist_libostree_1_la_SOURCES)
MANPAGES = MANPAGES =
CLEANFILES = $(am__append_13) $(top_builddir)/libglnx-config.h \ CLEANFILES = $(am__append_13) $(top_builddir)/libglnx-config.h \
$(BUILT_SOURCES) $(am__append_44) src/ostree/parse-datetime.c \ $(BUILT_SOURCES) $(am__append_43) src/ostree/parse-datetime.c \
tests/libreaddir-rand.so tests/ostree-symlink-stamp \ tests/libreaddir-rand.so 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 \
@ -2420,37 +2409,38 @@ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \
src/libostree/s390x-se-luks-gencpio \ src/libostree/s390x-se-luks-gencpio \
src/ostree/parse-datetime.y buildutil/tap-driver.sh \ src/ostree/parse-datetime.y buildutil/tap-driver.sh \
buildutil/tap-test tests/glib.supp tests/ostree.supp $(NULL) \ buildutil/tap-test tests/glib.supp tests/ostree.supp $(NULL) \
$(am__append_70) $(am__append_73) tests/libtest.sh \ $(am__append_69) $(am__append_72) tests/libtest.sh \
$(am__append_74) $(am__append_79) tests/libostreetest.h \ $(am__append_73) $(am__append_78) tests/libostreetest.h \
tests/libtest.sh $(NULL) src/boot/dracut/module-setup.sh \ tests/libtest.sh $(NULL) src/boot/dracut/module-setup.sh \
src/boot/dracut/ostree.conf src/boot/mkinitcpio \ src/boot/dracut/ostree.conf src/boot/mkinitcpio \
src/boot/ostree-boot-complete.service \
src/boot/ostree-prepare-root.service \ src/boot/ostree-prepare-root.service \
src/boot/ostree-finalize-staged.path \ src/boot/ostree-finalize-staged.path \
src/boot/ostree-remount.service \ src/boot/ostree-remount.service \
src/boot/ostree-finalize-staged.service \ src/boot/ostree-finalize-staged.service \
src/boot/grub2/grub2-15_ostree \ src/boot/grub2/grub2-15_ostree \
src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_88) \ src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_87) \
$(am__append_91) $(am__append_91)
bin_SCRIPTS = bin_SCRIPTS =
lib_LTLIBRARIES = libostree-1.la lib_LTLIBRARIES = libostree-1.la
# Secure Execution: script for creating new initramdisk with LUKS key and config # Secure Execution: script for creating new initramdisk with LUKS key and config
pkglibexec_SCRIPTS = src/libostree/s390x-se-luks-gencpio \ pkglibexec_SCRIPTS = src/libostree/s390x-se-luks-gencpio \
$(am__append_84) $(am__append_83)
noinst_LTLIBRARIES = $(am__append_1) libglnx.la libbsdiff.la \ noinst_LTLIBRARIES = $(am__append_1) libglnx.la libbsdiff.la \
libotutil.la libbupsplit.la libostreetest.la libotutil.la libbupsplit.la libostreetest.la
privlibdir = $(pkglibdir) 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_41) INTROSPECTION_GIRS = $(am__append_40)
girdir = $(datadir)/gir-1.0 girdir = $(datadir)/gir-1.0
gir_DATA = $(am__append_42) gir_DATA = $(am__append_41)
typelibdir = $(libdir)/girepository-1.0 typelibdir = $(libdir)/girepository-1.0
typelib_DATA = $(am__append_43) typelib_DATA = $(am__append_42)
gsettings_SCHEMAS = gsettings_SCHEMAS =
ostree_bootdir = $(prefix)/lib/ostree ostree_bootdir = $(prefix)/lib/ostree
ostree_boot_SCRIPTS = $(am__append_58) $(am__append_86) ostree_boot_SCRIPTS = $(am__append_57) $(am__append_85)
# We should probably consider flipping the default for DEBUG. Also, # We should probably consider flipping the default for DEBUG. Also,
# include the builddir in $PATH so we find our just-built ostree # include the builddir in $PATH so we find our just-built ostree
@ -2467,7 +2457,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_66) $(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)
@ -2475,7 +2465,7 @@ installed_test_SCRIPTS = $(am__append_10)
installed_test_DATA = $(am__append_11) installed_test_DATA = $(am__append_11)
nobase_installed_test_DATA = nobase_installed_test_DATA =
noinst_SCRIPTS = $(am__append_3) noinst_SCRIPTS = $(am__append_3)
noinst_DATA = $(am__append_4) noinst_DATA = $(am__append_4) $(am__append_90)
check_LTLIBRARIES = $(am__append_5) check_LTLIBRARIES = $(am__append_5)
check_SCRIPTS = $(am__append_7) check_SCRIPTS = $(am__append_7)
check_DATA = $(am__append_8) check_DATA = $(am__append_8)
@ -2507,8 +2497,8 @@ 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_82) \ INSTALL_DATA_HOOKS = install-mkdir-remotes-d-hook $(am__append_81) \
$(am__append_85) $(am__append_84)
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)
@ -2522,7 +2512,7 @@ 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 fastbuild-*.qcow2 _kola_temp/ target/ Cargo.lock \ gtk-doc.make fastbuild-*.qcow2 _kola_temp/ target/ Cargo.lock \
docs/.bundle/ docs/Gemfile.lock docs/_site/ docs/reference/ \ docs/.bundle/ docs/Gemfile.lock docs/_site/ docs/reference/ \
docs/vendor/ $(NULL) $(am__append_63) docs/vendor/ $(NULL) $(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)
@ -2734,7 +2724,7 @@ libostree_1_la_SOURCES = src/libostree/ostree-async-progress.c \
src/libostree/ostree-kernel-args.c $(NULL) $(am__append_16) \ src/libostree/ostree-kernel-args.c $(NULL) $(am__append_16) \
$(am__append_17) $(am__append_18) $(am__append_19) \ $(am__append_17) $(am__append_18) $(am__append_19) \
$(am__append_20) $(am__append_27) $(am__append_28) \ $(am__append_20) $(am__append_27) $(am__append_28) \
$(am__append_31) $(am__append_34) src/libostree/ostree-sign.c \ $(am__append_31) src/libostree/ostree-sign.c \
src/libostree/ostree-sign.h src/libostree/ostree-sign-dummy.c \ src/libostree/ostree-sign.h src/libostree/ostree-sign-dummy.c \
src/libostree/ostree-sign-dummy.h \ src/libostree/ostree-sign-dummy.h \
src/libostree/ostree-sign-ed25519.c \ src/libostree/ostree-sign-ed25519.c \
@ -2757,8 +2747,8 @@ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \
'-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \ '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \
extern' -DPKGLIBEXECDIR=\"$(pkglibexecdir)\" $(am__append_21) \ extern' -DPKGLIBEXECDIR=\"$(pkglibexecdir)\" $(am__append_21) \
$(am__append_23) $(am__append_25) $(am__append_29) \ $(am__append_23) $(am__append_25) $(am__append_29) \
$(am__append_32) $(am__append_35) $(am__append_37) \ $(am__append_32) $(am__append_34) $(am__append_36) \
$(am__append_39) $(am__append_38)
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))
# Some change between rust-1.21.0-1.fc27 and rust-1.22.1-1.fc27.x86_64 # Some change between rust-1.21.0-1.fc27 and rust-1.22.1-1.fc27.x86_64
libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \
@ -2766,7 +2756,7 @@ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \
$(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_LIBS) \ $(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_CRYPTO_LIBS) \
$(bupsplitpath) $(am__append_22) $(am__append_24) \ $(bupsplitpath) $(am__append_22) $(am__append_24) \
$(am__append_26) $(am__append_30) $(am__append_33) \ $(am__append_26) $(am__append_30) $(am__append_33) \
$(am__append_36) $(am__append_38) $(am__append_40) $(am__append_35) $(am__append_37) $(am__append_39)
EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files) EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)
# XXX: work around clang being passed -fstack-clash-protection which it doesn't understand # XXX: work around clang being passed -fstack-clash-protection which it doesn't understand
@ -2803,11 +2793,12 @@ ostree_SOURCES = src/ostree/main.c src/ostree/ot-builtin-admin.c \
src/ostree/ot-builtin-static-delta.c src/ostree/ot-main.h \ src/ostree/ot-builtin-static-delta.c src/ostree/ot-main.h \
src/ostree/ot-main.c src/ostree/ot-dump.h src/ostree/ot-dump.c \ src/ostree/ot-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 $(NULL) $(am__append_45) \ src/ostree/parse-datetime.h $(NULL) $(am__append_44) \
src/ostree/ot-admin-builtin-init-fs.c \ 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-finalize-staged.c \ src/ostree/ot-admin-builtin-finalize-staged.c \
src/ostree/ot-admin-builtin-boot-complete.c \
src/ostree/ot-admin-builtin-undeploy.c \ src/ostree/ot-admin-builtin-undeploy.c \
src/ostree/ot-admin-builtin-instutil.c \ src/ostree/ot-admin-builtin-instutil.c \
src/ostree/ot-admin-builtin-cleanup.c \ src/ostree/ot-admin-builtin-cleanup.c \
@ -2832,7 +2823,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_46) $(am__append_47) $(am__append_48) $(am__append_45) $(am__append_46) $(am__append_47)
nodist_ostree_SOURCES = \ nodist_ostree_SOURCES = \
src/ostree/parse-datetime.c \ src/ostree/parse-datetime.c \
$(NULL) $(NULL)
@ -2844,11 +2835,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_50) \ ostree_CFLAGS = $(ostree_bin_shared_cflags) $(am__append_49) \
$(am__append_52) $(am__append_54) $(am__append_51) $(am__append_53)
ostree_LDADD = $(ostree_bin_shared_ldadd) libbsdiff.la \ ostree_LDADD = $(ostree_bin_shared_ldadd) libbsdiff.la \
$(LIBSYSTEMD_LIBS) $(am__append_51) $(am__append_53) \ $(LIBSYSTEMD_LIBS) $(am__append_50) $(am__append_52) \
$(am__append_55) $(am__append_54)
@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)
@ -2857,8 +2848,8 @@ 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_60) \ ostree_prepare_root_CPPFLAGS = $(AM_CPPFLAGS) $(am__append_59) \
$(am__append_61) $(am__append_60)
@BUILDOPT_USE_STATIC_COMPILER_FALSE@ostree_prepare_root_CFLAGS = $(AM_CFLAGS) -Isrc/switchroot @BUILDOPT_USE_STATIC_COMPILER_FALSE@ostree_prepare_root_CFLAGS = $(AM_CFLAGS) -Isrc/switchroot
ostree_remount_SOURCES = \ ostree_remount_SOURCES = \
src/switchroot/ostree-mount-util.h \ src/switchroot/ostree-mount-util.h \
@ -2867,7 +2858,7 @@ ostree_remount_SOURCES = \
ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) \ ostree_remount_CPPFLAGS = $(AM_CPPFLAGS) \
$(OT_INTERNAL_GIO_UNIX_CFLAGS) -Isrc/switchroot \ $(OT_INTERNAL_GIO_UNIX_CFLAGS) -Isrc/switchroot \
-I$(srcdir)/libglnx $(am__append_62) -I$(srcdir)/libglnx $(am__append_61)
ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la
@BUILDOPT_SYSTEMD_TRUE@ostree_prepare_root_LDADD = $(AM_LDFLAGS) $(LIBSYSTEMD_LIBS) @BUILDOPT_SYSTEMD_TRUE@ostree_prepare_root_LDADD = $(AM_LDFLAGS) $(LIBSYSTEMD_LIBS)
@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 \
@ -2884,7 +2875,7 @@ ostree_remount_LDADD = $(AM_LDFLAGS) $(OT_INTERNAL_GIO_UNIX_LIBS) libglnx.la
@BUILDOPT_FUSE_TRUE@rofiles_fuse_LDADD = libglnx.la $(BUILDOPT_FUSE_LIBS) $(OT_INTERNAL_GIO_UNIX_LIBS) libostree-1.la @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_68)
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.
@ -2892,10 +2883,10 @@ dist_uninstalled_test_scripts = tests/test-symbols.sh tests/coccinelle.sh
# tests *only* run installed, to avoid having to run them twice in CI. # 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_80) dist_test_scripts = $(NULL) $(am__append_79)
test_programs = tests/test-bloom tests/test-repo-finder-config \ test_programs = tests/test-bloom tests/test-repo-finder-config \
tests/test-repo-finder-mount $(NULL) $(am__append_77) \ tests/test-repo-finder-mount $(NULL) $(am__append_76) \
$(am__append_81) $(am__append_80)
_installed_or_uninstalled_test_scripts = tests/test-basic.sh \ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \
tests/test-basic-bare-split-xattrs.sh tests/test-basic-user.sh \ tests/test-basic-bare-split-xattrs.sh tests/test-basic-user.sh \
tests/test-basic-user-only.sh tests/test-basic-root.sh \ tests/test-basic-user-only.sh tests/test-basic-root.sh \
@ -2952,8 +2943,8 @@ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \
tests/test-pull-collections.sh tests/test-config.sh \ tests/test-pull-collections.sh tests/test-config.sh \
tests/test-signed-commit.sh tests/test-signed-pull.sh \ tests/test-signed-commit.sh tests/test-signed-pull.sh \
tests/test-pre-signed-pull.sh \ tests/test-pre-signed-pull.sh \
tests/test-signed-pull-summary.sh $(NULL) $(am__append_67) \ tests/test-signed-pull-summary.sh $(NULL) $(am__append_66) \
$(am__append_68) $(am__append_71) $(am__append_72) $(am__append_67) $(am__append_70) $(am__append_71)
test_extra_programs = \ test_extra_programs = \
tests/get-byte-order \ tests/get-byte-order \
tests/repo-finder-mount \ tests/repo-finder-mount \
@ -2980,7 +2971,7 @@ dist_installed_test_data = tests/archive-test.sh \
tests/ostree-path-traverse.tar.gz \ tests/ostree-path-traverse.tar.gz \
tests/pre-signed-pull-data.tar.gz \ tests/pre-signed-pull-data.tar.gz \
tests/libtest-core.sh \ tests/libtest-core.sh \
tests/fixtures/bare-split-xattrs/basic.tar.xz \ tests/bare-split-xattrs-basic.tar.xz \
$(NULL) $(NULL)
dist_test_extra_scripts = \ dist_test_extra_scripts = \
@ -3030,7 +3021,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_74)
_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 \
@ -3038,7 +3029,7 @@ _installed_or_uninstalled_test_programs = tests/test-varint \
tests/test-checksum tests/test-lzma tests/test-rollsum \ tests/test-checksum tests/test-lzma tests/test-rollsum \
tests/test-basic-c tests/test-sysroot-c tests/test-pull-c \ tests/test-basic-c tests/test-sysroot-c tests/test-pull-c \
tests/test-repo tests/test-include-ostree-h tests/test-kargs \ tests/test-repo tests/test-include-ostree-h tests/test-kargs \
tests/test-rfc2616-dates $(am__append_76) $(am__append_78) tests/test-rfc2616-dates $(am__append_75) $(am__append_77)
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
@ -3141,6 +3132,7 @@ tests_test_commit_sign_sh_ext_LDADD = $(TESTS_LDADD)
@BUILDOPT_MKINITCPIO_TRUE@mkinitcpioconf_DATA = src/boot/mkinitcpio/ostree-mkinitcpio.conf @BUILDOPT_MKINITCPIO_TRUE@mkinitcpioconf_DATA = src/boot/mkinitcpio/ostree-mkinitcpio.conf
@BUILDOPT_SYSTEMD_TRUE@systemdsystemunit_DATA = src/boot/ostree-prepare-root.service \ @BUILDOPT_SYSTEMD_TRUE@systemdsystemunit_DATA = src/boot/ostree-prepare-root.service \
@BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-remount.service \ @BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-remount.service \
@BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-boot-complete.service \
@BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-finalize-staged.service \ @BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-finalize-staged.service \
@BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-finalize-staged.path \ @BUILDOPT_SYSTEMD_TRUE@ src/boot/ostree-finalize-staged.path \
@BUILDOPT_SYSTEMD_TRUE@ $(NULL) @BUILDOPT_SYSTEMD_TRUE@ $(NULL)
@ -3148,6 +3140,9 @@ tests_test_commit_sign_sh_ext_LDADD = $(TESTS_LDADD)
@BUILDOPT_SYSTEMD_TRUE@systemdtmpfilesdir = $(prefix)/lib/tmpfiles.d @BUILDOPT_SYSTEMD_TRUE@systemdtmpfilesdir = $(prefix)/lib/tmpfiles.d
@BUILDOPT_SYSTEMD_TRUE@dist_systemdtmpfiles_DATA = src/boot/ostree-tmpfiles.conf @BUILDOPT_SYSTEMD_TRUE@dist_systemdtmpfiles_DATA = src/boot/ostree-tmpfiles.conf
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@grub2configdir = $(sysconfdir)/grub.d @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@grub2configdir = $(sysconfdir)/grub.d
# If you add a new man page here, add a reference to it in index.xml and
# ostree.xml.
@ENABLE_MAN_TRUE@man1_files = ostree.1 ostree-admin-cleanup.1 \ @ENABLE_MAN_TRUE@man1_files = ostree.1 ostree-admin-cleanup.1 \
@ENABLE_MAN_TRUE@ ostree-admin-config-diff.1 \ @ENABLE_MAN_TRUE@ ostree-admin-config-diff.1 \
@ENABLE_MAN_TRUE@ ostree-admin-deploy.1 ostree-admin-init-fs.1 \ @ENABLE_MAN_TRUE@ ostree-admin-deploy.1 ostree-admin-init-fs.1 \
@ -3167,12 +3162,19 @@ tests_test_commit_sign_sh_ext_LDADD = $(TESTS_LDADD)
@ENABLE_MAN_TRUE@ ostree-pull.1 ostree-refs.1 ostree-remote.1 \ @ENABLE_MAN_TRUE@ ostree-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-sign.1 ostree-summary.1 \ @ENABLE_MAN_TRUE@ ostree-show.1 ostree-sign.1 ostree-summary.1 \
@ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_87) \ @ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_86) \
@ENABLE_MAN_TRUE@ $(am__append_89) $(am__append_90) @ENABLE_MAN_TRUE@ $(am__append_88) $(am__append_89)
@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))
@ENABLE_MAN_TRUE@XSLT_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl @ENABLE_MAN_TRUE@manhtml_files = \
@ENABLE_MAN_TRUE@ man/html/index.html \
@ENABLE_MAN_TRUE@ $(addprefix man/html/,$(man1_files:.1=.html)) \
@ENABLE_MAN_TRUE@ $(addprefix man/html/,$(man5_files:.5=.html)) \
@ENABLE_MAN_TRUE@ $(NULL)
@ENABLE_MAN_TRUE@XSLT_MAN_STYLESHEET = http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
@ENABLE_MAN_TRUE@XSLT_HTML_STYLESHEET = man/html.xsl
@ENABLE_MAN_TRUE@XSLTPROC_FLAGS = \ @ENABLE_MAN_TRUE@XSLTPROC_FLAGS = \
@ENABLE_MAN_TRUE@ --nonet \ @ENABLE_MAN_TRUE@ --nonet \
@ENABLE_MAN_TRUE@ --stringparam man.output.quietly 1 \ @ENABLE_MAN_TRUE@ --stringparam man.output.quietly 1 \
@ -3978,12 +3980,6 @@ src/libostree/libostree_1_la-ostree-metalink.lo: \
src/libostree/libostree_1_la-ostree-fetcher-curl.lo: \ src/libostree/libostree_1_la-ostree-fetcher-curl.lo: \
src/libostree/$(am__dirstamp) \ src/libostree/$(am__dirstamp) \
src/libostree/$(DEPDIR)/$(am__dirstamp) src/libostree/$(DEPDIR)/$(am__dirstamp)
src/libostree/libostree_1_la-ostree-soup-uri.lo: \
src/libostree/$(am__dirstamp) \
src/libostree/$(DEPDIR)/$(am__dirstamp)
src/libostree/libostree_1_la-ostree-soup-form.lo: \
src/libostree/$(am__dirstamp) \
src/libostree/$(DEPDIR)/$(am__dirstamp)
src/libostree/libostree_1_la-ostree-fetcher-soup.lo: \ src/libostree/libostree_1_la-ostree-fetcher-soup.lo: \
src/libostree/$(am__dirstamp) \ src/libostree/$(am__dirstamp) \
src/libostree/$(DEPDIR)/$(am__dirstamp) src/libostree/$(DEPDIR)/$(am__dirstamp)
@ -4164,6 +4160,9 @@ src/ostree/ostree-ot-admin-builtin-deploy.$(OBJEXT): \
src/ostree/ostree-ot-admin-builtin-finalize-staged.$(OBJEXT): \ src/ostree/ostree-ot-admin-builtin-finalize-staged.$(OBJEXT): \
src/ostree/$(am__dirstamp) \ src/ostree/$(am__dirstamp) \
src/ostree/$(DEPDIR)/$(am__dirstamp) src/ostree/$(DEPDIR)/$(am__dirstamp)
src/ostree/ostree-ot-admin-builtin-boot-complete.$(OBJEXT): \
src/ostree/$(am__dirstamp) \
src/ostree/$(DEPDIR)/$(am__dirstamp)
src/ostree/ostree-ot-admin-builtin-undeploy.$(OBJEXT): \ src/ostree/ostree-ot-admin-builtin-undeploy.$(OBJEXT): \
src/ostree/$(am__dirstamp) \ src/ostree/$(am__dirstamp) \
src/ostree/$(DEPDIR)/$(am__dirstamp) src/ostree/$(DEPDIR)/$(am__dirstamp)
@ -4873,8 +4872,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo@am__quote@ # am--include-marker
@ -4906,6 +4903,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-main.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-main.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po@am__quote@ # am--include-marker
@AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po@am__quote@ # am--include-marker
@ -5565,20 +5563,6 @@ src/libostree/libostree_1_la-ostree-fetcher-curl.lo: src/libostree/ostree-fetche
@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@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -c -o src/libostree/libostree_1_la-ostree-fetcher-curl.lo `test -f 'src/libostree/ostree-fetcher-curl.c' || echo '$(srcdir)/'`src/libostree/ostree-fetcher-curl.c @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -c -o src/libostree/libostree_1_la-ostree-fetcher-curl.lo `test -f 'src/libostree/ostree-fetcher-curl.c' || echo '$(srcdir)/'`src/libostree/ostree-fetcher-curl.c
src/libostree/libostree_1_la-ostree-soup-uri.lo: src/libostree/ostree-soup-uri.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -MT src/libostree/libostree_1_la-ostree-soup-uri.lo -MD -MP -MF src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Tpo -c -o src/libostree/libostree_1_la-ostree-soup-uri.lo `test -f 'src/libostree/ostree-soup-uri.c' || echo '$(srcdir)/'`src/libostree/ostree-soup-uri.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Tpo src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libostree/ostree-soup-uri.c' object='src/libostree/libostree_1_la-ostree-soup-uri.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -c -o src/libostree/libostree_1_la-ostree-soup-uri.lo `test -f 'src/libostree/ostree-soup-uri.c' || echo '$(srcdir)/'`src/libostree/ostree-soup-uri.c
src/libostree/libostree_1_la-ostree-soup-form.lo: src/libostree/ostree-soup-form.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -MT src/libostree/libostree_1_la-ostree-soup-form.lo -MD -MP -MF src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Tpo -c -o src/libostree/libostree_1_la-ostree-soup-form.lo `test -f 'src/libostree/ostree-soup-form.c' || echo '$(srcdir)/'`src/libostree/ostree-soup-form.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Tpo src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/libostree/ostree-soup-form.c' object='src/libostree/libostree_1_la-ostree-soup-form.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -c -o src/libostree/libostree_1_la-ostree-soup-form.lo `test -f 'src/libostree/ostree-soup-form.c' || echo '$(srcdir)/'`src/libostree/ostree-soup-form.c
src/libostree/libostree_1_la-ostree-fetcher-soup.lo: src/libostree/ostree-fetcher-soup.c src/libostree/libostree_1_la-ostree-fetcher-soup.lo: src/libostree/ostree-fetcher-soup.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -MT src/libostree/libostree_1_la-ostree-fetcher-soup.lo -MD -MP -MF src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Tpo -c -o src/libostree/libostree_1_la-ostree-fetcher-soup.lo `test -f 'src/libostree/ostree-fetcher-soup.c' || echo '$(srcdir)/'`src/libostree/ostree-fetcher-soup.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libostree_1_la_CFLAGS) $(CFLAGS) -MT src/libostree/libostree_1_la-ostree-fetcher-soup.lo -MD -MP -MF src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Tpo -c -o src/libostree/libostree_1_la-ostree-fetcher-soup.lo `test -f 'src/libostree/ostree-fetcher-soup.c' || echo '$(srcdir)/'`src/libostree/ostree-fetcher-soup.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Tpo src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Plo @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Tpo src/libostree/$(DEPDIR)/libostree_1_la-ostree-fetcher-soup.Plo
@ -6181,6 +6165,20 @@ src/ostree/ostree-ot-admin-builtin-finalize-staged.obj: src/ostree/ot-admin-buil
@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) $(ostree_CFLAGS) $(CFLAGS) -c -o src/ostree/ostree-ot-admin-builtin-finalize-staged.obj `if test -f 'src/ostree/ot-admin-builtin-finalize-staged.c'; then $(CYGPATH_W) 'src/ostree/ot-admin-builtin-finalize-staged.c'; else $(CYGPATH_W) '$(srcdir)/src/ostree/ot-admin-builtin-finalize-staged.c'; fi` @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ostree_CFLAGS) $(CFLAGS) -c -o src/ostree/ostree-ot-admin-builtin-finalize-staged.obj `if test -f 'src/ostree/ot-admin-builtin-finalize-staged.c'; then $(CYGPATH_W) 'src/ostree/ot-admin-builtin-finalize-staged.c'; else $(CYGPATH_W) '$(srcdir)/src/ostree/ot-admin-builtin-finalize-staged.c'; fi`
src/ostree/ostree-ot-admin-builtin-boot-complete.o: src/ostree/ot-admin-builtin-boot-complete.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ostree_CFLAGS) $(CFLAGS) -MT src/ostree/ostree-ot-admin-builtin-boot-complete.o -MD -MP -MF src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Tpo -c -o src/ostree/ostree-ot-admin-builtin-boot-complete.o `test -f 'src/ostree/ot-admin-builtin-boot-complete.c' || echo '$(srcdir)/'`src/ostree/ot-admin-builtin-boot-complete.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Tpo src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ostree/ot-admin-builtin-boot-complete.c' object='src/ostree/ostree-ot-admin-builtin-boot-complete.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) $(ostree_CFLAGS) $(CFLAGS) -c -o src/ostree/ostree-ot-admin-builtin-boot-complete.o `test -f 'src/ostree/ot-admin-builtin-boot-complete.c' || echo '$(srcdir)/'`src/ostree/ot-admin-builtin-boot-complete.c
src/ostree/ostree-ot-admin-builtin-boot-complete.obj: src/ostree/ot-admin-builtin-boot-complete.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ostree_CFLAGS) $(CFLAGS) -MT src/ostree/ostree-ot-admin-builtin-boot-complete.obj -MD -MP -MF src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Tpo -c -o src/ostree/ostree-ot-admin-builtin-boot-complete.obj `if test -f 'src/ostree/ot-admin-builtin-boot-complete.c'; then $(CYGPATH_W) 'src/ostree/ot-admin-builtin-boot-complete.c'; else $(CYGPATH_W) '$(srcdir)/src/ostree/ot-admin-builtin-boot-complete.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Tpo src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/ostree/ot-admin-builtin-boot-complete.c' object='src/ostree/ostree-ot-admin-builtin-boot-complete.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) $(ostree_CFLAGS) $(CFLAGS) -c -o src/ostree/ostree-ot-admin-builtin-boot-complete.obj `if test -f 'src/ostree/ot-admin-builtin-boot-complete.c'; then $(CYGPATH_W) 'src/ostree/ot-admin-builtin-boot-complete.c'; else $(CYGPATH_W) '$(srcdir)/src/ostree/ot-admin-builtin-boot-complete.c'; fi`
src/ostree/ostree-ot-admin-builtin-undeploy.o: src/ostree/ot-admin-builtin-undeploy.c src/ostree/ostree-ot-admin-builtin-undeploy.o: src/ostree/ot-admin-builtin-undeploy.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ostree_CFLAGS) $(CFLAGS) -MT src/ostree/ostree-ot-admin-builtin-undeploy.o -MD -MP -MF src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Tpo -c -o src/ostree/ostree-ot-admin-builtin-undeploy.o `test -f 'src/ostree/ot-admin-builtin-undeploy.c' || echo '$(srcdir)/'`src/ostree/ot-admin-builtin-undeploy.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ostree_CFLAGS) $(CFLAGS) -MT src/ostree/ostree-ot-admin-builtin-undeploy.o -MD -MP -MF src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Tpo -c -o src/ostree/ostree-ot-admin-builtin-undeploy.o `test -f 'src/ostree/ot-admin-builtin-undeploy.c' || echo '$(srcdir)/'`src/ostree/ot-admin-builtin-undeploy.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Tpo src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Po @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Tpo src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-undeploy.Po
@ -9342,8 +9340,6 @@ distclean: distclean-recursive
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo
@ -9375,6 +9371,7 @@ distclean: distclean-recursive
-rm -f src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo -rm -f src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo
-rm -f src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo -rm -f src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo
-rm -f src/ostree/$(DEPDIR)/ostree-main.Po -rm -f src/ostree/$(DEPDIR)/ostree-main.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po
@ -9624,8 +9621,6 @@ maintainer-clean: maintainer-clean-recursive
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-dummy.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign-ed25519.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sign.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-form.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-soup-uri.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-cleanup.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-deploy.Plo
-rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo -rm -f src/libostree/$(DEPDIR)/libostree_1_la-ostree-sysroot-upgrader.Plo
@ -9657,6 +9652,7 @@ maintainer-clean: maintainer-clean-recursive
-rm -f src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo -rm -f src/libotutil/$(DEPDIR)/libotutil_la-ot-variant-utils.Plo
-rm -f src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo -rm -f src/libotutil/$(DEPDIR)/libotutil_la-zbase32.Plo
-rm -f src/ostree/$(DEPDIR)/ostree-main.Po -rm -f src/ostree/$(DEPDIR)/ostree-main.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-boot-complete.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-cleanup.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-deploy.Po
-rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po -rm -f src/ostree/$(DEPDIR)/ostree-ot-admin-builtin-diff.Po
@ -9959,11 +9955,19 @@ install-kola-tests:
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@ mkdir -p $(DESTDIR)$(grub2configdir) @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@ mkdir -p $(DESTDIR)$(grub2configdir)
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@ ln -sf $(pkglibexecdir)/grub2-15_ostree $(DESTDIR)$(grub2configdir)/15_ostree @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@ ln -sf $(pkglibexecdir)/grub2-15_ostree $(DESTDIR)$(grub2configdir)/15_ostree
# Convenience target for building the just the HTML man pages
@ENABLE_MAN_HTML_TRUE@@ENABLE_MAN_TRUE@manhtml: $(manhtml_files)
@ENABLE_MAN_HTML_TRUE@@ENABLE_MAN_TRUE@.PHONY: manhtml
@ENABLE_MAN_TRUE@%.1: %.xml @ENABLE_MAN_TRUE@%.1: %.xml
@ENABLE_MAN_TRUE@ $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_STYLESHEET) $< @ENABLE_MAN_TRUE@ $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_MAN_STYLESHEET) $<
@ENABLE_MAN_TRUE@%.5: %.xml @ENABLE_MAN_TRUE@%.5: %.xml
@ENABLE_MAN_TRUE@ $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_STYLESHEET) $< @ENABLE_MAN_TRUE@ $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_MAN_STYLESHEET) $<
@ENABLE_MAN_TRUE@man/html/%.html: man/%.xml
@ENABLE_MAN_TRUE@ @mkdir -p man/html
@ENABLE_MAN_TRUE@ $(AM_V_GEN) $(XSLTPROC_MAN) --output $@ $(XSLT_HTML_STYLESHEET) $<
release-tag: release-tag:
cd $(srcdir) && git $(srcdir) tag -m "Release $(VERSION)" v$(VERSION) cd $(srcdir) && git $(srcdir) tag -m "Release $(VERSION)" v$(VERSION)

View File

@ -119,7 +119,7 @@ write higher level manual bindings on top; this is more common
for statically compiled languages. Here's a list of such bindings: for statically compiled languages. Here's a list of such bindings:
- [ostree-go](https://github.com/ostreedev/ostree-go/) - [ostree-go](https://github.com/ostreedev/ostree-go/)
- [ostree-rs](https://gitlab.com/fkrull/ostree-rs/) - [ostree-rs](https://github.com/ostreedev/ostree-rs/)
## Building ## Building

View File

@ -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 2021.6</p></div> <div><p class="releaseinfo">for OSTree 2022.3</p></div>
</div> </div>
<hr> <hr>
</div> </div>
@ -58,14 +58,35 @@
<span class="refentrytitle"><a href="ostree-ostree-checksum-input-stream.html">ostree-checksum-input-stream</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-checksum-input-stream.html">ostree-checksum-input-stream</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-content-writer.html">ostree-content-writer</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-deployment.html">ostree-deployment</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-deployment.html">ostree-deployment</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-diff.html">ostree-diff</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-diff.html">ostree-diff</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-kernel-args.html">ostree-kernel-args</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-ref.html">ostree-ref</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-remote.html">ostree-remote</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-file.html">ostree-repo-file</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-repo-file.html">ostree-repo-file</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-finder.html">ostree-repo-finder</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-remote-finder.html">ostree-repo-remote-finder</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-version.html">ostree-version</a></span><span class="refpurpose"> — ostree version checking</span>
</dt>
<dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt> <dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt>
</dl></dd> </dl></dd>
</dl></div> </dl></div>

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-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-content-writer.html" title="ostree-content-writer">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)"> <meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
@ -20,7 +20,7 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-chain-input-stream.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="p" href="ostree-ostree-chain-input-stream.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-deployment.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> <td><a accesskey="n" href="ostree-ostree-content-writer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table> </tr></table>
<div class="refentry"> <div class="refentry">
<a name="ostree-ostree-checksum-input-stream"></a><div class="titlepage"></div> <a name="ostree-ostree-checksum-input-stream"></a><div class="titlepage"></div>

View File

@ -0,0 +1,101 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-content-writer: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<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="next" href="ostree-ostree-deployment.html" title="ostree-deployment">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-content-writer.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-checksum-input-stream.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-deployment.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-content-writer"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-content-writer.top_of_page"></a>ostree-content-writer</span></h2>
<p>ostree-content-writer</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-content-writer.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody><tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-content-writer.html#ostree-content-writer-finish" title="ostree_content_writer_finish ()">ostree_content_writer_finish</a> <span class="c_punctuation">()</span>
</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-content-writer.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-content-writer.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-content-writer-finish"></a><h3>ostree_content_writer_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
ostree_content_writer_finish (<em class="parameter"><code><span class="type">OstreeContentWriter</span> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Complete the object write and return the checksum.</p>
<div class="refsect3">
<a name="ostree-content-writer-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>Writer</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>Cancellable</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>Error</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-content-writer-finish.returns"></a><h4>Returns</h4>
<p>Checksum, or <code class="literal">NULL</code> on error. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

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="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-content-writer.html" title="ostree-content-writer">
<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.33.1 (XML mode)"> <meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
@ -19,7 +19,7 @@
</td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-checksum-input-stream.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="p" href="ostree-ostree-content-writer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-diff.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> <td><a accesskey="n" href="ostree-ostree-diff.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table> </tr></table>
<div class="refentry"> <div class="refentry">

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-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-kernel-args.html" title="ostree-kernel-args">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)"> <meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
@ -20,7 +20,7 @@
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-deployment.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="p" href="ostree-ostree-deployment.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-repo-file.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> <td><a accesskey="n" href="ostree-ostree-kernel-args.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table> </tr></table>
<div class="refentry"> <div class="refentry">
<a name="ostree-ostree-diff"></a><div class="titlepage"></div> <a name="ostree-ostree-diff"></a><div class="titlepage"></div>

View File

@ -0,0 +1,865 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-kernel-args: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-diff.html" title="ostree-diff">
<link rel="next" href="ostree-ostree-ref.html" title="ostree-ref">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-kernel-args.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-diff.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-ref.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-kernel-args"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-kernel-args.top_of_page"></a>ostree-kernel-args</span></h2>
<p>ostree-kernel-args</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-kernel-args.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-free" title="ostree_kernel_args_free ()">ostree_kernel_args_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="returnvalue">OstreeKernelArgs</span></a> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-new" title="ostree_kernel_args_new ()">ostree_kernel_args_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-cleanup" title="ostree_kernel_args_cleanup ()">ostree_kernel_args_cleanup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-take" title="ostree_kernel_args_replace_take ()">ostree_kernel_args_replace_take</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace" title="ostree_kernel_args_replace ()">ostree_kernel_args_replace</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-argv" title="ostree_kernel_args_replace_argv ()">ostree_kernel_args_replace_argv</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append" title="ostree_kernel_args_append ()">ostree_kernel_args_append</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv" title="ostree_kernel_args_append_argv ()">ostree_kernel_args_append_argv</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv-filtered" title="ostree_kernel_args_append_argv_filtered ()">ostree_kernel_args_append_argv_filtered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-new-replace" title="ostree_kernel_args_new_replace ()">ostree_kernel_args_new_replace</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-delete" title="ostree_kernel_args_delete ()">ostree_kernel_args_delete</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-delete-key-entry" title="ostree_kernel_args_delete_key_entry ()">ostree_kernel_args_delete_key_entry</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-proc-cmdline" title="ostree_kernel_args_append_proc_cmdline ()">ostree_kernel_args_append_proc_cmdline</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-parse-append" title="ostree_kernel_args_parse_append ()">ostree_kernel_args_parse_append</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-get-last-value" title="ostree_kernel_args_get_last_value ()">ostree_kernel_args_get_last_value</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="returnvalue">OstreeKernelArgs</span></a> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-from-string" title="ostree_kernel_args_from_string ()">ostree_kernel_args_from_string</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> **
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-to-strv" title="ostree_kernel_args_to_strv ()">ostree_kernel_args_to_strv</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-to-string" title="ostree_kernel_args_to_string ()">ostree_kernel_args_to_string</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-kernel-args.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs">OstreeKernelArgs</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-kernel-args.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-kernel-args.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-kernel-args-free"></a><h3>ostree_kernel_args_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_free (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>);</pre>
<p>Frees the kargs structure</p>
<div class="refsect3">
<a name="ostree-kernel-args-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>An OstreeKernelArgs that represents kernel arguments</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-new"></a><h3>ostree_kernel_args_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="returnvalue">OstreeKernelArgs</span></a> *
ostree_kernel_args_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Initializes a new OstreeKernelArgs structure and returns it</p>
<p><span class="annotation">[<a href="http://foldoc.org/skip"><span class="acronym">skip</span></a>]</span></p>
<div class="refsect3">
<a name="ostree-kernel-args-new.returns"></a><h4>Returns</h4>
<p>A newly created <a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> for kernel arguments. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-cleanup"></a><h3>ostree_kernel_args_cleanup ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_cleanup (<em class="parameter"><code><span class="type">void</span> *loc</code></em>);</pre>
<p>Frees the OstreeKernelArgs structure pointed by *loc</p>
<div class="refsect3">
<a name="ostree-kernel-args-cleanup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>loc</p></td>
<td class="parameter_description"><p>Address of an OstreeKernelArgs pointer</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-replace-take"></a><h3>ostree_kernel_args_replace_take ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_replace_take (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code><span class="type">char</span> *arg</code></em>);</pre>
<p>Finds and replaces the old key if <em class="parameter"><code>arg</code></em>
is already in the hash table,
otherwise adds <em class="parameter"><code>arg</code></em>
as new key and split_keyeq (arg) as value.
Note that when replacing old key, the old values are freed.</p>
<div class="refsect3">
<a name="ostree-kernel-args-replace-take.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>arg</p></td>
<td class="parameter_description"><p>key or key/value pair for replacement. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-replace"></a><h3>ostree_kernel_args_replace ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_replace (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *arg</code></em>);</pre>
<p>Finds and replaces the old key if <em class="parameter"><code>arg</code></em>
is already in the hash table,
otherwise adds <em class="parameter"><code>arg</code></em>
as new key and split_keyeq (arg) as value.
Note that when replacing old key value pair, the old values are freed.</p>
<div class="refsect3">
<a name="ostree-kernel-args-replace.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>arg</p></td>
<td class="parameter_description"><p>key or key/value pair for replacement</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-replace-argv"></a><h3>ostree_kernel_args_replace_argv ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_replace_argv (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code><span class="type">char</span> **argv</code></em>);</pre>
<p>Finds and replaces each non-null arguments of <em class="parameter"><code>argv</code></em>
in the hash table,
otherwise adds individual arg as new key and split_keyeq (arg) as value.
Note that when replacing old key value pair, the old values are freed.</p>
<div class="refsect3">
<a name="ostree-kernel-args-replace-argv.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>argv</p></td>
<td class="parameter_description"><p>an array of key or key/value pairs</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-append"></a><h3>ostree_kernel_args_append ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_append (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *arg</code></em>);</pre>
<p>Appends <em class="parameter"><code>arg</code></em>
which is in the form of key=value pair to the hash table kargs-&gt;table
(appends to the value list if key is already in the hash table)
and appends key to kargs-&gt;order if it is not in the hash table already.</p>
<div class="refsect3">
<a name="ostree-kernel-args-append.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>arg</p></td>
<td class="parameter_description"><p>key or key/value pair to be added</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-append-argv"></a><h3>ostree_kernel_args_append_argv ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_append_argv (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code><span class="type">char</span> **argv</code></em>);</pre>
<p>Appends each value in <em class="parameter"><code>argv</code></em>
to the corresponding value array and
appends key to kargs-&gt;order if it is not in the hash table already.</p>
<div class="refsect3">
<a name="ostree-kernel-args-append-argv.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>argv</p></td>
<td class="parameter_description"><p>an array of key=value argument pairs</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-append-argv-filtered"></a><h3>ostree_kernel_args_append_argv_filtered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_append_argv_filtered
(<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code><span class="type">char</span> **argv</code></em>,
<em class="parameter"><code><span class="type">char</span> **prefixes</code></em>);</pre>
<p>Appends each argument that does not have one of the <em class="parameter"><code>prefixes</code></em>
as prefix to the <em class="parameter"><code>kargs</code></em>
</p>
<div class="refsect3">
<a name="ostree-kernel-args-append-argv-filtered.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>argv</p></td>
<td class="parameter_description"><p>an array of key=value argument pairs</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>prefixes</p></td>
<td class="parameter_description"><p>an array of prefix strings</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-new-replace"></a><h3>ostree_kernel_args_new_replace ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_kernel_args_new_replace (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *arg</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>This function implements the basic logic behind key/value pair
replacement. Do note that the arg need to be properly formatted</p>
<p>When replacing key with exact one value, the arg can be in
the form:
key, key=new_val, or key=old_val=new_val
The first one swaps the old_val with the key to an empty value
The second and third replace the old_val into the new_val</p>
<p>When replacing key with multiple values, the arg can only be
in the form of:
key=old_val=new_val. Unless there is a special case where
there is an empty value associated with the key, then
key=new_val will work because old_val is empty. The empty
val will be swapped with the new_val in that case</p>
<div class="refsect3">
<a name="ostree-kernel-args-new-replace.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>arg</p></td>
<td class="parameter_description"><p>a string argument</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>error instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-new-replace.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> on failure (and in some other instances such as:</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>key not found in <em class="parameter"><code>kargs</code></em>
</p></li>
<li class="listitem"><p>old value not found when <em class="parameter"><code>arg</code></em>
is in the form of key=old_val=new_val</p></li>
<li class="listitem"><p>multiple old values found when <em class="parameter"><code>arg</code></em>
is in the form of key=old_val)</p></li>
</ol></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-delete"></a><h3>ostree_kernel_args_delete ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_kernel_args_delete (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *arg</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>There are few scenarios being handled for deletion:</p>
<p> 1: for input arg with a single key(i.e without = for split),
the key/value pair will be deleted if there is only
one value that is associated with the key</p>
<p> 2: for input arg wth key/value pair, the specific key
value pair will be deleted from the pointer array
if those exist.</p>
<p> 3: If the found key has only one value
associated with it, the key entry in the table will also
be removed, and the key will be removed from order table</p>
<div class="refsect3">
<a name="ostree-kernel-args-delete.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>arg</p></td>
<td class="parameter_description"><p>key or key/value pair for deletion</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>an GError instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-delete.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> on failure</p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-delete-key-entry"></a><h3>ostree_kernel_args_delete_key_entry ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_kernel_args_delete_key_entry (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>This function removes the key entry from the hashtable
as well from the order pointer array inside kargs</p>
<p>Note: since both table and order inside kernel args
are with free function, no extra free functions are
being called as they are done automatically by GLib</p>
<div class="refsect3">
<a name="ostree-kernel-args-delete-key-entry.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>an OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>the key to remove</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>an GError instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-delete-key-entry.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> on failure</p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-append-proc-cmdline"></a><h3>ostree_kernel_args_append_proc_cmdline ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_kernel_args_append_proc_cmdline
(<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Appends the command line arguments in the file "/proc/cmdline"
that does not have "BOOT_IMAGE=" and "initrd=" as prefixes to the <em class="parameter"><code>kargs</code></em>
</p>
<div class="refsect3">
<a name="ostree-kernel-args-append-proc-cmdline.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional GCancellable object, NULL to ignore</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>an GError instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-append-proc-cmdline.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> on failure</p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-parse-append"></a><h3>ostree_kernel_args_parse_append ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_kernel_args_parse_append (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *options</code></em>);</pre>
<p>Parses <em class="parameter"><code>options</code></em>
by separating it by whitespaces and appends each argument to <em class="parameter"><code>kargs</code></em>
</p>
<div class="refsect3">
<a name="ostree-kernel-args-parse-append.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a string representing command line arguments</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-get-last-value"></a><h3>ostree_kernel_args_get_last_value ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
ostree_kernel_args_get_last_value (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>Finds and returns the last element of value array
corresponding to the <em class="parameter"><code>key</code></em>
in <em class="parameter"><code>kargs</code></em>
hash table. Note that the application
will be terminated if the <em class="parameter"><code>key</code></em>
is found but the value array is empty</p>
<div class="refsect3">
<a name="ostree-kernel-args-get-last-value.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>key</p></td>
<td class="parameter_description"><p>a key to look for in <em class="parameter"><code>kargs</code></em>
hash table</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-get-last-value.returns"></a><h4>Returns</h4>
<p> NULL if <em class="parameter"><code>key</code></em>
is not found in the <em class="parameter"><code>kargs</code></em>
hash table,
otherwise returns last element of value array corresponding to <em class="parameter"><code>key</code></em>
</p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-from-string"></a><h3>ostree_kernel_args_from_string ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="returnvalue">OstreeKernelArgs</span></a> *
ostree_kernel_args_from_string (<em class="parameter"><code>const <span class="type">char</span> *options</code></em>);</pre>
<p>Initializes a new OstreeKernelArgs then parses and appends <em class="parameter"><code>options</code></em>
to the empty OstreeKernelArgs</p>
<p><span class="annotation">[<a href="http://foldoc.org/skip"><span class="acronym">skip</span></a>]</span></p>
<div class="refsect3">
<a name="ostree-kernel-args-from-string.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a string representing command line arguments</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-from-string.returns"></a><h4>Returns</h4>
<p>newly allocated <a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> with <em class="parameter"><code>options</code></em>
appended. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-to-strv"></a><h3>ostree_kernel_args_to_strv ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> **
ostree_kernel_args_to_strv (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>);</pre>
<p>Extracts all key value pairs in <em class="parameter"><code>kargs</code></em>
and appends to a temporary
array in forms of "key=value" or "key" if value is NULL, and returns
the temporary array with the GPtrArray wrapper freed</p>
<div class="refsect3">
<a name="ostree-kernel-args-to-strv.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-to-strv.returns"></a><h4>Returns</h4>
<p>an array of "key=value" pairs or "key" if value is NULL. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2019.3</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-kernel-args-to-string"></a><h3>ostree_kernel_args_to_string ()</h3>
<pre class="programlisting"><span class="returnvalue">char</span> *
ostree_kernel_args_to_string (<em class="parameter"><code><a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs"><span class="type">OstreeKernelArgs</span></a> *kargs</code></em>);</pre>
<p>Extracts all key value pairs in <em class="parameter"><code>kargs</code></em>
and appends to a temporary
GString in forms of "key=value" or "key" if value is NULL separated
by a single whitespace, and returns the temporary string with the
GString wrapper freed</p>
<p>Note: the application will be terminated if one of the values array
in <em class="parameter"><code>kargs</code></em>
is NULL</p>
<div class="refsect3">
<a name="ostree-kernel-args-to-string.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>kargs</p></td>
<td class="parameter_description"><p>a OstreeKernelArgs instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-kernel-args-to-string.returns"></a><h4>Returns</h4>
<p>a string of "key=value" pairs or "key" if value is NULL,
separated by single whitespaces. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2019.3</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-kernel-args.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OstreeKernelArgs"></a><h3>OstreeKernelArgs</h3>
<pre class="programlisting">typedef struct _OstreeKernelArgs OstreeKernelArgs;</pre>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -0,0 +1,373 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-ref: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">
<link rel="next" href="ostree-ostree-remote.html" title="ostree-remote">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-ref.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-kernel-args.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-remote.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-ref"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-ref.top_of_page"></a>ostree-ref</span></h2>
<p>ostree-ref</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-ref.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeCollectionRef</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-new" title="ostree_collection_ref_new ()">ostree_collection_ref_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeCollectionRef</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-dup" title="ostree_collection_ref_dup ()">ostree_collection_ref_dup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-free" title="ostree_collection_ref_free ()">ostree_collection_ref_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-hash" title="ostree_collection_ref_hash ()">ostree_collection_ref_hash</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-equal" title="ostree_collection_ref_equal ()">ostree_collection_ref_equal</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeCollectionRef</span> **
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-dupv" title="ostree_collection_ref_dupv ()">ostree_collection_ref_dupv</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-freev" title="ostree_collection_ref_freev ()">ostree_collection_ref_freev</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-ref.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="ostree-ostree-ref.html#OstreeCollectionRefv" title="OstreeCollectionRefv">OstreeCollectionRefv</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-ref.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-ref.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-collection-ref-new"></a><h3>ostree_collection_ref_new ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeCollectionRef</span> *
ostree_collection_ref_new (<em class="parameter"><code>const <span class="type">gchar</span> *collection_id</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *ref_name</code></em>);</pre>
<p>Create a new <span class="type">OstreeCollectionRef</span> containing (<em class="parameter"><code>collection_id</code></em>
, <em class="parameter"><code>ref_name</code></em>
). If
<em class="parameter"><code>collection_id</code></em>
is <code class="literal">NULL</code>, this is equivalent to a plain ref name string (not a
refspec; no remote name is included), which can be used for non-P2P
operations.</p>
<div class="refsect3">
<a name="ostree-collection-ref-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>collection_id</p></td>
<td class="parameter_description"><p>a collection ID, or <code class="literal">NULL</code> for a plain ref. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>ref_name</p></td>
<td class="parameter_description"><p>a ref name</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-collection-ref-new.returns"></a><h4>Returns</h4>
<p>a new <span class="type">OstreeCollectionRef</span>. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-dup"></a><h3>ostree_collection_ref_dup ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeCollectionRef</span> *
ostree_collection_ref_dup (<em class="parameter"><code>const <span class="type">OstreeCollectionRef</span> *ref</code></em>);</pre>
<p>Create a copy of the given <em class="parameter"><code>ref</code></em>
.</p>
<div class="refsect3">
<a name="ostree-collection-ref-dup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ref</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeCollectionRef</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/not%20nullable"><span class="acronym">not nullable</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-collection-ref-dup.returns"></a><h4>Returns</h4>
<p>a newly allocated copy of <em class="parameter"><code>ref</code></em>
. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-free"></a><h3>ostree_collection_ref_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_collection_ref_free (<em class="parameter"><code><span class="type">OstreeCollectionRef</span> *ref</code></em>);</pre>
<p>Free the given <em class="parameter"><code>ref</code></em>
.</p>
<div class="refsect3">
<a name="ostree-collection-ref-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ref</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeCollectionRef</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-hash"></a><h3>ostree_collection_ref_hash ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span>
ostree_collection_ref_hash (<em class="parameter"><code><span class="type">gconstpointer</span> ref</code></em>);</pre>
<p>Hash the given <em class="parameter"><code>ref</code></em>
. This function is suitable for use with <span class="type">GHashTable</span>.
<em class="parameter"><code>ref</code></em>
must be non-<code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="ostree-collection-ref-hash.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>ref</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeCollectionRef</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/not%20nullable"><span class="acronym">not nullable</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-collection-ref-hash.returns"></a><h4>Returns</h4>
<p> hash value for <em class="parameter"><code>ref</code></em>
</p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-equal"></a><h3>ostree_collection_ref_equal ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_collection_ref_equal (<em class="parameter"><code><span class="type">gconstpointer</span> ref1</code></em>,
<em class="parameter"><code><span class="type">gconstpointer</span> ref2</code></em>);</pre>
<p>Compare <em class="parameter"><code>ref1</code></em>
and <em class="parameter"><code>ref2</code></em>
and return <code class="literal">TRUE</code> if they have the same collection ID and
ref name, and <code class="literal">FALSE</code> otherwise. Both <em class="parameter"><code>ref1</code></em>
and <em class="parameter"><code>ref2</code></em>
must be non-<code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="ostree-collection-ref-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>ref1</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeCollectionRef</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/not%20nullable"><span class="acronym">not nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>ref2</p></td>
<td class="parameter_description"><p>another <span class="type">OstreeCollectionRef</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/not%20nullable"><span class="acronym">not nullable</span></a>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-collection-ref-equal.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>ref1</code></em>
and <em class="parameter"><code>ref2</code></em>
are equal, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-dupv"></a><h3>ostree_collection_ref_dupv ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeCollectionRef</span> **
ostree_collection_ref_dupv (<em class="parameter"><code>const <span class="type">OstreeCollectionRef</span> * const *refs</code></em>);</pre>
<p>Copy an array of <span class="type">OstreeCollectionRefs</span>, including deep copies of all its
elements. <em class="parameter"><code>refs</code></em>
must be <code class="literal">NULL</code>-terminated; it may be empty, but must not be
<code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="ostree-collection-ref-dupv.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>refs</p></td>
<td class="parameter_description"><p><code class="literal">NULL</code>-terminated array of <span class="type">OstreeCollectionRefs</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-collection-ref-dupv.returns"></a><h4>Returns</h4>
<p>a newly allocated copy of <em class="parameter"><code>refs</code></em>
. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-collection-ref-freev"></a><h3>ostree_collection_ref_freev ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_collection_ref_freev (<em class="parameter"><code><span class="type">OstreeCollectionRef</span> **refs</code></em>);</pre>
<p>Free the given array of <em class="parameter"><code>refs</code></em>
, including freeing all its elements. <em class="parameter"><code>refs</code></em>
must be <code class="literal">NULL</code>-terminated; it may be empty, but must not be <code class="literal">NULL</code>.</p>
<div class="refsect3">
<a name="ostree-collection-ref-freev.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>refs</p></td>
<td class="parameter_description"><p>an array of <span class="type">OstreeCollectionRefs</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-ref.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OstreeCollectionRefv"></a><h3>OstreeCollectionRefv</h3>
<pre class="programlisting">typedef OstreeCollectionRef** OstreeCollectionRefv;
</pre>
<p>A <code class="literal">NULL</code>-terminated array of <span class="type">OstreeCollectionRef</span> instances, designed to
be used with <code class="function">g_auto()</code>:</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">g_auto</span><span class="p">(</span><span class="n">OstreeCollectionRefv</span><span class="p">)</span> <span class="n">refs</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p class="since">Since: 2018.6</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -0,0 +1,230 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-remote: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-ref.html" title="ostree-ref">
<link rel="next" href="ostree-ostree-repo-file.html" title="ostree-repo-file">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-remote.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-ref.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-repo-file.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-remote"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-remote.top_of_page"></a>ostree-remote</span></h2>
<p>ostree-remote</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-remote.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="returnvalue">OstreeRemote</span></a> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-remote.html#ostree-remote-ref" title="ostree_remote_ref ()">ostree_remote_ref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-remote.html#ostree-remote-unref" title="ostree_remote_unref ()">ostree_remote_unref</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-remote.html#ostree-remote-get-name" title="ostree_remote_get_name ()">ostree_remote_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-remote.html#ostree-remote-get-url" title="ostree_remote_get_url ()">ostree_remote_get_url</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-remote.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody><tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote">OstreeRemote</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-remote.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-remote.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-remote-ref"></a><h3>ostree_remote_ref ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="returnvalue">OstreeRemote</span></a> *
ostree_remote_ref (<em class="parameter"><code><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> *remote</code></em>);</pre>
<p>Increase the reference count on the given <em class="parameter"><code>remote</code></em>
.</p>
<div class="refsect3">
<a name="ostree-remote-ref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>remote</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-remote-ref.returns"></a><h4>Returns</h4>
<p>a copy of <em class="parameter"><code>remote</code></em>
, for convenience. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-remote-unref"></a><h3>ostree_remote_unref ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_remote_unref (<em class="parameter"><code><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> *remote</code></em>);</pre>
<p>Decrease the reference count on the given <em class="parameter"><code>remote</code></em>
and free it if the
reference count reaches 0.</p>
<div class="refsect3">
<a name="ostree-remote-unref.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>remote</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-remote-get-name"></a><h3>ostree_remote_get_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
ostree_remote_get_name (<em class="parameter"><code><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> *remote</code></em>);</pre>
<p>Get the human-readable name of the remote. This is what the user configured,
if the remote was explicitly configured; and will otherwise be a stable,
arbitrary, string.</p>
<div class="refsect3">
<a name="ostree-remote-get-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>remote</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-remote-get-name.returns"></a><h4>Returns</h4>
<p> remotes name</p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-remote-get-url"></a><h3>ostree_remote_get_url ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
ostree_remote_get_url (<em class="parameter"><code><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> *remote</code></em>);</pre>
<p>Get the URL from the remote.</p>
<div class="refsect3">
<a name="ostree-remote-get-url.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>remote</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-remote-get-url.returns"></a><h4>Returns</h4>
<p>the remote's URL. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-remote.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OstreeRemote"></a><h3>struct OstreeRemote</h3>
<pre class="programlisting">struct OstreeRemote {
int ref_count; /* atomic */
char *name; /* (not nullable) */
char *refspec_name; /* (nullable) */
char *group; /* group name in options (not nullable) */
char *keyring; /* keyring name ($refspec_name.trustedkeys.gpg) (not nullable) */
GFile *file; /* NULL if remote defined in repo/config */
GKeyFile *options;
};
</pre>
<p>This represents the configuration for a single remote repository. Currently,
remotes can only be passed around as (reference counted) opaque handles. In
future, more API may be added to create and interrogate them.</p>
<p class="since">Since: 2018.6</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -6,7 +6,8 @@
<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="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-remote.html" title="ostree-remote">
<link rel="next" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)"> <meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css"> <link rel="stylesheet" href="style.css" type="text/css">
</head> </head>
@ -18,8 +19,8 @@
</td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> <td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-diff.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> <td><a accesskey="p" href="ostree-ostree-remote.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><img src="right-insensitive.png" width="16" height="16" border="0"></td> <td><a accesskey="n" href="ostree-ostree-repo-finder.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table> </tr></table>
<div class="refentry"> <div class="refentry">
<a name="ostree-ostree-repo-file"></a><div class="titlepage"></div> <a name="ostree-ostree-repo-file"></a><div class="titlepage"></div>

View File

@ -0,0 +1,577 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-repo-finder: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-repo-file.html" title="ostree-repo-file">
<link rel="next" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-repo-finder.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-repo-file.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-repo-remote-finder.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-repo-finder"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-repo-finder.top_of_page"></a>ostree-repo-finder</span></h2>
<p>ostree-repo-finder</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-repo-finder.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-async" title="ostree_repo_finder_resolve_async ()">ostree_repo_finder_resolve_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GPtrArray</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-finish" title="ostree_repo_finder_resolve_finish ()">ostree_repo_finder_resolve_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-async" title="ostree_repo_finder_resolve_all_async ()">ostree_repo_finder_resolve_all_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GPtrArray</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-finish" title="ostree_repo_finder_resolve_all_finish ()">ostree_repo_finder_resolve_all_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeRepoFinderResult</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-new" title="ostree_repo_finder_result_new ()">ostree_repo_finder_result_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeRepoFinderResult</span> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-dup" title="ostree_repo_finder_result_dup ()">ostree_repo_finder_result_dup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-free" title="ostree_repo_finder_result_free ()">ostree_repo_finder_result_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-compare" title="ostree_repo_finder_result_compare ()">ostree_repo_finder_result_compare</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-freev" title="ostree_repo_finder_result_freev ()">ostree_repo_finder_result_freev</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-finder.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder">OstreeRepoFinder</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinderResultv" title="OstreeRepoFinderResultv">OstreeRepoFinderResultv</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-finder.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-finder.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-repo-finder-resolve-async"></a><h3>ostree_repo_finder_resolve_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_finder_resolve_async (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">OstreeCollectionRef</span> * const *refs</code></em>,
<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *parent_repo</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Find reachable remote URIs which claim to provide any of the given <em class="parameter"><code>refs</code></em>
. The
specific method for finding the remotes depends on the <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a>
implementation.</p>
<p>Any remote which is found and which claims to support any of the given <em class="parameter"><code>refs</code></em>
will be returned in the results. It is possible that a remote claims to
support a given ref, but turns out not to — it is not possible to verify this
until <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a> is called.</p>
<p>The returned results will be sorted with the most useful first — this is
typically the remote which claims to provide the most <em class="parameter"><code>refs</code></em>
, at the lowest
latency.</p>
<p>Each result contains a mapping of <em class="parameter"><code>refs</code></em>
to the checksums of the commits
which the result provides. If the result provides the latest commit for a ref
across all of the results, the checksum will be set. Otherwise, if the
result provides an outdated commit, or doesnt provide a given ref at all,
the checksum will not be set. Results which provide none of the requested
<em class="parameter"><code>refs</code></em>
may be listed with an empty refs map.</p>
<p>Pass the results to <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a> to pull the given
<em class="parameter"><code>refs</code></em>
from those remotes.</p>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>refs</p></td>
<td class="parameter_description"><p>non-empty array of collectionref pairs to find remotes for. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>parent_repo</p></td>
<td class="parameter_description"><p>the local repository which the refs are being resolved for,
which provides configuration information and GPG keys. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>asynchronous completion callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-resolve-finish"></a><h3>ostree_repo_finder_resolve_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
ostree_repo_finder_resolve_finish (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Get the results from a <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-async" title="ostree_repo_finder_resolve_async ()"><code class="function">ostree_repo_finder_resolve_async()</code></a> operation.</p>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p><span class="type">GAsyncResult</span> from the callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>return location for a <span class="type">GError</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-finish.returns"></a><h4>Returns</h4>
<p>array of zero
or more results. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/element-type"><span class="acronym">element-type</span></a> OstreeRepoFinderResult]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-resolve-all-async"></a><h3>ostree_repo_finder_resolve_all_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_finder_resolve_all_async (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> * const *finders</code></em>,
<em class="parameter"><code>const <span class="type">OstreeCollectionRef</span> * const *refs</code></em>,
<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *parent_repo</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>A version of <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-async" title="ostree_repo_finder_resolve_async ()"><code class="function">ostree_repo_finder_resolve_async()</code></a> which queries one or more
<em class="parameter"><code>finders</code></em>
in parallel and combines the results.</p>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-all-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>finders</p></td>
<td class="parameter_description"><p>non-empty array of <a href="ostree-ostree-repo-finder.html#OstreeRepoFinder"><span class="type">OstreeRepoFinders</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>refs</p></td>
<td class="parameter_description"><p>non-empty array of collectionref pairs to find remotes for. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>parent_repo</p></td>
<td class="parameter_description"><p>the local repository which the refs are being resolved for,
which provides configuration information and GPG keys. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>asynchronous completion callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-resolve-all-finish"></a><h3>ostree_repo_finder_resolve_all_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">GPtrArray</span> *
ostree_repo_finder_resolve_all_finish (<em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Get the results from a <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-async" title="ostree_repo_finder_resolve_all_async ()"><code class="function">ostree_repo_finder_resolve_all_async()</code></a> operation.</p>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-all-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p><span class="type">GAsyncResult</span> from the callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>return location for a <span class="type">GError</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-finder-resolve-all-finish.returns"></a><h4>Returns</h4>
<p>array of zero
or more results. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/element-type"><span class="acronym">element-type</span></a> OstreeRepoFinderResult]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-result-new"></a><h3>ostree_repo_finder_result_new ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeRepoFinderResult</span> *
ostree_repo_finder_result_new (<em class="parameter"><code><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> *remote</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> *finder</code></em>,
<em class="parameter"><code><span class="type">gint</span> priority</code></em>,
<em class="parameter"><code><span class="type">GHashTable</span> *ref_to_checksum</code></em>,
<em class="parameter"><code><span class="type">GHashTable</span> *ref_to_timestamp</code></em>,
<em class="parameter"><code><span class="type">guint64</span> summary_last_modified</code></em>);</pre>
<p>Create a new <span class="type">OstreeRepoFinderResult</span> instance. The semantics for the arguments
are as described in the <span class="type">OstreeRepoFinderResult</span> documentation.</p>
<div class="refsect3">
<a name="ostree-repo-finder-result-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>remote</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> containing the transport details
for the result. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>finder</p></td>
<td class="parameter_description"><p>the <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> instance which produced the
result. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>priority</p></td>
<td class="parameter_description"><p>static priority of the result, where higher numbers indicate lower
priority</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ref_to_checksum</p></td>
<td class="parameter_description"><p>map of collectionref pairs to checksums provided by this result. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/element-type"><span class="acronym">element-type</span></a> OstreeCollectionRef utf8][<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>ref_to_timestamp</p></td>
<td class="parameter_description"><p>(element-type OstreeCollectionRef guint64) (nullable)
(transfer none): map of collectionref pairs to timestamps provided by this
result</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>summary_last_modified</p></td>
<td class="parameter_description"><p>Unix timestamp (seconds since the epoch, UTC) when
the summary file for the result was last modified, or <code class="literal">0</code> if this is unknown</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-finder-result-new.returns"></a><h4>Returns</h4>
<p>a new <span class="type">OstreeRepoFinderResult</span>. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-result-dup"></a><h3>ostree_repo_finder_result_dup ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeRepoFinderResult</span> *
ostree_repo_finder_result_dup (<em class="parameter"><code><span class="type">OstreeRepoFinderResult</span> *result</code></em>);</pre>
<p>Copy an <span class="type">OstreeRepoFinderResult</span>.</p>
<div class="refsect3">
<a name="ostree-repo-finder-result-dup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeRepoFinderResult</span> to copy. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-finder-result-dup.returns"></a><h4>Returns</h4>
<p>a newly allocated copy of <em class="parameter"><code>result</code></em>
. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-result-free"></a><h3>ostree_repo_finder_result_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_finder_result_free (<em class="parameter"><code><span class="type">OstreeRepoFinderResult</span> *result</code></em>);</pre>
<p>Free the given <em class="parameter"><code>result</code></em>
.</p>
<div class="refsect3">
<a name="ostree-repo-finder-result-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeRepoFinderResult</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-result-compare"></a><h3>ostree_repo_finder_result_compare ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
ostree_repo_finder_result_compare (<em class="parameter"><code>const <span class="type">OstreeRepoFinderResult</span> *a</code></em>,
<em class="parameter"><code>const <span class="type">OstreeRepoFinderResult</span> *b</code></em>);</pre>
<p>Compare two <span class="type">OstreeRepoFinderResult</span> instances to work out which one is better
to pull from, and hence needs to be ordered before the other.</p>
<div class="refsect3">
<a name="ostree-repo-finder-result-compare.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeRepoFinderResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>b</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeRepoFinderResult</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-finder-result-compare.returns"></a><h4>Returns</h4>
<p> &lt;0 if <em class="parameter"><code>a</code></em>
is ordered before <em class="parameter"><code>b</code></em>
, 0 if they are ordered equally,
&gt;0 if <em class="parameter"><code>b</code></em>
is ordered before <em class="parameter"><code>a</code></em>
</p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-finder-result-freev"></a><h3>ostree_repo_finder_result_freev ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_finder_result_freev (<em class="parameter"><code><span class="type">OstreeRepoFinderResult</span> **results</code></em>);</pre>
<p>Free the given <em class="parameter"><code>results</code></em>
array, freeing each element and the container.</p>
<div class="refsect3">
<a name="ostree-repo-finder-result-freev.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>results</p></td>
<td class="parameter_description"><p>an <span class="type">OstreeRepoFinderResult</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1][<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-finder.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OstreeRepoFinder"></a><h3>OstreeRepoFinder</h3>
<pre class="programlisting">typedef struct _OstreeRepoFinder OstreeRepoFinder;</pre>
</div>
<hr>
<div class="refsect2">
<a name="OstreeRepoFinderResultv"></a><h3>OstreeRepoFinderResultv</h3>
<pre class="programlisting">typedef OstreeRepoFinderResult** OstreeRepoFinderResultv;
</pre>
<p>A <code class="literal">NULL</code>-terminated array of <span class="type">OstreeRepoFinderResult</span> instances, designed to
be used with <code class="function">g_auto()</code>:</p>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="n">g_auto</span><span class="p">(</span><span class="n">OstreeRepoFinderResultv</span><span class="p">)</span> <span class="n">results</span> <span class="o">=</span> <span class="nb">NULL</span><span class="p">;</span></pre></td>
</tr>
</tbody>
</table>
</div>
<p></p>
<p class="since">Since: 2018.6</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -0,0 +1,516 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-repo-remote-finder: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">
<link rel="next" href="ostree-ostree-version.html" title="ostree-version">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-repo-remote-finder.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-repo-finder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="ostree-ostree-version.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-repo-remote-finder"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-repo-remote-finder.top_of_page"></a>ostree-repo-remote-finder</span></h2>
<p>ostree-repo-remote-finder</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-repo-remote-finder.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-async" title="ostree_repo_find_remotes_async ()">ostree_repo_find_remotes_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">OstreeRepoFinderResult</span> **
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-finish" title="ostree_repo_find_remotes_finish ()">ostree_repo_find_remotes_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()">ostree_repo_pull_from_remotes_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-finish" title="ostree_repo_pull_from_remotes_finish ()">ostree_repo_pull_from_remotes_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="returnvalue">OstreeRemote</span></a> *
</td>
<td class="function_name">
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-resolve-keyring-for-collection" title="ostree_repo_resolve_keyring_for_collection ()">ostree_repo_resolve_keyring_for_collection</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-remote-finder.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-repo-remote-finder.html#OSTREE-REPO-METADATA-REF:CAPS" title="OSTREE_REPO_METADATA_REF">OSTREE_REPO_METADATA_REF</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-repo-remote-finder.html#OSTREE-META-KEY-DEPLOY-COLLECTION-ID:CAPS" title="OSTREE_META_KEY_DEPLOY_COLLECTION_ID">OSTREE_META_KEY_DEPLOY_COLLECTION_ID</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-remote-finder.description"></a><h2>Description</h2>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-remote-finder.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="ostree-repo-find-remotes-async"></a><h3>ostree_repo_find_remotes_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_find_remotes_async (<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">OstreeCollectionRef</span> * const *refs</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> *options</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> **finders</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> *progress</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Find reachable remote URIs which claim to provide any of the given named
<em class="parameter"><code>refs</code></em>
. This will search for configured remotes (<span class="type">OstreeRepoFinderConfig</span>),
mounted volumes (<span class="type">OstreeRepoFinderMount</span>) and (if enabled at compile time)
local network peers (<span class="type">OstreeRepoFinderAvahi</span>). In order to use a custom
configuration of <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> instances, call
<a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-async" title="ostree_repo_finder_resolve_all_async ()"><code class="function">ostree_repo_finder_resolve_all_async()</code></a> on them individually.</p>
<p>Any remote which is found and which claims to support any of the given <em class="parameter"><code>refs</code></em>
will be returned in the results. It is possible that a remote claims to
support a given ref, but turns out not to — it is not possible to verify this
until <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a> is called.</p>
<p>The returned results will be sorted with the most useful first — this is
typically the remote which claims to provide the most of <em class="parameter"><code>refs</code></em>
, at the lowest
latency.</p>
<p>Each result contains a list of the subset of <em class="parameter"><code>refs</code></em>
it claims to provide. It
is possible for a non-empty list of results to be returned, but for some of
<em class="parameter"><code>refs</code></em>
to not be listed in any of the results. Callers must check for this.</p>
<p>Pass the results to <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a> to pull the given <em class="parameter"><code>refs</code></em>
from those remotes.</p>
<p>The following <em class="parameter"><code>options</code></em>
are currently defined:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="literal">override-commit-ids</code> (<code class="literal">as</code>): Array of specific commit IDs to fetch. The nth
commit ID applies to the nth ref, so this must be the same length as <em class="parameter"><code>refs</code></em>
, if
provided.</p></li>
<li class="listitem"><p><code class="literal">n-network-retries</code> (<code class="literal">u</code>): Number of times to retry each download on
receiving a transient network error, such as a socket timeout; default is
5, 0 means return errors without retrying. Since: 2018.6</p></li>
</ul></div>
<p><em class="parameter"><code>finders</code></em>
must be a non-empty <code class="literal">NULL</code>-terminated array of the <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a>
instances to use, or <code class="literal">NULL</code> to use the system default set of finders, which
will typically be all available finders using their default options (but
this is not guaranteed).</p>
<p>GPG verification of commits will be used unconditionally.</p>
<p>This will use the thread-default <span class="type">GMainContext</span>, but will not iterate it.</p>
<div class="refsect3">
<a name="ostree-repo-find-remotes-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>refs</p></td>
<td class="parameter_description"><p>non-empty array of collectionref pairs to find remotes for. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a GVariant <code class="literal">a{sv}</code> with an extensible set of flags. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>finders</p></td>
<td class="parameter_description"><p>non-empty array of
<a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder"><span class="type">OstreeRepoFinder</span></a> instances to use, or <code class="literal">NULL</code> to use the system defaults. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1][<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> to update with the operations
progress, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>asynchronous completion callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-find-remotes-finish"></a><h3>ostree_repo_find_remotes_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">OstreeRepoFinderResult</span> **
ostree_repo_find_remotes_finish (<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Finish an asynchronous pull operation started with
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-async" title="ostree_repo_find_remotes_async ()"><code class="function">ostree_repo_find_remotes_async()</code></a>.</p>
<div class="refsect3">
<a name="ostree-repo-find-remotes-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>the asynchronous result</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-find-remotes-finish.returns"></a><h4>Returns</h4>
<p>a potentially empty array
of <span class="type">OstreeRepoFinderResults</span>, followed by a <code class="literal">NULL</code> terminator element; or
<code class="literal">NULL</code> on error. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>][<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-pull-from-remotes-async"></a><h3>ostree_repo_pull_from_remotes_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_pull_from_remotes_async (<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">OstreeRepoFinderResult</span> * const *results</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> *options</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> *progress</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Pull refs from multiple remotes which have been found using
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-async" title="ostree_repo_find_remotes_async ()"><code class="function">ostree_repo_find_remotes_async()</code></a>.</p>
<p><em class="parameter"><code>results</code></em>
are expected to be in priority order, with the best remotes to pull
from listed first. <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a> will generally pull
from the remotes in order, but may parallelise its downloads.</p>
<p>If an error is encountered when pulling from a given remote, that remote will
be ignored and another will be tried instead. If any refs have not been
downloaded successfully after all remotes have been tried, <code class="literal">G_IO_ERROR_FAILED</code>
will be returned. The results of any successful downloads will remain cached
in the local repository.</p>
<p>If <em class="parameter"><code>cancellable</code></em>
is cancelled, <code class="literal">G_IO_ERROR_CANCELLED</code> will be returned
immediately. The results of any successfully completed downloads at that
point will remain cached in the local repository.</p>
<p>GPG verification of commits will be used unconditionally.</p>
<p>The following <em class="parameter"><code>options</code></em>
are currently defined:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="literal">flags</code> (<code class="literal">i</code>): <a class="link" href="ostree-OstreeRepo.html#OstreeRepoPullFlags" title="enum OstreeRepoPullFlags"><span class="type">OstreeRepoPullFlags</span></a> to apply to the pull operation</p></li>
<li class="listitem"><p><code class="literal">inherit-transaction</code> (<code class="literal">b</code>): <code class="literal">TRUE</code> to inherit an ongoing transaction on
the <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a>, rather than encapsulating the pull in a new one</p></li>
<li class="listitem"><p><code class="literal">depth</code> (<code class="literal">i</code>): How far in the history to traverse; default is 0, -1 means infinite</p></li>
<li class="listitem"><p><code class="literal">disable-static-deltas</code> (<code class="literal">b</code>): Do not use static deltas</p></li>
<li class="listitem"><p><code class="literal">http-headers</code> (<code class="literal">a(ss)</code>): Additional headers to add to all HTTP requests</p></li>
<li class="listitem"><p><code class="literal">subdirs</code> (<code class="literal">as</code>): Pull just these subdirectories</p></li>
<li class="listitem"><p><code class="literal">update-frequency</code> (<code class="literal">u</code>): Frequency to call the async progress callback in
milliseconds, if any; only values higher than 0 are valid</p></li>
<li class="listitem"><p><code class="literal">append-user-agent</code> (<code class="literal">s</code>): Additional string to append to the user agent</p></li>
<li class="listitem"><p><code class="literal">n-network-retries</code> (<code class="literal">u</code>): Number of times to retry each download on receiving
a transient network error, such as a socket timeout; default is 5, 0
means return errors without retrying. Since: 2018.6</p></li>
<li class="listitem"><p><code class="literal">ref-keyring-map</code> (<code class="literal">a(sss)</code>): Array of (collection ID, ref name, keyring
remote name) tuples specifying which remote's keyring should be used when
doing GPG verification of each collection-ref. This is useful to prevent a
remote from serving malicious updates to refs which did not originate from
it. This can be a subset or superset of the refs being pulled; any ref
not being pulled will be ignored and any ref without a keyring remote
will be verified with the keyring of the remote being pulled from.</p></li>
</ul></div>
<div class="refsect3">
<a name="ostree-repo-pull-from-remotes-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>results</p></td>
<td class="parameter_description"><p><code class="literal">NULL</code>-terminated array of remotes to
pull from, including the refs to pull from each. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>A GVariant <code class="literal">a{sv}</code> with an extensible set of flags. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>progress</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> to update with the operations
progress, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>asynchronous completion callback</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-pull-from-remotes-finish"></a><h3>ostree_repo_pull_from_remotes_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
ostree_repo_pull_from_remotes_finish (<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Finish an asynchronous pull operation started with
<a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()"><code class="function">ostree_repo_pull_from_remotes_async()</code></a>.</p>
<div class="refsect3">
<a name="ostree-repo-pull-from-remotes-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>the asynchronous result</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-pull-from-remotes-finish.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-repo-resolve-keyring-for-collection"></a><h3>ostree_repo_resolve_keyring_for_collection ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="returnvalue">OstreeRemote</span></a> *
ostree_repo_resolve_keyring_for_collection
(<em class="parameter"><code><a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *collection_id</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre>
<p>Find the GPG keyring for the given <em class="parameter"><code>collection_id</code></em>
, using the local
configuration from the given <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a>. This will search the configured
remotes for ones whose <code class="literal">collection-id</code> key matches <em class="parameter"><code>collection_id</code></em>
, and will
return the first matching remote.</p>
<p>If multiple remotes match and have different keyrings, a debug message will
be emitted, and the first result will be returned. It is expected that the
keyrings should match.</p>
<p>If no match can be found, a <code class="literal">G_IO_ERROR_NOT_FOUND</code> error will be returned.</p>
<div class="refsect3">
<a name="ostree-repo-resolve-keyring-for-collection.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>an <a class="link" href="ostree-OstreeRepo.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>collection_id</p></td>
<td class="parameter_description"><p>the collection ID to look up a keyring for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>a <span class="type">GCancellable</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>return location for a <span class="type">GError</span>, or <code class="literal">NULL</code></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-repo-resolve-keyring-for-collection.returns"></a><h4>Returns</h4>
<p><a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote"><span class="type">OstreeRemote</span></a> containing the GPG keyring for
<em class="parameter"><code>collection_id</code></em>
. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></p>
</div>
<p class="since">Since: 2018.6</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-repo-remote-finder.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OSTREE-REPO-METADATA-REF:CAPS"></a><h3>OSTREE_REPO_METADATA_REF</h3>
<pre class="programlisting">#define OSTREE_REPO_METADATA_REF "ostree-metadata"
</pre>
<p>The name of a ref which is used to store metadata for the entire repository,
such as its expected update time (<code class="literal">ostree.summary.expires</code>), name, or new
GPG keys. Metadata is stored on contentless commits in the ref, and hence is
signed with the commits.</p>
<p>This supersedes the additional metadata dictionary in the <code class="literal">summary</code> file
(see <a class="link" href="ostree-OstreeRepo.html#ostree-repo-regenerate-summary" title="ostree_repo_regenerate_summary ()"><code class="function">ostree_repo_regenerate_summary()</code></a>), as the use of a ref means that the
metadata for multiple upstream repositories can be included in a single mirror
repository, disambiguating the refs using collection IDs. In order to support
peer to peer redistribution of repository metadata, repositories must set a
collection ID (<a class="link" href="ostree-OstreeRepo.html#ostree-repo-set-collection-id" title="ostree_repo_set_collection_id ()"><code class="function">ostree_repo_set_collection_id()</code></a>).</p>
<p>Users of OSTree may place arbitrary metadata in commits on this ref, but the
keys must be namespaced by product or developer. For example,
<code class="literal">exampleos.end-of-life</code>. The <code class="literal">ostree.</code> prefix is reserved.</p>
<p class="since">Since: 2018.6</p>
</div>
<hr>
<div class="refsect2">
<a name="OSTREE-META-KEY-DEPLOY-COLLECTION-ID:CAPS"></a><h3>OSTREE_META_KEY_DEPLOY_COLLECTION_ID</h3>
<pre class="programlisting">#define OSTREE_META_KEY_DEPLOY_COLLECTION_ID "ostree.deploy-collection-id"
</pre>
<p>GVariant type <code class="literal">s</code>. This key can be used in the repo metadata which is stored
in OSTREE_REPO_METADATA_REF as well as in the summary. The semantics of this
are that the remote repository wants clients to update their remote config
to add this collection ID (clients can't do P2P operations involving a
remote without a collection ID configured on it, even if one is configured
on the server side). Clients must never change or remove a collection ID
already set in their remote config.</p>
<p>Currently, OSTree does not implement changing a remote config based on this
key, but it may do so in a later release, and until then clients such as
Flatpak may implement it.</p>
<p>This is a replacement for the similar metadata key implemented by flatpak,
<code class="literal">xa.collection-id</code>, which is now deprecated as clients which supported it had
bugs with their P2P implementations.</p>
<p class="since">Since: 2018.9</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -0,0 +1,163 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ostree-version: OSTree API references</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="OSTree API references">
<link rel="up" href="reference.html" title="API Reference">
<link rel="prev" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#ostree-ostree-version.description" class="shortcut">Description</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="reference.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="ostree-ostree-repo-remote-finder.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
</tr></table>
<div class="refentry">
<a name="ostree-ostree-version"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="ostree-ostree-version.top_of_page"></a>ostree-version</span></h2>
<p>ostree-version — ostree version checking</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="ostree-ostree-version.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody><tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="ostree-ostree-version.html#OSTREE-CHECK-VERSION:CAPS" title="OSTREE_CHECK_VERSION()">OSTREE_CHECK_VERSION</a><span class="c_punctuation">()</span>
</td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-version.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-version.html#OSTREE-YEAR-VERSION:CAPS" title="OSTREE_YEAR_VERSION">OSTREE_YEAR_VERSION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-version.html#OSTREE-RELEASE-VERSION:CAPS" title="OSTREE_RELEASE_VERSION">OSTREE_RELEASE_VERSION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-version.html#OSTREE-VERSION:CAPS" title="OSTREE_VERSION">OSTREE_VERSION</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-version.html#OSTREE-VERSION-S:CAPS" title="OSTREE_VERSION_S">OSTREE_VERSION_S</a></td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name"><a class="link" href="ostree-ostree-version.html#OSTREE-VERSION-HEX:CAPS" title="OSTREE_VERSION_HEX">OSTREE_VERSION_HEX</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="ostree-ostree-version.description"></a><h2>Description</h2>
<p>ostree provides macros to check the version of the library
at compile-time</p>
</div>
<div class="refsect1">
<a name="ostree-ostree-version.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="OSTREE-CHECK-VERSION:CAPS"></a><h3>OSTREE_CHECK_VERSION()</h3>
<pre class="programlisting">#define OSTREE_CHECK_VERSION(year,release)</pre>
<p>Compile-time version checking. Evaluates to <code class="literal">TRUE</code> if the version
of ostree is equal or greater than the required one.</p>
<div class="refsect3">
<a name="OSTREE-CHECK-VERSION.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>year</p></td>
<td class="parameter_description"><p>required year version</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>release</p></td>
<td class="parameter_description"><p>required release version</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2017.4</p>
</div>
</div>
<div class="refsect1">
<a name="ostree-ostree-version.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="OSTREE-YEAR-VERSION:CAPS"></a><h3>OSTREE_YEAR_VERSION</h3>
<pre class="programlisting">#define OSTREE_YEAR_VERSION (2022)
</pre>
<p>ostree year version component (e.g. 2017 if <a class="link" href="ostree-ostree-version.html#OSTREE-VERSION:CAPS" title="OSTREE_VERSION"><code class="literal">OSTREE_VERSION</code></a> is 2017.2)</p>
<p class="since">Since: 2017.4</p>
</div>
<hr>
<div class="refsect2">
<a name="OSTREE-RELEASE-VERSION:CAPS"></a><h3>OSTREE_RELEASE_VERSION</h3>
<pre class="programlisting">#define OSTREE_RELEASE_VERSION (3)
</pre>
<p>ostree release version component (e.g. 2 if <a class="link" href="ostree-ostree-version.html#OSTREE-VERSION:CAPS" title="OSTREE_VERSION"><code class="literal">OSTREE_VERSION</code></a> is 2017.2)</p>
<p class="since">Since: 2017.4</p>
</div>
<hr>
<div class="refsect2">
<a name="OSTREE-VERSION:CAPS"></a><h3>OSTREE_VERSION</h3>
<pre class="programlisting">#define OSTREE_VERSION (2022.3)
</pre>
<p>ostree version.</p>
<p class="since">Since: 2017.4</p>
</div>
<hr>
<div class="refsect2">
<a name="OSTREE-VERSION-S:CAPS"></a><h3>OSTREE_VERSION_S</h3>
<pre class="programlisting">#define OSTREE_VERSION_S "2022.3"
</pre>
<p>ostree version, encoded as a string, useful for printing and
concatenation.</p>
<p class="since">Since: 2017.4</p>
</div>
<hr>
<div class="refsect2">
<a name="OSTREE-VERSION-HEX:CAPS"></a><h3>OSTREE_VERSION_HEX</h3>
<pre class="programlisting">#define OSTREE_VERSION_HEX</pre>
<p>ostree version, encoded as an hexadecimal number, useful for
integer comparisons.</p>
<p class="since">Since: 2017.4</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>

View File

@ -14,9 +14,16 @@
<sub name="ostree-bootconfig-parser" link="ostree-ostree-bootconfig-parser.html"/> <sub name="ostree-bootconfig-parser" link="ostree-ostree-bootconfig-parser.html"/>
<sub name="ostree-chain-input-stream" link="ostree-ostree-chain-input-stream.html"/> <sub name="ostree-chain-input-stream" link="ostree-ostree-chain-input-stream.html"/>
<sub name="ostree-checksum-input-stream" link="ostree-ostree-checksum-input-stream.html"/> <sub name="ostree-checksum-input-stream" link="ostree-ostree-checksum-input-stream.html"/>
<sub name="ostree-content-writer" link="ostree-ostree-content-writer.html"/>
<sub name="ostree-deployment" link="ostree-ostree-deployment.html"/> <sub name="ostree-deployment" link="ostree-ostree-deployment.html"/>
<sub name="ostree-diff" link="ostree-ostree-diff.html"/> <sub name="ostree-diff" link="ostree-ostree-diff.html"/>
<sub name="ostree-kernel-args" link="ostree-ostree-kernel-args.html"/>
<sub name="ostree-ref" link="ostree-ostree-ref.html"/>
<sub name="ostree-remote" link="ostree-ostree-remote.html"/>
<sub name="ostree-repo-file" link="ostree-ostree-repo-file.html"/> <sub name="ostree-repo-file" link="ostree-ostree-repo-file.html"/>
<sub name="ostree-repo-finder" link="ostree-ostree-repo-finder.html"/>
<sub name="ostree-repo-remote-finder" link="ostree-ostree-repo-remote-finder.html"/>
<sub name="ostree-version" link="ostree-ostree-version.html"/>
<sub name="API Index" link="reference.html#api-index-full"/> <sub name="API Index" link="reference.html#api-index-full"/>
</sub> </sub>
</chapters> </chapters>
@ -427,6 +434,7 @@
<keyword type="struct" name="struct OstreeChainInputStream" link="ostree-ostree-chain-input-stream.html#OstreeChainInputStream"/> <keyword type="struct" name="struct OstreeChainInputStream" link="ostree-ostree-chain-input-stream.html#OstreeChainInputStream"/>
<keyword type="function" name="ostree_checksum_input_stream_new ()" link="ostree-ostree-checksum-input-stream.html#ostree-checksum-input-stream-new"/> <keyword type="function" name="ostree_checksum_input_stream_new ()" link="ostree-ostree-checksum-input-stream.html#ostree-checksum-input-stream-new"/>
<keyword type="struct" name="struct OstreeChecksumInputStream" link="ostree-ostree-checksum-input-stream.html#OstreeChecksumInputStream"/> <keyword type="struct" name="struct OstreeChecksumInputStream" link="ostree-ostree-checksum-input-stream.html#OstreeChecksumInputStream"/>
<keyword type="function" name="ostree_content_writer_finish ()" link="ostree-ostree-content-writer.html#ostree-content-writer-finish"/>
<keyword type="function" name="ostree_deployment_hash ()" link="ostree-ostree-deployment.html#ostree-deployment-hash"/> <keyword type="function" name="ostree_deployment_hash ()" link="ostree-ostree-deployment.html#ostree-deployment-hash"/>
<keyword type="function" name="ostree_deployment_equal ()" link="ostree-ostree-deployment.html#ostree-deployment-equal"/> <keyword type="function" name="ostree_deployment_equal ()" link="ostree-ostree-deployment.html#ostree-deployment-equal"/>
<keyword type="function" name="ostree_deployment_new ()" link="ostree-ostree-deployment.html#ostree-deployment-new"/> <keyword type="function" name="ostree_deployment_new ()" link="ostree-ostree-deployment.html#ostree-deployment-new"/>
@ -457,6 +465,38 @@
<keyword type="function" name="ostree_diff_print ()" link="ostree-ostree-diff.html#ostree-diff-print"/> <keyword type="function" name="ostree_diff_print ()" link="ostree-ostree-diff.html#ostree-diff-print"/>
<keyword type="enum" name="enum OstreeDiffFlags" link="ostree-ostree-diff.html#OstreeDiffFlags"/> <keyword type="enum" name="enum OstreeDiffFlags" link="ostree-ostree-diff.html#OstreeDiffFlags"/>
<keyword type="struct" name="struct OstreeDiffItem" link="ostree-ostree-diff.html#OstreeDiffItem"/> <keyword type="struct" name="struct OstreeDiffItem" link="ostree-ostree-diff.html#OstreeDiffItem"/>
<keyword type="function" name="ostree_kernel_args_free ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-free" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_new ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-new" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_cleanup ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-cleanup" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_replace_take ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-take" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_replace ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-replace" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_replace_argv ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-argv" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_append ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-append" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_append_argv ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_append_argv_filtered ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv-filtered" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_new_replace ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-new-replace" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_delete ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-delete" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_delete_key_entry ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-delete-key-entry" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_append_proc_cmdline ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-append-proc-cmdline" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_parse_append ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-parse-append" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_get_last_value ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-get-last-value" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_from_string ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-from-string" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_to_strv ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-to-strv" since="2019.3"/>
<keyword type="function" name="ostree_kernel_args_to_string ()" link="ostree-ostree-kernel-args.html#ostree-kernel-args-to-string" since="2019.3"/>
<keyword type="struct" name="OstreeKernelArgs" link="ostree-ostree-kernel-args.html#OstreeKernelArgs"/>
<keyword type="function" name="ostree_collection_ref_new ()" link="ostree-ostree-ref.html#ostree-collection-ref-new" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_dup ()" link="ostree-ostree-ref.html#ostree-collection-ref-dup" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_free ()" link="ostree-ostree-ref.html#ostree-collection-ref-free" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_hash ()" link="ostree-ostree-ref.html#ostree-collection-ref-hash" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_equal ()" link="ostree-ostree-ref.html#ostree-collection-ref-equal" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_dupv ()" link="ostree-ostree-ref.html#ostree-collection-ref-dupv" since="2018.6"/>
<keyword type="function" name="ostree_collection_ref_freev ()" link="ostree-ostree-ref.html#ostree-collection-ref-freev" since="2018.6"/>
<keyword type="typedef" name="OstreeCollectionRefv" link="ostree-ostree-ref.html#OstreeCollectionRefv" since="2018.6"/>
<keyword type="function" name="ostree_remote_ref ()" link="ostree-ostree-remote.html#ostree-remote-ref" since="2018.6"/>
<keyword type="function" name="ostree_remote_unref ()" link="ostree-ostree-remote.html#ostree-remote-unref" since="2018.6"/>
<keyword type="function" name="ostree_remote_get_name ()" link="ostree-ostree-remote.html#ostree-remote-get-name" since="2018.6"/>
<keyword type="function" name="ostree_remote_get_url ()" link="ostree-ostree-remote.html#ostree-remote-get-url" since="2018.6"/>
<keyword type="struct" name="struct OstreeRemote" link="ostree-ostree-remote.html#OstreeRemote" since="2018.6"/>
<keyword type="function" name="ostree_repo_file_ensure_resolved ()" link="ostree-ostree-repo-file.html#ostree-repo-file-ensure-resolved"/> <keyword type="function" name="ostree_repo_file_ensure_resolved ()" link="ostree-ostree-repo-file.html#ostree-repo-file-ensure-resolved"/>
<keyword type="function" name="ostree_repo_file_get_xattrs ()" link="ostree-ostree-repo-file.html#ostree-repo-file-get-xattrs"/> <keyword type="function" name="ostree_repo_file_get_xattrs ()" link="ostree-ostree-repo-file.html#ostree-repo-file-get-xattrs"/>
<keyword type="function" name="ostree_repo_file_get_repo ()" link="ostree-ostree-repo-file.html#ostree-repo-file-get-repo"/> <keyword type="function" name="ostree_repo_file_get_repo ()" link="ostree-ostree-repo-file.html#ostree-repo-file-get-repo"/>
@ -470,6 +510,30 @@
<keyword type="function" name="ostree_repo_file_tree_find_child ()" link="ostree-ostree-repo-file.html#ostree-repo-file-tree-find-child"/> <keyword type="function" name="ostree_repo_file_tree_find_child ()" link="ostree-ostree-repo-file.html#ostree-repo-file-tree-find-child"/>
<keyword type="function" name="ostree_repo_file_tree_query_child ()" link="ostree-ostree-repo-file.html#ostree-repo-file-tree-query-child"/> <keyword type="function" name="ostree_repo_file_tree_query_child ()" link="ostree-ostree-repo-file.html#ostree-repo-file-tree-query-child"/>
<keyword type="typedef" name="OstreeRepoFile" link="ostree-ostree-repo-file.html#OstreeRepoFile"/> <keyword type="typedef" name="OstreeRepoFile" link="ostree-ostree-repo-file.html#OstreeRepoFile"/>
<keyword type="function" name="ostree_repo_finder_resolve_async ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-async" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_resolve_finish ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-finish" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_resolve_all_async ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-async" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_resolve_all_finish ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-finish" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_result_new ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-result-new" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_result_dup ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-result-dup" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_result_free ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-result-free" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_result_compare ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-result-compare" since="2018.6"/>
<keyword type="function" name="ostree_repo_finder_result_freev ()" link="ostree-ostree-repo-finder.html#ostree-repo-finder-result-freev" since="2018.6"/>
<keyword type="struct" name="OstreeRepoFinder" link="ostree-ostree-repo-finder.html#OstreeRepoFinder"/>
<keyword type="typedef" name="OstreeRepoFinderResultv" link="ostree-ostree-repo-finder.html#OstreeRepoFinderResultv" since="2018.6"/>
<keyword type="function" name="ostree_repo_find_remotes_async ()" link="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-async" since="2018.6"/>
<keyword type="function" name="ostree_repo_find_remotes_finish ()" link="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-finish" since="2018.6"/>
<keyword type="function" name="ostree_repo_pull_from_remotes_async ()" link="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" since="2018.6"/>
<keyword type="function" name="ostree_repo_pull_from_remotes_finish ()" link="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-finish" since="2018.6"/>
<keyword type="function" name="ostree_repo_resolve_keyring_for_collection ()" link="ostree-ostree-repo-remote-finder.html#ostree-repo-resolve-keyring-for-collection" since="2018.6"/>
<keyword type="macro" name="OSTREE_REPO_METADATA_REF" link="ostree-ostree-repo-remote-finder.html#OSTREE-REPO-METADATA-REF:CAPS" since="2018.6"/>
<keyword type="macro" name="OSTREE_META_KEY_DEPLOY_COLLECTION_ID" link="ostree-ostree-repo-remote-finder.html#OSTREE-META-KEY-DEPLOY-COLLECTION-ID:CAPS" since="2018.9"/>
<keyword type="macro" name="OSTREE_CHECK_VERSION()" link="ostree-ostree-version.html#OSTREE-CHECK-VERSION:CAPS" since="2017.4"/>
<keyword type="macro" name="OSTREE_YEAR_VERSION" link="ostree-ostree-version.html#OSTREE-YEAR-VERSION:CAPS" since="2017.4"/>
<keyword type="macro" name="OSTREE_RELEASE_VERSION" link="ostree-ostree-version.html#OSTREE-RELEASE-VERSION:CAPS" since="2017.4"/>
<keyword type="macro" name="OSTREE_VERSION" link="ostree-ostree-version.html#OSTREE-VERSION:CAPS" since="2017.4"/>
<keyword type="macro" name="OSTREE_VERSION_S" link="ostree-ostree-version.html#OSTREE-VERSION-S:CAPS" since="2017.4"/>
<keyword type="macro" name="OSTREE_VERSION_HEX" link="ostree-ostree-version.html#OSTREE-VERSION-HEX:CAPS" since="2017.4"/>
<keyword type="constant" name="OSTREE_OBJECT_TYPE_FILE" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-FILE:CAPS"/> <keyword type="constant" name="OSTREE_OBJECT_TYPE_FILE" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-FILE:CAPS"/>
<keyword type="constant" name="OSTREE_OBJECT_TYPE_DIR_TREE" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-DIR-TREE:CAPS"/> <keyword type="constant" name="OSTREE_OBJECT_TYPE_DIR_TREE" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-DIR-TREE:CAPS"/>
<keyword type="constant" name="OSTREE_OBJECT_TYPE_DIR_META" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-DIR-META:CAPS"/> <keyword type="constant" name="OSTREE_OBJECT_TYPE_DIR_META" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-DIR-META:CAPS"/>

View File

@ -60,14 +60,35 @@
<span class="refentrytitle"><a href="ostree-ostree-checksum-input-stream.html">ostree-checksum-input-stream</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-checksum-input-stream.html">ostree-checksum-input-stream</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-content-writer.html">ostree-content-writer</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-deployment.html">ostree-deployment</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-deployment.html">ostree-deployment</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-diff.html">ostree-diff</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-diff.html">ostree-diff</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt> <dt>
<span class="refentrytitle"><a href="ostree-ostree-kernel-args.html">ostree-kernel-args</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-ref.html">ostree-ref</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-remote.html">ostree-remote</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-file.html">ostree-repo-file</a></span><span class="refpurpose"></span> <span class="refentrytitle"><a href="ostree-ostree-repo-file.html">ostree-repo-file</a></span><span class="refpurpose"></span>
</dt> </dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-finder.html">ostree-repo-finder</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-repo-remote-finder.html">ostree-repo-remote-finder</a></span><span class="refpurpose"></span>
</dt>
<dt>
<span class="refentrytitle"><a href="ostree-ostree-version.html">ostree-version</a></span><span class="refpurpose"> — ostree version checking</span>
</dt>
<dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt> <dt><span class="index"><a href="reference.html#api-index-full">API Index</a></span></dt>
</dl></div> </dl></div>
<div class="index"> <div class="index">
@ -269,7 +290,7 @@
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_CHECK_VERSION, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-CHECK-VERSION:CAPS" title="OSTREE_CHECK_VERSION()">OSTREE_CHECK_VERSION</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -281,35 +302,35 @@ OSTREE_CHECK_VERSION, macro in ostree-version
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OstreeCollectionRefv, typedef in ostree-ref <a class="link" href="ostree-ostree-ref.html#OstreeCollectionRefv" title="OstreeCollectionRefv">OstreeCollectionRefv</a>, typedef in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_dup, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-dup" title="ostree_collection_ref_dup ()">ostree_collection_ref_dup</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_dupv, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-dupv" title="ostree_collection_ref_dupv ()">ostree_collection_ref_dupv</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_equal, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-equal" title="ostree_collection_ref_equal ()">ostree_collection_ref_equal</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_free, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-free" title="ostree_collection_ref_free ()">ostree_collection_ref_free</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_freev, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-freev" title="ostree_collection_ref_freev ()">ostree_collection_ref_freev</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_hash, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-hash" title="ostree_collection_ref_hash ()">ostree_collection_ref_hash</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_collection_ref_new, function in ostree-ref <a class="link" href="ostree-ostree-ref.html#ostree-collection-ref-new" title="ostree_collection_ref_new ()">ostree_collection_ref_new</a>, function in <a class="link" href="ostree-ostree-ref.html" title="ostree-ref">ostree-ref</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -369,7 +390,7 @@ ostree_collection_ref_new, function in ostree-ref
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_content_writer_finish, function in ostree-content-writer <a class="link" href="ostree-ostree-content-writer.html#ostree-content-writer-finish" title="ostree_content_writer_finish ()">ostree_content_writer_finish</a>, function in <a class="link" href="ostree-ostree-content-writer.html" title="ostree-content-writer">ostree-content-writer</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -570,79 +591,79 @@ ostree_content_writer_finish, function in ostree-content-writer
<dd></dd> <dd></dd>
<a name="idxK"></a><h3 class="title">K</h3> <a name="idxK"></a><h3 class="title">K</h3>
<dt> <dt>
OstreeKernelArgs, struct in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#OstreeKernelArgs" title="OstreeKernelArgs">OstreeKernelArgs</a>, struct in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_append, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append" title="ostree_kernel_args_append ()">ostree_kernel_args_append</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_append_argv, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv" title="ostree_kernel_args_append_argv ()">ostree_kernel_args_append_argv</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_append_argv_filtered, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-argv-filtered" title="ostree_kernel_args_append_argv_filtered ()">ostree_kernel_args_append_argv_filtered</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_append_proc_cmdline, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-append-proc-cmdline" title="ostree_kernel_args_append_proc_cmdline ()">ostree_kernel_args_append_proc_cmdline</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_cleanup, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-cleanup" title="ostree_kernel_args_cleanup ()">ostree_kernel_args_cleanup</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_delete, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-delete" title="ostree_kernel_args_delete ()">ostree_kernel_args_delete</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_delete_key_entry, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-delete-key-entry" title="ostree_kernel_args_delete_key_entry ()">ostree_kernel_args_delete_key_entry</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_free, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-free" title="ostree_kernel_args_free ()">ostree_kernel_args_free</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_from_string, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-from-string" title="ostree_kernel_args_from_string ()">ostree_kernel_args_from_string</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_get_last_value, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-get-last-value" title="ostree_kernel_args_get_last_value ()">ostree_kernel_args_get_last_value</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_new, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-new" title="ostree_kernel_args_new ()">ostree_kernel_args_new</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_new_replace, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-new-replace" title="ostree_kernel_args_new_replace ()">ostree_kernel_args_new_replace</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_parse_append, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-parse-append" title="ostree_kernel_args_parse_append ()">ostree_kernel_args_parse_append</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_replace, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace" title="ostree_kernel_args_replace ()">ostree_kernel_args_replace</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_replace_argv, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-argv" title="ostree_kernel_args_replace_argv ()">ostree_kernel_args_replace_argv</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_replace_take, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-replace-take" title="ostree_kernel_args_replace_take ()">ostree_kernel_args_replace_take</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_to_string, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-to-string" title="ostree_kernel_args_to_string ()">ostree_kernel_args_to_string</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_kernel_args_to_strv, function in ostree-kernel-args <a class="link" href="ostree-ostree-kernel-args.html#ostree-kernel-args-to-strv" title="ostree_kernel_args_to_strv ()">ostree_kernel_args_to_strv</a>, function in <a class="link" href="ostree-ostree-kernel-args.html" title="ostree-kernel-args">ostree-kernel-args</a>
</dt> </dt>
<dd></dd> <dd></dd>
<a name="idxM"></a><h3 class="title">M</h3> <a name="idxM"></a><h3 class="title">M</h3>
@ -659,7 +680,7 @@ ostree_kernel_args_to_strv, function in ostree-kernel-args
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_META_KEY_DEPLOY_COLLECTION_ID, macro in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#OSTREE-META-KEY-DEPLOY-COLLECTION-ID:CAPS" title="OSTREE_META_KEY_DEPLOY_COLLECTION_ID">OSTREE_META_KEY_DEPLOY_COLLECTION_ID</a>, macro in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -790,27 +811,27 @@ OSTREE_META_KEY_DEPLOY_COLLECTION_ID, macro in ostree-repo-remote-finder
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_RELEASE_VERSION, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-RELEASE-VERSION:CAPS" title="OSTREE_RELEASE_VERSION">OSTREE_RELEASE_VERSION</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OstreeRemote, struct in ostree-remote <a class="link" href="ostree-ostree-remote.html#OstreeRemote" title="struct OstreeRemote">OstreeRemote</a>, struct in <a class="link" href="ostree-ostree-remote.html" title="ostree-remote">ostree-remote</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_remote_get_name, function in ostree-remote <a class="link" href="ostree-ostree-remote.html#ostree-remote-get-name" title="ostree_remote_get_name ()">ostree_remote_get_name</a>, function in <a class="link" href="ostree-ostree-remote.html" title="ostree-remote">ostree-remote</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_remote_get_url, function in ostree-remote <a class="link" href="ostree-ostree-remote.html#ostree-remote-get-url" title="ostree_remote_get_url ()">ostree_remote_get_url</a>, function in <a class="link" href="ostree-ostree-remote.html" title="ostree-remote">ostree-remote</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_remote_ref, function in ostree-remote <a class="link" href="ostree-ostree-remote.html#ostree-remote-ref" title="ostree_remote_ref ()">ostree_remote_ref</a>, function in <a class="link" href="ostree-ostree-remote.html" title="ostree-remote">ostree-remote</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_remote_unref, function in ostree-remote <a class="link" href="ostree-ostree-remote.html#ostree-remote-unref" title="ostree_remote_unref ()">ostree_remote_unref</a>, function in <a class="link" href="ostree-ostree-remote.html" title="ostree-remote">ostree-remote</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -870,7 +891,7 @@ ostree_remote_unref, function in ostree-remote
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OstreeRepoFinder, struct in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinder" title="OstreeRepoFinder">OstreeRepoFinder</a>, struct in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -890,7 +911,7 @@ OstreeRepoFinderOverride, struct in OstreeRepoFinderOverride
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OstreeRepoFinderResultv, typedef in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#OstreeRepoFinderResultv" title="OstreeRepoFinderResultv">OstreeRepoFinderResultv</a>, typedef in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -1118,47 +1139,47 @@ OstreeRepoFinderResultv, typedef in ostree-repo-finder
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_resolve_all_async, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-async" title="ostree_repo_finder_resolve_all_async ()">ostree_repo_finder_resolve_all_async</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_resolve_all_finish, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-all-finish" title="ostree_repo_finder_resolve_all_finish ()">ostree_repo_finder_resolve_all_finish</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_resolve_async, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-async" title="ostree_repo_finder_resolve_async ()">ostree_repo_finder_resolve_async</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_resolve_finish, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-resolve-finish" title="ostree_repo_finder_resolve_finish ()">ostree_repo_finder_resolve_finish</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_result_compare, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-compare" title="ostree_repo_finder_result_compare ()">ostree_repo_finder_result_compare</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_result_dup, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-dup" title="ostree_repo_finder_result_dup ()">ostree_repo_finder_result_dup</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_result_free, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-free" title="ostree_repo_finder_result_free ()">ostree_repo_finder_result_free</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_result_freev, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-freev" title="ostree_repo_finder_result_freev ()">ostree_repo_finder_result_freev</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_finder_result_new, function in ostree-repo-finder <a class="link" href="ostree-ostree-repo-finder.html#ostree-repo-finder-result-new" title="ostree_repo_finder_result_new ()">ostree_repo_finder_result_new</a>, function in <a class="link" href="ostree-ostree-repo-finder.html" title="ostree-repo-finder">ostree-repo-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_find_remotes_async, function in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-async" title="ostree_repo_find_remotes_async ()">ostree_repo_find_remotes_async</a>, function in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_find_remotes_finish, function in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-find-remotes-finish" title="ostree_repo_find_remotes_finish ()">ostree_repo_find_remotes_finish</a>, function in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -1322,7 +1343,7 @@ ostree_repo_find_remotes_finish, function in ostree-repo-remote-finder
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_REPO_METADATA_REF, macro in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#OSTREE-REPO-METADATA-REF:CAPS" title="OSTREE_REPO_METADATA_REF">OSTREE_REPO_METADATA_REF</a>, macro in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -1374,11 +1395,11 @@ OSTREE_REPO_METADATA_REF, macro in ostree-repo-remote-finder
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_pull_from_remotes_async, function in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-async" title="ostree_repo_pull_from_remotes_async ()">ostree_repo_pull_from_remotes_async</a>, function in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_pull_from_remotes_finish, function in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-pull-from-remotes-finish" title="ostree_repo_pull_from_remotes_finish ()">ostree_repo_pull_from_remotes_finish</a>, function in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -1466,7 +1487,7 @@ ostree_repo_pull_from_remotes_finish, function in ostree-repo-remote-finder
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
ostree_repo_resolve_keyring_for_collection, function in ostree-repo-remote-finder <a class="link" href="ostree-ostree-repo-remote-finder.html#ostree-repo-resolve-keyring-for-collection" title="ostree_repo_resolve_keyring_for_collection ()">ostree_repo_resolve_keyring_for_collection</a>, function in <a class="link" href="ostree-ostree-repo-remote-finder.html" title="ostree-repo-remote-finder">ostree-repo-remote-finder</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
@ -2113,20 +2134,20 @@ ostree_repo_resolve_keyring_for_collection, function in ostree-repo-remote-finde
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_VERSION, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-VERSION:CAPS" title="OSTREE_VERSION">OSTREE_VERSION</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_VERSION_HEX, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-VERSION-HEX:CAPS" title="OSTREE_VERSION_HEX">OSTREE_VERSION_HEX</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
OSTREE_VERSION_S, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-VERSION-S:CAPS" title="OSTREE_VERSION_S">OSTREE_VERSION_S</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
<a name="idxY"></a><h3 class="title">Y</h3> <a name="idxY"></a><h3 class="title">Y</h3>
<dt> <dt>
OSTREE_YEAR_VERSION, macro in ostree-version <a class="link" href="ostree-ostree-version.html#OSTREE-YEAR-VERSION:CAPS" title="OSTREE_YEAR_VERSION">OSTREE_YEAR_VERSION</a>, macro in <a class="link" href="ostree-ostree-version.html" title="ostree-version">ostree-version</a>
</dt> </dt>
<dd></dd> <dd></dd>
</div> </div>

View File

@ -25,9 +25,16 @@
<xi:include href="xml/ostree-bootconfig-parser.xml"/> <xi:include href="xml/ostree-bootconfig-parser.xml"/>
<xi:include href="xml/ostree-chain-input-stream.xml"/> <xi:include href="xml/ostree-chain-input-stream.xml"/>
<xi:include href="xml/ostree-checksum-input-stream.xml"/> <xi:include href="xml/ostree-checksum-input-stream.xml"/>
<xi:include href="xml/ostree-content-writer.xml"/>
<xi:include href="xml/ostree-deployment.xml"/> <xi:include href="xml/ostree-deployment.xml"/>
<xi:include href="xml/ostree-diff.xml"/> <xi:include href="xml/ostree-diff.xml"/>
<xi:include href="xml/ostree-kernel-args.xml"/>
<xi:include href="xml/ostree-ref.xml"/>
<xi:include href="xml/ostree-remote.xml"/>
<xi:include href="xml/ostree-repo-file.xml"/> <xi:include href="xml/ostree-repo-file.xml"/>
<xi:include href="xml/ostree-repo-finder.xml"/>
<xi:include href="xml/ostree-repo-remote-finder.xml"/>
<xi:include href="xml/ostree-version.xml"/>
<index id="api-index-full"> <index id="api-index-full">
<title>API Index</title> <title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include> <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>

View File

@ -1 +1 @@
2021.6 2022.3

56
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 2022.2. # Generated by GNU Autoconf 2.69 for libostree 2022.3.
# #
# 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='2022.2' PACKAGE_VERSION='2022.3'
PACKAGE_STRING='libostree 2022.2' PACKAGE_STRING='libostree 2022.3'
PACKAGE_BUGREPORT='walters@verbum.org' PACKAGE_BUGREPORT='walters@verbum.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -692,6 +692,8 @@ USE_LIBARCHIVE_FALSE
USE_LIBARCHIVE_TRUE USE_LIBARCHIVE_TRUE
OT_DEP_LIBARCHIVE_LIBS OT_DEP_LIBARCHIVE_LIBS
OT_DEP_LIBARCHIVE_CFLAGS OT_DEP_LIBARCHIVE_CFLAGS
ENABLE_MAN_HTML_FALSE
ENABLE_MAN_HTML_TRUE
ENABLE_MAN_FALSE ENABLE_MAN_FALSE
ENABLE_MAN_TRUE ENABLE_MAN_TRUE
XSLTPROC XSLTPROC
@ -943,6 +945,7 @@ enable_gtk_doc
enable_gtk_doc_html enable_gtk_doc_html
enable_gtk_doc_pdf enable_gtk_doc_pdf
enable_man enable_man
enable_man_html
with_libarchive with_libarchive
with_selinux with_selinux
with_smack with_smack
@ -1569,7 +1572,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 2022.2 to adapt to many kinds of systems. \`configure' configures libostree 2022.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1640,7 +1643,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 2022.2:";; short | recursive ) echo "Configuration of libostree 2022.3:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1686,6 +1689,7 @@ Optional Features:
--enable-gtk-doc-html build documentation in html format [[default=yes]] --enable-gtk-doc-html build documentation in html format [[default=yes]]
--enable-gtk-doc-pdf build documentation in pdf format [[default=no]] --enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
--enable-man generate man pages [default=auto] --enable-man generate man pages [default=auto]
--enable-man-html generate man HTML pages [default=no]
--enable-rofiles-fuse generate rofiles-fuse helper [default=yes] --enable-rofiles-fuse generate rofiles-fuse helper [default=yes]
Optional Packages: Optional Packages:
@ -1903,7 +1907,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 2022.2 libostree configure 2022.3
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.
@ -2375,7 +2379,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 2022.2, which was It was created by libostree $as_me 2022.3, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -3243,7 +3247,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libostree' PACKAGE='libostree'
VERSION='2022.2' VERSION='2022.3'
# Some tools Automake needs. # Some tools Automake needs.
@ -5977,9 +5981,9 @@ test -n "$YACC" || YACC="yacc"
YEAR_VERSION=2022 YEAR_VERSION=2022
RELEASE_VERSION=2 RELEASE_VERSION=3
PACKAGE_VERSION=2022.2 PACKAGE_VERSION=2022.3
pkglibexecdir=$libexecdir/$PACKAGE pkglibexecdir=$libexecdir/$PACKAGE
@ -14713,7 +14717,7 @@ rm -f core conftest.err conftest.$ac_objext \
rm -f conf.glibtest rm -f conf.glibtest
GIO_DEPENDENCY="gio-unix-2.0 >= 2.44.0" GIO_DEPENDENCY="gio-unix-2.0 >= 2.66.0"
pkg_failed=no pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OT_DEP_GIO_UNIX" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OT_DEP_GIO_UNIX" >&5
@ -16736,6 +16740,28 @@ else
fi fi
# Check whether --enable-man-html was given.
if test "${enable_man_html+set}" = set; then :
enableval=$enable_man_html;
else
enable_man_html=no
fi
if test "$enable_man_html" = yes && test "$enable_man" = no; then :
as_fn_error $? "--enable-man is required for --enable-man-html" "$LINENO" 5
fi
if test "$enable_man_html" = yes; then
ENABLE_MAN_HTML_TRUE=
ENABLE_MAN_HTML_FALSE='#'
else
ENABLE_MAN_HTML_TRUE='#'
ENABLE_MAN_HTML_FALSE=
fi
# Check whether --with-libarchive was given. # Check whether --with-libarchive was given.
if test "${with_libarchive+set}" = set; then : if test "${with_libarchive+set}" = set; then :
@ -18597,6 +18623,10 @@ if test -z "${ENABLE_MAN_TRUE}" && test -z "${ENABLE_MAN_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_MAN\" was never defined. as_fn_error $? "conditional \"ENABLE_MAN\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi fi
if test -z "${ENABLE_MAN_HTML_TRUE}" && test -z "${ENABLE_MAN_HTML_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_MAN_HTML\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${USE_LIBARCHIVE_TRUE}" && test -z "${USE_LIBARCHIVE_FALSE}"; then if test -z "${USE_LIBARCHIVE_TRUE}" && test -z "${USE_LIBARCHIVE_FALSE}"; then
as_fn_error $? "conditional \"USE_LIBARCHIVE\" was never defined. as_fn_error $? "conditional \"USE_LIBARCHIVE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@ -19062,7 +19092,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 2022.2, which was This file was extended by libostree $as_me 2022.3, 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
@ -19128,7 +19158,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 2022.2 libostree config.status 2022.3
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

@ -1,7 +1,7 @@
AC_PREREQ([2.63]) AC_PREREQ([2.63])
dnl To perform a release, follow the instructions in `docs/CONTRIBUTING.md`. dnl To perform a release, follow the instructions in `docs/CONTRIBUTING.md`.
m4_define([year_version], [2022]) m4_define([year_version], [2022])
m4_define([release_version], [2]) m4_define([release_version], [3])
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
@ -113,7 +113,7 @@ AM_PATH_GLIB_2_0(,,AC_MSG_ERROR([GLib not found]))
dnl When bumping the gio-unix-2.0 dependency (or glib-2.0 in general), dnl When bumping the gio-unix-2.0 dependency (or glib-2.0 in general),
dnl remember to bump GLIB_VERSION_MIN_REQUIRED and dnl remember to bump GLIB_VERSION_MIN_REQUIRED and
dnl GLIB_VERSION_MAX_ALLOWED in Makefile.am dnl GLIB_VERSION_MAX_ALLOWED in Makefile.am
GIO_DEPENDENCY="gio-unix-2.0 >= 2.44.0" GIO_DEPENDENCY="gio-unix-2.0 >= 2.66.0"
PKG_CHECK_MODULES(OT_DEP_GIO_UNIX, $GIO_DEPENDENCY) PKG_CHECK_MODULES(OT_DEP_GIO_UNIX, $GIO_DEPENDENCY)
dnl 5.1.0 is an arbitrary version here dnl 5.1.0 is an arbitrary version here
@ -292,6 +292,16 @@ AS_IF([test "$enable_man" != no], [
]) ])
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no) AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
AC_ARG_ENABLE([man-html],
[AS_HELP_STRING([--enable-man-html],
[generate man HTML pages [default=no]])],,
enable_man_html=no)
AS_IF([test "$enable_man_html" = yes && test "$enable_man" = no], [
AC_MSG_ERROR([--enable-man is required for --enable-man-html])
])
AM_CONDITIONAL(ENABLE_MAN_HTML, test "$enable_man_html" = yes)
AC_ARG_WITH(libarchive, AC_ARG_WITH(libarchive,
AS_HELP_STRING([--without-libarchive], [Do not use libarchive]), AS_HELP_STRING([--without-libarchive], [Do not use libarchive]),
:, with_libarchive=maybe) :, with_libarchive=maybe)

37
man/html.xsl Normal file
View File

@ -0,0 +1,37 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!--
Copyright © 2022 Endless OS Foundation LLC
SPDX-License-Identifier: LGPL-2.0+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <https://www.gnu.org/licenses/>.
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
<!-- translate man page references to links to html pages -->
<xsl:template match="citerefentry">
<a>
<xsl:attribute name="href">
<xsl:value-of select="refentrytitle"/>
<xsl:text>.html</xsl:text>
</xsl:attribute>
<xsl:call-template name="inline.charseq"/>
</a>
</xsl:template>
</xsl:stylesheet>

202
man/index.xml Normal file
View File

@ -0,0 +1,202 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
Copyright © 2022 Endless OS Foundation LLC
SPDX-License-Identifier: LGPL-2.0+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <https://www.gnu.org/licenses/>.
-->
<index id="index">
<title>OSTree Manual</title>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-cleanup</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-config-diff</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-deploy</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-init-fs</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-instutil</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-os-init</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-pin</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-set-origin</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-status</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-switch</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-undeploy</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-unlock</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin-upgrade</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-admin</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-cat</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-checkout</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-checksum</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-commit</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-config</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-create-usb</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-diff</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-export</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-fsck</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-gpg-sign</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-init</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-log</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-ls</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-prune</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-pull-local</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-pull</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-refs</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-remote</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree.repo-config</refentrytitle><manvolnum>5</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree.repo</refentrytitle><manvolnum>5</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-reset</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-rev-parse</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-show</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-sign</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-static-delta</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-summary</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>ostree-trivial-httpd</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
<indexentry><primaryie><citerefentry>
<refentrytitle>rofiles-fuse</refentrytitle><manvolnum>1</manvolnum>
</citerefentry></primaryie></indexentry>
</index>

View File

@ -151,7 +151,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-cleanup</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-cleanup</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Delete untagged Delete untagged
deployments and repository objects. deployments and repository objects.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -160,7 +160,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-config-diff</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-config-diff</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;See changes to See changes to
<filename>/etc</filename> as compared <filename>/etc</filename> as compared
to the current default (from to the current default (from
<filename>/usr/etc</filename>). <filename>/usr/etc</filename>).
@ -171,7 +171,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-deploy</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-deploy</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Takes a particular Takes a particular
commit or revision, and sets it up for commit or revision, and sets it up for
the next boot. the next boot.
</para></listitem> </para></listitem>
@ -181,7 +181,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-init-fs</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-init-fs</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Initialize a root filesystem Initialize a root filesystem
in a specified path. in a specified path.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -190,7 +190,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-instutil</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-instutil</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Utility functions intended primarily for operating system installation programs Utility functions intended primarily for operating system installation programs
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -198,7 +198,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-os-init</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-os-init</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Initialize the Initialize the
deployment location for an operating deployment location for an operating
system with a specified name. system with a specified name.
</para></listitem> </para></listitem>
@ -208,7 +208,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-status</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-status</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Show and list the deployments. Show and list the deployments.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -216,7 +216,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-switch</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-switch</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Choose a different ref Choose a different ref
to track from the same remote as the to track from the same remote as the
current tree. current tree.
</para></listitem> </para></listitem>
@ -226,7 +226,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-undeploy</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-undeploy</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Remove the previously Remove the previously
<replaceable>INDEX</replaceable> <replaceable>INDEX</replaceable>
deployed tree from the bootloader deployed tree from the bootloader
configuration. configuration.
@ -237,7 +237,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-admin-upgrade</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-admin-upgrade</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Download the latest version for the Download the latest version for the
current ref, and deploy it. current ref, and deploy it.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -253,7 +253,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Concatenate contents of files Concatenate contents of files
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -261,7 +261,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-checkout</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-checkout</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Check out a commit into a filesystem tree. Check out a commit into a filesystem tree.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -269,7 +269,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-checksum</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-checksum</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Gives checksum of any file. Gives checksum of any file.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -277,7 +277,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-commit</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-commit</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Given one or more Given one or more
trees, create a new commit using those contents. trees, create a new commit using those contents.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -286,7 +286,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-config</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-config</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Change settings. Change settings.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -294,7 +294,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-create-usb</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-create-usb</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Put the given refs on an external drive for P2P distribution. Put the given refs on an external drive for P2P distribution.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -302,7 +302,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-diff</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-diff</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Concisely list Concisely list
differences between the given refs. differences between the given refs.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -311,7 +311,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-find-remotes</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Find remotes to serve the given refs. Find remotes to serve the given refs.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -319,7 +319,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-fsck</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-fsck</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Check a repository for consistency. Check a repository for consistency.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -327,7 +327,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-init</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-init</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Initialize a new repository. Initialize a new repository.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -335,7 +335,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-log</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-log</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Show revision log. Show revision log.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -343,7 +343,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-ls</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-ls</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;List the contents of a given commit. List the contents of a given commit.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -351,7 +351,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-prune</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-prune</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Search for unreachable objects. Search for unreachable objects.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -359,7 +359,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-pull-local</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-pull-local</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Copy data from source-repo. Copy data from source-repo.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -367,7 +367,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-pull</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-pull</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Download data from remote repo. If you have libsoup. Download data from remote repo. If you have libsoup.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -375,7 +375,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-refs</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-refs</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;List refs. List refs.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -383,7 +383,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-remote</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-remote</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Manipulate remote archive configuration. Manipulate remote archive configuration.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -391,7 +391,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-reset</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-reset</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Reset a ref to a previous commit. Reset a ref to a previous commit.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -399,7 +399,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-rev-parse</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-rev-parse</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Show the SHA256 corresponding to a given rev. Show the SHA256 corresponding to a given rev.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -407,7 +407,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-show</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-show</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Given an OSTree SHA256 checksum, display its contents. Given an OSTree SHA256 checksum, display its contents.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -415,7 +415,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-static-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-static-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Manage static delta files. Manage static delta files.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -423,7 +423,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-summary</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-summary</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Regenerate the repository summary metadata. Regenerate the repository summary metadata.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
@ -431,7 +431,7 @@ License along with this library. If not, see <https://www.gnu.org/licenses/>.
<term><citerefentry><refentrytitle>ostree-trivial-httpd</refentrytitle><manvolnum>1</manvolnum></citerefentry></term> <term><citerefentry><refentrytitle>ostree-trivial-httpd</refentrytitle><manvolnum>1</manvolnum></citerefentry></term>
<listitem><para> <listitem><para>
&nbsp;Simple webserver. Simple webserver.
</para></listitem> </para></listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>

View File

@ -0,0 +1,33 @@
# Copyright (C) 2022 Red Hat, Inc.
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
[Unit]
Description=OSTree Complete Boot
Documentation=man:ostree(1)
# For now, this is the only condition on which we start, but it's
# marked as a triggering condition in case in the future we want
# to do something else.
ConditionPathExists=|/boot/ostree/finalize-failure.stamp
RequiresMountsFor=/boot
# Ensure that we propagate the failure into the current boot before
# any further finalization attempts.
Before=ostree-finalize-staged.service
[Service]
Type=oneshot
# To write to /boot while keeping it read-only
MountFlags=slave
RemainAfterExit=yes
ExecStart=/usr/bin/ostree admin boot-complete

View File

@ -13,5 +13,7 @@
# You should have received a copy of the GNU Lesser General Public # You should have received a copy of the GNU Lesser General Public
# License along with this library. If not, see <https://www.gnu.org/licenses/>. # License along with this library. If not, see <https://www.gnu.org/licenses/>.
# ostree runtime configuration
d /run/ostree 0755 root root -
# https://github.com/ostreedev/ostree/issues/393 # https://github.com/ostreedev/ostree/issues/393
R! /var/tmp/ostree-unlock-ovl.* R! /var/tmp/ostree-unlock-ovl.*

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -26,13 +27,13 @@ enum {
PROP_STREAMS PROP_STREAMS
}; };
G_DEFINE_TYPE (OstreeChainInputStream, ostree_chain_input_stream, G_TYPE_INPUT_STREAM)
struct _OstreeChainInputStreamPrivate { struct _OstreeChainInputStreamPrivate {
GPtrArray *streams; GPtrArray *streams;
guint index; guint index;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (OstreeChainInputStream, ostree_chain_input_stream, G_TYPE_INPUT_STREAM)
static void ostree_chain_input_stream_set_property (GObject *object, static void ostree_chain_input_stream_set_property (GObject *object,
guint prop_id, guint prop_id,
const GValue *value, const GValue *value,
@ -56,8 +57,6 @@ ostree_chain_input_stream_class_init (OstreeChainInputStreamClass *klass)
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass); GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass);
g_type_class_add_private (klass, sizeof (OstreeChainInputStreamPrivate));
gobject_class->get_property = ostree_chain_input_stream_get_property; gobject_class->get_property = ostree_chain_input_stream_get_property;
gobject_class->set_property = ostree_chain_input_stream_set_property; gobject_class->set_property = ostree_chain_input_stream_set_property;
@ -137,9 +136,7 @@ ostree_chain_input_stream_finalize (GObject *object)
static void static void
ostree_chain_input_stream_init (OstreeChainInputStream *self) ostree_chain_input_stream_init (OstreeChainInputStream *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, self->priv = ostree_chain_input_stream_get_instance_private (self);
OSTREE_TYPE_CHAIN_INPUT_STREAM,
OstreeChainInputStreamPrivate);
} }

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -26,12 +27,12 @@ enum {
PROP_CHECKSUM PROP_CHECKSUM
}; };
G_DEFINE_TYPE (OstreeChecksumInputStream, ostree_checksum_input_stream, G_TYPE_FILTER_INPUT_STREAM)
struct _OstreeChecksumInputStreamPrivate { struct _OstreeChecksumInputStreamPrivate {
GChecksum *checksum; GChecksum *checksum;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (OstreeChecksumInputStream, ostree_checksum_input_stream, G_TYPE_FILTER_INPUT_STREAM)
static void ostree_checksum_input_stream_set_property (GObject *object, static void ostree_checksum_input_stream_set_property (GObject *object,
guint prop_id, guint prop_id,
const GValue *value, const GValue *value,
@ -51,8 +52,6 @@ ostree_checksum_input_stream_class_init (OstreeChecksumInputStreamClass *klass)
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass); GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass);
g_type_class_add_private (klass, sizeof (OstreeChecksumInputStreamPrivate));
gobject_class->get_property = ostree_checksum_input_stream_get_property; gobject_class->get_property = ostree_checksum_input_stream_get_property;
gobject_class->set_property = ostree_checksum_input_stream_set_property; gobject_class->set_property = ostree_checksum_input_stream_set_property;
@ -118,10 +117,7 @@ ostree_checksum_input_stream_get_property (GObject *object,
static void static void
ostree_checksum_input_stream_init (OstreeChecksumInputStream *self) ostree_checksum_input_stream_init (OstreeChecksumInputStream *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, self->priv = ostree_checksum_input_stream_get_instance_private (self);
OSTREE_TYPE_CHECKSUM_INPUT_STREAM,
OstreeChecksumInputStreamPrivate);
} }
OstreeChecksumInputStream * OstreeChecksumInputStream *

View File

@ -51,6 +51,7 @@ ostree_cmd__private__ (void)
_ostree_repo_static_delta_delete, _ostree_repo_static_delta_delete,
_ostree_repo_verify_bindings, _ostree_repo_verify_bindings,
_ostree_sysroot_finalize_staged, _ostree_sysroot_finalize_staged,
_ostree_sysroot_boot_complete,
}; };
return &table; return &table;

View File

@ -33,6 +33,7 @@ typedef struct {
gboolean (* ostree_static_delta_delete) (OstreeRepo *repo, const char *delta_id, GCancellable *cancellable, GError **error); gboolean (* ostree_static_delta_delete) (OstreeRepo *repo, const char *delta_id, GCancellable *cancellable, GError **error);
gboolean (* ostree_repo_verify_bindings) (const char *collection_id, const char *ref_name, GVariant *commit, GError **error); gboolean (* ostree_repo_verify_bindings) (const char *collection_id, const char *ref_name, GVariant *commit, GError **error);
gboolean (* ostree_finalize_staged) (OstreeSysroot *sysroot, GCancellable *cancellable, GError **error); gboolean (* ostree_finalize_staged) (OstreeSysroot *sysroot, GCancellable *cancellable, GError **error);
gboolean (* ostree_boot_complete) (OstreeSysroot *sysroot, GCancellable *cancellable, GError **error);
} OstreeCmdPrivateVTable; } OstreeCmdPrivateVTable;
/* Note this not really "public", we just export the symbol, but not the header */ /* Note this not really "public", we just export the symbol, but not the header */

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -1031,19 +1032,22 @@ typedef struct {
} ChecksumFileAsyncData; } ChecksumFileAsyncData;
static void static void
checksum_file_async_thread (GSimpleAsyncResult *res, checksum_file_async_thread (GTask *task,
GObject *object, GObject *object,
gpointer datap,
GCancellable *cancellable) GCancellable *cancellable)
{ {
GError *error = NULL; GError *error = NULL;
ChecksumFileAsyncData *data; ChecksumFileAsyncData *data = datap;
guchar *csum = NULL; guchar *csum = NULL;
data = g_simple_async_result_get_op_res_gpointer (res);
if (!ostree_checksum_file (data->f, data->objtype, &csum, cancellable, &error)) if (!ostree_checksum_file (data->f, data->objtype, &csum, cancellable, &error))
g_simple_async_result_take_error (res, error); g_task_return_error (task, error);
else else
data->csum = csum; {
data->csum = csum;
g_task_return_pointer (task, data, NULL);
}
} }
static void static void
@ -1076,18 +1080,18 @@ ostree_checksum_file_async (GFile *f,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
{ {
GSimpleAsyncResult *res; g_autoptr(GTask) task = NULL;
ChecksumFileAsyncData *data; ChecksumFileAsyncData *data;
data = g_new0 (ChecksumFileAsyncData, 1); data = g_new0 (ChecksumFileAsyncData, 1);
data->f = g_object_ref (f); data->f = g_object_ref (f);
data->objtype = objtype; data->objtype = objtype;
res = g_simple_async_result_new (G_OBJECT (f), callback, user_data, ostree_checksum_file_async); task = g_task_new (G_OBJECT (f), cancellable, callback, user_data);
g_simple_async_result_set_op_res_gpointer (res, data, (GDestroyNotify)checksum_file_async_data_free); g_task_set_task_data (task, data, (GDestroyNotify)checksum_file_async_data_free);
g_task_set_priority (task, io_priority);
g_simple_async_result_run_in_thread (res, checksum_file_async_thread, io_priority, cancellable); g_task_set_source_tag (task, ostree_checksum_file_async);
g_object_unref (res); g_task_run_in_thread (task, (GTaskThreadFunc)checksum_file_async_thread);
} }
/** /**
@ -1106,15 +1110,19 @@ ostree_checksum_file_async_finish (GFile *f,
guchar **out_csum, guchar **out_csum,
GError **error) GError **error)
{ {
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
ChecksumFileAsyncData *data; ChecksumFileAsyncData *data;
g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == ostree_checksum_file_async); g_return_val_if_fail (G_IS_FILE (f), FALSE);
g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, f), FALSE);
g_return_val_if_fail (g_async_result_is_tagged (result, ostree_checksum_file_async), FALSE);
if (g_simple_async_result_propagate_error (simple, error)) data = g_task_propagate_pointer (G_TASK (result), error);
if (data == NULL)
return FALSE; return FALSE;
data = g_simple_async_result_get_op_res_gpointer (simple);
/* Transfer ownership */ /* Transfer ownership */
*out_csum = data->csum; *out_csum = data->csum;
data->csum = NULL; data->csum = NULL;

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2016 Colin Walters <walters@verbum.org> * Copyright (C) 2016 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -50,8 +51,6 @@
#include "ostree-repo-private.h" #include "ostree-repo-private.h"
#include "otutil.h" #include "otutil.h"
#include "ostree-soup-uri.h"
typedef struct FetcherRequest FetcherRequest; typedef struct FetcherRequest FetcherRequest;
typedef struct SockInfo SockInfo; typedef struct SockInfo SockInfo;
@ -183,13 +182,13 @@ _ostree_fetcher_finalize (GObject *object)
g_free (self->cookie_jar_path); g_free (self->cookie_jar_path);
g_free (self->proxy); g_free (self->proxy);
g_assert_cmpint (g_hash_table_size (self->outstanding_requests), ==, 0); g_assert_cmpint (g_hash_table_size (self->outstanding_requests), ==, 0);
g_clear_pointer (&self->extra_headers, (GDestroyNotify)curl_slist_free_all); g_clear_pointer (&self->extra_headers, curl_slist_free_all);
g_hash_table_unref (self->outstanding_requests); g_hash_table_unref (self->outstanding_requests);
g_hash_table_unref (self->sockets); g_hash_table_unref (self->sockets);
g_clear_pointer (&self->timer_event, (GDestroyNotify)destroy_and_unref_source); g_clear_pointer (&self->timer_event, destroy_and_unref_source);
if (self->mainctx) if (self->mainctx)
g_main_context_unref (self->mainctx); g_main_context_unref (self->mainctx);
g_clear_pointer (&self->custom_user_agent, (GDestroyNotify)g_free); g_clear_pointer (&self->custom_user_agent, g_free);
G_OBJECT_CLASS (_ostree_fetcher_parent_class)->finalize (object); G_OBJECT_CLASS (_ostree_fetcher_parent_class)->finalize (object);
} }
@ -266,11 +265,11 @@ destroy_and_unref_source (GSource *source)
} }
static char * static char *
request_get_uri (FetcherRequest *req, SoupURI *baseuri) request_get_uri (FetcherRequest *req, GUri *baseuri)
{ {
if (!req->filename) if (!req->filename)
return soup_uri_to_string (baseuri, FALSE); return g_uri_to_string_partial (baseuri, G_URI_HIDE_PASSWORD);
{ g_autofree char *uristr = soup_uri_to_string (baseuri, FALSE); { g_autofree char *uristr = g_uri_to_string_partial (baseuri, G_URI_HIDE_PASSWORD);
return g_build_filename (uristr, req->filename, NULL); return g_build_filename (uristr, req->filename, NULL);
} }
} }
@ -424,7 +423,7 @@ static gboolean
timer_cb (gpointer data) timer_cb (gpointer data)
{ {
OstreeFetcher *fetcher = data; OstreeFetcher *fetcher = data;
g_clear_pointer (&fetcher->timer_event, (GDestroyNotify)destroy_and_unref_source); g_clear_pointer (&fetcher->timer_event, destroy_and_unref_source);
(void)curl_multi_socket_action (fetcher->multi, CURL_SOCKET_TIMEOUT, 0, &fetcher->curl_running); (void)curl_multi_socket_action (fetcher->multi, CURL_SOCKET_TIMEOUT, 0, &fetcher->curl_running);
check_multi_info (fetcher); check_multi_info (fetcher);
@ -437,7 +436,7 @@ update_timeout_cb (CURLM *multi, long timeout_ms, void *userp)
{ {
OstreeFetcher *fetcher = userp; OstreeFetcher *fetcher = userp;
g_clear_pointer (&fetcher->timer_event, (GDestroyNotify)destroy_and_unref_source); g_clear_pointer (&fetcher->timer_event, destroy_and_unref_source);
if (timeout_ms != -1) if (timeout_ms != -1)
{ {
@ -479,7 +478,7 @@ sock_unref (SockInfo *f)
return; return;
if (--f->refcount != 0) if (--f->refcount != 0)
return; return;
g_clear_pointer (&f->ch, (GDestroyNotify)destroy_and_unref_source); g_clear_pointer (&f->ch, destroy_and_unref_source);
g_free (f); g_free (f);
} }
@ -492,7 +491,7 @@ setsock (SockInfo*f, curl_socket_t s, int act, OstreeFetcher *fetcher)
f->sockfd = s; f->sockfd = s;
f->action = act; f->action = act;
g_clear_pointer (&f->ch, (GDestroyNotify)destroy_and_unref_source); g_clear_pointer (&f->ch, destroy_and_unref_source);
/* TODO - investigate new g_source_modify_unix_fd() so changing the poll /* TODO - investigate new g_source_modify_unix_fd() so changing the poll
* flags involves less allocation. * flags involves less allocation.
*/ */
@ -648,7 +647,7 @@ request_unref (FetcherRequest *req)
g_string_free (req->output_buf, TRUE); g_string_free (req->output_buf, TRUE);
g_free (req->if_none_match); g_free (req->if_none_match);
g_free (req->out_etag); g_free (req->out_etag);
g_clear_pointer (&req->req_headers, (GDestroyNotify)curl_slist_free_all); g_clear_pointer (&req->req_headers, curl_slist_free_all);
curl_easy_cleanup (req->easy); curl_easy_cleanup (req->easy);
g_free (req); g_free (req);
@ -705,7 +704,7 @@ _ostree_fetcher_set_extra_headers (OstreeFetcher *self,
const char *key; const char *key;
const char *value; const char *value;
g_clear_pointer (&self->extra_headers, (GDestroyNotify)curl_slist_free_all); g_clear_pointer (&self->extra_headers, curl_slist_free_all);
g_variant_iter_init (&viter, extra_headers); g_variant_iter_init (&viter, extra_headers);
while (g_variant_iter_loop (&viter, "(&s&s)", &key, &value)) while (g_variant_iter_loop (&viter, "(&s&s)", &key, &value))
@ -719,7 +718,7 @@ void
_ostree_fetcher_set_extra_user_agent (OstreeFetcher *self, _ostree_fetcher_set_extra_user_agent (OstreeFetcher *self,
const char *extra_user_agent) const char *extra_user_agent)
{ {
g_clear_pointer (&self->custom_user_agent, (GDestroyNotify)g_free); g_clear_pointer (&self->custom_user_agent, g_free);
if (extra_user_agent) if (extra_user_agent)
{ {
self->custom_user_agent = self->custom_user_agent =
@ -763,13 +762,15 @@ initiate_next_curl_request (FetcherRequest *req,
g_assert_cmpint (req->idx, <, req->mirrorlist->len); g_assert_cmpint (req->idx, <, req->mirrorlist->len);
SoupURI *baseuri = req->mirrorlist->pdata[req->idx]; GUri *baseuri = req->mirrorlist->pdata[req->idx];
{ g_autofree char *uri = request_get_uri (req, baseuri); { g_autofree char *uri = request_get_uri (req, baseuri);
curl_easy_setopt (req->easy, CURLOPT_URL, uri); rc = curl_easy_setopt (req->easy, CURLOPT_URL, uri);
g_assert_cmpint (rc, ==, CURLM_OK);
} }
(void) curl_easy_setopt (req->easy, CURLOPT_USERAGENT, rc = curl_easy_setopt (req->easy, CURLOPT_USERAGENT,
self->custom_user_agent ?: OSTREE_FETCHER_USERAGENT_STRING); self->custom_user_agent ?: OSTREE_FETCHER_USERAGENT_STRING);
g_assert_cmpint (rc, ==, CURLM_OK);
/* Set caching request headers */ /* Set caching request headers */
if (req->if_none_match != NULL) if (req->if_none_match != NULL)
@ -792,7 +793,10 @@ initiate_next_curl_request (FetcherRequest *req,
req->req_headers = curl_slist_append (req->req_headers, l->data); req->req_headers = curl_slist_append (req->req_headers, l->data);
if (req->req_headers != NULL) if (req->req_headers != NULL)
curl_easy_setopt (req->easy, CURLOPT_HTTPHEADER, req->req_headers); {
rc = curl_easy_setopt (req->easy, CURLOPT_HTTPHEADER, req->req_headers);
g_assert_cmpint (rc, ==, CURLM_OK);
}
if (self->cookie_jar_path) if (self->cookie_jar_path)
{ {
@ -809,10 +813,17 @@ initiate_next_curl_request (FetcherRequest *req,
} }
if (self->tls_ca_db_path) if (self->tls_ca_db_path)
curl_easy_setopt (req->easy, CURLOPT_CAINFO, self->tls_ca_db_path); {
rc = curl_easy_setopt (req->easy, CURLOPT_CAINFO, self->tls_ca_db_path);
g_assert_cmpint (rc, ==, CURLM_OK);
}
if ((self->config_flags & OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE) > 0) if ((self->config_flags & OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE) > 0)
curl_easy_setopt (req->easy, CURLOPT_SSL_VERIFYPEER, 0L); {
rc = curl_easy_setopt (req->easy, CURLOPT_SSL_VERIFYPEER, 0L);
g_assert_cmpint (rc, ==, CURLM_OK);
}
if (self->tls_client_cert_path) if (self->tls_client_cert_path)
{ {
@ -827,28 +838,43 @@ initiate_next_curl_request (FetcherRequest *req,
*/ */
if (g_str_has_prefix (self->tls_client_key_path, "pkcs11:")) if (g_str_has_prefix (self->tls_client_key_path, "pkcs11:"))
{ {
curl_easy_setopt (req->easy, CURLOPT_SSLENGINE, "pkcs11"); rc = curl_easy_setopt (req->easy, CURLOPT_SSLENGINE, "pkcs11");
curl_easy_setopt (req->easy, CURLOPT_SSLENGINE_DEFAULT, 1L); g_assert_cmpint (rc, ==, CURLM_OK);
curl_easy_setopt (req->easy, CURLOPT_SSLKEYTYPE, "ENG"); rc = curl_easy_setopt (req->easy, CURLOPT_SSLENGINE_DEFAULT, 1L);
g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_SSLKEYTYPE, "ENG");
g_assert_cmpint (rc, ==, CURLM_OK);
} }
if (g_str_has_prefix (self->tls_client_cert_path, "pkcs11:")) if (g_str_has_prefix (self->tls_client_cert_path, "pkcs11:"))
curl_easy_setopt (req->easy, CURLOPT_SSLCERTTYPE, "ENG"); {
rc = curl_easy_setopt (req->easy, CURLOPT_SSLCERTTYPE, "ENG");
g_assert_cmpint (rc, ==, CURLM_OK);
}
curl_easy_setopt (req->easy, CURLOPT_SSLCERT, self->tls_client_cert_path); rc = curl_easy_setopt (req->easy, CURLOPT_SSLCERT, self->tls_client_cert_path);
curl_easy_setopt (req->easy, CURLOPT_SSLKEY, self->tls_client_key_path); g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_SSLKEY, self->tls_client_key_path);
g_assert_cmpint (rc, ==, CURLM_OK);
} }
if ((self->config_flags & OSTREE_FETCHER_FLAGS_TRANSFER_GZIP) > 0) if ((self->config_flags & OSTREE_FETCHER_FLAGS_TRANSFER_GZIP) > 0)
curl_easy_setopt (req->easy, CURLOPT_ACCEPT_ENCODING, ""); {
rc = curl_easy_setopt (req->easy, CURLOPT_ACCEPT_ENCODING, "");
g_assert_cmpint (rc, ==, CURLM_OK);
}
/* If we have e.g. basic auth in the URL string, let's honor that */ /* If we have e.g. basic auth in the URL string, let's honor that */
const char *username = soup_uri_get_user (baseuri); const char *username = g_uri_get_user (baseuri);
curl_easy_setopt (req->easy, CURLOPT_USERNAME, username); rc = curl_easy_setopt (req->easy, CURLOPT_USERNAME, username);
const char *password = soup_uri_get_password (baseuri); g_assert_cmpint (rc, ==, CURLM_OK);
curl_easy_setopt (req->easy, CURLOPT_PASSWORD, password); const char *password = g_uri_get_password (baseuri);
rc = curl_easy_setopt (req->easy, CURLOPT_PASSWORD, password);
g_assert_cmpint (rc, ==, CURLM_OK);
/* We should only speak HTTP; TODO: only enable file if specified */ /* We should only speak HTTP; TODO: only enable file if specified */
curl_easy_setopt (req->easy, CURLOPT_PROTOCOLS, (long)(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE)); rc = curl_easy_setopt (req->easy, CURLOPT_PROTOCOLS, (long)(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE));
g_assert_cmpint (rc, ==, CURLM_OK);
/* Picked the current version in F25 as of 20170127, since /* Picked the current version in F25 as of 20170127, since
* there are numerous HTTP/2 fixes since the original version in * there are numerous HTTP/2 fixes since the original version in
* libcurl 7.43.0. * libcurl 7.43.0.
@ -856,25 +882,37 @@ initiate_next_curl_request (FetcherRequest *req,
if (!(self->config_flags & OSTREE_FETCHER_FLAGS_DISABLE_HTTP2)) if (!(self->config_flags & OSTREE_FETCHER_FLAGS_DISABLE_HTTP2))
{ {
#if CURL_AT_LEAST_VERSION(7, 51, 0) #if CURL_AT_LEAST_VERSION(7, 51, 0)
curl_easy_setopt (req->easy, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); rc = curl_easy_setopt (req->easy, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
g_assert_cmpint (rc, ==, CURLM_OK);
#endif #endif
/* https://github.com/curl/curl/blob/curl-7_53_0/docs/examples/http2-download.c */ /* https://github.com/curl/curl/blob/curl-7_53_0/docs/examples/http2-download.c */
#if (CURLPIPE_MULTIPLEX > 0) #if (CURLPIPE_MULTIPLEX > 0)
/* wait for pipe connection to confirm */ /* wait for pipe connection to confirm */
curl_easy_setopt (req->easy, CURLOPT_PIPEWAIT, 1L); rc = curl_easy_setopt (req->easy, CURLOPT_PIPEWAIT, 1L);
g_assert_cmpint (rc, ==, CURLM_OK);
#endif #endif
} }
curl_easy_setopt (req->easy, CURLOPT_WRITEFUNCTION, write_cb); rc = curl_easy_setopt (req->easy, CURLOPT_WRITEFUNCTION, write_cb);
curl_easy_setopt (req->easy, CURLOPT_HEADERFUNCTION, response_header_cb); g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_HEADERFUNCTION, response_header_cb);
g_assert_cmpint (rc, ==, CURLM_OK);
if (g_getenv ("OSTREE_DEBUG_HTTP")) if (g_getenv ("OSTREE_DEBUG_HTTP"))
curl_easy_setopt (req->easy, CURLOPT_VERBOSE, 1L); {
curl_easy_setopt (req->easy, CURLOPT_ERRORBUFFER, req->error); rc = curl_easy_setopt (req->easy, CURLOPT_VERBOSE, 1L);
g_assert_cmpint (rc, ==, CURLM_OK);
}
rc = curl_easy_setopt (req->easy, CURLOPT_ERRORBUFFER, req->error);
g_assert_cmpint (rc, ==, CURLM_OK);
/* Note that the "easy" object's privdata is the task */ /* Note that the "easy" object's privdata is the task */
curl_easy_setopt (req->easy, CURLOPT_NOPROGRESS, 1L); rc = curl_easy_setopt (req->easy, CURLOPT_NOPROGRESS, 1L);
curl_easy_setopt (req->easy, CURLOPT_PROGRESSFUNCTION, prog_cb); g_assert_cmpint (rc, ==, CURLM_OK);
curl_easy_setopt (req->easy, CURLOPT_FOLLOWLOCATION, 1L); rc = curl_easy_setopt (req->easy, CURLOPT_PROGRESSFUNCTION, prog_cb);
curl_easy_setopt (req->easy, CURLOPT_CONNECTTIMEOUT, 30L); g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_FOLLOWLOCATION, 1L);
g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_CONNECTTIMEOUT, 30L);
g_assert_cmpint (rc, ==, CURLM_OK);
/* We used to set CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME /* We used to set CURLOPT_LOW_SPEED_LIMIT and CURLOPT_LOW_SPEED_TIME
* here, but see https://github.com/ostreedev/ostree/issues/878#issuecomment-347228854 * here, but see https://github.com/ostreedev/ostree/issues/878#issuecomment-347228854
* basically those options don't play well with HTTP2 at the moment * basically those options don't play well with HTTP2 at the moment
@ -884,10 +922,14 @@ initiate_next_curl_request (FetcherRequest *req,
*/ */
/* closure bindings -> task */ /* closure bindings -> task */
curl_easy_setopt (req->easy, CURLOPT_PRIVATE, task); rc = curl_easy_setopt (req->easy, CURLOPT_PRIVATE, task);
curl_easy_setopt (req->easy, CURLOPT_WRITEDATA, task); g_assert_cmpint (rc, ==, CURLM_OK);
curl_easy_setopt (req->easy, CURLOPT_HEADERDATA, task); rc = curl_easy_setopt (req->easy, CURLOPT_WRITEDATA, task);
curl_easy_setopt (req->easy, CURLOPT_PROGRESSDATA, task); g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_HEADERDATA, task);
g_assert_cmpint (rc, ==, CURLM_OK);
rc = curl_easy_setopt (req->easy, CURLOPT_PROGRESSDATA, task);
g_assert_cmpint (rc, ==, CURLM_OK);
CURLMcode multi_rc = curl_multi_add_handle (self->multi, req->easy); CURLMcode multi_rc = curl_multi_add_handle (self->multi, req->easy);
g_assert (multi_rc == CURLM_OK); g_assert (multi_rc == CURLM_OK);

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -153,7 +154,7 @@ thread_closure_unref (ThreadClosure *thread_closure)
g_clear_pointer (&thread_closure->main_context, g_main_context_unref); g_clear_pointer (&thread_closure->main_context, g_main_context_unref);
g_clear_pointer (&thread_closure->extra_headers, (GDestroyNotify)g_variant_unref); g_clear_pointer (&thread_closure->extra_headers, g_variant_unref);
g_clear_pointer (&thread_closure->output_stream_set, g_hash_table_unref); g_clear_pointer (&thread_closure->output_stream_set, g_hash_table_unref);
g_mutex_clear (&thread_closure->output_stream_set_lock); g_mutex_clear (&thread_closure->output_stream_set_lock);
@ -329,7 +330,7 @@ session_thread_set_headers_cb (ThreadClosure *thread_closure,
{ {
GVariant *headers = data; GVariant *headers = data;
g_clear_pointer (&thread_closure->extra_headers, (GDestroyNotify)g_variant_unref); g_clear_pointer (&thread_closure->extra_headers, g_variant_unref);
thread_closure->extra_headers = g_variant_ref (headers); thread_closure->extra_headers = g_variant_ref (headers);
} }
@ -431,11 +432,15 @@ create_pending_soup_request (OstreeFetcherPendingURI *pending,
next_mirror = g_ptr_array_index (pending->mirrorlist, pending->mirrorlist_idx); next_mirror = g_ptr_array_index (pending->mirrorlist, pending->mirrorlist_idx);
if (pending->filename) if (pending->filename)
uri = _ostree_fetcher_uri_new_subpath (next_mirror, pending->filename); uri = _ostree_fetcher_uri_new_subpath (next_mirror, pending->filename);
if (!uri)
uri = (OstreeFetcherURI*)g_uri_ref ((GUri*)next_mirror);
g_clear_object (&pending->request); g_clear_object (&pending->request);
pending->request = soup_session_request_uri (pending->thread_closure->session, {
(SoupURI*)(uri ? uri : next_mirror), error); g_autofree gchar *uri_str = g_uri_to_string ((GUri*)uri);
pending->request = soup_session_request (pending->thread_closure->session, uri_str, error);
}
/* Add caching headers. */ /* Add caching headers. */
if (SOUP_IS_REQUEST_HTTP (pending->request) && pending->if_none_match != NULL) if (SOUP_IS_REQUEST_HTTP (pending->request) && pending->if_none_match != NULL)

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011,2017 Colin Walters <walters@verbum.org> * Copyright (C) 2011,2017 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -21,15 +22,7 @@
#include "config.h" #include "config.h"
#include <glib.h>
#ifdef HAVE_LIBCURL
#include "ostree-soup-uri.h"
#else
#define LIBSOUP_USE_UNSTABLE_REQUEST_API
#include <libsoup/soup.h>
#include <libsoup/soup-requester.h>
#include <libsoup/soup-request-http.h>
#endif
#include "ostree-fetcher.h" #include "ostree-fetcher.h"
@ -39,21 +32,52 @@ void
_ostree_fetcher_uri_free (OstreeFetcherURI *uri) _ostree_fetcher_uri_free (OstreeFetcherURI *uri)
{ {
if (uri) if (uri)
soup_uri_free ((SoupURI*)uri); g_uri_unref ((GUri*)uri);
} }
OstreeFetcherURI * OstreeFetcherURI *
_ostree_fetcher_uri_parse (const char *str, _ostree_fetcher_uri_parse (const char *str,
GError **error) GError **error)
{ {
SoupURI *soupuri = soup_uri_new (str); GUri *uri = NULL;
if (soupuri == NULL) #if GLIB_CHECK_VERSION(2, 68, 0)
uri = g_uri_parse (str, G_URI_FLAGS_HAS_PASSWORD | G_URI_FLAGS_ENCODED | G_URI_FLAGS_SCHEME_NORMALIZE, error);
#else
/* perform manual scheme normalization for older glib */
uri = g_uri_parse (str, G_URI_FLAGS_HAS_PASSWORD | G_URI_FLAGS_ENCODED, error);
if (uri)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, GUri *nuri = NULL;
"Failed to parse uri: %s", str); switch (g_uri_get_port (uri))
return NULL; {
case 21:
if (!strcmp (g_uri_get_scheme (uri), "ftp"))
break;
return (OstreeFetcherURI*)uri;
case 80:
if (!strcmp (g_uri_get_scheme (uri), "http"))
break;
return (OstreeFetcherURI*)uri;
case 443:
if (!strcmp (g_uri_get_scheme (uri), "https"))
break;
return (OstreeFetcherURI*)uri;
default:
return (OstreeFetcherURI*)uri;
}
nuri = g_uri_build_with_user (g_uri_get_flags (uri), "http",
g_uri_get_user (uri),
g_uri_get_password (uri),
NULL,
g_uri_get_host (uri), -1,
g_uri_get_path (uri),
g_uri_get_query (uri),
g_uri_get_fragment (uri));
g_uri_unref (uri);
uri = nuri;
} }
return (OstreeFetcherURI*)soupuri; #endif
return (OstreeFetcherURI*)uri;
} }
static OstreeFetcherURI * static OstreeFetcherURI *
@ -61,21 +85,31 @@ _ostree_fetcher_uri_new_path_internal (OstreeFetcherURI *uri,
gboolean extend, gboolean extend,
const char *path) const char *path)
{ {
SoupURI *newuri = soup_uri_copy ((SoupURI*)uri); GUri *guri = (GUri*)uri;
const char *opath = g_uri_get_path (guri);
g_autofree char *newpath = NULL;
if (path) if (path)
{ {
if (extend) if (extend)
{ {
const char *origpath = soup_uri_get_path ((SoupURI*)uri); newpath = g_build_filename (opath, path, NULL);
g_autofree char *newpath = g_build_filename (origpath, path, NULL); opath = newpath;
soup_uri_set_path (newuri, newpath);
} }
else else
{ {
soup_uri_set_path (newuri, path); opath = path;
} }
} }
return (OstreeFetcherURI*)newuri; return (OstreeFetcherURI*)g_uri_build_with_user (g_uri_get_flags (guri),
g_uri_get_scheme (guri),
g_uri_get_user (guri),
g_uri_get_password (guri),
NULL,
g_uri_get_host (guri),
g_uri_get_port (guri),
opath,
g_uri_get_query (guri),
g_uri_get_fragment (guri));
} }
OstreeFetcherURI * OstreeFetcherURI *
@ -101,19 +135,19 @@ _ostree_fetcher_uri_clone (OstreeFetcherURI *uri)
char * char *
_ostree_fetcher_uri_get_scheme (OstreeFetcherURI *uri) _ostree_fetcher_uri_get_scheme (OstreeFetcherURI *uri)
{ {
return g_strdup (soup_uri_get_scheme ((SoupURI*)uri)); return g_strdup (g_uri_get_scheme ((GUri*)uri));
} }
char * char *
_ostree_fetcher_uri_get_path (OstreeFetcherURI *uri) _ostree_fetcher_uri_get_path (OstreeFetcherURI *uri)
{ {
return g_strdup (soup_uri_get_path ((SoupURI*)uri)); return g_strdup (g_uri_get_path ((GUri*)uri));
} }
char * char *
_ostree_fetcher_uri_to_string (OstreeFetcherURI *uri) _ostree_fetcher_uri_to_string (OstreeFetcherURI *uri)
{ {
return soup_uri_to_string ((SoupURI*)uri, FALSE); return g_uri_to_string_partial ((GUri*)uri, G_URI_HIDE_PASSWORD);
} }
@ -124,7 +158,7 @@ _ostree_fetcher_uri_to_string (OstreeFetcherURI *uri)
gboolean gboolean
_ostree_fetcher_uri_validate (OstreeFetcherURI *uri, GError **error) _ostree_fetcher_uri_validate (OstreeFetcherURI *uri, GError **error)
{ {
const char *scheme = soup_uri_get_scheme ((SoupURI*)uri); const char *scheme = g_uri_get_scheme ((GUri*)uri);
// TODO only allow file if explicitly requested by a higher level // TODO only allow file if explicitly requested by a higher level
if (!(g_str_equal (scheme, "http") || g_str_equal (scheme, "https") || g_str_equal (scheme, "file"))) if (!(g_str_equal (scheme, "http") || g_str_equal (scheme, "https") || g_str_equal (scheme, "file")))
{ {

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2017 Colin Walters <walters@verbum.org> * Copyright (C) 2017 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -124,7 +125,7 @@ _ostree_fetcher_mirrored_request_to_membuf_once (OstreeFetcher *fe
out: out:
if (mainctx) if (mainctx)
g_main_context_pop_thread_default (mainctx); g_main_context_pop_thread_default (mainctx);
g_clear_pointer (&data.result_buf, (GDestroyNotify)g_bytes_unref); g_clear_pointer (&data.result_buf, g_bytes_unref);
g_clear_pointer (&data.result_etag, g_free); g_clear_pointer (&data.result_etag, g_free);
return ret; return ret;
} }

View File

@ -1,6 +1,7 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2013 Sjoerd Simons <sjoerd.simons@collabora.co.uk> * Copyright (C) 2013 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -53,7 +54,7 @@ ostree_gpg_verifier_finalize (GObject *object)
g_list_free_full (self->keyrings, g_object_unref); g_list_free_full (self->keyrings, g_object_unref);
if (self->key_ascii_files) if (self->key_ascii_files)
g_ptr_array_unref (self->key_ascii_files); g_ptr_array_unref (self->key_ascii_files);
g_clear_pointer (&self->keyring_data, (GDestroyNotify)g_ptr_array_unref); g_clear_pointer (&self->keyring_data, g_ptr_array_unref);
G_OBJECT_CLASS (_ostree_gpg_verifier_parent_class)->finalize (object); G_OBJECT_CLASS (_ostree_gpg_verifier_parent_class)->finalize (object);
} }

View File

@ -134,6 +134,8 @@ require_internal_units (const char *normal_dir,
return FALSE; return FALSE;
if (symlinkat (SYSTEM_DATA_UNIT_PATH "/ostree-finalize-staged.path", normal_dir_dfd, "multi-user.target.wants/ostree-finalize-staged.path") < 0) if (symlinkat (SYSTEM_DATA_UNIT_PATH "/ostree-finalize-staged.path", normal_dir_dfd, "multi-user.target.wants/ostree-finalize-staged.path") < 0)
return glnx_throw_errno_prefix (error, "symlinkat"); return glnx_throw_errno_prefix (error, "symlinkat");
if (symlinkat (SYSTEM_DATA_UNIT_PATH "/ostree-boot-complete.service", normal_dir_dfd, "multi-user.target.wants/ostree-boot-complete.service") < 0)
return glnx_throw_errno_prefix (error, "symlinkat");
return TRUE; return TRUE;
#else #else

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -29,12 +30,12 @@ enum {
PROP_ARCHIVE PROP_ARCHIVE
}; };
G_DEFINE_TYPE (OstreeLibarchiveInputStream, _ostree_libarchive_input_stream, G_TYPE_INPUT_STREAM)
struct _OstreeLibarchiveInputStreamPrivate { struct _OstreeLibarchiveInputStreamPrivate {
struct archive *archive; struct archive *archive;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (OstreeLibarchiveInputStream, _ostree_libarchive_input_stream, G_TYPE_INPUT_STREAM)
static void ostree_libarchive_input_stream_set_property (GObject *object, static void ostree_libarchive_input_stream_set_property (GObject *object,
guint prop_id, guint prop_id,
const GValue *value, const GValue *value,
@ -63,8 +64,6 @@ _ostree_libarchive_input_stream_class_init (OstreeLibarchiveInputStreamClass *kl
{ {
GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass); GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass);
g_type_class_add_private (klass, sizeof (OstreeLibarchiveInputStreamPrivate));
gobject_class->get_property = ostree_libarchive_input_stream_get_property; gobject_class->get_property = ostree_libarchive_input_stream_get_property;
gobject_class->set_property = ostree_libarchive_input_stream_set_property; gobject_class->set_property = ostree_libarchive_input_stream_set_property;
@ -132,10 +131,7 @@ ostree_libarchive_input_stream_get_property (GObject *object,
static void static void
_ostree_libarchive_input_stream_init (OstreeLibarchiveInputStream *self) _ostree_libarchive_input_stream_init (OstreeLibarchiveInputStream *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, self->priv = _ostree_libarchive_input_stream_get_instance_private (self);
OSTREE_TYPE_LIBARCHIVE_INPUT_STREAM,
OstreeLibarchiveInputStreamPrivate);
} }
GInputStream * GInputStream *

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2014 Colin Walters <walters@verbum.org> * Copyright (C) 2014 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -66,7 +67,7 @@ _ostree_lzma_compressor_finalize (GObject *object)
OstreeLzmaCompressor *self = OSTREE_LZMA_COMPRESSOR (object); OstreeLzmaCompressor *self = OSTREE_LZMA_COMPRESSOR (object);
lzma_end (&self->lstream); lzma_end (&self->lstream);
g_clear_pointer (&self->params, (GDestroyNotify)g_variant_unref); g_clear_pointer (&self->params, g_variant_unref);
G_OBJECT_CLASS (_ostree_lzma_compressor_parent_class)->finalize (object); G_OBJECT_CLASS (_ostree_lzma_compressor_parent_class)->finalize (object);
} }

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011,2013 Colin Walters <walters@verbum.org> * Copyright (C) 2011,2013 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -640,8 +641,8 @@ _ostree_repo_bare_content_cleanup (OstreeRepoBareContent *regwrite)
return; return;
glnx_tmpfile_clear (&real->tmpf); glnx_tmpfile_clear (&real->tmpf);
ot_checksum_clear (&real->checksum); ot_checksum_clear (&real->checksum);
g_clear_pointer (&real->expected_checksum, (GDestroyNotify)g_free); g_clear_pointer (&real->expected_checksum, g_free);
g_clear_pointer (&real->xattrs, (GDestroyNotify)g_variant_unref); g_clear_pointer (&real->xattrs, g_variant_unref);
real->initialized = FALSE; real->initialized = FALSE;
} }
@ -1688,10 +1689,10 @@ ostree_repo_prepare_transaction (OstreeRepo *self,
g_debug ("Preparing transaction in repository %p", self); g_debug ("Preparing transaction in repository %p", self);
/* Set up to abort the transaction if we return early from this function. /* Set up to abort the transaction if we return early from this function.
* This needs to be manually built here due to a circular dependency. */ * We can't call _ostree_repo_auto_transaction_start() here, because that
g_autoptr(OstreeRepoAutoTransaction) txn = g_malloc(sizeof(OstreeRepoAutoTransaction)); * would be a circular dependency; use the lower-level version instead. */
g_autoptr(OstreeRepoAutoTransaction) txn = _ostree_repo_auto_transaction_new (self);
g_assert (txn != NULL); g_assert (txn != NULL);
txn->repo = self;
memset (&self->txn.stats, 0, sizeof (OstreeRepoTransactionStats)); memset (&self->txn.stats, 0, sizeof (OstreeRepoTransactionStats));
@ -2584,8 +2585,6 @@ typedef struct {
char *expected_checksum; char *expected_checksum;
GVariant *object; GVariant *object;
GCancellable *cancellable; GCancellable *cancellable;
GSimpleAsyncResult *result;
guchar *result_csum; guchar *result_csum;
} WriteMetadataAsyncData; } WriteMetadataAsyncData;
@ -2603,19 +2602,21 @@ write_metadata_async_data_free (gpointer user_data)
} }
static void static void
write_metadata_thread (GSimpleAsyncResult *res, write_metadata_thread (GTask *task,
GObject *object, GObject *object,
gpointer datap,
GCancellable *cancellable) GCancellable *cancellable)
{ {
GError *error = NULL; GError *error = NULL;
WriteMetadataAsyncData *data; WriteMetadataAsyncData *data = datap;
data = g_simple_async_result_get_op_res_gpointer (res);
if (!ostree_repo_write_metadata (data->repo, data->objtype, data->expected_checksum, if (!ostree_repo_write_metadata (data->repo, data->objtype, data->expected_checksum,
data->object, data->object,
&data->result_csum, &data->result_csum,
cancellable, &error)) cancellable, &error))
g_simple_async_result_take_error (res, error); g_task_return_error (task, error);
else
g_task_return_pointer (task, data, NULL);
} }
/** /**
@ -2640,6 +2641,7 @@ ostree_repo_write_metadata_async (OstreeRepo *self,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
{ {
g_autoptr(GTask) task = NULL;
WriteMetadataAsyncData *asyncdata; WriteMetadataAsyncData *asyncdata;
asyncdata = g_new0 (WriteMetadataAsyncData, 1); asyncdata = g_new0 (WriteMetadataAsyncData, 1);
@ -2649,14 +2651,10 @@ ostree_repo_write_metadata_async (OstreeRepo *self,
asyncdata->object = g_variant_ref (object); asyncdata->object = g_variant_ref (object);
asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL; asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
asyncdata->result = g_simple_async_result_new ((GObject*) self, task = g_task_new (G_OBJECT (self), cancellable, callback, user_data);
callback, user_data, g_task_set_task_data (task, asyncdata, write_metadata_async_data_free);
ostree_repo_write_metadata_async); g_task_set_source_tag (task, ostree_repo_write_metadata_async);
g_task_run_in_thread (task, (GTaskThreadFunc)write_metadata_thread);
g_simple_async_result_set_op_res_gpointer (asyncdata->result, asyncdata,
write_metadata_async_data_free);
g_simple_async_result_run_in_thread (asyncdata->result, write_metadata_thread, G_PRIORITY_DEFAULT, cancellable);
g_object_unref (asyncdata->result);
} }
/** /**
@ -2674,15 +2672,18 @@ ostree_repo_write_metadata_finish (OstreeRepo *self,
guchar **out_csum, guchar **out_csum,
GError **error) GError **error)
{ {
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
WriteMetadataAsyncData *data; WriteMetadataAsyncData *data;
g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == ostree_repo_write_metadata_async); g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE);
g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, self), FALSE);
g_return_val_if_fail (g_async_result_is_tagged (result, ostree_repo_write_metadata_async), FALSE);
if (g_simple_async_result_propagate_error (simple, error)) data = g_task_propagate_pointer (G_TASK (result), error);
if (data == NULL)
return FALSE; return FALSE;
data = g_simple_async_result_get_op_res_gpointer (simple);
/* Transfer ownership */ /* Transfer ownership */
*out_csum = data->result_csum; *out_csum = data->result_csum;
data->result_csum = NULL; data->result_csum = NULL;
@ -2920,7 +2921,6 @@ typedef struct {
GInputStream *object; GInputStream *object;
guint64 file_object_length; guint64 file_object_length;
GCancellable *cancellable; GCancellable *cancellable;
GSimpleAsyncResult *result;
guchar *result_csum; guchar *result_csum;
} WriteContentAsyncData; } WriteContentAsyncData;
@ -2939,19 +2939,21 @@ write_content_async_data_free (gpointer user_data)
} }
static void static void
write_content_thread (GSimpleAsyncResult *res, write_content_thread (GTask *task,
GObject *object, GObject *object,
gpointer datap,
GCancellable *cancellable) GCancellable *cancellable)
{ {
GError *error = NULL; GError *error = NULL;
WriteContentAsyncData *data; WriteContentAsyncData *data = datap;
data = g_simple_async_result_get_op_res_gpointer (res);
if (!ostree_repo_write_content (data->repo, data->expected_checksum, if (!ostree_repo_write_content (data->repo, data->expected_checksum,
data->object, data->file_object_length, data->object, data->file_object_length,
&data->result_csum, &data->result_csum,
cancellable, &error)) cancellable, &error))
g_simple_async_result_take_error (res, error); g_task_return_error (task, error);
else
g_task_return_pointer (task, data, NULL);
} }
/** /**
@ -2976,6 +2978,7 @@ ostree_repo_write_content_async (OstreeRepo *self,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
{ {
g_autoptr(GTask) task = NULL;
WriteContentAsyncData *asyncdata; WriteContentAsyncData *asyncdata;
asyncdata = g_new0 (WriteContentAsyncData, 1); asyncdata = g_new0 (WriteContentAsyncData, 1);
@ -2985,14 +2988,10 @@ ostree_repo_write_content_async (OstreeRepo *self,
asyncdata->file_object_length = length; asyncdata->file_object_length = length;
asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL; asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
asyncdata->result = g_simple_async_result_new ((GObject*) self, task = g_task_new (G_OBJECT (self), cancellable, callback, user_data);
callback, user_data, g_task_set_task_data (task, asyncdata, (GDestroyNotify)write_content_async_data_free);
ostree_repo_write_content_async); g_task_set_source_tag (task, ostree_repo_write_content_async);
g_task_run_in_thread (task, (GTaskThreadFunc)write_content_thread);
g_simple_async_result_set_op_res_gpointer (asyncdata->result, asyncdata,
write_content_async_data_free);
g_simple_async_result_run_in_thread (asyncdata->result, write_content_thread, G_PRIORITY_DEFAULT, cancellable);
g_object_unref (asyncdata->result);
} }
/** /**
@ -3010,15 +3009,18 @@ ostree_repo_write_content_finish (OstreeRepo *self,
guchar **out_csum, guchar **out_csum,
GError **error) GError **error)
{ {
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
WriteContentAsyncData *data; WriteContentAsyncData *data;
g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == ostree_repo_write_content_async); g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE);
g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, self), FALSE);
g_return_val_if_fail (g_async_result_is_tagged (result, ostree_repo_write_content_async), FALSE);
if (g_simple_async_result_propagate_error (simple, error)) data = g_task_propagate_pointer (G_TASK (result), error);
if (data == NULL)
return FALSE; return FALSE;
data = g_simple_async_result_get_op_res_gpointer (simple);
ot_transfer_out_value (out_csum, &data->result_csum); ot_transfer_out_value (out_csum, &data->result_csum);
return TRUE; return TRUE;
} }
@ -4336,7 +4338,7 @@ ostree_repo_commit_modifier_unref (OstreeRepoCommitModifier *modifier)
if (modifier->xattr_destroy) if (modifier->xattr_destroy)
modifier->xattr_destroy (modifier->xattr_user_data); modifier->xattr_destroy (modifier->xattr_user_data);
g_clear_pointer (&modifier->devino_cache, (GDestroyNotify)g_hash_table_unref); g_clear_pointer (&modifier->devino_cache, g_hash_table_unref);
g_clear_object (&modifier->sepolicy); g_clear_object (&modifier->sepolicy);

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -55,8 +56,8 @@ ostree_repo_file_finalize (GObject *object)
self = OSTREE_REPO_FILE (object); self = OSTREE_REPO_FILE (object);
g_clear_pointer (&self->tree_contents, (GDestroyNotify) g_variant_unref); g_clear_pointer (&self->tree_contents, g_variant_unref);
g_clear_pointer (&self->tree_metadata, (GDestroyNotify) g_variant_unref); g_clear_pointer (&self->tree_metadata, g_variant_unref);
g_free (self->cached_file_checksum); g_free (self->cached_file_checksum);
g_free (self->tree_contents_checksum); g_free (self->tree_contents_checksum);
g_free (self->tree_metadata_checksum); g_free (self->tree_metadata_checksum);
@ -236,7 +237,7 @@ do_resolve_nonroot (OstreeRepoFile *self,
files_variant = g_variant_get_child_value (self->parent->tree_contents, 0); files_variant = g_variant_get_child_value (self->parent->tree_contents, 0);
self->index = g_variant_n_children (files_variant) + i; self->index = g_variant_n_children (files_variant) + i;
g_clear_pointer (&files_variant, (GDestroyNotify) g_variant_unref); g_clear_pointer (&files_variant, g_variant_unref);
g_variant_get_child (container, i, "(&s@ay@ay)", g_variant_get_child (container, i, "(&s@ay@ay)",
&name, &contents_csum_v, &metadata_csum_v); &name, &contents_csum_v, &metadata_csum_v);
@ -337,7 +338,7 @@ ostree_repo_file_tree_set_metadata (OstreeRepoFile *self,
const char *checksum, const char *checksum,
GVariant *metadata) GVariant *metadata)
{ {
g_clear_pointer (&self->tree_metadata, (GDestroyNotify) g_variant_unref); g_clear_pointer (&self->tree_metadata, g_variant_unref);
self->tree_metadata = g_variant_ref (metadata); self->tree_metadata = g_variant_ref (metadata);
g_free (self->tree_metadata_checksum); g_free (self->tree_metadata_checksum);
self->tree_metadata_checksum = g_strdup (checksum); self->tree_metadata_checksum = g_strdup (checksum);
@ -414,8 +415,8 @@ ostree_repo_file_get_checksum (OstreeRepoFile *self)
g_variant_get_child (files_variant, n, g_variant_get_child (files_variant, n,
"(@s@ay)", NULL, &csum_bytes); "(@s@ay)", NULL, &csum_bytes);
} }
g_clear_pointer (&files_variant, (GDestroyNotify) g_variant_unref); g_clear_pointer (&files_variant, g_variant_unref);
g_clear_pointer (&dirs_variant, (GDestroyNotify) g_variant_unref); g_clear_pointer (&dirs_variant, g_variant_unref);
self->cached_file_checksum = ostree_checksum_from_bytes_v (csum_bytes); self->cached_file_checksum = ostree_checksum_from_bytes_v (csum_bytes);
@ -775,9 +776,9 @@ ostree_repo_file_tree_find_child (OstreeRepoFile *self,
*out_container = ret_container; *out_container = ret_container;
ret_container = NULL; ret_container = NULL;
} }
g_clear_pointer (&ret_container, (GDestroyNotify) g_variant_unref); g_clear_pointer (&ret_container, g_variant_unref);
g_clear_pointer (&files_variant, (GDestroyNotify) g_variant_unref); g_clear_pointer (&files_variant, g_variant_unref);
g_clear_pointer (&dirs_variant, (GDestroyNotify) g_variant_unref); g_clear_pointer (&dirs_variant, g_variant_unref);
return i; return i;
} }
@ -969,7 +970,7 @@ ostree_repo_file_read (GFile *file,
return g_file_read (dest, cancellable, error); return g_file_read (dest, cancellable, error);
} }
return g_steal_pointer (&ret_stream); return (GFileInputStream *)g_steal_pointer (&ret_stream);
} }
static void static void

View File

@ -1,6 +1,7 @@
/* /*
* Copyright © 2016 Kinvolk GmbH * Copyright © 2016 Kinvolk GmbH
* Copyright © 2017 Endless Mobile, Inc. * Copyright © 2017 Endless Mobile, Inc.
* Copyright © 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -53,7 +54,6 @@
#include "ostree-repo-private.h" #include "ostree-repo-private.h"
#include "ostree-repo.h" #include "ostree-repo.h"
#include "ostree-repo-finder-avahi-private.h" #include "ostree-repo-finder-avahi-private.h"
#include "ostree-soup-uri.h"
#include "otutil.h" #include "otutil.h"
#endif /* HAVE_AVAHI */ #endif /* HAVE_AVAHI */
@ -490,7 +490,7 @@ fill_refs_and_checksums_from_summary (GVariant *summary,
return FALSE; return FALSE;
} }
g_clear_pointer (&ref_map, (GDestroyNotify) g_variant_iter_free); g_clear_pointer (&ref_map, g_variant_iter_free);
/* Repeat for the other collections listed in the summary. */ /* Repeat for the other collections listed in the summary. */
if (g_variant_dict_lookup (&additional_metadata, OSTREE_SUMMARY_COLLECTION_MAP, "a{sa(s(taya{sv}))}", &collection_map)) if (g_variant_dict_lookup (&additional_metadata, OSTREE_SUMMARY_COLLECTION_MAP, "a{sa(s(taya{sv}))}", &collection_map))
@ -705,7 +705,7 @@ ostree_avahi_service_build_repo_finder_result (OstreeAvahiService
g_autoptr(GVariant) repo_index = NULL; g_autoptr(GVariant) repo_index = NULL;
g_autofree gchar *repo_path = NULL; g_autofree gchar *repo_path = NULL;
g_autoptr(GPtrArray) possible_refs = NULL; /* (element-type OstreeCollectionRef) */ g_autoptr(GPtrArray) possible_refs = NULL; /* (element-type OstreeCollectionRef) */
SoupURI *_uri = NULL; GUri *_uri = NULL;
g_autofree gchar *uri = NULL; g_autofree gchar *uri = NULL;
g_autoptr(GError) error = NULL; g_autoptr(GError) error = NULL;
gsize i; gsize i;
@ -772,13 +772,9 @@ ostree_avahi_service_build_repo_finder_result (OstreeAvahiService
repo_to_refs = g_hash_table_new_full (uri_and_keyring_hash, uri_and_keyring_equal, repo_to_refs = g_hash_table_new_full (uri_and_keyring_hash, uri_and_keyring_equal,
(GDestroyNotify) uri_and_keyring_free, (GDestroyNotify) g_hash_table_unref); (GDestroyNotify) uri_and_keyring_free, (GDestroyNotify) g_hash_table_unref);
_uri = soup_uri_new (NULL); _uri = g_uri_build (G_URI_FLAGS_ENCODED, "http", NULL, service->address, service->port, repo_path, NULL, NULL);
soup_uri_set_scheme (_uri, "http"); uri = g_uri_to_string (_uri);
soup_uri_set_host (_uri, service->address); g_uri_unref (_uri);
soup_uri_set_port (_uri, service->port);
soup_uri_set_path (_uri, repo_path);
uri = soup_uri_to_string (_uri, FALSE);
soup_uri_free (_uri);
for (i = 0; i < possible_refs->len; i++) for (i = 0; i < possible_refs->len; i++)
{ {

View File

@ -146,8 +146,12 @@ file_info_from_archive_entry (struct archive_entry *entry)
g_autoptr(GFileInfo) info = _ostree_stbuf_to_gfileinfo (&stbuf); g_autoptr(GFileInfo) info = _ostree_stbuf_to_gfileinfo (&stbuf);
if (S_ISLNK (stbuf.st_mode)) if (S_ISLNK (stbuf.st_mode))
g_file_info_set_attribute_byte_string (info, "standard::symlink-target", {
archive_entry_symlink (entry)); const char *target = archive_entry_symlink (entry);
if (target != NULL)
g_file_info_set_attribute_byte_string (info, "standard::symlink-target",
target);
}
return g_steal_pointer (&info); return g_steal_pointer (&info);
} }

View File

@ -554,4 +554,8 @@ GType _ostree_repo_auto_transaction_get_type (void);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_unref); G_DEFINE_AUTOPTR_CLEANUP_FUNC (OstreeRepoAutoTransaction, _ostree_repo_auto_transaction_unref);
/* Internal function to break a circular dependency:
* should not be made into public API, even if the rest is */
OstreeRepoAutoTransaction *_ostree_repo_auto_transaction_new (OstreeRepo *repo);
G_END_DECLS G_END_DECLS

View File

@ -1,6 +1,7 @@
/* /*
* Copyright (C) 2011,2012,2013 Colin Walters <walters@verbum.org> * Copyright (C) 2011,2012,2013 Colin Walters <walters@verbum.org>
* Copyright © 2017 Endless Mobile, Inc. * Copyright © 2017 Endless Mobile, Inc.
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -435,7 +436,7 @@ idle_worker (gpointer user_data)
scan_data = g_queue_pop_head (&pull_data->scan_object_queue); scan_data = g_queue_pop_head (&pull_data->scan_object_queue);
if (!scan_data) if (!scan_data)
{ {
g_clear_pointer (&pull_data->idle_src, (GDestroyNotify) g_source_destroy); g_clear_pointer (&pull_data->idle_src, g_source_destroy);
return G_SOURCE_REMOVE; return G_SOURCE_REMOVE;
} }
@ -4020,7 +4021,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
&pull_data->signapi_commit_verifiers, &pull_data->signapi_commit_verifiers,
&pull_data->signapi_summary_verifiers, &pull_data->signapi_summary_verifiers,
error)) error))
return FALSE; goto out;
} }
pull_data->phase = OSTREE_PULL_PHASE_FETCHING_REFS; pull_data->phase = OSTREE_PULL_PHASE_FETCHING_REFS;
@ -4476,7 +4477,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
pull_data->remote_name); pull_data->remote_name);
summary_from_cache = FALSE; summary_from_cache = FALSE;
g_clear_pointer (&bytes_summary, (GDestroyNotify)g_bytes_unref); g_clear_pointer (&bytes_summary, g_bytes_unref);
g_clear_pointer (&summary_etag, g_free); g_clear_pointer (&summary_etag, g_free);
summary_last_modified = 0; summary_last_modified = 0;
if (!_ostree_fetcher_mirrored_request_to_membuf (pull_data->fetcher, if (!_ostree_fetcher_mirrored_request_to_membuf (pull_data->fetcher,
@ -4544,7 +4545,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
pull_data->remote_name); pull_data->remote_name);
summary_from_cache = FALSE; summary_from_cache = FALSE;
g_clear_pointer (&bytes_summary, (GDestroyNotify)g_bytes_unref); g_clear_pointer (&bytes_summary, g_bytes_unref);
g_clear_pointer (&summary_etag, g_free); g_clear_pointer (&summary_etag, g_free);
summary_last_modified = 0; summary_last_modified = 0;
if (!_ostree_fetcher_mirrored_request_to_membuf (pull_data->fetcher, if (!_ostree_fetcher_mirrored_request_to_membuf (pull_data->fetcher,
@ -5153,46 +5154,46 @@ ostree_repo_pull_with_options (OstreeRepo *self,
g_source_destroy (update_timeout); g_source_destroy (update_timeout);
g_strfreev (configured_branches); g_strfreev (configured_branches);
g_clear_object (&pull_data->fetcher); g_clear_object (&pull_data->fetcher);
g_clear_pointer (&pull_data->extra_headers, (GDestroyNotify)g_variant_unref); g_clear_pointer (&pull_data->extra_headers, g_variant_unref);
g_clear_object (&pull_data->cancellable); g_clear_object (&pull_data->cancellable);
g_clear_pointer (&pull_data->localcache_repos, (GDestroyNotify)g_ptr_array_unref); g_clear_pointer (&pull_data->localcache_repos, g_ptr_array_unref);
g_clear_object (&pull_data->remote_repo_local); g_clear_object (&pull_data->remote_repo_local);
g_free (pull_data->remote_refspec_name); g_free (pull_data->remote_refspec_name);
g_free (pull_data->remote_name); g_free (pull_data->remote_name);
g_free (pull_data->append_user_agent); g_free (pull_data->append_user_agent);
g_clear_pointer (&pull_data->signapi_commit_verifiers, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->signapi_commit_verifiers, g_ptr_array_unref);
g_clear_pointer (&pull_data->signapi_summary_verifiers, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->signapi_summary_verifiers, g_ptr_array_unref);
g_clear_pointer (&pull_data->meta_mirrorlist, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->meta_mirrorlist, g_ptr_array_unref);
g_clear_pointer (&pull_data->content_mirrorlist, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->content_mirrorlist, g_ptr_array_unref);
g_clear_pointer (&pull_data->summary_data, (GDestroyNotify) g_bytes_unref); g_clear_pointer (&pull_data->summary_data, g_bytes_unref);
g_clear_pointer (&pull_data->summary_etag, g_free); g_clear_pointer (&pull_data->summary_etag, g_free);
g_clear_pointer (&pull_data->summary_data_sig, (GDestroyNotify) g_bytes_unref); g_clear_pointer (&pull_data->summary_data_sig, g_bytes_unref);
g_clear_pointer (&pull_data->summary_sig_etag, g_free); g_clear_pointer (&pull_data->summary_sig_etag, g_free);
g_clear_pointer (&pull_data->summary, (GDestroyNotify) g_variant_unref); g_clear_pointer (&pull_data->summary, g_variant_unref);
g_clear_pointer (&pull_data->static_delta_superblocks, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->static_delta_superblocks, g_ptr_array_unref);
g_clear_pointer (&pull_data->commit_to_depth, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->commit_to_depth, g_hash_table_unref);
g_clear_pointer (&pull_data->expected_commit_sizes, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->expected_commit_sizes, g_hash_table_unref);
g_clear_pointer (&pull_data->scanned_metadata, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->scanned_metadata, g_hash_table_unref);
g_clear_pointer (&pull_data->fetched_detached_metadata, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->fetched_detached_metadata, g_hash_table_unref);
g_clear_pointer (&pull_data->summary_deltas_checksums, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->summary_deltas_checksums, g_hash_table_unref);
g_clear_pointer (&pull_data->ref_original_commits, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->ref_original_commits, g_hash_table_unref);
g_free (pull_data->timestamp_check_from_rev); g_free (pull_data->timestamp_check_from_rev);
g_clear_pointer (&pull_data->verified_commits, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->verified_commits, g_hash_table_unref);
g_clear_pointer (&pull_data->signapi_verified_commits, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->signapi_verified_commits, g_hash_table_unref);
g_clear_pointer (&pull_data->ref_keyring_map, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->ref_keyring_map, g_hash_table_unref);
g_clear_pointer (&pull_data->requested_content, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->requested_content, g_hash_table_unref);
g_clear_pointer (&pull_data->requested_fallback_content, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->requested_fallback_content, g_hash_table_unref);
g_clear_pointer (&pull_data->requested_metadata, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->requested_metadata, g_hash_table_unref);
g_clear_pointer (&pull_data->pending_fetch_content, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->pending_fetch_content, g_hash_table_unref);
g_clear_pointer (&pull_data->pending_fetch_metadata, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->pending_fetch_metadata, g_hash_table_unref);
g_clear_pointer (&pull_data->pending_fetch_delta_indexes, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->pending_fetch_delta_indexes, g_hash_table_unref);
g_clear_pointer (&pull_data->pending_fetch_delta_superblocks, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->pending_fetch_delta_superblocks, g_hash_table_unref);
g_clear_pointer (&pull_data->pending_fetch_deltaparts, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->pending_fetch_deltaparts, g_hash_table_unref);
g_queue_foreach (&pull_data->scan_object_queue, (GFunc) scan_object_queue_data_free, NULL); g_queue_foreach (&pull_data->scan_object_queue, (GFunc) scan_object_queue_data_free, NULL);
g_queue_clear (&pull_data->scan_object_queue); g_queue_clear (&pull_data->scan_object_queue);
g_clear_pointer (&pull_data->idle_src, (GDestroyNotify) g_source_destroy); g_clear_pointer (&pull_data->idle_src, g_source_destroy);
g_clear_pointer (&pull_data->dirs, (GDestroyNotify) g_ptr_array_unref); g_clear_pointer (&pull_data->dirs, g_ptr_array_unref);
g_clear_pointer (&remote_config, (GDestroyNotify) g_key_file_unref); g_clear_pointer (&remote_config, g_key_file_unref);
return ret; return ret;
} }
@ -5838,7 +5839,7 @@ find_remotes_cb (GObject *obj,
{ {
g_debug ("%s: Failed to download summary for result %s. Ignoring. %s", g_debug ("%s: Failed to download summary for result %s. Ignoring. %s",
G_STRFUNC, result->remote->name, error->message); G_STRFUNC, result->remote->name, error->message);
g_clear_pointer (&g_ptr_array_index (results, i), (GDestroyNotify) ostree_repo_finder_result_free); g_clear_pointer (&g_ptr_array_index (results, i), ostree_repo_finder_result_free);
g_clear_error (&error); g_clear_error (&error);
continue; continue;
} }
@ -5847,7 +5848,7 @@ find_remotes_cb (GObject *obj,
g_debug ("%s: Failed to download summary for result %s. Ignoring. %s", g_debug ("%s: Failed to download summary for result %s. Ignoring. %s",
G_STRFUNC, result->remote->name, G_STRFUNC, result->remote->name,
"No summary file exists on server"); "No summary file exists on server");
g_clear_pointer (&g_ptr_array_index (results, i), (GDestroyNotify) ostree_repo_finder_result_free); g_clear_pointer (&g_ptr_array_index (results, i), ostree_repo_finder_result_free);
continue; continue;
} }
@ -5869,7 +5870,7 @@ find_remotes_cb (GObject *obj,
if (!find_remotes_process_refs (self, refs, result, i, summary_collection_id, summary_refs, if (!find_remotes_process_refs (self, refs, result, i, summary_collection_id, summary_refs,
commit_metadatas, refs_and_remotes_table)) commit_metadatas, refs_and_remotes_table))
{ {
g_clear_pointer (&g_ptr_array_index (results, i), (GDestroyNotify) ostree_repo_finder_result_free); g_clear_pointer (&g_ptr_array_index (results, i), ostree_repo_finder_result_free);
continue; continue;
} }
} }
@ -5890,7 +5891,7 @@ find_remotes_cb (GObject *obj,
if (!find_remotes_process_refs (self, refs, result, i, summary_collection_id, summary_refs, if (!find_remotes_process_refs (self, refs, result, i, summary_collection_id, summary_refs,
commit_metadatas, refs_and_remotes_table)) commit_metadatas, refs_and_remotes_table))
{ {
g_clear_pointer (&g_ptr_array_index (results, i), (GDestroyNotify) ostree_repo_finder_result_free); g_clear_pointer (&g_ptr_array_index (results, i), ostree_repo_finder_result_free);
invalid_result = TRUE; invalid_result = TRUE;
break; break;
} }

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2013,2014 Colin Walters <walters@verbum.org> * Copyright (C) 2013,2014 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -285,7 +286,6 @@ typedef struct {
GVariant *header; GVariant *header;
GVariant *part; GVariant *part;
GCancellable *cancellable; GCancellable *cancellable;
GSimpleAsyncResult *result;
} StaticDeltaPartExecuteAsyncData; } StaticDeltaPartExecuteAsyncData;
static void static void
@ -301,20 +301,22 @@ static_delta_part_execute_async_data_free (gpointer user_data)
} }
static void static void
static_delta_part_execute_thread (GSimpleAsyncResult *res, static_delta_part_execute_thread (GTask *task,
GObject *object, GObject *object,
gpointer datap,
GCancellable *cancellable) GCancellable *cancellable)
{ {
GError *error = NULL; GError *error = NULL;
StaticDeltaPartExecuteAsyncData *data; StaticDeltaPartExecuteAsyncData *data = datap;
data = g_simple_async_result_get_op_res_gpointer (res);
if (!_ostree_static_delta_part_execute (data->repo, if (!_ostree_static_delta_part_execute (data->repo,
data->header, data->header,
data->part, data->part,
FALSE, NULL, FALSE, NULL,
cancellable, &error)) cancellable, &error))
g_simple_async_result_take_error (res, error); g_task_return_error (task, error);
else
g_task_return_boolean (task, TRUE);
} }
void void
@ -325,6 +327,7 @@ _ostree_static_delta_part_execute_async (OstreeRepo *repo,
GAsyncReadyCallback callback, GAsyncReadyCallback callback,
gpointer user_data) gpointer user_data)
{ {
g_autoptr(GTask) task = NULL;
StaticDeltaPartExecuteAsyncData *asyncdata; StaticDeltaPartExecuteAsyncData *asyncdata;
asyncdata = g_new0 (StaticDeltaPartExecuteAsyncData, 1); asyncdata = g_new0 (StaticDeltaPartExecuteAsyncData, 1);
@ -333,14 +336,10 @@ _ostree_static_delta_part_execute_async (OstreeRepo *repo,
asyncdata->part = g_variant_ref (part); asyncdata->part = g_variant_ref (part);
asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL; asyncdata->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
asyncdata->result = g_simple_async_result_new ((GObject*) repo, task = g_task_new (G_OBJECT (repo), cancellable, callback, user_data);
callback, user_data, g_task_set_task_data (task, asyncdata, (GDestroyNotify)static_delta_part_execute_async_data_free);
_ostree_static_delta_part_execute_async); g_task_set_source_tag (task, _ostree_static_delta_part_execute_async);
g_task_run_in_thread (task, (GTaskThreadFunc)static_delta_part_execute_thread);
g_simple_async_result_set_op_res_gpointer (asyncdata->result, asyncdata,
static_delta_part_execute_async_data_free);
g_simple_async_result_run_in_thread (asyncdata->result, static_delta_part_execute_thread, G_PRIORITY_DEFAULT, cancellable);
g_object_unref (asyncdata->result);
} }
gboolean gboolean
@ -348,13 +347,13 @@ _ostree_static_delta_part_execute_finish (OstreeRepo *repo,
GAsyncResult *result, GAsyncResult *result,
GError **error) GError **error)
{ {
GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); g_return_val_if_fail (OSTREE_IS_REPO (repo), FALSE);
g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
g_return_val_if_fail (g_task_is_valid (result, repo), FALSE);
g_return_val_if_fail (g_async_result_is_tagged (result, _ostree_static_delta_part_execute_async), FALSE);
g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == _ostree_static_delta_part_execute_async); return g_task_propagate_boolean (G_TASK (result), error);
if (g_simple_async_result_propagate_error (simple, error))
return FALSE;
return TRUE;
} }
static gboolean static gboolean

View File

@ -1,6 +1,7 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2015 Red Hat, Inc. * Copyright (C) 2015 Red Hat, Inc.
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -709,6 +710,32 @@ ostree_repo_auto_lock_cleanup (OstreeRepoAutoLock *auto_lock)
} }
} }
/**
* _ostree_repo_auto_transaction_new:
* @repo: (not nullable): an #OsreeRepo object
* @cancellable: Cancellable
* @error: a #GError
*
* Return a guard for a transaction in @repo.
*
* Do not call this function outside the OstreeRepo transaction implementation.
* Use _ostree_repo_auto_transaction_start() instead.
*
* Returns: (transfer full): an #OstreeRepoAutoTransaction guard on success,
* %NULL otherwise.
*/
OstreeRepoAutoTransaction *
_ostree_repo_auto_transaction_new (OstreeRepo *repo)
{
g_assert (repo != NULL);
OstreeRepoAutoTransaction *txn = g_malloc(sizeof(OstreeRepoAutoTransaction));
txn->atomic_refcount = 1;
txn->repo = g_object_ref (repo);
return g_steal_pointer (&txn);
}
/** /**
* _ostree_repo_auto_transaction_start: * _ostree_repo_auto_transaction_start:
* @repo: (not nullable): an #OsreeRepo object * @repo: (not nullable): an #OsreeRepo object
@ -730,11 +757,7 @@ _ostree_repo_auto_transaction_start (OstreeRepo *repo,
if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error)) if (!ostree_repo_prepare_transaction (repo, NULL, cancellable, error))
return NULL; return NULL;
OstreeRepoAutoTransaction *txn = g_malloc(sizeof(OstreeRepoAutoTransaction)); return _ostree_repo_auto_transaction_new (repo);
txn->atomic_refcount = 1;
txn->repo = g_object_ref (repo);
return g_steal_pointer (&txn);
} }
/** /**
@ -1208,8 +1231,8 @@ ostree_repo_finalize (GObject *object)
g_clear_pointer (&self->txn.refs, g_hash_table_destroy); g_clear_pointer (&self->txn.refs, g_hash_table_destroy);
g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy); g_clear_pointer (&self->txn.collection_refs, g_hash_table_destroy);
g_clear_error (&self->writable_error); g_clear_error (&self->writable_error);
g_clear_pointer (&self->object_sizes, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&self->object_sizes, g_hash_table_unref);
g_clear_pointer (&self->dirmeta_cache, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&self->dirmeta_cache, g_hash_table_unref);
g_mutex_clear (&self->cache_lock); g_mutex_clear (&self->cache_lock);
g_mutex_clear (&self->txn_lock); g_mutex_clear (&self->txn_lock);
g_free (self->collection_id); g_free (self->collection_id);
@ -2306,7 +2329,7 @@ ostree_repo_remote_gpg_import (OstreeRepo *self,
goto out; goto out;
} }
g_clear_pointer (&data_buffer, (GDestroyNotify) gpgme_data_release); g_clear_pointer (&data_buffer, gpgme_data_release);
} }
/* Retrieve all keys or specific keys from the source GPGME context. /* Retrieve all keys or specific keys from the source GPGME context.
@ -3179,7 +3202,7 @@ reload_core_config (OstreeRepo *self,
gboolean is_archive; gboolean is_archive;
gsize len; gsize len;
g_clear_pointer (&self->config, (GDestroyNotify)g_key_file_unref); g_clear_pointer (&self->config, g_key_file_unref);
self->config = g_key_file_new (); self->config = g_key_file_new ();
contents = glnx_file_get_contents_utf8_at (self->repo_dir_fd, "config", &len, contents = glnx_file_get_contents_utf8_at (self->repo_dir_fd, "config", &len,
@ -6274,7 +6297,7 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
g_autoptr(GHashTable) collection_map = NULL; /* (element-type utf8 GHashTable) */ g_autoptr(GHashTable) collection_map = NULL; /* (element-type utf8 GHashTable) */
g_hash_table_iter_init (&iter, collection_refs); g_hash_table_iter_init (&iter, collection_refs);
collection_map = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, collection_map = g_hash_table_new_full (g_str_hash, g_str_equal, NULL,
(GDestroyNotify) g_hash_table_unref); (GDestroyNotify)g_hash_table_unref);
const OstreeCollectionRef *c_ref; const OstreeCollectionRef *c_ref;
const char *checksum; const char *checksum;
@ -6594,7 +6617,7 @@ _ostree_repo_memory_cache_ref_destroy (OstreeRepoMemoryCacheRef *state)
g_mutex_lock (lock); g_mutex_lock (lock);
repo->dirmeta_cache_refcount--; repo->dirmeta_cache_refcount--;
if (repo->dirmeta_cache_refcount == 0) if (repo->dirmeta_cache_refcount == 0)
g_clear_pointer (&repo->dirmeta_cache, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&repo->dirmeta_cache, g_hash_table_unref);
g_mutex_unlock (lock); g_mutex_unlock (lock);
g_object_unref (repo); g_object_unref (repo);
} }

View File

@ -1,140 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/* soup-form.c : utility functions for HTML forms */
/*
* Copyright 2008 Red Hat, Inc.
*/
/* This one is stripped down to only have soup_form_encode_hash()
* and soup_form_encode_valist() which are the only bits that soup-uri.c
* calls.
*/
#include <config.h>
#include <string.h>
#include "ostree-soup-uri.h"
/**
* SECTION:soup-form
* @short_description: HTML form handling
* @see_also: #SoupMultipart
*
* libsoup contains several help methods for processing HTML forms as
* defined by <ulink
* url="http://www.w3.org/TR/html401/interact/forms.html#h-17.13">the
* HTML 4.01 specification</ulink>.
**/
/**
* SOUP_FORM_MIME_TYPE_URLENCODED:
*
* A macro containing the value
* <literal>"application/x-www-form-urlencoded"</literal>; the default
* MIME type for POSTing HTML form data.
*
* Since: 2.26
**/
/**
* SOUP_FORM_MIME_TYPE_MULTIPART:
*
* A macro containing the value
* <literal>"multipart/form-data"</literal>; the MIME type used for
* posting form data that contains files to be uploaded.
*
* Since: 2.26
**/
#define XDIGIT(c) ((c) <= '9' ? (c) - '0' : ((c) & 0x4F) - 'A' + 10)
#define HEXCHAR(s) ((XDIGIT (s[1]) << 4) + XDIGIT (s[2]))
static void
append_form_encoded (GString *str, const char *in)
{
const unsigned char *s = (const unsigned char *)in;
while (*s) {
if (*s == ' ') {
g_string_append_c (str, '+');
s++;
} else if (!g_ascii_isalnum (*s) && (*s != '-') && (*s != '_')
&& (*s != '.'))
g_string_append_printf (str, "%%%02X", (int)*s++);
else
g_string_append_c (str, *s++);
}
}
static void
encode_pair (GString *str, const char *name, const char *value)
{
g_return_if_fail (name != NULL);
g_return_if_fail (value != NULL);
if (str->len)
g_string_append_c (str, '&');
append_form_encoded (str, name);
g_string_append_c (str, '=');
append_form_encoded (str, value);
}
/**
* soup_form_encode_hash:
* @form_data_set: (element-type utf8 utf8) (transfer none): a hash table containing
* name/value pairs (as strings)
*
* Encodes @form_data_set into a value of type
* "application/x-www-form-urlencoded", as defined in the HTML 4.01
* spec.
*
* Note that the HTML spec states that "The control names/values are
* listed in the order they appear in the document." Since this method
* takes a hash table, it cannot enforce that; if you care about the
* ordering of the form fields, use soup_form_encode_datalist().
*
* Return value: the encoded form
**/
char *
soup_form_encode_hash (GHashTable *form_data_set)
{
GString *str = g_string_new (NULL);
GHashTableIter iter;
gpointer name, value;
g_hash_table_iter_init (&iter, form_data_set);
while (g_hash_table_iter_next (&iter, &name, &value))
encode_pair (str, name, value);
return g_string_free (str, FALSE);
}
/**
* soup_form_encode_valist:
* @first_field: name of the first form field
* @args: pointer to additional values, as in soup_form_encode()
*
* See soup_form_encode(). This is mostly an internal method, used by
* various other methods such as soup_uri_set_query_from_fields() and
* soup_form_request_new().
*
* Return value: the encoded form
**/
char *
soup_form_encode_valist (const char *first_field, va_list args)
{
GString *str = g_string_new (NULL);
const char *name, *value;
name = first_field;
value = va_arg (args, const char *);
while (name && value) {
encode_pair (str, name, value);
name = va_arg (args, const char *);
if (name)
value = va_arg (args, const char *);
}
return g_string_free (str, FALSE);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,147 +0,0 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Copyright 1999-2002 Ximian, Inc.
*/
/* NOTE - taken from the libsoup codebase for use by the ostree curl backend
* (yes, ironically enough).
*
* Please watch for future changes in libsoup.
*/
#ifndef SOUP_URI_H
#define SOUP_URI_H 1
/* OSTREECHANGE: make struct private
* Only include gio, and skip available definitions.
*/
#include <gio/gio.h>
#define SOUP_AVAILABLE_IN_2_4
#define SOUP_AVAILABLE_IN_2_28
#define SOUP_AVAILABLE_IN_2_32
G_BEGIN_DECLS
/* OSTREECHANGE: make struct private */
typedef struct _SoupURI SoupURI;
/* OSTREECHANGE: import soup-misc's interning */
#define SOUP_VAR extern
#define _SOUP_ATOMIC_INTERN_STRING(variable, value) ((const char *)(g_atomic_pointer_get (&(variable)) ? (variable) : (g_atomic_pointer_set (&(variable), (gpointer)g_intern_static_string (value)), (variable))))
#define SOUP_URI_SCHEME_HTTP _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_HTTP, "http")
#define SOUP_URI_SCHEME_HTTPS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_HTTPS, "https")
#define SOUP_URI_SCHEME_FTP _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_FTP, "ftp")
#define SOUP_URI_SCHEME_FILE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_FILE, "file")
#define SOUP_URI_SCHEME_DATA _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_DATA, "data")
#define SOUP_URI_SCHEME_RESOURCE _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_RESOURCE, "resource")
#define SOUP_URI_SCHEME_WS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_WS, "ws")
#define SOUP_URI_SCHEME_WSS _SOUP_ATOMIC_INTERN_STRING (_SOUP_URI_SCHEME_WSS, "wss")
/* OSTREECHANGE: import soup-form bits */
SOUP_AVAILABLE_IN_2_4
char *soup_form_encode_hash (GHashTable *form_data_set);
SOUP_AVAILABLE_IN_2_4
char *soup_form_encode_valist (const char *first_field,
va_list args);
SOUP_VAR gpointer _SOUP_URI_SCHEME_HTTP, _SOUP_URI_SCHEME_HTTPS;
SOUP_VAR gpointer _SOUP_URI_SCHEME_FTP;
SOUP_VAR gpointer _SOUP_URI_SCHEME_FILE, _SOUP_URI_SCHEME_DATA, _SOUP_URI_SCHEME_RESOURCE;
SOUP_VAR gpointer _SOUP_URI_SCHEME_WS, _SOUP_URI_SCHEME_WSS;
SOUP_AVAILABLE_IN_2_4
SoupURI *soup_uri_new_with_base (SoupURI *base,
const char *uri_string);
SOUP_AVAILABLE_IN_2_4
SoupURI *soup_uri_new (const char *uri_string);
SOUP_AVAILABLE_IN_2_4
char *soup_uri_to_string (SoupURI *uri,
gboolean just_path_and_query);
SOUP_AVAILABLE_IN_2_4
SoupURI *soup_uri_copy (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
gboolean soup_uri_equal (SoupURI *uri1,
SoupURI *uri2);
SOUP_AVAILABLE_IN_2_4
void soup_uri_free (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
char *soup_uri_encode (const char *part,
const char *escape_extra);
SOUP_AVAILABLE_IN_2_4
char *soup_uri_decode (const char *part);
SOUP_AVAILABLE_IN_2_4
char *soup_uri_normalize (const char *part,
const char *unescape_extra);
SOUP_AVAILABLE_IN_2_4
gboolean soup_uri_uses_default_port (SoupURI *uri);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_scheme (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_scheme (SoupURI *uri,
const char *scheme);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_user (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_user (SoupURI *uri,
const char *user);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_password (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_password (SoupURI *uri,
const char *password);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_host (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_host (SoupURI *uri,
const char *host);
SOUP_AVAILABLE_IN_2_32
guint soup_uri_get_port (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_port (SoupURI *uri,
guint port);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_path (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_path (SoupURI *uri,
const char *path);
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_query (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_query (SoupURI *uri,
const char *query);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_query_from_form (SoupURI *uri,
GHashTable *form);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_query_from_fields (SoupURI *uri,
const char *first_field,
...) G_GNUC_NULL_TERMINATED;
SOUP_AVAILABLE_IN_2_32
const char *soup_uri_get_fragment (SoupURI *uri);
SOUP_AVAILABLE_IN_2_4
void soup_uri_set_fragment (SoupURI *uri,
const char *fragment);
SOUP_AVAILABLE_IN_2_28
SoupURI *soup_uri_copy_host (SoupURI *uri);
SOUP_AVAILABLE_IN_2_28
guint soup_uri_host_hash (gconstpointer key);
SOUP_AVAILABLE_IN_2_28
gboolean soup_uri_host_equal (gconstpointer v1,
gconstpointer v2);
#define SOUP_URI_IS_VALID(uri) ((uri) && (uri)->scheme && (uri)->path)
#define SOUP_URI_VALID_FOR_HTTP(uri) ((uri) && ((uri)->scheme == SOUP_URI_SCHEME_HTTP || (uri)->scheme == SOUP_URI_SCHEME_HTTPS) && (uri)->host && (uri)->path)
G_END_DECLS
#endif /*SOUP_URI_H*/

View File

@ -2830,6 +2830,121 @@ get_var_dfd (OstreeSysroot *self,
return glnx_opendirat (base_dfd, base_path, TRUE, ret_fd, error); return glnx_opendirat (base_dfd, base_path, TRUE, ret_fd, error);
} }
#ifdef HAVE_SELINUX
static void
child_setup_fchdir (gpointer data)
{
int fd = (int) (uintptr_t) data;
int rc __attribute__((unused));
rc = fchdir (fd);
}
/*
* Derived from rpm-ostree's rust/src/bwrap.rs
*/
static gboolean
run_in_deployment (int deployment_dfd,
const gchar * const *child_argv,
gsize child_argc,
gint *exit_status,
gchar **stdout,
GError **error)
{
static const gchar * const COMMON_ARGV[] = {
"/usr/bin/bwrap",
"--dev", "/dev", "--proc", "/proc", "--dir", "/run", "--dir", "/tmp",
"--chdir", "/",
"--die-with-parent",
"--unshare-pid",
"--unshare-uts",
"--unshare-ipc",
"--unshare-cgroup-try",
"--ro-bind", "/sys/block", "/sys/block",
"--ro-bind", "/sys/bus", "/sys/bus",
"--ro-bind", "/sys/class", "/sys/class",
"--ro-bind", "/sys/dev", "/sys/dev",
"--ro-bind", "/sys/devices", "/sys/devices",
"--bind", "usr", "/usr",
"--bind", "etc", "/etc",
"--bind", "var", "/var",
"--symlink", "/usr/lib", "/lib",
"--symlink", "/usr/lib32", "/lib32",
"--symlink", "/usr/lib64", "/lib64",
"--symlink", "/usr/bin", "/bin",
"--symlink", "/usr/sbin", "/sbin",
};
static const gsize COMMON_ARGC = sizeof (COMMON_ARGV) / sizeof (*COMMON_ARGV);
gsize i;
GPtrArray *args = g_ptr_array_sized_new (COMMON_ARGC + child_argc + 1);
g_autofree gchar **args_raw = NULL;
for (i = 0; i < COMMON_ARGC; i++)
g_ptr_array_add (args, (gchar *) COMMON_ARGV[i]);
for (i = 0; i < child_argc; i++)
g_ptr_array_add (args, (gchar *) child_argv[i]);
g_ptr_array_add (args, NULL);
args_raw = (gchar **) g_ptr_array_free (args, FALSE);
return g_spawn_sync (NULL, args_raw, NULL, 0, &child_setup_fchdir,
(gpointer) (uintptr_t) deployment_dfd,
stdout, NULL, exit_status, error);
}
/*
* Run semodule to check if the module content changed after merging /etc
* and rebuild the policy if needed.
*/
static gboolean
sysroot_finalize_selinux_policy (int deployment_dfd, GError **error)
{
struct stat stbuf;
gint exit_status;
g_autofree gchar *stdout = NULL;
if (!glnx_fstatat_allow_noent (deployment_dfd, "etc/selinux/config", &stbuf,
AT_SYMLINK_NOFOLLOW, error))
return FALSE;
/* Skip the SELinux policy refresh if /etc/selinux/config doesn't exist. */
if (errno != 0)
return TRUE;
/*
* Skip the SELinux policy refresh if the --rebuild-if-modules-changed
* flag is not supported by semodule.
*/
static const gchar * const SEMODULE_HELP_ARGV[] = {
"semodule", "--help"
};
static const gsize SEMODULE_HELP_ARGC = sizeof (SEMODULE_HELP_ARGV) / sizeof (*SEMODULE_HELP_ARGV);
if (!run_in_deployment (deployment_dfd, SEMODULE_HELP_ARGV,
SEMODULE_HELP_ARGC, &exit_status, &stdout, error))
return FALSE;
if (!g_spawn_check_exit_status (exit_status, error))
return glnx_prefix_error (error, "failed to run semodule");
if (!strstr(stdout, "--rebuild-if-modules-changed"))
{
ot_journal_print (LOG_INFO, "semodule does not have --rebuild-if-modules-changed");
return TRUE;
}
static const gchar * const SEMODULE_REBUILD_ARGV[] = {
"semodule", "-N", "--rebuild-if-modules-changed"
};
static const gsize SEMODULE_REBUILD_ARGC = sizeof (SEMODULE_REBUILD_ARGV) / sizeof (*SEMODULE_REBUILD_ARGV);
if (!run_in_deployment (deployment_dfd, SEMODULE_REBUILD_ARGV,
SEMODULE_REBUILD_ARGC, &exit_status, NULL, error))
return FALSE;
return g_spawn_check_exit_status (exit_status, error);
}
#endif /* HAVE_SELINUX */
static gboolean static gboolean
sysroot_finalize_deployment (OstreeSysroot *self, sysroot_finalize_deployment (OstreeSysroot *self,
OstreeDeployment *deployment, OstreeDeployment *deployment,
@ -2866,6 +2981,11 @@ sysroot_finalize_deployment (OstreeSysroot *self,
return FALSE; return FALSE;
} }
#ifdef HAVE_SELINUX
if (!sysroot_finalize_selinux_policy(deployment_dfd, error))
return FALSE;
#endif /* HAVE_SELINUX */
const char *osdeploypath = glnx_strjoina ("ostree/deploy/", ostree_deployment_get_osname (deployment)); const char *osdeploypath = glnx_strjoina ("ostree/deploy/", ostree_deployment_get_osname (deployment));
glnx_autofd int os_deploy_dfd = -1; glnx_autofd int os_deploy_dfd = -1;
if (!glnx_opendirat (self->sysroot_fd, osdeploypath, TRUE, &os_deploy_dfd, error)) if (!glnx_opendirat (self->sysroot_fd, osdeploypath, TRUE, &os_deploy_dfd, error))
@ -3255,10 +3375,10 @@ ostree_sysroot_stage_tree_with_options (OstreeSysroot *self,
} }
/* Invoked at shutdown time by ostree-finalize-staged.service */ /* Invoked at shutdown time by ostree-finalize-staged.service */
gboolean static gboolean
_ostree_sysroot_finalize_staged (OstreeSysroot *self, _ostree_sysroot_finalize_staged_inner (OstreeSysroot *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
/* It's totally fine if there's no staged deployment; perhaps down the line /* It's totally fine if there's no staged deployment; perhaps down the line
* though we could teach the ostree cmdline to tell systemd to activate the * though we could teach the ostree cmdline to tell systemd to activate the
@ -3355,9 +3475,63 @@ _ostree_sysroot_finalize_staged (OstreeSysroot *self,
if (!ostree_sysroot_prepare_cleanup (self, cancellable, error)) if (!ostree_sysroot_prepare_cleanup (self, cancellable, error))
return FALSE; return FALSE;
// Cleanup will have closed some FDs, re-ensure writability
if (!_ostree_sysroot_ensure_writable (self, error))
return FALSE;
return TRUE; return TRUE;
} }
/* Invoked at shutdown time by ostree-finalize-staged.service */
gboolean
_ostree_sysroot_finalize_staged (OstreeSysroot *self,
GCancellable *cancellable,
GError **error)
{
g_autoptr(GError) finalization_error = NULL;
if (!_ostree_sysroot_ensure_boot_fd (self, error))
return FALSE;
if (!_ostree_sysroot_finalize_staged_inner (self, cancellable, &finalization_error))
{
g_autoptr(GError) writing_error = NULL;
g_assert_cmpint (self->boot_fd, !=, -1);
if (!glnx_file_replace_contents_at (self->boot_fd, _OSTREE_FINALIZE_STAGED_FAILURE_PATH,
(guint8*)finalization_error->message, -1,
0, cancellable, &writing_error))
{
// We somehow failed to write the failure message...that's not great. Maybe ENOSPC on /boot.
g_printerr ("Failed to write %s: %s\n", _OSTREE_FINALIZE_STAGED_FAILURE_PATH, writing_error->message);
}
g_propagate_error (error, g_steal_pointer (&finalization_error));
return FALSE;
}
return TRUE;
}
/* Invoked at bootup time by ostree-boot-complete.service */
gboolean
_ostree_sysroot_boot_complete (OstreeSysroot *self,
GCancellable *cancellable,
GError **error)
{
if (!_ostree_sysroot_ensure_boot_fd (self, error))
return FALSE;
glnx_autofd int failure_fd = -1;
if (!ot_openat_ignore_enoent (self->boot_fd, _OSTREE_FINALIZE_STAGED_FAILURE_PATH, &failure_fd, error))
return FALSE;
// If we didn't find a failure log, then there's nothing to do right now.
// (Actually this unit shouldn't even be invoked, but we may do more in the future)
if (failure_fd == -1)
return TRUE;
g_autofree char *failure_data = glnx_fd_readall_utf8 (failure_fd, NULL, cancellable, error);
if (failure_data == NULL)
return glnx_prefix_error (error, "Reading from %s", _OSTREE_FINALIZE_STAGED_FAILURE_PATH);
// Remove the file; we don't want to continually error out.
(void) unlinkat (self->boot_fd, _OSTREE_FINALIZE_STAGED_FAILURE_PATH, 0);
return glnx_throw (error, "ostree-finalize-staged.service failed on previous boot: %s", failure_data);
}
/** /**
* ostree_sysroot_deployment_set_kargs: * ostree_sysroot_deployment_set_kargs:
* @self: Sysroot * @self: Sysroot

View File

@ -96,6 +96,9 @@ struct OstreeSysroot {
#define _OSTREE_SYSROOT_BOOT_INITRAMFS_OVERLAYS "ostree/initramfs-overlays" #define _OSTREE_SYSROOT_BOOT_INITRAMFS_OVERLAYS "ostree/initramfs-overlays"
#define _OSTREE_SYSROOT_INITRAMFS_OVERLAYS "boot/" _OSTREE_SYSROOT_BOOT_INITRAMFS_OVERLAYS #define _OSTREE_SYSROOT_INITRAMFS_OVERLAYS "boot/" _OSTREE_SYSROOT_BOOT_INITRAMFS_OVERLAYS
// Relative to /boot, consumed by ostree-boot-complete.service
#define _OSTREE_FINALIZE_STAGED_FAILURE_PATH "ostree/finalize-failure.stamp"
gboolean gboolean
_ostree_sysroot_ensure_writable (OstreeSysroot *self, _ostree_sysroot_ensure_writable (OstreeSysroot *self,
GError **error); GError **error);
@ -142,6 +145,10 @@ gboolean
_ostree_sysroot_finalize_staged (OstreeSysroot *self, _ostree_sysroot_finalize_staged (OstreeSysroot *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error); GError **error);
gboolean
_ostree_sysroot_boot_complete (OstreeSysroot *self,
GCancellable *cancellable,
GError **error);
OstreeDeployment * OstreeDeployment *
_ostree_sysroot_deserialize_deployment_from_variant (GVariant *v, _ostree_sysroot_deserialize_deployment_from_variant (GVariant *v,

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2013 Colin Walters <walters@verbum.org> * Copyright (C) 2013 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -82,7 +83,7 @@ ostree_sysroot_finalize (GObject *object)
g_clear_pointer (&self->deployments, g_ptr_array_unref); g_clear_pointer (&self->deployments, g_ptr_array_unref);
g_clear_object (&self->booted_deployment); g_clear_object (&self->booted_deployment);
g_clear_object (&self->staged_deployment); g_clear_object (&self->staged_deployment);
g_clear_pointer (&self->staged_deployment_data, (GDestroyNotify)g_variant_unref); g_clear_pointer (&self->staged_deployment_data, g_variant_unref);
glnx_release_lock_file (&self->lock); glnx_release_lock_file (&self->lock);
@ -356,6 +357,8 @@ _ostree_sysroot_ensure_writable (OstreeSysroot *self,
ostree_sysroot_unload (self); ostree_sysroot_unload (self);
if (!ensure_sysroot_fd (self, error)) if (!ensure_sysroot_fd (self, error))
return FALSE; return FALSE;
if (!_ostree_sysroot_ensure_boot_fd (self, error))
return FALSE;
return TRUE; return TRUE;
} }
@ -1016,7 +1019,7 @@ _ostree_sysroot_reload_staged (OstreeSysroot *self,
g_assert (self->booted_deployment); g_assert (self->booted_deployment);
g_clear_object (&self->staged_deployment); g_clear_object (&self->staged_deployment);
g_clear_pointer (&self->staged_deployment_data, (GDestroyNotify)g_variant_unref); g_clear_pointer (&self->staged_deployment_data, g_variant_unref);
/* Read the staged state from disk */ /* Read the staged state from disk */
glnx_autofd int fd = -1; glnx_autofd int fd = -1;

View File

@ -41,7 +41,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_RELEASE_VERSION (2) #define OSTREE_RELEASE_VERSION (3)
/** /**
* OSTREE_VERSION * OSTREE_VERSION
@ -50,7 +50,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_VERSION (2022.2) #define OSTREE_VERSION (2022.3)
/** /**
* OSTREE_VERSION_S: * OSTREE_VERSION_S:
@ -60,7 +60,7 @@
* *
* Since: 2017.4 * Since: 2017.4
*/ */
#define OSTREE_VERSION_S "2022.2" #define OSTREE_VERSION_S "2022.3"
#define OSTREE_ENCODE_VERSION(year,release) \ #define OSTREE_ENCODE_VERSION(year,release) \
((year) << 16 | (release)) ((year) << 16 | (release))

View File

@ -1,5 +1,5 @@
#!/usr/bin/bash #!/bin/bash
# This script creates new initramdisk with LUKS config within # This script creates new initramdisk with LUKS config within
set -euo pipefail set -euo pipefail
old_initrd=$1 old_initrd=$1

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2017 Colin Walters <walters@verbum.org> * Copyright (C) 2017 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -22,12 +23,12 @@
#include "ot-checksum-instream.h" #include "ot-checksum-instream.h"
#include "ot-checksum-utils.h" #include "ot-checksum-utils.h"
G_DEFINE_TYPE (OtChecksumInstream, ot_checksum_instream, G_TYPE_FILTER_INPUT_STREAM)
struct _OtChecksumInstreamPrivate { struct _OtChecksumInstreamPrivate {
OtChecksum checksum; OtChecksum checksum;
}; };
G_DEFINE_TYPE_WITH_PRIVATE (OtChecksumInstream, ot_checksum_instream, G_TYPE_FILTER_INPUT_STREAM)
static gssize ot_checksum_instream_read (GInputStream *stream, static gssize ot_checksum_instream_read (GInputStream *stream,
void *buffer, void *buffer,
gsize count, gsize count,
@ -50,8 +51,6 @@ ot_checksum_instream_class_init (OtChecksumInstreamClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass);
GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass); GInputStreamClass *stream_class = G_INPUT_STREAM_CLASS (klass);
g_type_class_add_private (klass, sizeof (OtChecksumInstreamPrivate));
object_class->finalize = ot_checksum_instream_finalize; object_class->finalize = ot_checksum_instream_finalize;
stream_class->read_fn = ot_checksum_instream_read; stream_class->read_fn = ot_checksum_instream_read;
} }
@ -59,7 +58,7 @@ ot_checksum_instream_class_init (OtChecksumInstreamClass *klass)
static void static void
ot_checksum_instream_init (OtChecksumInstream *self) ot_checksum_instream_init (OtChecksumInstream *self)
{ {
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, OT_TYPE_CHECKSUM_INSTREAM, OtChecksumInstreamPrivate); self->priv = ot_checksum_instream_get_instance_private (self);
} }
OtChecksumInstream * OtChecksumInstream *

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2015 Red Hat, Inc. * Copyright (C) 2015 Red Hat, Inc.
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -129,7 +130,7 @@ ot_gpgme_ctx_tmp_home_dir (gpgme_ctx_t gpgme_ctx,
goto out; goto out;
/* Sneaky cast from GFileOutputStream to GOutputStream. */ /* Sneaky cast from GFileOutputStream to GOutputStream. */
*out_pubring_stream = g_steal_pointer (&pubring_stream); *out_pubring_stream = (GOutputStream *)g_steal_pointer (&pubring_stream);
} }
if (out_tmp_home_dir != NULL) if (out_tmp_home_dir != NULL)

View File

@ -0,0 +1,58 @@
/*
* Copyright (C) 2022 Red Hat, Inc.
*
* SPDX-License-Identifier: LGPL-2.0+
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library. If not, see <https://www.gnu.org/licenses/>.
*/
#include "config.h"
#include <stdlib.h>
#include "ot-main.h"
#include "ot-admin-builtins.h"
#include "ot-admin-functions.h"
#include "ostree.h"
#include "otutil.h"
#include "ostree-cmdprivate.h"
static GOptionEntry options[] = {
{ NULL }
};
gboolean
ot_admin_builtin_boot_complete (int argc, char **argv, OstreeCommandInvocation *invocation, GCancellable *cancellable, GError **error)
{
/* Just a sanity check; we shouldn't be called outside of the service though.
*/
struct stat stbuf;
if (fstatat (AT_FDCWD, OSTREE_PATH_BOOTED, &stbuf, 0) < 0)
return TRUE;
// We must have been invoked via systemd which should have set up a mount namespace.
g_assert (getenv ("INVOCATION_ID"));
g_autoptr(GOptionContext) context = g_option_context_new ("");
g_autoptr(OstreeSysroot) sysroot = NULL;
if (!ostree_admin_option_context_parse (context, options, &argc, &argv,
OSTREE_ADMIN_BUILTIN_FLAG_SUPERUSER,
invocation, &sysroot, cancellable, error))
return FALSE;
if (!ostree_cmd__private__()->ostree_boot_complete (sysroot, cancellable, error))
return FALSE;
return TRUE;
}

View File

@ -39,6 +39,7 @@ BUILTINPROTO(deploy);
BUILTINPROTO(cleanup); BUILTINPROTO(cleanup);
BUILTINPROTO(pin); BUILTINPROTO(pin);
BUILTINPROTO(finalize_staged); BUILTINPROTO(finalize_staged);
BUILTINPROTO(boot_complete);
BUILTINPROTO(unlock); BUILTINPROTO(unlock);
BUILTINPROTO(status); BUILTINPROTO(status);
BUILTINPROTO(set_origin); BUILTINPROTO(set_origin);

View File

@ -43,6 +43,9 @@ static OstreeCommand admin_subcommands[] = {
{ "finalize-staged", OSTREE_BUILTIN_FLAG_NO_REPO | OSTREE_BUILTIN_FLAG_HIDDEN, { "finalize-staged", OSTREE_BUILTIN_FLAG_NO_REPO | OSTREE_BUILTIN_FLAG_HIDDEN,
ot_admin_builtin_finalize_staged, ot_admin_builtin_finalize_staged,
"Internal command to run at shutdown time" }, "Internal command to run at shutdown time" },
{ "boot-complete", OSTREE_BUILTIN_FLAG_NO_REPO | OSTREE_BUILTIN_FLAG_HIDDEN,
ot_admin_builtin_boot_complete,
"Internal command to run at boot after an update was applied" },
{ "init-fs", OSTREE_BUILTIN_FLAG_NO_REPO, { "init-fs", OSTREE_BUILTIN_FLAG_NO_REPO,
ot_admin_builtin_init_fs, ot_admin_builtin_init_fs,
"Initialize a root filesystem" }, "Initialize a root filesystem" },

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -419,7 +420,7 @@ ostree_builtin_fsck (int argc, char **argv, OstreeCommandInvocation *invocation,
} }
} }
g_clear_pointer (&objects, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&objects, g_hash_table_unref);
if (!opt_quiet) if (!opt_quiet)
g_print ("Verifying content integrity of %u commit objects...\n", g_print ("Verifying content integrity of %u commit objects...\n",

View File

@ -1,5 +1,6 @@
/* /*
* Copyright (C) 2011 Colin Walters <walters@verbum.org> * Copyright (C) 2011 Colin Walters <walters@verbum.org>
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -133,7 +134,7 @@ traverse_keep_younger_than (OstreeRepo *repo, const char *checksum,
g_free (next_checksum); g_free (next_checksum);
next_checksum = ostree_commit_get_parent (commit); next_checksum = ostree_commit_get_parent (commit);
if (next_checksum) if (next_checksum)
g_clear_pointer (&commit, (GDestroyNotify)g_variant_unref); g_clear_pointer (&commit, g_variant_unref);
else else
break; /* No parent, we're done */ break; /* No parent, we're done */
} }

View File

@ -1,5 +1,6 @@
/* /*
* Copyright © 2017 Endless Mobile, Inc. * Copyright © 2017 Endless Mobile, Inc.
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -47,7 +48,7 @@ result_cb (GObject *source_object,
static void static void
collection_ref_free0 (OstreeCollectionRef *ref) collection_ref_free0 (OstreeCollectionRef *ref)
{ {
g_clear_pointer (&ref, (GDestroyNotify) ostree_collection_ref_free); g_clear_pointer (&ref, ostree_collection_ref_free);
} }
int int

View File

@ -56,7 +56,7 @@ rm -rf -- repo files
if [ "${PRIVILEGED}" = "true" ]; then if [ "${PRIVILEGED}" = "true" ]; then
COMMIT="d614c428015227259031b0f19b934dade908942fd71c49047e0daa70e7800a5d" COMMIT="d614c428015227259031b0f19b934dade908942fd71c49047e0daa70e7800a5d"
cd ${test_tmpdir} cd ${test_tmpdir}
${SUDO} tar --same-permissions --same-owner -xaf ${test_srcdir}/fixtures/bare-split-xattrs/basic.tar.xz ${SUDO} tar --same-permissions --same-owner -xaf ${test_srcdir}/bare-split-xattrs-basic.tar.xz
${SUDO} ${OSTREE} fsck --all ${SUDO} ${OSTREE} fsck --all
${OSTREE} log ${COMMIT} > out.txt ${OSTREE} log ${COMMIT} > out.txt
assert_file_has_content_literal out.txt "fixtures: bare-split-xattrs repo" assert_file_has_content_literal out.txt "fixtures: bare-split-xattrs repo"

View File

@ -15,7 +15,9 @@ echo '1..2'
mkdir -p ./localbin mkdir -p ./localbin
ORIG_PATH="${PATH}" ORIG_PATH="${PATH}"
export PATH="./localbin/:${PATH}" export PATH="./localbin/:${PATH}"
ln -s /usr/bin/env ./localbin/ostree-env echo '#!/bin/sh' >> ./localbin/ostree-env
echo 'env "$@"' >> ./localbin/ostree-env
chmod +x ./localbin/ostree-env
export A_CUSTOM_TEST_FLAG="myvalue" export A_CUSTOM_TEST_FLAG="myvalue"
${CMD_PREFIX} ostree env >out.txt ${CMD_PREFIX} ostree env >out.txt
assert_file_has_content out.txt "^A_CUSTOM_TEST_FLAG=myvalue" assert_file_has_content out.txt "^A_CUSTOM_TEST_FLAG=myvalue"

View File

@ -1,5 +1,6 @@
/* /*
* Copyright © 2017 Endless Mobile, Inc. * Copyright © 2017 Endless Mobile, Inc.
* Copyright (C) 2022 Igalia S.L.
* *
* SPDX-License-Identifier: LGPL-2.0+ * SPDX-License-Identifier: LGPL-2.0+
* *
@ -136,7 +137,7 @@ ostree_mock_volume_monitor_new (GList *mounts,
monitor->mounts = g_list_copy_deep (mounts, (GCopyFunc) g_object_ref, NULL); monitor->mounts = g_list_copy_deep (mounts, (GCopyFunc) g_object_ref, NULL);
monitor->volumes = g_list_copy_deep (volumes, (GCopyFunc) g_object_ref, NULL); monitor->volumes = g_list_copy_deep (volumes, (GCopyFunc) g_object_ref, NULL);
return g_steal_pointer (&monitor); return (GVolumeMonitor *)g_steal_pointer (&monitor);
} }
/* Mock volume class. This returns a static set of data to the caller, which it /* Mock volume class. This returns a static set of data to the caller, which it

View File

@ -350,7 +350,7 @@ tap_ok --commit-only and --delete-commit
# Test --delete-commit when it creates orphaned commits # Test --delete-commit when it creates orphaned commits
reinitialize_commit_only_test_repo reinitialize_commit_only_test_repo
# get the current HEAD's parent on dev branch # get the current HEAD's parent on dev branch
COMMIT_TO_DELETE=$(${CMD_PREFIX} ostree --repo=repo log dev | grep ^commit | cut -f 2 -d' ' | head -n 2 | tail -n 1) COMMIT_TO_DELETE=$(${CMD_PREFIX} ostree --repo=repo log dev | grep ^commit | cut -f 2 -d' ' | sed -ne '2p')
${CMD_PREFIX} ostree --repo=repo prune --commit-only --refs-only --delete-commit=$COMMIT_TO_DELETE ${CMD_PREFIX} ostree --repo=repo prune --commit-only --refs-only --delete-commit=$COMMIT_TO_DELETE
# we deleted a commit that orphaned another, so we lose two commits # we deleted a commit that orphaned another, so we lose two commits
assert_repo_has_n_commits repo 4 assert_repo_has_n_commits repo 4