Merge tag 'upstream/2017.7' into debian/master

Upstream version 2017.7
This commit is contained in:
Simon McVittie 2017-06-21 09:52:08 +01:00
commit 31880a6e5c
127 changed files with 3512 additions and 2635 deletions

View File

@ -155,24 +155,25 @@ libostree_1_la_SOURCES += \
$(NULL) $(NULL)
endif endif
symbol_files = $(top_srcdir)/src/libostree/libostree-released.sym
if BUILDOPT_IS_DEVEL_BUILD
symbol_files += $(top_srcdir)/src/libostree/libostree-devel.sym
endif
if ENABLE_EXPERIMENTAL_API
symbol_files += $(top_srcdir)/src/libostree/libostree-experimental.sym
endif
# http://blog.jgc.org/2007/06/escaping-comma-and-space-in-gnu-make.html
wl_versionscript_arg = -Wl,--version-script=
EXTRA_DIST += $(symbol_files)
libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff -I$(srcdir)/libglnx -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree -I$(builddir)/src/libostree \ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff -I$(srcdir)/libglnx -I$(srcdir)/src/libotutil -I$(srcdir)/src/libostree -I$(builddir)/src/libostree \
$(OT_INTERNAL_GIO_UNIX_CFLAGS) $(OT_INTERNAL_GPGME_CFLAGS) $(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) $(OT_DEP_OPENSSL_CFLAGS) \ $(OT_INTERNAL_GIO_UNIX_CFLAGS) $(OT_INTERNAL_GPGME_CFLAGS) $(OT_DEP_LZMA_CFLAGS) $(OT_DEP_ZLIB_CFLAGS) $(OT_DEP_OPENSSL_CFLAGS) \
-fvisibility=hidden '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) extern' -fvisibility=hidden '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) extern'
libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions -Wl,--version-script=$(top_srcdir)/src/libostree/libostree.sym libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files))
libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GPGME_LIBS) \ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) $(OT_INTERNAL_GPGME_LIBS) \
$(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_OPENSSL_LIBS) $(OT_DEP_LZMA_LIBS) $(OT_DEP_ZLIB_LIBS) $(OT_DEP_OPENSSL_LIBS)
libostree_1_la_LIBADD += $(bupsplitpath) libostree_1_la_LIBADD += $(bupsplitpath)
EXTRA_libostree_1_la_DEPENDENCIES = $(top_srcdir)/src/libostree/libostree.sym EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)
EXTRA_DIST += \
src/libostree/libostree.sym \
src/libostree/libostree-experimental.sym \
$(NULL)
if ENABLE_EXPERIMENTAL_API
libostree_1_la_LDFLAGS += -Wl,--version-script=$(top_srcdir)/src/libostree/libostree-experimental.sym
EXTRA_libostree_1_la_DEPENDENCIES += $(top_srcdir)/src/libostree/libostree-experimental.sym
endif
if USE_LIBARCHIVE if USE_LIBARCHIVE
libostree_1_la_CFLAGS += $(OT_DEP_LIBARCHIVE_CFLAGS) libostree_1_la_CFLAGS += $(OT_DEP_LIBARCHIVE_CFLAGS)

View File

@ -29,7 +29,10 @@ ostree-commit.1 ostree-export.1 ostree-gpg-sign.1 ostree-config.1 \
ostree-diff.1 ostree-fsck.1 ostree-init.1 ostree-log.1 ostree-ls.1 \ ostree-diff.1 ostree-fsck.1 ostree-init.1 ostree-log.1 ostree-ls.1 \
ostree-prune.1 ostree-pull-local.1 ostree-pull.1 ostree-refs.1 \ ostree-prune.1 ostree-pull-local.1 ostree-pull.1 ostree-refs.1 \
ostree-remote.1 ostree-reset.1 ostree-rev-parse.1 ostree-show.1 \ ostree-remote.1 ostree-reset.1 ostree-rev-parse.1 ostree-show.1 \
ostree-summary.1 ostree-static-delta.1 ostree-trivial-httpd.1 ostree-summary.1 ostree-static-delta.1
if BUILDOPT_TRIVIAL_HTTPD
man1_files += ostree-trivial-httpd.1
endif
if BUILDOPT_FUSE if BUILDOPT_FUSE
man1_files += rofiles-fuse.1 man1_files += rofiles-fuse.1

View File

@ -27,7 +27,7 @@ EXTRA_DIST += \
# 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
# binary. # binary.
TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \ AM_TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
OSTREE_UNINSTALLED_SRCDIR=$(abs_top_srcdir) \ OSTREE_UNINSTALLED_SRCDIR=$(abs_top_srcdir) \
OSTREE_UNINSTALLED=$(abs_top_builddir) \ OSTREE_UNINSTALLED=$(abs_top_builddir) \
G_DEBUG=fatal-warnings \ G_DEBUG=fatal-warnings \
@ -37,7 +37,7 @@ TESTS_ENVIRONMENT += OT_TESTS_DEBUG=1 \
OSTREE_FEATURES="$(OSTREE_FEATURES)" \ OSTREE_FEATURES="$(OSTREE_FEATURES)" \
$(NULL) $(NULL)
if BUILDOPT_ASAN if BUILDOPT_ASAN
TESTS_ENVIRONMENT += OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc AM_TESTS_ENVIRONMENT += OT_SKIP_READDIR_RAND=1 G_SLICE=always-malloc
endif endif
uninstalled_test_data = tests/ostree-symlink-stamp tests/ostree-prepare-root-symlink-stamp \ uninstalled_test_data = tests/ostree-symlink-stamp tests/ostree-prepare-root-symlink-stamp \
@ -82,6 +82,7 @@ _installed_or_uninstalled_test_scripts = \
tests/test-local-pull-depth.sh \ tests/test-local-pull-depth.sh \
tests/test-gpg-signed-commit.sh \ tests/test-gpg-signed-commit.sh \
tests/test-admin-upgrade-unconfigured.sh \ tests/test-admin-upgrade-unconfigured.sh \
tests/test-admin-upgrade-endoflife.sh \
tests/test-admin-deploy-syslinux.sh \ tests/test-admin-deploy-syslinux.sh \
tests/test-admin-deploy-2.sh \ tests/test-admin-deploy-2.sh \
tests/test-admin-deploy-karg.sh \ tests/test-admin-deploy-karg.sh \

View File

@ -394,7 +394,7 @@ check_PROGRAMS = $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11)
@ENABLE_EXPERIMENTAL_API_FALSE@ src/libostree/ostree-remote.h \ @ENABLE_EXPERIMENTAL_API_FALSE@ src/libostree/ostree-remote.h \
@ENABLE_EXPERIMENTAL_API_FALSE@ $(NULL) @ENABLE_EXPERIMENTAL_API_FALSE@ $(NULL)
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_22 = -Wl,--version-script=$(top_srcdir)/src/libostree/libostree-experimental.sym @BUILDOPT_IS_DEVEL_BUILD_TRUE@am__append_22 = $(top_srcdir)/src/libostree/libostree-devel.sym
@ENABLE_EXPERIMENTAL_API_TRUE@am__append_23 = $(top_srcdir)/src/libostree/libostree-experimental.sym @ENABLE_EXPERIMENTAL_API_TRUE@am__append_23 = $(top_srcdir)/src/libostree/libostree-experimental.sym
@USE_LIBARCHIVE_TRUE@am__append_24 = $(OT_DEP_LIBARCHIVE_CFLAGS) @USE_LIBARCHIVE_TRUE@am__append_24 = $(OT_DEP_LIBARCHIVE_CFLAGS)
@USE_LIBARCHIVE_TRUE@am__append_25 = $(OT_DEP_LIBARCHIVE_LIBS) @USE_LIBARCHIVE_TRUE@am__append_25 = $(OT_DEP_LIBARCHIVE_LIBS)
@ -475,9 +475,10 @@ check_PROGRAMS = $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11)
# We're using the system grub2-mkconfig generator # We're using the system grub2-mkconfig generator
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_70 = src/boot/grub2/grub2-15_ostree @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_70 = src/boot/grub2/grub2-15_ostree
@BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_71 = install-grub2-config-hook @BUILDOPT_BUILTIN_GRUB2_MKCONFIG_FALSE@am__append_71 = install-grub2-config-hook
@BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_72 = rofiles-fuse.1 @BUILDOPT_TRIVIAL_HTTPD_TRUE@@ENABLE_MAN_TRUE@am__append_72 = ostree-trivial-httpd.1
@ENABLE_MAN_TRUE@am__append_73 = $(man1_MANS) $(man5_MANS) $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml) @BUILDOPT_FUSE_TRUE@@ENABLE_MAN_TRUE@am__append_73 = rofiles-fuse.1
@ENABLE_MAN_TRUE@am__append_74 = \ @ENABLE_MAN_TRUE@am__append_74 = $(man1_MANS) $(man5_MANS) $(man1_MANS:.1=.xml) $(man5_MANS:.5=.xml)
@ENABLE_MAN_TRUE@am__append_75 = \
@ENABLE_MAN_TRUE@ $(man1_MANS) \ @ENABLE_MAN_TRUE@ $(man1_MANS) \
@ENABLE_MAN_TRUE@ $(man5_MANS) \ @ENABLE_MAN_TRUE@ $(man5_MANS) \
@ENABLE_MAN_TRUE@ $(NULL) @ENABLE_MAN_TRUE@ $(NULL)
@ -1497,6 +1498,7 @@ am__EXEEXT_17 = tests/test-basic.sh tests/test-basic-user.sh \
tests/test-pull-override-url.sh tests/test-local-pull.sh \ tests/test-pull-override-url.sh tests/test-local-pull.sh \
tests/test-local-pull-depth.sh tests/test-gpg-signed-commit.sh \ tests/test-local-pull-depth.sh tests/test-gpg-signed-commit.sh \
tests/test-admin-upgrade-unconfigured.sh \ tests/test-admin-upgrade-unconfigured.sh \
tests/test-admin-upgrade-endoflife.sh \
tests/test-admin-deploy-syslinux.sh \ tests/test-admin-deploy-syslinux.sh \
tests/test-admin-deploy-2.sh tests/test-admin-deploy-karg.sh \ tests/test-admin-deploy-2.sh tests/test-admin-deploy-karg.sh \
tests/test-admin-deploy-switch.sh \ tests/test-admin-deploy-switch.sh \
@ -1818,15 +1820,14 @@ CLEANFILES = $(am__append_13) $(BUILT_SOURCES) $(am__append_42) \
tests/ostree-remount-symlink-stamp \ tests/ostree-remount-symlink-stamp \
tests/rofiles-fuse-symlink-stamp tests/ostree \ tests/rofiles-fuse-symlink-stamp tests/ostree \
tests/ostree-prepare-root tests/ostree-remount \ tests/ostree-prepare-root tests/ostree-remount \
tests/rofiles-fuse $(am__append_74) tests/rofiles-fuse $(am__append_75)
EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \
COPYING README.md $(am__append_15) libglnx/README.md \ COPYING README.md $(am__append_15) libglnx/README.md \
libglnx/COPYING libglnx/libglnx.m4 $(NULL) \ libglnx/COPYING libglnx/libglnx.m4 $(NULL) \
libglnx/Makefile-libglnx.am bsdiff/bsdiff.h bsdiff/bspatch.h \ libglnx/Makefile-libglnx.am bsdiff/bsdiff.h bsdiff/bspatch.h \
bsdiff/LICENSE bsdiff/README.md bsdiff/Makefile-bsdiff.am \ bsdiff/LICENSE bsdiff/README.md bsdiff/Makefile-bsdiff.am \
$(am__append_17) src/libostree/libostree.sym \ $(am__append_17) $(symbol_files) src/libostree/README-gpg \
src/libostree/libostree-experimental.sym $(NULL) \ src/libostree/bupsplit.h \
src/libostree/README-gpg src/libostree/bupsplit.h \
src/libostree/ostree-enumtypes.h.template \ src/libostree/ostree-enumtypes.h.template \
src/libostree/ostree-enumtypes.c.template \ src/libostree/ostree-enumtypes.c.template \
src/libostree/ostree-deployment-private.h \ src/libostree/ostree-deployment-private.h \
@ -1840,7 +1841,7 @@ EXTRA_DIST = $(all_dist_test_scripts) $(all_dist_test_data) autogen.sh \
src/boot/mkinitcpio/ostree \ src/boot/mkinitcpio/ostree \
src/boot/ostree-prepare-root.service \ src/boot/ostree-prepare-root.service \
src/boot/ostree-remount.service src/boot/grub2/grub2-15_ostree \ src/boot/ostree-remount.service src/boot/grub2/grub2-15_ostree \
src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_73) src/boot/grub2/ostree-grub-generator $(NULL) $(am__append_74)
bin_SCRIPTS = bin_SCRIPTS =
lib_LTLIBRARIES = libostree-1.la lib_LTLIBRARIES = libostree-1.la
pkglibexec_SCRIPTS = $(am__append_70) pkglibexec_SCRIPTS = $(am__append_70)
@ -1862,7 +1863,7 @@ ostree_bootdir = $(prefix)/lib/ostree
# 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
# binary. # binary.
TESTS_ENVIRONMENT = G_TEST_SRCDIR="$(abs_srcdir)" \ AM_TESTS_ENVIRONMENT = G_TEST_SRCDIR="$(abs_srcdir)" \
G_TEST_BUILDDIR="$(abs_builddir)" UNINSTALLEDTESTS=1 \ G_TEST_BUILDDIR="$(abs_builddir)" UNINSTALLEDTESTS=1 \
G_DEBUG=gc-friendly MALLOC_CHECK_=2 \ G_DEBUG=gc-friendly MALLOC_CHECK_=2 \
MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) OT_TESTS_DEBUG=1 \ MALLOC_PERTURB_=$$(($${RANDOM:-256} % 256)) OT_TESTS_DEBUG=1 \
@ -2119,6 +2120,10 @@ libostree_1_la_SOURCES = src/libostree/ostree-async-progress.c \
src/libostree/ostree-autocleanups.h $(NULL) $(am__append_19) \ src/libostree/ostree-autocleanups.h $(NULL) $(am__append_19) \
$(am__append_20) $(am__append_21) $(am__append_28) \ $(am__append_20) $(am__append_21) $(am__append_28) \
$(am__append_29) $(am__append_32) $(am__append_29) $(am__append_32)
symbol_files = $(top_srcdir)/src/libostree/libostree-released.sym \
$(am__append_22) $(am__append_23)
# http://blog.jgc.org/2007/06/escaping-comma-and-space-in-gnu-make.html
wl_versionscript_arg = -Wl,--version-script=
libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \
-I$(srcdir)/libglnx -I$(srcdir)/src/libotutil \ -I$(srcdir)/libglnx -I$(srcdir)/src/libotutil \
-I$(srcdir)/src/libostree -I$(builddir)/src/libostree \ -I$(srcdir)/src/libostree -I$(builddir)/src/libostree \
@ -2128,17 +2133,14 @@ libostree_1_la_CFLAGS = $(AM_CFLAGS) -I$(srcdir)/bsdiff \
'-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \ '-D_OSTREE_PUBLIC=__attribute__((visibility("default"))) \
extern' $(am__append_24) $(am__append_26) $(am__append_30) \ extern' $(am__append_24) $(am__append_26) $(am__append_30) \
$(am__append_33) $(am__append_35) $(am__append_37) $(am__append_33) $(am__append_35) $(am__append_37)
libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions \ libostree_1_la_LDFLAGS = -version-number 1:0:0 -Bsymbolic-functions $(addprefix $(wl_versionscript_arg),$(symbol_files))
-Wl,--version-script=$(top_srcdir)/src/libostree/libostree.sym \
$(am__append_22)
libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \ libostree_1_la_LIBADD = libotutil.la libglnx.la libbsdiff.la \
libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) \ libostree-kernel-args.la $(OT_INTERNAL_GIO_UNIX_LIBS) \
$(OT_INTERNAL_GPGME_LIBS) $(OT_DEP_LZMA_LIBS) \ $(OT_INTERNAL_GPGME_LIBS) $(OT_DEP_LZMA_LIBS) \
$(OT_DEP_ZLIB_LIBS) $(OT_DEP_OPENSSL_LIBS) $(bupsplitpath) \ $(OT_DEP_ZLIB_LIBS) $(OT_DEP_OPENSSL_LIBS) $(bupsplitpath) \
$(am__append_25) $(am__append_27) $(am__append_31) \ $(am__append_25) $(am__append_27) $(am__append_31) \
$(am__append_34) $(am__append_36) $(am__append_38) $(am__append_34) $(am__append_36) $(am__append_38)
EXTRA_libostree_1_la_DEPENDENCIES = \ EXTRA_libostree_1_la_DEPENDENCIES = $(symbol_files)
$(top_srcdir)/src/libostree/libostree.sym $(am__append_23)
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_EXPORT_PACKAGES = ostree-1 @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_EXPORT_PACKAGES = ostree-1
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_INCLUDES = Gio-2.0 @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_INCLUDES = Gio-2.0
@BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_CFLAGS = $(libostree_1_la_CFLAGS) @BUILDOPT_INTROSPECTION_TRUE@OSTree_1_0_gir_CFLAGS = $(libostree_1_la_CFLAGS)
@ -2277,6 +2279,7 @@ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \
tests/test-pull-override-url.sh tests/test-local-pull.sh \ tests/test-pull-override-url.sh tests/test-local-pull.sh \
tests/test-local-pull-depth.sh tests/test-gpg-signed-commit.sh \ tests/test-local-pull-depth.sh tests/test-gpg-signed-commit.sh \
tests/test-admin-upgrade-unconfigured.sh \ tests/test-admin-upgrade-unconfigured.sh \
tests/test-admin-upgrade-endoflife.sh \
tests/test-admin-deploy-syslinux.sh \ tests/test-admin-deploy-syslinux.sh \
tests/test-admin-deploy-2.sh tests/test-admin-deploy-karg.sh \ tests/test-admin-deploy-2.sh tests/test-admin-deploy-karg.sh \
tests/test-admin-deploy-switch.sh \ tests/test-admin-deploy-switch.sh \
@ -2441,8 +2444,8 @@ tests_test_gpg_verify_result_LDADD = $(TESTS_LDADD) $(OT_INTERNAL_GPGME_LIBS)
@ENABLE_MAN_TRUE@ ostree-pull.1 ostree-refs.1 ostree-remote.1 \ @ENABLE_MAN_TRUE@ ostree-pull.1 ostree-refs.1 ostree-remote.1 \
@ENABLE_MAN_TRUE@ ostree-reset.1 ostree-rev-parse.1 \ @ENABLE_MAN_TRUE@ ostree-reset.1 ostree-rev-parse.1 \
@ENABLE_MAN_TRUE@ ostree-show.1 ostree-summary.1 \ @ENABLE_MAN_TRUE@ ostree-show.1 ostree-summary.1 \
@ENABLE_MAN_TRUE@ ostree-static-delta.1 ostree-trivial-httpd.1 \ @ENABLE_MAN_TRUE@ ostree-static-delta.1 $(am__append_72) \
@ENABLE_MAN_TRUE@ $(am__append_72) @ENABLE_MAN_TRUE@ $(am__append_73)
@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))
@ -6789,6 +6792,13 @@ tests/test-admin-upgrade-unconfigured.sh.log: tests/test-admin-upgrade-unconfigu
--log-file $$b.log --trs-file $$b.trs \ --log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT) "$$tst" $(AM_TESTS_FD_REDIRECT)
tests/test-admin-upgrade-endoflife.sh.log: tests/test-admin-upgrade-endoflife.sh
@p='tests/test-admin-upgrade-endoflife.sh'; \
b='tests/test-admin-upgrade-endoflife.sh'; \
$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
--log-file $$b.log --trs-file $$b.trs \
$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
"$$tst" $(AM_TESTS_FD_REDIRECT)
tests/test-admin-deploy-syslinux.sh.log: tests/test-admin-deploy-syslinux.sh tests/test-admin-deploy-syslinux.sh.log: tests/test-admin-deploy-syslinux.sh
@p='tests/test-admin-deploy-syslinux.sh'; \ @p='tests/test-admin-deploy-syslinux.sh'; \
b='tests/test-admin-deploy-syslinux.sh'; \ b='tests/test-admin-deploy-syslinux.sh'; \

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 2017.6</p></div> <div><p class="releaseinfo">for OSTree 2017.7</p></div>
</div> </div>
<hr> <hr>
</div> </div>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -41,7 +41,7 @@
<tbody> <tbody>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">guint</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-all" title="ostree_gpg_verify_result_count_all ()">ostree_gpg_verify_result_count_all</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-all" title="ostree_gpg_verify_result_count_all ()">ostree_gpg_verify_result_count_all</a> <span class="c_punctuation">()</span>
@ -49,7 +49,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">guint</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-valid" title="ostree_gpg_verify_result_count_valid ()">ostree_gpg_verify_result_count_valid</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-valid" title="ostree_gpg_verify_result_count_valid ()">ostree_gpg_verify_result_count_valid</a> <span class="c_punctuation">()</span>
@ -57,7 +57,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-lookup" title="ostree_gpg_verify_result_lookup ()">ostree_gpg_verify_result_lookup</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-lookup" title="ostree_gpg_verify_result_lookup ()">ostree_gpg_verify_result_lookup</a> <span class="c_punctuation">()</span>
@ -65,7 +65,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GVariant</span> * <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get" title="ostree_gpg_verify_result_get ()">ostree_gpg_verify_result_get</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get" title="ostree_gpg_verify_result_get ()">ostree_gpg_verify_result_get</a> <span class="c_punctuation">()</span>
@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GVariant</span> * <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get-all" title="ostree_gpg_verify_result_get_all ()">ostree_gpg_verify_result_get_all</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get-all" title="ostree_gpg_verify_result_get_all ()">ostree_gpg_verify_result_get_all</a> <span class="c_punctuation">()</span>
@ -97,7 +97,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-require-valid-signature" title="ostree_gpg_verify_result_require_valid_signature ()">ostree_gpg_verify_result_require_valid_signature</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-require-valid-signature" title="ostree_gpg_verify_result_require_valid_signature ()">ostree_gpg_verify_result_require_valid_signature</a> <span class="c_punctuation">()</span>
@ -146,7 +146,7 @@ or get all signature details with <a class="link" href="ostree-GPG-signature-ver
<a name="ostree-GPG-signature-verification-results.functions_details"></a><h2>Functions</h2> <a name="ostree-GPG-signature-verification-results.functions_details"></a><h2>Functions</h2>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-count-all"></a><h3>ostree_gpg_verify_result_count_all ()</h3> <a name="ostree-gpg-verify-result-count-all"></a><h3>ostree_gpg_verify_result_count_all ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
ostree_gpg_verify_result_count_all (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>);</pre> ostree_gpg_verify_result_count_all (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>);</pre>
<p>Counts all the signatures in <em class="parameter"><code>result</code></em> <p>Counts all the signatures in <em class="parameter"><code>result</code></em>
.</p> .</p>
@ -173,7 +173,7 @@ ostree_gpg_verify_result_count_all (<em class="parameter"><code><a class="link"
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-count-valid"></a><h3>ostree_gpg_verify_result_count_valid ()</h3> <a name="ostree-gpg-verify-result-count-valid"></a><h3>ostree_gpg_verify_result_count_valid ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
ostree_gpg_verify_result_count_valid (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>);</pre> ostree_gpg_verify_result_count_valid (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>);</pre>
<p>Counts only the valid signatures in <em class="parameter"><code>result</code></em> <p>Counts only the valid signatures in <em class="parameter"><code>result</code></em>
.</p> .</p>
@ -200,17 +200,17 @@ ostree_gpg_verify_result_count_valid (<em class="parameter"><code><a class="link
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-lookup"></a><h3>ostree_gpg_verify_result_lookup ()</h3> <a name="ostree-gpg-verify-result-lookup"></a><h3>ostree_gpg_verify_result_lookup ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_gpg_verify_result_lookup (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>, ostree_gpg_verify_result_lookup (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *key_id</code></em>, <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key_id</code></em>,
<em class="parameter"><code><span class="type">guint</span> *out_signature_index</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *out_signature_index</code></em>);</pre>
<p>Searches <em class="parameter"><code>result</code></em> <p>Searches <em class="parameter"><code>result</code></em>
for a signature signed by <em class="parameter"><code>key_id</code></em> for a signature signed by <em class="parameter"><code>key_id</code></em>
. If a match is found, . If a match is found,
the function returns <code class="literal">TRUE</code> and sets <em class="parameter"><code>out_signature_index</code></em> the function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> and sets <em class="parameter"><code>out_signature_index</code></em>
so that further so that further
signature details can be obtained through <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get" title="ostree_gpg_verify_result_get ()"><code class="function">ostree_gpg_verify_result_get()</code></a>. signature details can be obtained through <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get" title="ostree_gpg_verify_result_get ()"><code class="function">ostree_gpg_verify_result_get()</code></a>.
If no match is found, the function returns <code class="literal">FALSE</code> and leaves If no match is found, the function returns <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> and leaves
<em class="parameter"><code>out_signature_index</code></em> <em class="parameter"><code>out_signature_index</code></em>
unchanged.</p> unchanged.</p>
<div class="refsect3"> <div class="refsect3">
@ -236,7 +236,7 @@ If no match is found, the function returns <code class="literal">FALSE</code> an
<td class="parameter_name"><p>out_signature_index</p></td> <td class="parameter_name"><p>out_signature_index</p></td>
<td class="parameter_description"><p> return location for the index of the signature <td class="parameter_description"><p> return location for the index of the signature
signed by <em class="parameter"><code>key_id</code></em> signed by <em class="parameter"><code>key_id</code></em>
, or <code class="literal">NULL</code>. </p></td> , or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/out"><span class="acronym">out</span></a>]</span></td> <td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/out"><span class="acronym">out</span></a>]</span></td>
</tr> </tr>
</tbody> </tbody>
@ -244,22 +244,22 @@ signed by <em class="parameter"><code>key_id</code></em>
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-gpg-verify-result-lookup.returns"></a><h4>Returns</h4> <a name="ostree-gpg-verify-result-lookup.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> on success, <code class="literal">FALSE</code> on failure</p> <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> on failure</p>
</div> </div>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-get"></a><h3>ostree_gpg_verify_result_get ()</h3> <a name="ostree-gpg-verify-result-get"></a><h3>ostree_gpg_verify_result_get ()</h3>
<pre class="programlisting"><span class="returnvalue">GVariant</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
ostree_gpg_verify_result_get (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>, ostree_gpg_verify_result_get (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>,
<em class="parameter"><code><span class="type">guint</span> signature_index</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signature_index</code></em>,
<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> *attrs</code></em>, <em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> *attrs</code></em>,
<em class="parameter"><code><span class="type">guint</span> n_attrs</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n_attrs</code></em>);</pre>
<p>Builds a <span class="type">GVariant</span> tuple of requested attributes for the GPG signature at <p>Builds a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple of requested attributes for the GPG signature at
<em class="parameter"><code>signature_index</code></em> <em class="parameter"><code>signature_index</code></em>
in <em class="parameter"><code>result</code></em> in <em class="parameter"><code>result</code></em>
. See the <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> description . See the <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> description
for the <span class="type">GVariantType</span> of each available attribute.</p> for the <a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> of each available attribute.</p>
<p>It is a programmer error to request an invalid <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> or <p>It is a programmer error to request an invalid <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> or
an invalid <em class="parameter"><code>signature_index</code></em> an invalid <em class="parameter"><code>signature_index</code></em>
. Use <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-all" title="ostree_gpg_verify_result_count_all ()"><code class="function">ostree_gpg_verify_result_count_all()</code></a> to . Use <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-count-all" title="ostree_gpg_verify_result_count_all ()"><code class="function">ostree_gpg_verify_result_count_all()</code></a> to
@ -300,29 +300,29 @@ array</p></td>
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-gpg-verify-result-get.returns"></a><h4>Returns</h4> <a name="ostree-gpg-verify-result-get.returns"></a><h4>Returns</h4>
<p> a new, floating, <span class="type">GVariant</span> tuple</p> <p> a new, floating, <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple</p>
</div> </div>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-get-all"></a><h3>ostree_gpg_verify_result_get_all ()</h3> <a name="ostree-gpg-verify-result-get-all"></a><h3>ostree_gpg_verify_result_get_all ()</h3>
<pre class="programlisting"><span class="returnvalue">GVariant</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
ostree_gpg_verify_result_get_all (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>, ostree_gpg_verify_result_get_all (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>,
<em class="parameter"><code><span class="type">guint</span> signature_index</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signature_index</code></em>);</pre>
<p>Builds a <span class="type">GVariant</span> tuple of all available attributes for the GPG signature <p>Builds a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple of all available attributes for the GPG signature
at <em class="parameter"><code>signature_index</code></em> at <em class="parameter"><code>signature_index</code></em>
in <em class="parameter"><code>result</code></em> in <em class="parameter"><code>result</code></em>
.</p> .</p>
<p>The child values in the returned <span class="type">GVariant</span> tuple are ordered to match the <p>The child values in the returned <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple are ordered to match the
<a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> enumeration, which means the enum values can be <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> enumeration, which means the enum values can be
used as index values in functions like <code class="function">g_variant_get_child()</code>. See the used as index values in functions like <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-get-child"><code class="function">g_variant_get_child()</code></a>. See the
<a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> description for the <span class="type">GVariantType</span> of each <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> description for the <a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> of each
available attribute.</p> available attribute.</p>
<div class="note"><p> <div class="note"><p>
The <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> enumeration may be extended in the future The <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureAttr" title="enum OstreeGpgSignatureAttr"><span class="type">OstreeGpgSignatureAttr</span></a> enumeration may be extended in the future
with new attributes, which would affect the <span class="type">GVariant</span> tuple returned by with new attributes, which would affect the <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple returned by
this function. While the position and type of current child values in this function. While the position and type of current child values in
the <span class="type">GVariant</span> tuple will not change, to avoid backward-compatibility the <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple will not change, to avoid backward-compatibility
issues <span class="emphasis"><em>please do not depend on the tuple's overall size or issues <span class="emphasis"><em>please do not depend on the tuple's overall size or
type signature</em></span>. type signature</em></span>.
</p></div> </p></div>
@ -355,7 +355,7 @@ available attribute.</p>
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-gpg-verify-result-get-all.returns"></a><h4>Returns</h4> <a name="ostree-gpg-verify-result-get-all.returns"></a><h4>Returns</h4>
<p> a new, floating, <span class="type">GVariant</span> tuple</p> <p> a new, floating, <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> tuple</p>
</div> </div>
</div> </div>
<hr> <hr>
@ -363,9 +363,9 @@ available attribute.</p>
<a name="ostree-gpg-verify-result-describe"></a><h3>ostree_gpg_verify_result_describe ()</h3> <a name="ostree-gpg-verify-result-describe"></a><h3>ostree_gpg_verify_result_describe ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_gpg_verify_result_describe (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>, ostree_gpg_verify_result_describe (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>,
<em class="parameter"><code><span class="type">guint</span> signature_index</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> signature_index</code></em>,
<em class="parameter"><code><span class="type">GString</span> *output_buffer</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *output_buffer</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *line_prefix</code></em>, <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *line_prefix</code></em>,
<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureFormatFlags" title="enum OstreeGpgSignatureFormatFlags"><span class="type">OstreeGpgSignatureFormatFlags</span></a> flags</code></em>);</pre> <em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureFormatFlags" title="enum OstreeGpgSignatureFormatFlags"><span class="type">OstreeGpgSignatureFormatFlags</span></a> flags</code></em>);</pre>
<p>Appends a brief, human-readable description of the GPG signature at <p>Appends a brief, human-readable description of the GPG signature at
<em class="parameter"><code>signature_index</code></em> <em class="parameter"><code>signature_index</code></em>
@ -404,7 +404,7 @@ format. Currently must be 0.</p>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>output_buffer</p></td> <td class="parameter_name"><p>output_buffer</p></td>
<td class="parameter_description"><p>a <span class="type">GString</span> to hold the description</p></td> <td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> to hold the description</p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
<tr> <tr>
@ -426,11 +426,11 @@ format. Currently must be 0.</p>
<a name="ostree-gpg-verify-result-describe-variant"></a><h3>ostree_gpg_verify_result_describe_variant ()</h3> <a name="ostree-gpg-verify-result-describe-variant"></a><h3>ostree_gpg_verify_result_describe_variant ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_gpg_verify_result_describe_variant ostree_gpg_verify_result_describe_variant
(<em class="parameter"><code><span class="type">GVariant</span> *variant</code></em>, (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>,
<em class="parameter"><code><span class="type">GString</span> *output_buffer</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *output_buffer</code></em>,
<em class="parameter"><code>const <span class="type">gchar</span> *line_prefix</code></em>, <em class="parameter"><code>const <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *line_prefix</code></em>,
<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureFormatFlags" title="enum OstreeGpgSignatureFormatFlags"><span class="type">OstreeGpgSignatureFormatFlags</span></a> flags</code></em>);</pre> <em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgSignatureFormatFlags" title="enum OstreeGpgSignatureFormatFlags"><span class="type">OstreeGpgSignatureFormatFlags</span></a> flags</code></em>);</pre>
<p>Similar to <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-describe" title="ostree_gpg_verify_result_describe ()"><code class="function">ostree_gpg_verify_result_describe()</code></a> but takes a <span class="type">GVariant</span> of <p>Similar to <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-describe" title="ostree_gpg_verify_result_describe ()"><code class="function">ostree_gpg_verify_result_describe()</code></a> but takes a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> of
all attributes for a GPG signature instead of an <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> all attributes for a GPG signature instead of an <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a>
and signature index.</p> and signature index.</p>
<p>The <em class="parameter"><code>variant</code></em> <p>The <em class="parameter"><code>variant</code></em>
@ -447,12 +447,12 @@ and signature index.</p>
<tbody> <tbody>
<tr> <tr>
<td class="parameter_name"><p>variant</p></td> <td class="parameter_name"><p>variant</p></td>
<td class="parameter_description"><p>a <span class="type">GVariant</span> from <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get-all" title="ostree_gpg_verify_result_get_all ()"><code class="function">ostree_gpg_verify_result_get_all()</code></a></p></td> <td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> from <a class="link" href="ostree-GPG-signature-verification-results.html#ostree-gpg-verify-result-get-all" title="ostree_gpg_verify_result_get_all ()"><code class="function">ostree_gpg_verify_result_get_all()</code></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>output_buffer</p></td> <td class="parameter_name"><p>output_buffer</p></td>
<td class="parameter_description"><p>a <span class="type">GString</span> to hold the description</p></td> <td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> to hold the description</p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
<tr> <tr>
@ -472,14 +472,14 @@ and signature index.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-gpg-verify-result-require-valid-signature"></a><h3>ostree_gpg_verify_result_require_valid_signature ()</h3> <a name="ostree-gpg-verify-result-require-valid-signature"></a><h3>ostree_gpg_verify_result_require_valid_signature ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_gpg_verify_result_require_valid_signature ostree_gpg_verify_result_require_valid_signature
(<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>, (<em class="parameter"><code><a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Checks if the result contains at least one signature from the <p>Checks if the result contains at least one signature from the
trusted keyring. You can call this function immediately after trusted keyring. You can call this function immediately after
<a class="link" href="ostree-Content-addressed-object-store.html#ostree-repo-verify-summary" title="ostree_repo_verify_summary ()"><code class="function">ostree_repo_verify_summary()</code></a> or <a class="link" href="ostree-Content-addressed-object-store.html#ostree-repo-verify-commit-ext" title="ostree_repo_verify_commit_ext ()"><code class="function">ostree_repo_verify_commit_ext()</code></a> - <a class="link" href="ostree-Content-addressed-object-store.html#ostree-repo-verify-summary" title="ostree_repo_verify_summary ()"><code class="function">ostree_repo_verify_summary()</code></a> or <a class="link" href="ostree-Content-addressed-object-store.html#ostree-repo-verify-commit-ext" title="ostree_repo_verify_commit_ext ()"><code class="function">ostree_repo_verify_commit_ext()</code></a> -
it will handle the <code class="literal">NULL</code> <em class="parameter"><code>result</code></em> it will handle the <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> <em class="parameter"><code>result</code></em>
and filled <em class="parameter"><code>error</code></em> and filled <em class="parameter"><code>error</code></em>
too.</p> too.</p>
<div class="refsect3"> <div class="refsect3">
@ -498,7 +498,7 @@ it will handle the <code class="literal">NULL</code> <em class="parameter"><code
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>error</p></td> <td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>A <span class="type">GError</span></p></td> <td class="parameter_description"><p>A <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
</tbody> </tbody>
@ -506,9 +506,9 @@ it will handle the <code class="literal">NULL</code> <em class="parameter"><code
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-gpg-verify-result-require-valid-signature.returns"></a><h4>Returns</h4> <a name="ostree-gpg-verify-result-require-valid-signature.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>result</code></em> <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>result</code></em>
was not <code class="literal">NULL</code> and had at least one was not <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> and had at least one
signature from trusted keyring, otherwise <code class="literal">FALSE</code></p> signature from trusted keyring, otherwise <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
</div> </div>
</div> </div>
</div> </div>
@ -524,7 +524,7 @@ signature from trusted keyring, otherwise <code class="literal">FALSE</code></p>
<div class="refsect2"> <div class="refsect2">
<a name="OstreeGpgSignatureAttr"></a><h3>enum OstreeGpgSignatureAttr</h3> <a name="OstreeGpgSignatureAttr"></a><h3>enum OstreeGpgSignatureAttr</h3>
<p>Signature attributes available from an <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a>. <p>Signature attributes available from an <a class="link" href="ostree-GPG-signature-verification-results.html#OstreeGpgVerifyResult" title="OstreeGpgVerifyResult"><span class="type">OstreeGpgVerifyResult</span></a>.
The attribute's <span class="type">GVariantType</span> is shown in brackets.</p> The attribute's <a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#GVariantType"><span class="type">GVariantType</span></a> is shown in brackets.</p>
<div class="refsect3"> <div class="refsect3">
<a name="OstreeGpgSignatureAttr.members"></a><h4>Members</h4> <a name="OstreeGpgSignatureAttr.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -537,56 +537,56 @@ The attribute's <span class="type">GVariantType</span> is shown in brackets.</p>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-VALID:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_VALID</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-VALID:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_VALID</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_BOOLEAN</span>] Is the signature valid?</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>] Is the signature valid?</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-SIG-EXPIRED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_SIG_EXPIRED</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-SIG-EXPIRED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_SIG_EXPIRED</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_BOOLEAN</span>] Has the signature expired?</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>] Has the signature expired?</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-EXPIRED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_EXPIRED</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-EXPIRED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_EXPIRED</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_BOOLEAN</span>] Has the signing key expired?</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>] Has the signing key expired?</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-REVOKED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_REVOKED</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-REVOKED:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_REVOKED</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_BOOLEAN</span>] Has the signing key been revoked?</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>] Has the signing key been revoked?</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-MISSING:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_MISSING</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-KEY-MISSING:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_KEY_MISSING</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_BOOLEAN</span>] Is the signing key missing?</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-BOOLEAN:CAPS"><span class="type">G_VARIANT_TYPE_BOOLEAN</span></a>] Is the signing key missing?</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-FINGERPRINT:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_FINGERPRINT</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-FINGERPRINT:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_FINGERPRINT</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_STRING</span>] Fingerprint of the signing key</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>] Fingerprint of the signing key</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-TIMESTAMP:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_TIMESTAMP</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-TIMESTAMP:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_TIMESTAMP</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_INT64</span>] Signature creation Unix timestamp</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-INT64:CAPS"><span class="type">G_VARIANT_TYPE_INT64</span></a>] Signature creation Unix timestamp</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-EXP-TIMESTAMP:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_EXP_TIMESTAMP</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-EXP-TIMESTAMP:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_EXP_TIMESTAMP</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_INT64</span>] Signature expiration Unix timestamp (0 if no <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-INT64:CAPS"><span class="type">G_VARIANT_TYPE_INT64</span></a>] Signature expiration Unix timestamp (0 if no
expiration)</p> expiration)</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
@ -594,7 +594,7 @@ The attribute's <span class="type">GVariantType</span> is shown in brackets.</p>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-PUBKEY-ALGO-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_PUBKEY_ALGO_NAME</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-PUBKEY-ALGO-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_PUBKEY_ALGO_NAME</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_STRING</span>] Name of the public key algorithm used to create <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>] Name of the public key algorithm used to create
the signature</p> the signature</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
@ -602,7 +602,7 @@ The attribute's <span class="type">GVariantType</span> is shown in brackets.</p>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-HASH-ALGO-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_HASH_ALGO_NAME</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-HASH-ALGO-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_HASH_ALGO_NAME</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_STRING</span>] Name of the hash algorithm used to create the <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>] Name of the hash algorithm used to create the
signature</p> signature</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
@ -610,14 +610,14 @@ The attribute's <span class="type">GVariantType</span> is shown in brackets.</p>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-USER-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_USER_NAME</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-USER-NAME:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_USER_NAME</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_STRING</span>] The name of the signing key's primary user</p> <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>] The name of the signing key's primary user</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-USER-EMAIL:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_USER_EMAIL</p></td> <td class="enum_member_name"><p><a name="OSTREE-GPG-SIGNATURE-ATTR-USER-EMAIL:CAPS"></a>OSTREE_GPG_SIGNATURE_ATTR_USER_EMAIL</p></td>
<td class="enum_member_description"> <td class="enum_member_description">
<p> [<span class="type">G_VARIANT_TYPE_STRING</span>] The email address of the signing key's primary <p> [<a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><span class="type">G_VARIANT_TYPE_STRING</span></a>] The email address of the signing key's primary
user</p> user</p>
</td> </td>
<td class="enum_member_annotations"> </td> <td class="enum_member_annotations"> </td>

View File

@ -79,7 +79,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-replace-file" title="ostree_mutable_tree_replace_file ()">ostree_mutable_tree_replace_file</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-replace-file" title="ostree_mutable_tree_replace_file ()">ostree_mutable_tree_replace_file</a> <span class="c_punctuation">()</span>
@ -87,7 +87,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-ensure-dir" title="ostree_mutable_tree_ensure_dir ()">ostree_mutable_tree_ensure_dir</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-ensure-dir" title="ostree_mutable_tree_ensure_dir ()">ostree_mutable_tree_ensure_dir</a> <span class="c_punctuation">()</span>
@ -95,7 +95,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-lookup" title="ostree_mutable_tree_lookup ()">ostree_mutable_tree_lookup</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-lookup" title="ostree_mutable_tree_lookup ()">ostree_mutable_tree_lookup</a> <span class="c_punctuation">()</span>
@ -103,7 +103,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-ensure-parent-dirs" title="ostree_mutable_tree_ensure_parent_dirs ()">ostree_mutable_tree_ensure_parent_dirs</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-ensure-parent-dirs" title="ostree_mutable_tree_ensure_parent_dirs ()">ostree_mutable_tree_ensure_parent_dirs</a> <span class="c_punctuation">()</span>
@ -111,7 +111,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-walk" title="ostree_mutable_tree_walk ()">ostree_mutable_tree_walk</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-walk" title="ostree_mutable_tree_walk ()">ostree_mutable_tree_walk</a> <span class="c_punctuation">()</span>
@ -119,7 +119,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GHashTable</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-get-subdirs" title="ostree_mutable_tree_get_subdirs ()">ostree_mutable_tree_get_subdirs</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-get-subdirs" title="ostree_mutable_tree_get_subdirs ()">ostree_mutable_tree_get_subdirs</a> <span class="c_punctuation">()</span>
@ -127,7 +127,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GHashTable</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-get-files" title="ostree_mutable_tree_get_files ()">ostree_mutable_tree_get_files</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#ostree-mutable-tree-get-files" title="ostree_mutable_tree_get_files ()">ostree_mutable_tree_get_files</a> <span class="c_punctuation">()</span>
@ -202,41 +202,41 @@ ostree_mutable_tree_get_contents_checksum
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-replace-file"></a><h3>ostree_mutable_tree_replace_file ()</h3> <a name="ostree-mutable-tree-replace-file"></a><h3>ostree_mutable_tree_replace_file ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_mutable_tree_replace_file (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>, ostree_mutable_tree_replace_file (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>, <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>, <em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-ensure-dir"></a><h3>ostree_mutable_tree_ensure_dir ()</h3> <a name="ostree-mutable-tree-ensure-dir"></a><h3>ostree_mutable_tree_ensure_dir ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_mutable_tree_ensure_dir (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>, ostree_mutable_tree_ensure_dir (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>, <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>, <em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-lookup"></a><h3>ostree_mutable_tree_lookup ()</h3> <a name="ostree-mutable-tree-lookup"></a><h3>ostree_mutable_tree_lookup ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_mutable_tree_lookup (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>, ostree_mutable_tree_lookup (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>, <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">char</span> **out_file_checksum</code></em>, <em class="parameter"><code><span class="type">char</span> **out_file_checksum</code></em>,
<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>, <em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-ensure-parent-dirs"></a><h3>ostree_mutable_tree_ensure_parent_dirs ()</h3> <a name="ostree-mutable-tree-ensure-parent-dirs"></a><h3>ostree_mutable_tree_ensure_parent_dirs ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_mutable_tree_ensure_parent_dirs ostree_mutable_tree_ensure_parent_dirs
(<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>, (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *split_path</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *split_path</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *metadata_checksum</code></em>, <em class="parameter"><code>const <span class="type">char</span> *metadata_checksum</code></em>,
<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_parent</code></em>, <em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_parent</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Create all parent trees necessary for the given <em class="parameter"><code>split_path</code></em> <p>Create all parent trees necessary for the given <em class="parameter"><code>split_path</code></em>
to to
exist.</p> exist.</p>
@ -271,7 +271,7 @@ exist.</p>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>error</p></td> <td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p>a <span class="type">GError</span></p></td> <td class="parameter_description"><p>a <a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
</tbody> </tbody>
@ -281,12 +281,12 @@ exist.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-walk"></a><h3>ostree_mutable_tree_walk ()</h3> <a name="ostree-mutable-tree-walk"></a><h3>ostree_mutable_tree_walk ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_mutable_tree_walk (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>, ostree_mutable_tree_walk (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *split_path</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *split_path</code></em>,
<em class="parameter"><code><span class="type">guint</span> start</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> start</code></em>,
<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>, <em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> **out_subdir</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Traverse <em class="parameter"><code>start</code></em> <p>Traverse <em class="parameter"><code>start</code></em>
number of elements starting from <em class="parameter"><code>split_path</code></em> number of elements starting from <em class="parameter"><code>split_path</code></em>
; the ; the
@ -334,7 +334,7 @@ child will be returned in <em class="parameter"><code>out_subdir</code></em>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-get-subdirs"></a><h3>ostree_mutable_tree_get_subdirs ()</h3> <a name="ostree-mutable-tree-get-subdirs"></a><h3>ostree_mutable_tree_get_subdirs ()</h3>
<pre class="programlisting"><span class="returnvalue">GHashTable</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
ostree_mutable_tree_get_subdirs (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>);</pre> ostree_mutable_tree_get_subdirs (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-mutable-tree-get-subdirs.returns"></a><h4>Returns</h4> <a name="ostree-mutable-tree-get-subdirs.returns"></a><h4>Returns</h4>
@ -345,7 +345,7 @@ ostree_mutable_tree_get_subdirs (<em class="parameter"><code><a class="link" hre
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-mutable-tree-get-files"></a><h3>ostree_mutable_tree_get_files ()</h3> <a name="ostree-mutable-tree-get-files"></a><h3>ostree_mutable_tree_get_files ()</h3>
<pre class="programlisting"><span class="returnvalue">GHashTable</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="returnvalue">GHashTable</span></a> *
ostree_mutable_tree_get_files (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>);</pre> ostree_mutable_tree_get_files (<em class="parameter"><code><a class="link" href="ostree-In-memory-modifiable-filesystem-tree.html#OstreeMutableTree" title="OstreeMutableTree"><span class="type">OstreeMutableTree</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-mutable-tree-get-files.returns"></a><h4>Returns</h4> <a name="ostree-mutable-tree-get-files.returns"></a><h4>Returns</h4>

View File

@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GVariant</span> * <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-variant" title="ostree_async_progress_get_variant ()">ostree_async_progress_get_variant</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-variant" title="ostree_async_progress_get_variant ()">ostree_async_progress_get_variant</a> <span class="c_punctuation">()</span>
@ -81,7 +81,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">guint</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-uint" title="ostree_async_progress_get_uint ()">ostree_async_progress_get_uint</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-uint" title="ostree_async_progress_get_uint ()">ostree_async_progress_get_uint</a> <span class="c_punctuation">()</span>
@ -89,7 +89,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">guint64</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-uint64" title="ostree_async_progress_get_uint64 ()">ostree_async_progress_get_uint64</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-uint64" title="ostree_async_progress_get_uint64 ()">ostree_async_progress_get_uint64</a> <span class="c_punctuation">()</span>
@ -171,7 +171,7 @@ handles thread safety, ensuring that the progress change
notification occurs in the thread-default context of the calling notification occurs in the thread-default context of the calling
operation.</p> operation.</p>
<p>The <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-status" title="ostree_async_progress_get_status ()"><code class="function">ostree_async_progress_get_status()</code></a> and <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-set-status" title="ostree_async_progress_set_status ()"><code class="function">ostree_async_progress_set_status()</code></a> <p>The <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get-status" title="ostree_async_progress_get_status ()"><code class="function">ostree_async_progress_get_status()</code></a> and <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-set-status" title="ostree_async_progress_set_status ()"><code class="function">ostree_async_progress_set_status()</code></a>
methods get and set a well-known <code class="literal">status</code> key of type <code class="literal">G_VARIANT_TYPE_STRING</code>. methods get and set a well-known <code class="literal">status</code> key of type <a href="https://developer.gnome.org/glib/unstable/glib-GVariantType.html#G-VARIANT-TYPE-STRING:CAPS"><code class="literal">G_VARIANT_TYPE_STRING</code></a>.
This key may be accessed using the other <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> methods, but it This key may be accessed using the other <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> methods, but it
must always have the correct type.</p> must always have the correct type.</p>
</div> </div>
@ -192,7 +192,7 @@ ostree_async_progress_new (<em class="parameter"><code><span class="type">void</
<a name="ostree-async-progress-new-and-connect"></a><h3>ostree_async_progress_new_and_connect ()</h3> <a name="ostree-async-progress-new-and-connect"></a><h3>ostree_async_progress_new_and_connect ()</h3>
<pre class="programlisting"><a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="returnvalue">OstreeAsyncProgress</span></a> * <pre class="programlisting"><a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="returnvalue">OstreeAsyncProgress</span></a> *
ostree_async_progress_new_and_connect (<em class="parameter"><code><span class="type">void</span> (*changed) (OstreeAsyncProgress *self, gpointer user_data)</code></em>, ostree_async_progress_new_and_connect (<em class="parameter"><code><span class="type">void</span> (*changed) (OstreeAsyncProgress *self, gpointer user_data)</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -200,7 +200,7 @@ ostree_async_progress_new_and_connect (<em class="parameter"><code><span class="
<pre class="programlisting"><span class="returnvalue">char</span> * <pre class="programlisting"><span class="returnvalue">char</span> *
ostree_async_progress_get_status (<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> *self</code></em>);</pre> ostree_async_progress_get_status (<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> *self</code></em>);</pre>
<p>Get the human-readable status string from the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. This <p>Get the human-readable status string from the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. This
operation is thread-safe. The retuned value may be <code class="literal">NULL</code> if no status is operation is thread-safe. The retuned value may be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no status is
set.</p> set.</p>
<p>This is a convenience function to get the well-known <code class="literal">status</code> key.</p> <p>This is a convenience function to get the well-known <code class="literal">status</code> key.</p>
<div class="refsect3"> <div class="refsect3">
@ -220,7 +220,7 @@ set.</p>
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-async-progress-get-status.returns"></a><h4>Returns</h4> <a name="ostree-async-progress-get-status.returns"></a><h4>Returns</h4>
<p> the current status, or <code class="literal">NULL</code> if none is set. </p> <p> the current status, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none is set. </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> <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> </div>
<p class="since">Since: 2017.6</p> <p class="since">Since: 2017.6</p>
@ -233,9 +233,9 @@ ostree_async_progress_get (<em class="parameter"><code><a class="link" href="ost
<em class="parameter"><code>...</code></em>);</pre> <em class="parameter"><code>...</code></em>);</pre>
<p>Get the values corresponding to zero or more keys from the <p>Get the values corresponding to zero or more keys from the
<a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. Each key is specified in @... as the key name, followed <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. Each key is specified in @... as the key name, followed
by a <span class="type">GVariant</span> format string, followed by the necessary arguments for that by a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> format string, followed by the necessary arguments for that
format string, just as for <code class="function">g_variant_get()</code>. After those arguments is the format string, just as for <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-get"><code class="function">g_variant_get()</code></a>. After those arguments is the
next key name. The varargs list must be <code class="literal">NULL</code>-terminated.</p> next key name. The varargs list must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p>
<p>Each format string must make deep copies of its value, as the values stored <p>Each format string must make deep copies of its value, as the values stored
in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> may be freed from another thread after this in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> may be freed from another thread after this
function returns.</p> function returns.</p>
@ -257,15 +257,15 @@ function returns.</p>
11</pre></td> 11</pre></td>
<td class="listing_code"><pre class="programlisting"><span class="usertype">guint32</span><span class="normal"> outstanding_fetches</span><span class="symbol">;</span> <td class="listing_code"><pre class="programlisting"><span class="usertype">guint32</span><span class="normal"> outstanding_fetches</span><span class="symbol">;</span>
<span class="usertype">guint64</span><span class="normal"> bytes_received</span><span class="symbol">;</span> <span class="usertype">guint64</span><span class="normal"> bytes_received</span><span class="symbol">;</span>
<span class="usertype">g_autofree</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">status </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span> <span class="usertype">g_autofree</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">status </span><span class="symbol">=</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="function">g_autoptr</span><span class="symbol">(</span><span class="normal">GVariant</span><span class="symbol">)</span><span class="normal"> refs_variant </span><span class="symbol">=</span><span class="normal"> NULL</span><span class="symbol">;</span> <span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Miscellaneous-Macros.html#g-autoptr">g_autoptr</a></span><span class="symbol">(</span><span class="normal"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant">GVariant</a></span><span class="symbol">)</span><span class="normal"> refs_variant </span><span class="symbol">=</span><span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
<span class="function"><a href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get">ostree_async_progress_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">progress</span><span class="symbol">,</span> <span class="function"><a href="ostree-Progress-notification-system-for-asynchronous-operations.html#ostree-async-progress-get">ostree_async_progress_get</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">progress</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"outstanding-fetches"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">outstanding_fetches</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"outstanding-fetches"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">outstanding_fetches</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"bytes-received"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"t"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">bytes_received</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"bytes-received"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"t"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">bytes_received</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"status"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"s"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">status</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"status"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"s"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">status</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"refs"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"@a{ss}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">refs_variant</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"refs"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"@a{ss}"</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">refs_variant</span><span class="symbol">,</span>
<span class="normal"> NULL</span><span class="symbol">);</span></pre></td> <span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -288,7 +288,7 @@ function returns.</p>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>...</p></td> <td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>key name, format string, <span class="type">GVariant</span> return locations, …, followed by <code class="literal">NULL</code></p></td> <td class="parameter_description"><p>key name, format string, <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> return locations, …, followed by <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
</tbody> </tbody>
@ -299,10 +299,10 @@ function returns.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-async-progress-get-variant"></a><h3>ostree_async_progress_get_variant ()</h3> <a name="ostree-async-progress-get-variant"></a><h3>ostree_async_progress_get_variant ()</h3>
<pre class="programlisting"><span class="returnvalue">GVariant</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
ostree_async_progress_get_variant (<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> *self</code></em>, ostree_async_progress_get_variant (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre> <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
<p>Look up a key in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> and return the <span class="type">GVariant</span> associated <p>Look up a key in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> and return the <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> associated
with it. The lookup is thread-safe.</p> with it. The lookup is thread-safe.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-async-progress-get-variant.parameters"></a><h4>Parameters</h4> <a name="ostree-async-progress-get-variant.parameters"></a><h4>Parameters</h4>
@ -329,7 +329,7 @@ with it. The lookup is thread-safe.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-async-progress-get-variant.returns"></a><h4>Returns</h4> <a name="ostree-async-progress-get-variant.returns"></a><h4>Returns</h4>
<p> value for the given <em class="parameter"><code>key</code></em> <p> value for the given <em class="parameter"><code>key</code></em>
, or <code class="literal">NULL</code> if , or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
it was not set. </p> it was not set. </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> <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> </div>
@ -338,14 +338,14 @@ it was not set. </p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-async-progress-get-uint"></a><h3>ostree_async_progress_get_uint ()</h3> <a name="ostree-async-progress-get-uint"></a><h3>ostree_async_progress_get_uint ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
ostree_async_progress_get_uint (<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> *self</code></em>, ostree_async_progress_get_uint (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre> <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-async-progress-get-uint64"></a><h3>ostree_async_progress_get_uint64 ()</h3> <a name="ostree-async-progress-get-uint64"></a><h3>ostree_async_progress_get_uint64 ()</h3>
<pre class="programlisting"><span class="returnvalue">guint64</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
ostree_async_progress_get_uint64 (<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> *self</code></em>, ostree_async_progress_get_uint64 (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre> <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
</div> </div>
@ -356,7 +356,7 @@ ostree_async_progress_get_uint64 (<em class="parameter"><code><a class="link" hr
ostree_async_progress_set_status (<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> *self</code></em>, ostree_async_progress_set_status (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *status</code></em>);</pre> <em class="parameter"><code>const <span class="type">char</span> *status</code></em>);</pre>
<p>Set the human-readable status string for the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. This <p>Set the human-readable status string for the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. This
operation is thread-safe. <code class="literal">NULL</code> may be passed to clear the status.</p> operation is thread-safe. <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> may be passed to clear the status.</p>
<p>This is a convenience function to set the well-known <code class="literal">status</code> key.</p> <p>This is a convenience function to set the well-known <code class="literal">status</code> key.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-async-progress-set-status.parameters"></a><h4>Parameters</h4> <a name="ostree-async-progress-set-status.parameters"></a><h4>Parameters</h4>
@ -374,7 +374,7 @@ operation is thread-safe. <code class="literal">NULL</code> may be passed to cle
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>status</p></td> <td class="parameter_name"><p>status</p></td>
<td class="parameter_description"><p> new status string, or <code class="literal">NULL</code> to clear the status. </p></td> <td class="parameter_description"><p> new status string, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to clear the status. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td> <td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/nullable"><span class="acronym">nullable</span></a>]</span></td>
</tr> </tr>
</tbody> </tbody>
@ -389,11 +389,11 @@ operation is thread-safe. <code class="literal">NULL</code> may be passed to cle
ostree_async_progress_set (<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> *self</code></em>, ostree_async_progress_set (<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> *self</code></em>,
<em class="parameter"><code>...</code></em>);</pre> <em class="parameter"><code>...</code></em>);</pre>
<p>Set the values for zero or more keys in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. Each key is <p>Set the values for zero or more keys in the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a>. Each key is
specified in @... as the key name, followed by a <span class="type">GVariant</span> format string, specified in @... as the key name, followed by a <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> format string,
followed by the necessary arguments for that format string, just as for followed by the necessary arguments for that format string, just as for
<code class="function">g_variant_new()</code>. After those arguments is the next key name. The varargs list <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-new"><code class="function">g_variant_new()</code></a>. After those arguments is the next key name. The varargs list
must be <code class="literal">NULL</code>-terminated.</p> must be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated.</p>
<p>g_variant_ref_sink() will be called as appropriate on the <span class="type">GVariant</span> <p>g_variant_ref_sink() will be called as appropriate on the <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a>
parameters, so they may be floating.</p> parameters, so they may be floating.</p>
<p>This operation is thread-safe, and all the keys are set atomically.</p> <p>This operation is thread-safe, and all the keys are set atomically.</p>
<div class="informalexample"> <div class="informalexample">
@ -416,8 +416,8 @@ parameters, so they may be floating.</p>
<span class="normal"> </span><span class="string">"outstanding-fetches"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> outstanding_fetches</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"outstanding-fetches"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"u"</span><span class="symbol">,</span><span class="normal"> outstanding_fetches</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"bytes-received"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"t"</span><span class="symbol">,</span><span class="normal"> bytes_received</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"bytes-received"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"t"</span><span class="symbol">,</span><span class="normal"> bytes_received</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"status"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"s"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Updated status"</span><span class="symbol">,</span> <span class="normal"> </span><span class="string">"status"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"s"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"Updated status"</span><span class="symbol">,</span>
<span class="normal"> </span><span class="string">"refs"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"@a{ss}"</span><span class="symbol">,</span><span class="normal"> </span><span class="function">g_variant_new_parsed</span><span class="normal"> </span><span class="symbol">(</span><span class="string">"@a{ss} {}"</span><span class="symbol">),</span> <span class="normal"> </span><span class="string">"refs"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"@a{ss}"</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-new-parsed">g_variant_new_parsed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"@a{ss} {}"</span><span class="symbol">),</span>
<span class="normal"> NULL</span><span class="symbol">);</span></pre></td> <span class="normal"> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span></pre></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -440,7 +440,7 @@ parameters, so they may be floating.</p>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>...</p></td> <td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>key name, format string, <span class="type">GVariant</span> parameters, …, followed by <code class="literal">NULL</code></p></td> <td class="parameter_description"><p>key name, format string, <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> parameters, …, followed by <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
</tbody> </tbody>
@ -454,13 +454,13 @@ parameters, so they may be floating.</p>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_async_progress_set_variant (<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> *self</code></em>, ostree_async_progress_set_variant (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>, <em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> *value</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *value</code></em>);</pre>
<p>Assign a new <em class="parameter"><code>value</code></em> <p>Assign a new <em class="parameter"><code>value</code></em>
to the given <em class="parameter"><code>key</code></em> to the given <em class="parameter"><code>key</code></em>
, replacing any existing value. The , replacing any existing value. The
operation is thread-safe. <em class="parameter"><code>value</code></em> operation is thread-safe. <em class="parameter"><code>value</code></em>
may be a floating reference; may be a floating reference;
<code class="function">g_variant_ref_sink()</code> will be called on it.</p> <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#g-variant-ref-sink"><code class="function">g_variant_ref_sink()</code></a> will be called on it.</p>
<p>Any watchers of the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> will be notified of the change if <p>Any watchers of the <a class="link" href="ostree-Progress-notification-system-for-asynchronous-operations.html#OstreeAsyncProgress" title="OstreeAsyncProgress"><span class="type">OstreeAsyncProgress</span></a> will be notified of the change if
<em class="parameter"><code>value</code></em> <em class="parameter"><code>value</code></em>
differs from the existing value for <em class="parameter"><code>key</code></em> differs from the existing value for <em class="parameter"><code>key</code></em>
@ -501,7 +501,7 @@ operation is thread-safe. <em class="parameter"><code>value</code></em>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_async_progress_set_uint (<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> *self</code></em>, ostree_async_progress_set_uint (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>, <em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code><span class="type">guint</span> value</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> value</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -509,7 +509,7 @@ ostree_async_progress_set_uint (<em class="parameter"><code><a class="link" href
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_async_progress_set_uint64 (<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> *self</code></em>, ostree_async_progress_set_uint64 (<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> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *key</code></em>, <em class="parameter"><code>const <span class="type">char</span> *key</code></em>,
<em class="parameter"><code><span class="type">guint64</span> value</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">

View File

@ -57,7 +57,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GFile</span> * <a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-path" title="ostree_sysroot_get_path ()">ostree_sysroot_get_path</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-path" title="ostree_sysroot_get_path ()">ostree_sysroot_get_path</a> <span class="c_punctuation">()</span>
@ -65,7 +65,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-load" title="ostree_sysroot_load ()">ostree_sysroot_load</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-load" title="ostree_sysroot_load ()">ostree_sysroot_load</a> <span class="c_punctuation">()</span>
@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-load-if-changed" title="ostree_sysroot_load_if_changed ()">ostree_sysroot_load_if_changed</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-load-if-changed" title="ostree_sysroot_load_if_changed ()">ostree_sysroot_load_if_changed</a> <span class="c_punctuation">()</span>
@ -81,7 +81,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock" title="ostree_sysroot_lock ()">ostree_sysroot_lock</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock" title="ostree_sysroot_lock ()">ostree_sysroot_lock</a> <span class="c_punctuation">()</span>
@ -89,7 +89,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-try-lock" title="ostree_sysroot_try_lock ()">ostree_sysroot_try_lock</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-try-lock" title="ostree_sysroot_try_lock ()">ostree_sysroot_try_lock</a> <span class="c_punctuation">()</span>
@ -105,7 +105,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock-finish" title="ostree_sysroot_lock_finish ()">ostree_sysroot_lock_finish</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock-finish" title="ostree_sysroot_lock_finish ()">ostree_sysroot_lock_finish</a> <span class="c_punctuation">()</span>
@ -137,7 +137,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-ensure-initialized" title="ostree_sysroot_ensure_initialized ()">ostree_sysroot_ensure_initialized</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-ensure-initialized" title="ostree_sysroot_ensure_initialized ()">ostree_sysroot_ensure_initialized</a> <span class="c_punctuation">()</span>
@ -161,7 +161,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GPtrArray</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployments" title="ostree_sysroot_get_deployments ()">ostree_sysroot_get_deployments</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployments" title="ostree_sysroot_get_deployments ()">ostree_sysroot_get_deployments</a> <span class="c_punctuation">()</span>
@ -177,7 +177,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GFile</span> * <a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-directory" title="ostree_sysroot_get_deployment_directory ()">ostree_sysroot_get_deployment_directory</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-directory" title="ostree_sysroot_get_deployment_directory ()">ostree_sysroot_get_deployment_directory</a> <span class="c_punctuation">()</span>
@ -193,7 +193,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GFile</span> * <a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-origin-path" title="ostree_sysroot_get_deployment_origin_path ()">ostree_sysroot_get_deployment_origin_path</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-origin-path" title="ostree_sysroot_get_deployment_origin_path ()">ostree_sysroot_get_deployment_origin_path</a> <span class="c_punctuation">()</span>
@ -201,7 +201,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup" title="ostree_sysroot_cleanup ()">ostree_sysroot_cleanup</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup" title="ostree_sysroot_cleanup ()">ostree_sysroot_cleanup</a> <span class="c_punctuation">()</span>
@ -209,7 +209,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-prepare-cleanup" title="ostree_sysroot_prepare_cleanup ()">ostree_sysroot_prepare_cleanup</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-prepare-cleanup" title="ostree_sysroot_prepare_cleanup ()">ostree_sysroot_prepare_cleanup</a> <span class="c_punctuation">()</span>
@ -217,7 +217,15 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="returnvalue">OstreeRepo</span></a> *
</td>
<td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-repo" title="ostree_sysroot_repo ()">ostree_sysroot_repo</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-repo" title="ostree_sysroot_get_repo ()">ostree_sysroot_get_repo</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-repo" title="ostree_sysroot_get_repo ()">ostree_sysroot_get_repo</a> <span class="c_punctuation">()</span>
@ -225,7 +233,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-init-osname" title="ostree_sysroot_init_osname ()">ostree_sysroot_init_osname</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-init-osname" title="ostree_sysroot_init_osname ()">ostree_sysroot_init_osname</a> <span class="c_punctuation">()</span>
@ -233,7 +241,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-kargs" title="ostree_sysroot_deployment_set_kargs ()">ostree_sysroot_deployment_set_kargs</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-kargs" title="ostree_sysroot_deployment_set_kargs ()">ostree_sysroot_deployment_set_kargs</a> <span class="c_punctuation">()</span>
@ -241,7 +249,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-mutable" title="ostree_sysroot_deployment_set_mutable ()">ostree_sysroot_deployment_set_mutable</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-mutable" title="ostree_sysroot_deployment_set_mutable ()">ostree_sysroot_deployment_set_mutable</a> <span class="c_punctuation">()</span>
@ -249,7 +257,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-unlock" title="ostree_sysroot_deployment_unlock ()">ostree_sysroot_deployment_unlock</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-unlock" title="ostree_sysroot_deployment_unlock ()">ostree_sysroot_deployment_unlock</a> <span class="c_punctuation">()</span>
@ -257,7 +265,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments" title="ostree_sysroot_write_deployments ()">ostree_sysroot_write_deployments</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments" title="ostree_sysroot_write_deployments ()">ostree_sysroot_write_deployments</a> <span class="c_punctuation">()</span>
@ -265,7 +273,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments-with-options" title="ostree_sysroot_write_deployments_with_options ()">ostree_sysroot_write_deployments_with_options</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments-with-options" title="ostree_sysroot_write_deployments_with_options ()">ostree_sysroot_write_deployments_with_options</a> <span class="c_punctuation">()</span>
@ -273,7 +281,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-origin-file" title="ostree_sysroot_write_origin_file ()">ostree_sysroot_write_origin_file</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-origin-file" title="ostree_sysroot_write_origin_file ()">ostree_sysroot_write_origin_file</a> <span class="c_punctuation">()</span>
@ -281,7 +289,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree" title="ostree_sysroot_deploy_tree ()">ostree_sysroot_deploy_tree</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree" title="ostree_sysroot_deploy_tree ()">ostree_sysroot_deploy_tree</a> <span class="c_punctuation">()</span>
@ -297,7 +305,15 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GKeyFile</span> * <span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-query-deployments-for" title="ostree_sysroot_query_deployments_for ()">ostree_sysroot_query_deployments_for</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-origin-new-from-refspec" title="ostree_sysroot_origin_new_from_refspec ()">ostree_sysroot_origin_new_from_refspec</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-origin-new-from-refspec" title="ostree_sysroot_origin_new_from_refspec ()">ostree_sysroot_origin_new_from_refspec</a> <span class="c_punctuation">()</span>
@ -305,7 +321,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment" title="ostree_sysroot_simple_write_deployment ()">ostree_sysroot_simple_write_deployment</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment" title="ostree_sysroot_simple_write_deployment ()">ostree_sysroot_simple_write_deployment</a> <span class="c_punctuation">()</span>
@ -348,7 +364,7 @@ perform locking externally.</p>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-new"></a><h3>ostree_sysroot_new ()</h3> <a name="ostree-sysroot-new"></a><h3>ostree_sysroot_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="returnvalue">OstreeSysroot</span></a> * <pre class="programlisting"><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="returnvalue">OstreeSysroot</span></a> *
ostree_sysroot_new (<em class="parameter"><code><span class="type">GFile</span> *path</code></em>);</pre> ostree_sysroot_new (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *path</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-new.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -359,7 +375,7 @@ ostree_sysroot_new (<em class="parameter"><code><span class="type">GFile</span>
</colgroup> </colgroup>
<tbody><tr> <tbody><tr>
<td class="parameter_name"><p>path</p></td> <td class="parameter_name"><p>path</p></td>
<td class="parameter_description"><p> Path to a system root directory, or <code class="literal">NULL</code>. </p></td> <td class="parameter_description"><p> Path to a system root directory, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span></td> <td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span></td>
</tr></tbody> </tr></tbody>
</table></div> </table></div>
@ -385,7 +401,7 @@ ostree_sysroot_new_default (<em class="parameter"><code><span class="type">void<
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-get-path"></a><h3>ostree_sysroot_get_path ()</h3> <a name="ostree-sysroot-get-path"></a><h3>ostree_sysroot_get_path ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
ostree_sysroot_get_path (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>);</pre> ostree_sysroot_get_path (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-get-path.returns"></a><h4>Returns</h4> <a name="ostree-sysroot-get-path.returns"></a><h4>Returns</h4>
@ -396,10 +412,10 @@ ostree_sysroot_get_path (<em class="parameter"><code><a class="link" href="ostre
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-load"></a><h3>ostree_sysroot_load ()</h3> <a name="ostree-sysroot-load"></a><h3>ostree_sysroot_load ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_load (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_load (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Load deployment list, bootversion, and subbootversion from the <p>Load deployment list, bootversion, and subbootversion from the
rootfs <em class="parameter"><code>self</code></em> rootfs <em class="parameter"><code>self</code></em>
.</p> .</p>
@ -434,18 +450,18 @@ rootfs <em class="parameter"><code>self</code></em>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-load-if-changed"></a><h3>ostree_sysroot_load_if_changed ()</h3> <a name="ostree-sysroot-load-if-changed"></a><h3>ostree_sysroot_load_if_changed ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_load_if_changed (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_load_if_changed (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> *out_changed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *out_changed</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-lock"></a><h3>ostree_sysroot_lock ()</h3> <a name="ostree-sysroot-lock"></a><h3>ostree_sysroot_lock ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_lock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_lock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Acquire an exclusive multi-process write lock for <em class="parameter"><code>self</code></em> <p>Acquire an exclusive multi-process write lock for <em class="parameter"><code>self</code></em>
. This call . This call
blocks until the lock has been acquired. The lock is not blocks until the lock has been acquired. The lock is not
@ -479,15 +495,15 @@ be released if <em class="parameter"><code>self</code></em>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-try-lock"></a><h3>ostree_sysroot_try_lock ()</h3> <a name="ostree-sysroot-try-lock"></a><h3>ostree_sysroot_try_lock ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_try_lock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_try_lock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> *out_acquired</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *out_acquired</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Try to acquire an exclusive multi-process write lock for <em class="parameter"><code>self</code></em> <p>Try to acquire an exclusive multi-process write lock for <em class="parameter"><code>self</code></em>
. If . If
another process holds the lock, this function will return another process holds the lock, this function will return
immediately, setting <em class="parameter"><code>out_acquired</code></em> immediately, setting <em class="parameter"><code>out_acquired</code></em>
to <code class="literal">FALSE</code>, and returning <code class="literal">TRUE</code> to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, and returning <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>
(and no error).</p> (and no error).</p>
<p>Release the lock with <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-unlock" title="ostree_sysroot_unlock ()"><code class="function">ostree_sysroot_unlock()</code></a>. The lock will also <p>Release the lock with <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-unlock" title="ostree_sysroot_unlock ()"><code class="function">ostree_sysroot_unlock()</code></a>. The lock will also
be released if <em class="parameter"><code>self</code></em> be released if <em class="parameter"><code>self</code></em>
@ -525,9 +541,9 @@ be released if <em class="parameter"><code>self</code></em>
<a name="ostree-sysroot-lock-async"></a><h3>ostree_sysroot_lock_async ()</h3> <a name="ostree-sysroot-lock-async"></a><h3>ostree_sysroot_lock_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_sysroot_lock_async (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_lock_async (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GAsyncReadyCallback</span> callback</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
<em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>An asynchronous version of <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock" title="ostree_sysroot_lock ()"><code class="function">ostree_sysroot_lock()</code></a>.</p> <p>An asynchronous version of <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock" title="ostree_sysroot_lock ()"><code class="function">ostree_sysroot_lock()</code></a>.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-lock-async.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-lock-async.parameters"></a><h4>Parameters</h4>
@ -565,10 +581,10 @@ ostree_sysroot_lock_async (<em class="parameter"><code><a class="link" href="ost
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-lock-finish"></a><h3>ostree_sysroot_lock_finish ()</h3> <a name="ostree-sysroot-lock-finish"></a><h3>ostree_sysroot_lock_finish ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_lock_finish (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_lock_finish (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GAsyncResult</span> *result</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> *result</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Call when <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock-async" title="ostree_sysroot_lock_async ()"><code class="function">ostree_sysroot_lock_async()</code></a> is ready.</p> <p>Call when <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-lock-async" title="ostree_sysroot_lock_async ()"><code class="function">ostree_sysroot_lock_async()</code></a> is ready.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-lock-finish.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-lock-finish.parameters"></a><h4>Parameters</h4>
@ -680,10 +696,10 @@ calling this function.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-ensure-initialized"></a><h3>ostree_sysroot_ensure_initialized ()</h3> <a name="ostree-sysroot-ensure-initialized"></a><h3>ostree_sysroot_ensure_initialized ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_ensure_initialized (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_ensure_initialized (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Ensure that <em class="parameter"><code>self</code></em> <p>Ensure that <em class="parameter"><code>self</code></em>
is set up as a valid rootfs, by creating is set up as a valid rootfs, by creating
/ostree/repo, among other things.</p> /ostree/repo, among other things.</p>
@ -730,7 +746,7 @@ ostree_sysroot_get_subbootversion (<em class="parameter"><code><a class="link" h
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-get-deployments"></a><h3>ostree_sysroot_get_deployments ()</h3> <a name="ostree-sysroot-get-deployments"></a><h3>ostree_sysroot_get_deployments ()</h3>
<pre class="programlisting"><span class="returnvalue">GPtrArray</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
ostree_sysroot_get_deployments (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>);</pre> ostree_sysroot_get_deployments (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-get-deployments.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-get-deployments.parameters"></a><h4>Parameters</h4>
@ -775,14 +791,14 @@ ostree_sysroot_get_booted_deployment (<em class="parameter"><code><a class="link
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-get-booted-deployment.returns"></a><h4>Returns</h4> <a name="ostree-sysroot-get-booted-deployment.returns"></a><h4>Returns</h4>
<p> The currently booted deployment, or <code class="literal">NULL</code> if none. </p> <p> The currently booted deployment, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if none. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></p> <p><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></p>
</div> </div>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-get-deployment-directory"></a><h3>ostree_sysroot_get_deployment_directory ()</h3> <a name="ostree-sysroot-get-deployment-directory"></a><h3>ostree_sysroot_get_deployment_directory ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
ostree_sysroot_get_deployment_directory ostree_sysroot_get_deployment_directory
(<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>);</pre> <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>);</pre>
@ -854,9 +870,9 @@ or concatenate it with the full <a class="link" href="ostree-Root-partition-moun
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-get-deployment-origin-path"></a><h3>ostree_sysroot_get_deployment_origin_path ()</h3> <a name="ostree-sysroot-get-deployment-origin-path"></a><h3>ostree_sysroot_get_deployment_origin_path ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
ostree_sysroot_get_deployment_origin_path ostree_sysroot_get_deployment_origin_path
(<em class="parameter"><code><span class="type">GFile</span> *deployment_path</code></em>);</pre> (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *deployment_path</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-get-deployment-origin-path.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-get-deployment-origin-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -881,10 +897,10 @@ ostree_sysroot_get_deployment_origin_path
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-cleanup"></a><h3>ostree_sysroot_cleanup ()</h3> <a name="ostree-sysroot-cleanup"></a><h3>ostree_sysroot_cleanup ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_cleanup (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_cleanup (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Delete any state that resulted from a partially completed <p>Delete any state that resulted from a partially completed
transaction, such as incomplete deployments.</p> transaction, such as incomplete deployments.</p>
<div class="refsect3"> <div class="refsect3">
@ -918,10 +934,10 @@ transaction, such as incomplete deployments.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-prepare-cleanup"></a><h3>ostree_sysroot_prepare_cleanup ()</h3> <a name="ostree-sysroot-prepare-cleanup"></a><h3>ostree_sysroot_prepare_cleanup ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_prepare_cleanup (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_prepare_cleanup (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Like <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup" title="ostree_sysroot_cleanup ()"><code class="function">ostree_sysroot_cleanup()</code></a> in that it cleans up incomplete deployments <p>Like <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup" title="ostree_sysroot_cleanup ()"><code class="function">ostree_sysroot_cleanup()</code></a> in that it cleans up incomplete deployments
and old boot versions, but does NOT prune the repository.</p> and old boot versions, but does NOT prune the repository.</p>
<div class="refsect3"> <div class="refsect3">
@ -954,12 +970,42 @@ and old boot versions, but does NOT prune the repository.</p>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-repo"></a><h3>ostree_sysroot_repo ()</h3>
<pre class="programlisting"><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="returnvalue">OstreeRepo</span></a> *
ostree_sysroot_repo (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>);</pre>
<p>This function is a variant of <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-get-repo" title="ostree_sysroot_get_repo ()"><code class="function">ostree_sysroot_get_repo()</code></a> that cannot fail, and
returns a cached repository. Can only be called after <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-load" title="ostree_sysroot_load ()"><code class="function">ostree_sysroot_load()</code></a>
has been invoked successfully.</p>
<div class="refsect3">
<a name="ostree-sysroot-repo.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>Sysroot</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="ostree-sysroot-repo.returns"></a><h4>Returns</h4>
<p> The OSTree repository in sysroot <em class="parameter"><code>self</code></em>
. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="ostree-sysroot-get-repo"></a><h3>ostree_sysroot_get_repo ()</h3> <a name="ostree-sysroot-get-repo"></a><h3>ostree_sysroot_get_repo ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_get_repo (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_get_repo (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> **out_repo</code></em>, <em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> **out_repo</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Retrieve the OSTree repository in sysroot <em class="parameter"><code>self</code></em> <p>Retrieve the OSTree repository in sysroot <em class="parameter"><code>self</code></em>
.</p> .</p>
<div class="refsect3"> <div class="refsect3">
@ -999,11 +1045,11 @@ ostree_sysroot_get_repo (<em class="parameter"><code><a class="link" href="ostre
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-init-osname"></a><h3>ostree_sysroot_init_osname ()</h3> <a name="ostree-sysroot-init-osname"></a><h3>ostree_sysroot_init_osname ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_init_osname (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_init_osname (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>, <em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Initialize the directory structure for an "osname", which is a <p>Initialize the directory structure for an "osname", which is a
group of operating system deployments, with a shared <code class="literal">/var</code>. One group of operating system deployments, with a shared <code class="literal">/var</code>. One
is required for generating a deployment.</p> is required for generating a deployment.</p>
@ -1043,12 +1089,12 @@ is required for generating a deployment.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-deployment-set-kargs"></a><h3>ostree_sysroot_deployment_set_kargs ()</h3> <a name="ostree-sysroot-deployment-set-kargs"></a><h3>ostree_sysroot_deployment_set_kargs ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_deployment_set_kargs (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_deployment_set_kargs (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>,
<em class="parameter"><code><span class="type">char</span> **new_kargs</code></em>, <em class="parameter"><code><span class="type">char</span> **new_kargs</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Entirely replace the kernel arguments of <em class="parameter"><code>deployment</code></em> <p>Entirely replace the kernel arguments of <em class="parameter"><code>deployment</code></em>
with the with the
values in <em class="parameter"><code>new_kargs</code></em> values in <em class="parameter"><code>new_kargs</code></em>
@ -1094,12 +1140,12 @@ values in <em class="parameter"><code>new_kargs</code></em>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-deployment-set-mutable"></a><h3>ostree_sysroot_deployment_set_mutable ()</h3> <a name="ostree-sysroot-deployment-set-mutable"></a><h3>ostree_sysroot_deployment_set_mutable ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_deployment_set_mutable (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_deployment_set_mutable (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> is_mutable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> is_mutable</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>By default, deployment directories are not mutable. This function <p>By default, deployment directories are not mutable. This function
will allow making them temporarily mutable, for example to allow will allow making them temporarily mutable, for example to allow
layering additional non-OSTree content.</p> layering additional non-OSTree content.</p>
@ -1144,12 +1190,12 @@ layering additional non-OSTree content.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-deployment-unlock"></a><h3>ostree_sysroot_deployment_unlock ()</h3> <a name="ostree-sysroot-deployment-unlock"></a><h3>ostree_sysroot_deployment_unlock ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_deployment_unlock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_deployment_unlock (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>,
<em class="parameter"><code><span class="type">OstreeDeploymentUnlockedState</span> unlocked_state</code></em>, <em class="parameter"><code><span class="type">OstreeDeploymentUnlockedState</span> unlocked_state</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Configure the target deployment <em class="parameter"><code>deployment</code></em> <p>Configure the target deployment <em class="parameter"><code>deployment</code></em>
such that it such that it
is writable. There are multiple modes, essentially differing is writable. There are multiple modes, essentially differing
@ -1197,11 +1243,11 @@ across reboots.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-write-deployments"></a><h3>ostree_sysroot_write_deployments ()</h3> <a name="ostree-sysroot-write-deployments"></a><h3>ostree_sysroot_write_deployments ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_write_deployments (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_write_deployments (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *new_deployments</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *new_deployments</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Older version of <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments-with-options" title="ostree_sysroot_write_deployments_with_options ()"><code class="function">ostree_sysroot_write_deployments_with_options()</code></a>. This <p>Older version of <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-write-deployments-with-options" title="ostree_sysroot_write_deployments_with_options ()"><code class="function">ostree_sysroot_write_deployments_with_options()</code></a>. This
version will perform post-deployment cleanup by default.</p> version will perform post-deployment cleanup by default.</p>
<div class="refsect3"> <div class="refsect3">
@ -1240,13 +1286,13 @@ version will perform post-deployment cleanup by default.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-write-deployments-with-options"></a><h3>ostree_sysroot_write_deployments_with_options ()</h3> <a name="ostree-sysroot-write-deployments-with-options"></a><h3>ostree_sysroot_write_deployments_with_options ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_write_deployments_with_options ostree_sysroot_write_deployments_with_options
(<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *new_deployments</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *new_deployments</code></em>,
<em class="parameter"><code><span class="type">OstreeSysrootWriteDeploymentsOpts</span> *opts</code></em>, <em class="parameter"><code><span class="type">OstreeSysrootWriteDeploymentsOpts</span> *opts</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Assuming <em class="parameter"><code>new_deployments</code></em> <p>Assuming <em class="parameter"><code>new_deployments</code></em>
have already been deployed in place on disk via have already been deployed in place on disk via
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree" title="ostree_sysroot_deploy_tree ()"><code class="function">ostree_sysroot_deploy_tree()</code></a>, atomically update bootloader configuration. By <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree" title="ostree_sysroot_deploy_tree ()"><code class="function">ostree_sysroot_deploy_tree()</code></a>, atomically update bootloader configuration. By
@ -1296,17 +1342,17 @@ if for example you want to control pruning of the repository.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-write-origin-file"></a><h3>ostree_sysroot_write_origin_file ()</h3> <a name="ostree-sysroot-write-origin-file"></a><h3>ostree_sysroot_write_origin_file ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_write_origin_file (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>, ostree_sysroot_write_origin_file (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *deployment</code></em>,
<em class="parameter"><code><span class="type">GKeyFile</span> *new_origin</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *new_origin</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Immediately replace the origin file of the referenced <em class="parameter"><code>deployment</code></em> <p>Immediately replace the origin file of the referenced <em class="parameter"><code>deployment</code></em>
with the contents of <em class="parameter"><code>new_origin</code></em> with the contents of <em class="parameter"><code>new_origin</code></em>
. If <em class="parameter"><code>new_origin</code></em> . If <em class="parameter"><code>new_origin</code></em>
is <code class="literal">NULL</code>, is <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>,
this function will write the current origin of <em class="parameter"><code>deployment</code></em> this function will write the current origin of <em class="parameter"><code>deployment</code></em>
.</p> .</p>
<div class="refsect3"> <div class="refsect3">
@ -1350,16 +1396,16 @@ this function will write the current origin of <em class="parameter"><code>deplo
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-deploy-tree"></a><h3>ostree_sysroot_deploy_tree ()</h3> <a name="ostree-sysroot-deploy-tree"></a><h3>ostree_sysroot_deploy_tree ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_deploy_tree (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, ostree_sysroot_deploy_tree (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>, <em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *revision</code></em>, <em class="parameter"><code>const <span class="type">char</span> *revision</code></em>,
<em class="parameter"><code><span class="type">GKeyFile</span> *origin</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *origin</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *provided_merge_deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *provided_merge_deployment</code></em>,
<em class="parameter"><code><span class="type">char</span> **override_kernel_argv</code></em>, <em class="parameter"><code><span class="type">char</span> **override_kernel_argv</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> **out_new_deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> **out_new_deployment</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Check out deployment tree with revision <em class="parameter"><code>revision</code></em> <p>Check out deployment tree with revision <em class="parameter"><code>revision</code></em>
, performing a 3 , performing a 3
way merge with <em class="parameter"><code>provided_merge_deployment</code></em> way merge with <em class="parameter"><code>provided_merge_deployment</code></em>
@ -1400,7 +1446,7 @@ way merge with <em class="parameter"><code>provided_merge_deployment</code></em>
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>override_kernel_argv</p></td> <td class="parameter_name"><p>override_kernel_argv</p></td>
<td class="parameter_description"><p> Use these as kernel arguments; if <code class="literal">NULL</code>, inherit options from provided_merge_deployment. </p></td> <td class="parameter_description"><p> Use these as kernel arguments; if <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, inherit options from provided_merge_deployment. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1][<a href="http://foldoc.org/element-type"><span class="acronym">element-type</span></a> utf8]</span></td> <td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<a href="http://foldoc.org/array"><span class="acronym">array</span></a> zero-terminated=1][<a href="http://foldoc.org/element-type"><span class="acronym">element-type</span></a> utf8]</span></td>
</tr> </tr>
<tr> <tr>
@ -1460,8 +1506,59 @@ the first one in the current deployment list which matches osname.</p>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-query-deployments-for"></a><h3>ostree_sysroot_query_deployments_for ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
ostree_sysroot_query_deployments_for (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> **out_pending</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> **out_rollback</code></em>);</pre>
<p>Find the pending and rollback deployments for <em class="parameter"><code>osname</code></em>
. Pass <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for <em class="parameter"><code>osname</code></em>
to use the booted deployment's osname. By default, pending deployment is the
first deployment in the order that matches <em class="parameter"><code>osname</code></em>
, and <em class="parameter"><code>rollback</code></em>
will be the
next one after the booted deployment, or the deployment after the pending if
we're not looking at the booted deployment.</p>
<div class="refsect3">
<a name="ostree-sysroot-query-deployments-for.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>Sysroot</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>osname</p></td>
<td class="parameter_description"><p> "stateroot" name. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>out_pending</p></td>
<td class="parameter_description"><p> The pending deployment. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/out"><span class="acronym">out</span></a>][<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>out_rollback</p></td>
<td class="parameter_description"><p> The rollback deployment. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/out"><span class="acronym">out</span></a>][<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<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: 2017.7</p>
</div>
<hr>
<div class="refsect2">
<a name="ostree-sysroot-origin-new-from-refspec"></a><h3>ostree_sysroot_origin_new_from_refspec ()</h3> <a name="ostree-sysroot-origin-new-from-refspec"></a><h3>ostree_sysroot_origin_new_from_refspec ()</h3>
<pre class="programlisting"><span class="returnvalue">GKeyFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
ostree_sysroot_origin_new_from_refspec ostree_sysroot_origin_new_from_refspec
(<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *refspec</code></em>);</pre> <em class="parameter"><code>const <span class="type">char</span> *refspec</code></em>);</pre>
@ -1497,15 +1594,15 @@ as an origin. </p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-simple-write-deployment"></a><h3>ostree_sysroot_simple_write_deployment ()</h3> <a name="ostree-sysroot-simple-write-deployment"></a><h3>ostree_sysroot_simple_write_deployment ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_simple_write_deployment ostree_sysroot_simple_write_deployment
(<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>, <em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *new_deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *new_deployment</code></em>,
<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *merge_deployment</code></em>, <em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *merge_deployment</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysrootSimpleWriteDeploymentFlags" title="enum OstreeSysrootSimpleWriteDeploymentFlags"><span class="type">OstreeSysrootSimpleWriteDeploymentFlags</span></a> flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysrootSimpleWriteDeploymentFlags" title="enum OstreeSysrootSimpleWriteDeploymentFlags"><span class="type">OstreeSysrootSimpleWriteDeploymentFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Prepend <em class="parameter"><code>new_deployment</code></em> <p>Prepend <em class="parameter"><code>new_deployment</code></em>
to the list of deployments, commit, and to the list of deployments, commit, and
cleanup. By default, all other deployments for the given <em class="parameter"><code>osname</code></em> cleanup. By default, all other deployments for the given <em class="parameter"><code>osname</code></em>
@ -1517,6 +1614,10 @@ specified, then all current deployments will be kept.</p>
<p>If <a class="link" href="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NOT-DEFAULT:CAPS"><code class="literal">OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT</code></a> is <p>If <a class="link" href="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NOT-DEFAULT:CAPS"><code class="literal">OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT</code></a> is
specified, then instead of prepending, the new deployment will be specified, then instead of prepending, the new deployment will be
added right after the booted or merge deployment, instead of first.</p> added right after the booted or merge deployment, instead of first.</p>
<p>If <a class="link" href="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NO-CLEAN:CAPS"><code class="literal">OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NO_CLEAN</code></a> is
specified, then no cleanup will be performed after adding the
deployment. Make sure to call <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup" title="ostree_sysroot_cleanup ()"><code class="function">ostree_sysroot_cleanup()</code></a> sometime
later, instead.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-simple-write-deployment.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-simple-write-deployment.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">

View File

@ -57,7 +57,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GFile</span> * <a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-get-path" title="ostree_sepolicy_get_path ()">ostree_sepolicy_get_path</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-get-path" title="ostree_sepolicy_get_path ()">ostree_sepolicy_get_path</a> <span class="c_punctuation">()</span>
@ -72,7 +72,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-get-label" title="ostree_sepolicy_get_label ()">ostree_sepolicy_get_label</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-get-label" title="ostree_sepolicy_get_label ()">ostree_sepolicy_get_label</a> <span class="c_punctuation">()</span>
@ -87,7 +87,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-restorecon" title="ostree_sepolicy_restorecon ()">ostree_sepolicy_restorecon</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-restorecon" title="ostree_sepolicy_restorecon ()">ostree_sepolicy_restorecon</a> <span class="c_punctuation">()</span>
@ -95,7 +95,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-setfscreatecon" title="ostree_sepolicy_setfscreatecon ()">ostree_sepolicy_setfscreatecon</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-SELinux-policy-management.html#ostree-sepolicy-setfscreatecon" title="ostree_sepolicy_setfscreatecon ()">ostree_sepolicy_setfscreatecon</a> <span class="c_punctuation">()</span>
@ -141,9 +141,9 @@ root and perform labeling.</p>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sepolicy-new"></a><h3>ostree_sepolicy_new ()</h3> <a name="ostree-sepolicy-new"></a><h3>ostree_sepolicy_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="returnvalue">OstreeSePolicy</span></a> * <pre class="programlisting"><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="returnvalue">OstreeSePolicy</span></a> *
ostree_sepolicy_new (<em class="parameter"><code><span class="type">GFile</span> *path</code></em>, ostree_sepolicy_new (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *path</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sepolicy-new.parameters"></a><h4>Parameters</h4> <a name="ostree-sepolicy-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -183,8 +183,8 @@ ostree_sepolicy_new (<em class="parameter"><code><span class="type">GFile</span>
<a name="ostree-sepolicy-new-at"></a><h3>ostree_sepolicy_new_at ()</h3> <a name="ostree-sepolicy-new-at"></a><h3>ostree_sepolicy_new_at ()</h3>
<pre class="programlisting"><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="returnvalue">OstreeSePolicy</span></a> * <pre class="programlisting"><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="returnvalue">OstreeSePolicy</span></a> *
ostree_sepolicy_new_at (<em class="parameter"><code><span class="type">int</span> rootfs_dfd</code></em>, ostree_sepolicy_new_at (<em class="parameter"><code><span class="type">int</span> rootfs_dfd</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sepolicy-new-at.parameters"></a><h4>Parameters</h4> <a name="ostree-sepolicy-new-at.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -222,7 +222,7 @@ ostree_sepolicy_new_at (<em class="parameter"><code><span class="type">int</span
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sepolicy-get-path"></a><h3>ostree_sepolicy_get_path ()</h3> <a name="ostree-sepolicy-get-path"></a><h3>ostree_sepolicy_get_path ()</h3>
<pre class="programlisting"><span class="returnvalue">GFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="returnvalue">GFile</span></a> *
ostree_sepolicy_get_path (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>);</pre> ostree_sepolicy_get_path (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sepolicy-get-path.returns"></a><h4>Returns</h4> <a name="ostree-sepolicy-get-path.returns"></a><h4>Returns</h4>
@ -244,18 +244,18 @@ ostree_sepolicy_get_name (<em class="parameter"><code><a class="link" href="ostr
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sepolicy-get-label"></a><h3>ostree_sepolicy_get_label ()</h3> <a name="ostree-sepolicy-get-label"></a><h3>ostree_sepolicy_get_label ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sepolicy_get_label (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>, ostree_sepolicy_get_label (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *relpath</code></em>, <em class="parameter"><code>const <span class="type">char</span> *relpath</code></em>,
<em class="parameter"><code><span class="type">guint32</span> unix_mode</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> unix_mode</code></em>,
<em class="parameter"><code><span class="type">char</span> **out_label</code></em>, <em class="parameter"><code><span class="type">char</span> **out_label</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Store in <em class="parameter"><code>out_label</code></em> <p>Store in <em class="parameter"><code>out_label</code></em>
the security context for the given <em class="parameter"><code>relpath</code></em> the security context for the given <em class="parameter"><code>relpath</code></em>
and and
mode <em class="parameter"><code>unix_mode</code></em> mode <em class="parameter"><code>unix_mode</code></em>
. If the policy does not specify a label, <code class="literal">NULL</code> . If the policy does not specify a label, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
will be returned.</p> will be returned.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sepolicy-get-label.parameters"></a><h4>Parameters</h4> <a name="ostree-sepolicy-get-label.parameters"></a><h4>Parameters</h4>
@ -314,15 +314,15 @@ ostree_sepolicy_get_csum (<em class="parameter"><code><a class="link" href="ostr
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sepolicy-restorecon"></a><h3>ostree_sepolicy_restorecon ()</h3> <a name="ostree-sepolicy-restorecon"></a><h3>ostree_sepolicy_restorecon ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sepolicy_restorecon (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>, ostree_sepolicy_restorecon (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>, <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
<em class="parameter"><code><span class="type">GFileInfo</span> *info</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFileInfo.html#GFileInfo-struct"><span class="type">GFileInfo</span></a> *info</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *target</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *target</code></em>,
<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicyRestoreconFlags" title="enum OstreeSePolicyRestoreconFlags"><span class="type">OstreeSePolicyRestoreconFlags</span></a> flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicyRestoreconFlags" title="enum OstreeSePolicyRestoreconFlags"><span class="type">OstreeSePolicyRestoreconFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">char</span> **out_new_label</code></em>, <em class="parameter"><code><span class="type">char</span> **out_new_label</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Reset the security context of <em class="parameter"><code>target</code></em> <p>Reset the security context of <em class="parameter"><code>target</code></em>
based on the SELinux policy.</p> based on the SELinux policy.</p>
<div class="refsect3"> <div class="refsect3">
@ -361,7 +361,7 @@ ostree_sepolicy_restorecon (<em class="parameter"><code><a class="link" href="os
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>out_new_label</p></td> <td class="parameter_name"><p>out_new_label</p></td>
<td class="parameter_description"><p> New label, or <code class="literal">NULL</code> if unchanged. </p></td> <td class="parameter_description"><p> New label, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unchanged. </p></td>
<td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<a href="http://foldoc.org/out"><span class="acronym">out</span></a>]</span></td> <td class="parameter_annotations"><span class="annotation">[<a href="http://foldoc.org/allow-none"><span class="acronym">allow-none</span></a>][<a href="http://foldoc.org/out"><span class="acronym">out</span></a>]</span></td>
</tr> </tr>
<tr> <tr>
@ -381,11 +381,11 @@ ostree_sepolicy_restorecon (<em class="parameter"><code><a class="link" href="os
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sepolicy-setfscreatecon"></a><h3>ostree_sepolicy_setfscreatecon ()</h3> <a name="ostree-sepolicy-setfscreatecon"></a><h3>ostree_sepolicy_setfscreatecon ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sepolicy_setfscreatecon (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>, ostree_sepolicy_setfscreatecon (<em class="parameter"><code><a class="link" href="ostree-SELinux-policy-management.html#OstreeSePolicy" title="OstreeSePolicy"><span class="type">OstreeSePolicy</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>, <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
<em class="parameter"><code><span class="type">guint32</span> mode</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> mode</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sepolicy-setfscreatecon.parameters"></a><h4>Parameters</h4> <a name="ostree-sepolicy-setfscreatecon.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">

View File

@ -65,7 +65,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GKeyFile</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-get-origin" title="ostree_sysroot_upgrader_get_origin ()">ostree_sysroot_upgrader_get_origin</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-get-origin" title="ostree_sysroot_upgrader_get_origin ()">ostree_sysroot_upgrader_get_origin</a> <span class="c_punctuation">()</span>
@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GKeyFile</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-dup-origin" title="ostree_sysroot_upgrader_dup_origin ()">ostree_sysroot_upgrader_dup_origin</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-dup-origin" title="ostree_sysroot_upgrader_dup_origin ()">ostree_sysroot_upgrader_dup_origin</a> <span class="c_punctuation">()</span>
@ -81,7 +81,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-set-origin" title="ostree_sysroot_upgrader_set_origin ()">ostree_sysroot_upgrader_set_origin</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-set-origin" title="ostree_sysroot_upgrader_set_origin ()">ostree_sysroot_upgrader_set_origin</a> <span class="c_punctuation">()</span>
@ -97,7 +97,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-check-timestamps" title="ostree_sysroot_upgrader_check_timestamps ()">ostree_sysroot_upgrader_check_timestamps</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-check-timestamps" title="ostree_sysroot_upgrader_check_timestamps ()">ostree_sysroot_upgrader_check_timestamps</a> <span class="c_punctuation">()</span>
@ -105,7 +105,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull" title="ostree_sysroot_upgrader_pull ()">ostree_sysroot_upgrader_pull</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull" title="ostree_sysroot_upgrader_pull ()">ostree_sysroot_upgrader_pull</a> <span class="c_punctuation">()</span>
@ -113,7 +113,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull-one-dir" title="ostree_sysroot_upgrader_pull_one_dir ()">ostree_sysroot_upgrader_pull_one_dir</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull-one-dir" title="ostree_sysroot_upgrader_pull_one_dir ()">ostree_sysroot_upgrader_pull_one_dir</a> <span class="c_punctuation">()</span>
@ -121,7 +121,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-deploy" title="ostree_sysroot_upgrader_deploy ()">ostree_sysroot_upgrader_deploy</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-deploy" title="ostree_sysroot_upgrader_deploy ()">ostree_sysroot_upgrader_deploy</a> <span class="c_punctuation">()</span>
@ -164,8 +164,8 @@ operations.</p>
<a name="ostree-sysroot-upgrader-new"></a><h3>ostree_sysroot_upgrader_new ()</h3> <a name="ostree-sysroot-upgrader-new"></a><h3>ostree_sysroot_upgrader_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="returnvalue">OstreeSysrootUpgrader</span></a> * <pre class="programlisting"><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="returnvalue">OstreeSysrootUpgrader</span></a> *
ostree_sysroot_upgrader_new (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>, ostree_sysroot_upgrader_new (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-new.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -205,8 +205,8 @@ ostree_sysroot_upgrader_new (<em class="parameter"><code><a class="link" href="o
<pre class="programlisting"><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="returnvalue">OstreeSysrootUpgrader</span></a> * <pre class="programlisting"><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="returnvalue">OstreeSysrootUpgrader</span></a> *
ostree_sysroot_upgrader_new_for_os (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>, ostree_sysroot_upgrader_new_for_os (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>, <em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-new-for-os.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-new-for-os.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -253,8 +253,8 @@ ostree_sysroot_upgrader_new_for_os_with_flags
(<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Root-partition-mount-point.html#OstreeSysroot" title="OstreeSysroot"><span class="type">OstreeSysroot</span></a> *sysroot</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *osname</code></em>, <em class="parameter"><code>const <span class="type">char</span> *osname</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderFlags" title="enum OstreeSysrootUpgraderFlags"><span class="type">OstreeSysrootUpgraderFlags</span></a> flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderFlags" title="enum OstreeSysrootUpgraderFlags"><span class="type">OstreeSysrootUpgraderFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-new-for-os-with-flags.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-new-for-os-with-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -301,7 +301,7 @@ ostree_sysroot_upgrader_new_for_os_with_flags
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-get-origin"></a><h3>ostree_sysroot_upgrader_get_origin ()</h3> <a name="ostree-sysroot-upgrader-get-origin"></a><h3>ostree_sysroot_upgrader_get_origin ()</h3>
<pre class="programlisting"><span class="returnvalue">GKeyFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
ostree_sysroot_upgrader_get_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>);</pre> ostree_sysroot_upgrader_get_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-get-origin.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-get-origin.parameters"></a><h4>Parameters</h4>
@ -320,14 +320,14 @@ ostree_sysroot_upgrader_get_origin (<em class="parameter"><code><a class="link"
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-get-origin.returns"></a><h4>Returns</h4> <a name="ostree-sysroot-upgrader-get-origin.returns"></a><h4>Returns</h4>
<p> The origin file, or <code class="literal">NULL</code> if unknown. </p> <p> The origin file, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></p> <p><span class="annotation">[<a href="http://foldoc.org/transfer%20none"><span class="acronym">transfer none</span></a>]</span></p>
</div> </div>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-dup-origin"></a><h3>ostree_sysroot_upgrader_dup_origin ()</h3> <a name="ostree-sysroot-upgrader-dup-origin"></a><h3>ostree_sysroot_upgrader_dup_origin ()</h3>
<pre class="programlisting"><span class="returnvalue">GKeyFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
ostree_sysroot_upgrader_dup_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>);</pre> ostree_sysroot_upgrader_dup_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-dup-origin.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-dup-origin.parameters"></a><h4>Parameters</h4>
@ -346,18 +346,18 @@ ostree_sysroot_upgrader_dup_origin (<em class="parameter"><code><a class="link"
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-dup-origin.returns"></a><h4>Returns</h4> <a name="ostree-sysroot-upgrader-dup-origin.returns"></a><h4>Returns</h4>
<p> A copy of the origin file, or <code class="literal">NULL</code> if unknown. </p> <p> A copy of the origin file, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown. </p>
<p><span class="annotation">[<a href="http://foldoc.org/transfer%20full"><span class="acronym">transfer full</span></a>]</span></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>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-set-origin"></a><h3>ostree_sysroot_upgrader_set_origin ()</h3> <a name="ostree-sysroot-upgrader-set-origin"></a><h3>ostree_sysroot_upgrader_set_origin ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_upgrader_set_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>, ostree_sysroot_upgrader_set_origin (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GKeyFile</span> *origin</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *origin</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Replace the origin with <em class="parameter"><code>origin</code></em> <p>Replace the origin with <em class="parameter"><code>origin</code></em>
.</p> .</p>
<div class="refsect3"> <div class="refsect3">
@ -416,18 +416,18 @@ ostree_sysroot_upgrader_get_origin_description
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-get-origin-description.returns"></a><h4>Returns</h4> <a name="ostree-sysroot-upgrader-get-origin-description.returns"></a><h4>Returns</h4>
<p> A one-line descriptive summary of the origin, or <code class="literal">NULL</code> if unknown</p> <p> A one-line descriptive summary of the origin, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if unknown</p>
</div> </div>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-check-timestamps"></a><h3>ostree_sysroot_upgrader_check_timestamps ()</h3> <a name="ostree-sysroot-upgrader-check-timestamps"></a><h3>ostree_sysroot_upgrader_check_timestamps ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_upgrader_check_timestamps ostree_sysroot_upgrader_check_timestamps
(<em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *repo</code></em>, (<em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepo" title="OstreeRepo"><span class="type">OstreeRepo</span></a> *repo</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *from_rev</code></em>, <em class="parameter"><code>const <span class="type">char</span> *from_rev</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *to_rev</code></em>, <em class="parameter"><code>const <span class="type">char</span> *to_rev</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Check that the timestamp on <em class="parameter"><code>to_rev</code></em> <p>Check that the timestamp on <em class="parameter"><code>to_rev</code></em>
is equal to or newer than is equal to or newer than
<em class="parameter"><code>from_rev</code></em> <em class="parameter"><code>from_rev</code></em>
@ -469,21 +469,21 @@ attackers which provide a client with an older commit.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-pull"></a><h3>ostree_sysroot_upgrader_pull ()</h3> <a name="ostree-sysroot-upgrader-pull"></a><h3>ostree_sysroot_upgrader_pull ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_upgrader_pull (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>, ostree_sysroot_upgrader_pull (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepoPullFlags" title="enum OstreeRepoPullFlags"><span class="type">OstreeRepoPullFlags</span></a> flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepoPullFlags" title="enum OstreeRepoPullFlags"><span class="type">OstreeRepoPullFlags</span></a> flags</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderPullFlags" title="enum OstreeSysrootUpgraderPullFlags"><span class="type">OstreeSysrootUpgraderPullFlags</span></a> upgrader_flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderPullFlags" title="enum OstreeSysrootUpgraderPullFlags"><span class="type">OstreeSysrootUpgraderPullFlags</span></a> upgrader_flags</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><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">gboolean</span> *out_changed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *out_changed</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Perform a pull from the origin. First check if the ref has <p>Perform a pull from the origin. First check if the ref has
changed, if so download the linked objects, and store the updated changed, if so download the linked objects, and store the updated
ref locally. Then <em class="parameter"><code>out_changed</code></em> ref locally. Then <em class="parameter"><code>out_changed</code></em>
will be <code class="literal">TRUE</code>.</p> will be <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.</p>
<p>If the origin remote is unchanged, <em class="parameter"><code>out_changed</code></em> <p>If the origin remote is unchanged, <em class="parameter"><code>out_changed</code></em>
will be set to will be set to
<code class="literal">FALSE</code>.</p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-sysroot-upgrader-pull.parameters"></a><h4>Parameters</h4> <a name="ostree-sysroot-upgrader-pull.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -535,15 +535,15 @@ ref locally. Then <em class="parameter"><code>out_changed</code></em>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-pull-one-dir"></a><h3>ostree_sysroot_upgrader_pull_one_dir ()</h3> <a name="ostree-sysroot-upgrader-pull-one-dir"></a><h3>ostree_sysroot_upgrader_pull_one_dir ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_upgrader_pull_one_dir (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>, ostree_sysroot_upgrader_pull_one_dir (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *dir_to_pull</code></em>, <em class="parameter"><code>const <span class="type">char</span> *dir_to_pull</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepoPullFlags" title="enum OstreeRepoPullFlags"><span class="type">OstreeRepoPullFlags</span></a> flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Content-addressed-object-store.html#OstreeRepoPullFlags" title="enum OstreeRepoPullFlags"><span class="type">OstreeRepoPullFlags</span></a> flags</code></em>,
<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderPullFlags" title="enum OstreeSysrootUpgraderPullFlags"><span class="type">OstreeSysrootUpgraderPullFlags</span></a> upgrader_flags</code></em>, <em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgraderPullFlags" title="enum OstreeSysrootUpgraderPullFlags"><span class="type">OstreeSysrootUpgraderPullFlags</span></a> upgrader_flags</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><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">gboolean</span> *out_changed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *out_changed</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Like <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull" title="ostree_sysroot_upgrader_pull ()"><code class="function">ostree_sysroot_upgrader_pull()</code></a>, but allows retrieving just a <p>Like <a class="link" href="ostree-Simple-upgrade-class.html#ostree-sysroot-upgrader-pull" title="ostree_sysroot_upgrader_pull ()"><code class="function">ostree_sysroot_upgrader_pull()</code></a>, but allows retrieving just a
subpath of the tree. This can be used to download metadata files subpath of the tree. This can be used to download metadata files
from inside the tree such as package databases.</p> from inside the tree such as package databases.</p>
@ -603,10 +603,10 @@ from inside the tree such as package databases.</p>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-sysroot-upgrader-deploy"></a><h3>ostree_sysroot_upgrader_deploy ()</h3> <a name="ostree-sysroot-upgrader-deploy"></a><h3>ostree_sysroot_upgrader_deploy ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_sysroot_upgrader_deploy (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>, ostree_sysroot_upgrader_deploy (<em class="parameter"><code><a class="link" href="ostree-Simple-upgrade-class.html#OstreeSysrootUpgrader" title="OstreeSysrootUpgrader"><span class="type">OstreeSysrootUpgrader</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Write the new deployment to disk, perform a configuration merge <p>Write the new deployment to disk, perform a configuration merge
with /etc, and update the bootloader configuration.</p> with /etc, and update the bootloader configuration.</p>
<div class="refsect3"> <div class="refsect3">

View File

@ -57,7 +57,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-parse" title="ostree_bootconfig_parser_parse ()">ostree_bootconfig_parser_parse</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-parse" title="ostree_bootconfig_parser_parse ()">ostree_bootconfig_parser_parse</a> <span class="c_punctuation">()</span>
@ -65,7 +65,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-parse-at" title="ostree_bootconfig_parser_parse_at ()">ostree_bootconfig_parser_parse_at</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-parse-at" title="ostree_bootconfig_parser_parse_at ()">ostree_bootconfig_parser_parse_at</a> <span class="c_punctuation">()</span>
@ -73,7 +73,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-write" title="ostree_bootconfig_parser_write ()">ostree_bootconfig_parser_write</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-write" title="ostree_bootconfig_parser_write ()">ostree_bootconfig_parser_write</a> <span class="c_punctuation">()</span>
@ -81,7 +81,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-write-at" title="ostree_bootconfig_parser_write_at ()">ostree_bootconfig_parser_write_at</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-bootconfig-parser.html#ostree-bootconfig-parser-write-at" title="ostree_bootconfig_parser_write_at ()">ostree_bootconfig_parser_write_at</a> <span class="c_punctuation">()</span>
@ -158,21 +158,21 @@ ostree_bootconfig_parser_clone (<em class="parameter"><code><a class="link" href
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-bootconfig-parser-parse"></a><h3>ostree_bootconfig_parser_parse ()</h3> <a name="ostree-bootconfig-parser-parse"></a><h3>ostree_bootconfig_parser_parse ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_bootconfig_parser_parse (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>, ostree_bootconfig_parser_parse (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *path</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *path</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-bootconfig-parser-parse-at"></a><h3>ostree_bootconfig_parser_parse_at ()</h3> <a name="ostree-bootconfig-parser-parse-at"></a><h3>ostree_bootconfig_parser_parse_at ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_bootconfig_parser_parse_at (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>, ostree_bootconfig_parser_parse_at (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">int</span> dfd</code></em>, <em class="parameter"><code><span class="type">int</span> dfd</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>, <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Initialize a bootconfig from the given file.</p> <p>Initialize a bootconfig from the given file.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-bootconfig-parser-parse-at.parameters"></a><h4>Parameters</h4> <a name="ostree-bootconfig-parser-parse-at.parameters"></a><h4>Parameters</h4>
@ -215,21 +215,21 @@ ostree_bootconfig_parser_parse_at (<em class="parameter"><code><a class="link" h
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-bootconfig-parser-write"></a><h3>ostree_bootconfig_parser_write ()</h3> <a name="ostree-bootconfig-parser-write"></a><h3>ostree_bootconfig_parser_write ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_bootconfig_parser_write (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>, ostree_bootconfig_parser_write (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *output</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *output</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-bootconfig-parser-write-at"></a><h3>ostree_bootconfig_parser_write_at ()</h3> <a name="ostree-bootconfig-parser-write-at"></a><h3>ostree_bootconfig_parser_write_at ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_bootconfig_parser_write_at (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>, ostree_bootconfig_parser_write_at (<em class="parameter"><code><a class="link" href="ostree-ostree-bootconfig-parser.html#OstreeBootconfigParser" title="OstreeBootconfigParser"><span class="type">OstreeBootconfigParser</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">int</span> dfd</code></em>, <em class="parameter"><code><span class="type">int</span> dfd</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *path</code></em>, <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">

View File

@ -69,7 +69,7 @@
<div class="refsect2"> <div class="refsect2">
<a name="ostree-chain-input-stream-new"></a><h3>ostree_chain_input_stream_new ()</h3> <a name="ostree-chain-input-stream-new"></a><h3>ostree_chain_input_stream_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-chain-input-stream.html#OstreeChainInputStream" title="struct OstreeChainInputStream"><span class="returnvalue">OstreeChainInputStream</span></a> * <pre class="programlisting"><a class="link" href="ostree-ostree-chain-input-stream.html#OstreeChainInputStream" title="struct OstreeChainInputStream"><span class="returnvalue">OstreeChainInputStream</span></a> *
ostree_chain_input_stream_new (<em class="parameter"><code><span class="type">GPtrArray</span> *streams</code></em>);</pre> ostree_chain_input_stream_new (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *streams</code></em>);</pre>
</div> </div>
</div> </div>
<div class="refsect1"> <div class="refsect1">

View File

@ -69,8 +69,8 @@
<div class="refsect2"> <div class="refsect2">
<a name="ostree-checksum-input-stream-new"></a><h3>ostree_checksum_input_stream_new ()</h3> <a name="ostree-checksum-input-stream-new"></a><h3>ostree_checksum_input_stream_new ()</h3>
<pre class="programlisting"><a class="link" href="ostree-ostree-checksum-input-stream.html#OstreeChecksumInputStream" title="struct OstreeChecksumInputStream"><span class="returnvalue">OstreeChecksumInputStream</span></a> * <pre class="programlisting"><a class="link" href="ostree-ostree-checksum-input-stream.html#OstreeChecksumInputStream" title="struct OstreeChecksumInputStream"><span class="returnvalue">OstreeChecksumInputStream</span></a> *
ostree_checksum_input_stream_new (<em class="parameter"><code><span class="type">GInputStream</span> *stream</code></em>, ostree_checksum_input_stream_new (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GInputStream.html#GInputStream-struct"><span class="type">GInputStream</span></a> *stream</code></em>,
<em class="parameter"><code><span class="type">GChecksum</span> *checksum</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Data-Checksums.html#GChecksum"><span class="type">GChecksum</span></a> *checksum</code></em>);</pre>
</div> </div>
</div> </div>
<div class="refsect1"> <div class="refsect1">

View File

@ -41,7 +41,7 @@
<tbody> <tbody>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">guint</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-deployment.html#ostree-deployment-hash" title="ostree_deployment_hash ()">ostree_deployment_hash</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-deployment.html#ostree-deployment-hash" title="ostree_deployment_hash ()">ostree_deployment_hash</a> <span class="c_punctuation">()</span>
@ -49,7 +49,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-deployment.html#ostree-deployment-equal" title="ostree_deployment_equal ()">ostree_deployment_equal</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-deployment.html#ostree-deployment-equal" title="ostree_deployment_equal ()">ostree_deployment_equal</a> <span class="c_punctuation">()</span>
@ -118,7 +118,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GKeyFile</span> * <a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-deployment.html#ostree-deployment-get-origin" title="ostree_deployment_get_origin ()">ostree_deployment_get_origin</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-deployment.html#ostree-deployment-get-origin" title="ostree_deployment_get_origin ()">ostree_deployment_get_origin</a> <span class="c_punctuation">()</span>
@ -210,15 +210,15 @@
<a name="ostree-ostree-deployment.functions_details"></a><h2>Functions</h2> <a name="ostree-ostree-deployment.functions_details"></a><h2>Functions</h2>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-deployment-hash"></a><h3>ostree_deployment_hash ()</h3> <a name="ostree-deployment-hash"></a><h3>ostree_deployment_hash ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
ostree_deployment_hash (<em class="parameter"><code><span class="type">gconstpointer</span> v</code></em>);</pre> ostree_deployment_hash (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> v</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-deployment-equal"></a><h3>ostree_deployment_equal ()</h3> <a name="ostree-deployment-equal"></a><h3>ostree_deployment_equal ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_deployment_equal (<em class="parameter"><code><span class="type">gconstpointer</span> ap</code></em>, ostree_deployment_equal (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> ap</code></em>,
<em class="parameter"><code><span class="type">gconstpointer</span> bp</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> bp</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-deployment-equal.parameters"></a><h4>Parameters</h4> <a name="ostree-deployment-equal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0"> <div class="informaltable"><table class="informaltable" width="100%" border="0">
@ -243,7 +243,7 @@ ostree_deployment_equal (<em class="parameter"><code><span class="type">gconstpo
</div> </div>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-deployment-equal.returns"></a><h4>Returns</h4> <a name="ostree-deployment-equal.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if deployments have the same osname, csum, and deployserial</p> <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if deployments have the same osname, csum, and deployserial</p>
</div> </div>
</div> </div>
<hr> <hr>
@ -322,7 +322,7 @@ ostree_deployment_get_bootconfig (<em class="parameter"><code><a class="link" hr
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-deployment-get-origin"></a><h3>ostree_deployment_get_origin ()</h3> <a name="ostree-deployment-get-origin"></a><h3>ostree_deployment_get_origin ()</h3>
<pre class="programlisting"><span class="returnvalue">GKeyFile</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="returnvalue">GKeyFile</span></a> *
ostree_deployment_get_origin (<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *self</code></em>);</pre> ostree_deployment_get_origin (<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *self</code></em>);</pre>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-deployment-get-origin.parameters"></a><h4>Parameters</h4> <a name="ostree-deployment-get-origin.parameters"></a><h4>Parameters</h4>
@ -406,7 +406,7 @@ ostree_deployment_set_bootconfig (<em class="parameter"><code><a class="link" hr
<a name="ostree-deployment-set-origin"></a><h3>ostree_deployment_set_origin ()</h3> <a name="ostree-deployment-set-origin"></a><h3>ostree_deployment_set_origin ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_deployment_set_origin (<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *self</code></em>, ostree_deployment_set_origin (<em class="parameter"><code><a class="link" href="ostree-ostree-deployment.html#OstreeDeployment" title="OstreeDeployment"><span class="type">OstreeDeployment</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GKeyFile</span> *origin</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *origin</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -506,7 +506,7 @@ ostree_deployment_unlocked_state_to_string
<td class="struct_member_annotations"> </td> <td class="struct_member_annotations"> </td>
</tr> </tr>
<tr> <tr>
<td class="struct_member_name"><p><span class="type">GKeyFile</span> *<em class="structfield"><code><a name="OstreeDeployment.origin"></a>origin</code></em>;</p></td> <td class="struct_member_name"><p><a href="https://developer.gnome.org/glib/unstable/glib-Key-value-file-parser.html#GKeyFile"><span class="type">GKeyFile</span></a> *<em class="structfield"><code><a name="OstreeDeployment.origin"></a>origin</code></em>;</p></td>
<td class="struct_member_description"><p>How to construct an upgraded version of this tree</p></td> <td class="struct_member_description"><p>How to construct an upgraded version of this tree</p></td>
<td class="struct_member_annotations"> </td> <td class="struct_member_annotations"> </td>
</tr> </tr>

View File

@ -57,7 +57,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-diff.html#ostree-diff-dirs" title="ostree_diff_dirs ()">ostree_diff_dirs</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-diff.html#ostree-diff-dirs" title="ostree_diff_dirs ()">ostree_diff_dirs</a> <span class="c_punctuation">()</span>
@ -65,7 +65,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-diff.html#ostree-diff-dirs-with-options" title="ostree_diff_dirs_with_options ()">ostree_diff_dirs_with_options</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-diff.html#ostree-diff-dirs-with-options" title="ostree_diff_dirs_with_options ()">ostree_diff_dirs_with_options</a> <span class="c_punctuation">()</span>
@ -120,15 +120,15 @@ ostree_diff_item_unref (<em class="parameter"><code><a class="link" href="ostree
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-diff-dirs"></a><h3>ostree_diff_dirs ()</h3> <a name="ostree-diff-dirs"></a><h3>ostree_diff_dirs ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_diff_dirs (<em class="parameter"><code><a class="link" href="ostree-ostree-diff.html#OstreeDiffFlags" title="enum OstreeDiffFlags"><span class="type">OstreeDiffFlags</span></a> flags</code></em>, ostree_diff_dirs (<em class="parameter"><code><a class="link" href="ostree-ostree-diff.html#OstreeDiffFlags" title="enum OstreeDiffFlags"><span class="type">OstreeDiffFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *a</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *a</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *b</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *b</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *modified</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *modified</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *removed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *removed</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *added</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *added</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Compute the difference between directory <em class="parameter"><code>a</code></em> <p>Compute the difference between directory <em class="parameter"><code>a</code></em>
and <em class="parameter"><code>b</code></em> and <em class="parameter"><code>b</code></em>
as 3 separate as 3 separate
@ -152,7 +152,7 @@ sets of <a class="link" href="ostree-ostree-diff.html#OstreeDiffItem" title="str
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>a</p></td> <td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>First directory path, or <code class="literal">NULL</code></p></td> <td class="parameter_description"><p>First directory path, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
<tr> <tr>
@ -192,16 +192,16 @@ sets of <a class="link" href="ostree-ostree-diff.html#OstreeDiffItem" title="str
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-diff-dirs-with-options"></a><h3>ostree_diff_dirs_with_options ()</h3> <a name="ostree-diff-dirs-with-options"></a><h3>ostree_diff_dirs_with_options ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_diff_dirs_with_options (<em class="parameter"><code><a class="link" href="ostree-ostree-diff.html#OstreeDiffFlags" title="enum OstreeDiffFlags"><span class="type">OstreeDiffFlags</span></a> flags</code></em>, ostree_diff_dirs_with_options (<em class="parameter"><code><a class="link" href="ostree-ostree-diff.html#OstreeDiffFlags" title="enum OstreeDiffFlags"><span class="type">OstreeDiffFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *a</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *a</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *b</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *b</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *modified</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *modified</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *removed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *removed</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *added</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *added</code></em>,
<em class="parameter"><code><span class="type">OstreeDiffDirsOptions</span> *options</code></em>, <em class="parameter"><code><span class="type">OstreeDiffDirsOptions</span> *options</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
<p>Compute the difference between directory <em class="parameter"><code>a</code></em> <p>Compute the difference between directory <em class="parameter"><code>a</code></em>
and <em class="parameter"><code>b</code></em> and <em class="parameter"><code>b</code></em>
as 3 separate as 3 separate
@ -225,7 +225,7 @@ sets of <a class="link" href="ostree-ostree-diff.html#OstreeDiffItem" title="str
</tr> </tr>
<tr> <tr>
<td class="parameter_name"><p>a</p></td> <td class="parameter_name"><p>a</p></td>
<td class="parameter_description"><p>First directory path, or <code class="literal">NULL</code></p></td> <td class="parameter_description"><p>First directory path, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
<td class="parameter_annotations"> </td> <td class="parameter_annotations"> </td>
</tr> </tr>
<tr> <tr>
@ -271,11 +271,11 @@ sets of <a class="link" href="ostree-ostree-diff.html#OstreeDiffItem" title="str
<div class="refsect2"> <div class="refsect2">
<a name="ostree-diff-print"></a><h3>ostree_diff_print ()</h3> <a name="ostree-diff-print"></a><h3>ostree_diff_print ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_diff_print (<em class="parameter"><code><span class="type">GFile</span> *a</code></em>, ostree_diff_print (<em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *a</code></em>,
<em class="parameter"><code><span class="type">GFile</span> *b</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFile-struct"><span class="type">GFile</span></a> *b</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *modified</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *modified</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *removed</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *removed</code></em>,
<em class="parameter"><code><span class="type">GPtrArray</span> *added</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> *added</code></em>);</pre>
<p>Print the contents of a diff to stdout.</p> <p>Print the contents of a diff to stdout.</p>
<div class="refsect3"> <div class="refsect3">
<a name="ostree-diff-print.parameters"></a><h4>Parameters</h4> <a name="ostree-diff-print.parameters"></a><h4>Parameters</h4>

View File

@ -40,7 +40,7 @@
<tbody> <tbody>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-ensure-resolved" title="ostree_repo_file_ensure_resolved ()">ostree_repo_file_ensure_resolved</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-ensure-resolved" title="ostree_repo_file_ensure_resolved ()">ostree_repo_file_ensure_resolved</a> <span class="c_punctuation">()</span>
@ -48,7 +48,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-get-xattrs" title="ostree_repo_file_get_xattrs ()">ostree_repo_file_get_xattrs</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-get-xattrs" title="ostree_repo_file_get_xattrs ()">ostree_repo_file_get_xattrs</a> <span class="c_punctuation">()</span>
@ -94,7 +94,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GVariant</span> * <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-get-contents" title="ostree_repo_file_tree_get_contents ()">ostree_repo_file_tree_get_contents</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-get-contents" title="ostree_repo_file_tree_get_contents ()">ostree_repo_file_tree_get_contents</a> <span class="c_punctuation">()</span>
@ -102,7 +102,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">GVariant</span> * <a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-get-metadata" title="ostree_repo_file_tree_get_metadata ()">ostree_repo_file_tree_get_metadata</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-get-metadata" title="ostree_repo_file_tree_get_metadata ()">ostree_repo_file_tree_get_metadata</a> <span class="c_punctuation">()</span>
@ -125,7 +125,7 @@
</tr> </tr>
<tr> <tr>
<td class="function_type"> <td class="function_type">
<span class="returnvalue">gboolean</span> <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td> </td>
<td class="function_name"> <td class="function_name">
<a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-query-child" title="ostree_repo_file_tree_query_child ()">ostree_repo_file_tree_query_child</a> <span class="c_punctuation">()</span> <a class="link" href="ostree-ostree-repo-file.html#ostree-repo-file-tree-query-child" title="ostree_repo_file_tree_query_child ()">ostree_repo_file_tree_query_child</a> <span class="c_punctuation">()</span>
@ -154,18 +154,18 @@
<a name="ostree-ostree-repo-file.functions_details"></a><h2>Functions</h2> <a name="ostree-ostree-repo-file.functions_details"></a><h2>Functions</h2>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-repo-file-ensure-resolved"></a><h3>ostree_repo_file_ensure_resolved ()</h3> <a name="ostree-repo-file-ensure-resolved"></a><h3>ostree_repo_file_ensure_resolved ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_repo_file_ensure_resolved (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>, ostree_repo_file_ensure_resolved (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-repo-file-get-xattrs"></a><h3>ostree_repo_file_get_xattrs ()</h3> <a name="ostree-repo-file-get-xattrs"></a><h3>ostree_repo_file_get_xattrs ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_repo_file_get_xattrs (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>, ostree_repo_file_get_xattrs (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> **out_xattrs</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **out_xattrs</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -195,7 +195,7 @@ ostree_repo_file_get_root (<em class="parameter"><code><a class="link" href="ost
<pre class="programlisting"><span class="returnvalue">void</span> <pre class="programlisting"><span class="returnvalue">void</span>
ostree_repo_file_tree_set_metadata (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>, ostree_repo_file_tree_set_metadata (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>, <em class="parameter"><code>const <span class="type">char</span> *checksum</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> *metadata</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *metadata</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
@ -214,13 +214,13 @@ ostree_repo_file_tree_get_metadata_checksum
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-repo-file-tree-get-contents"></a><h3>ostree_repo_file_tree_get_contents ()</h3> <a name="ostree-repo-file-tree-get-contents"></a><h3>ostree_repo_file_tree_get_contents ()</h3>
<pre class="programlisting"><span class="returnvalue">GVariant</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
ostree_repo_file_tree_get_contents (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>);</pre> ostree_repo_file_tree_get_contents (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-repo-file-tree-get-metadata"></a><h3>ostree_repo_file_tree_get_metadata ()</h3> <a name="ostree-repo-file-tree-get-metadata"></a><h3>ostree_repo_file_tree_get_metadata ()</h3>
<pre class="programlisting"><span class="returnvalue">GVariant</span> * <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
ostree_repo_file_tree_get_metadata (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>);</pre> ostree_repo_file_tree_get_metadata (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>);</pre>
</div> </div>
<hr> <hr>
@ -235,20 +235,20 @@ ostree_repo_file_get_checksum (<em class="parameter"><code><a class="link" href=
<pre class="programlisting"><span class="returnvalue">int</span> <pre class="programlisting"><span class="returnvalue">int</span>
ostree_repo_file_tree_find_child (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>, ostree_repo_file_tree_find_child (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *name</code></em>, <em class="parameter"><code>const <span class="type">char</span> *name</code></em>,
<em class="parameter"><code><span class="type">gboolean</span> *is_dir</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *is_dir</code></em>,
<em class="parameter"><code><span class="type">GVariant</span> **out_container</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-GVariant.html#GVariant"><span class="type">GVariant</span></a> **out_container</code></em>);</pre>
</div> </div>
<hr> <hr>
<div class="refsect2"> <div class="refsect2">
<a name="ostree-repo-file-tree-query-child"></a><h3>ostree_repo_file_tree_query_child ()</h3> <a name="ostree-repo-file-tree-query-child"></a><h3>ostree_repo_file_tree_query_child ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span> <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
ostree_repo_file_tree_query_child (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>, ostree_repo_file_tree_query_child (<em class="parameter"><code><a class="link" href="ostree-ostree-repo-file.html#OstreeRepoFile" title="OstreeRepoFile"><span class="type">OstreeRepoFile</span></a> *self</code></em>,
<em class="parameter"><code><span class="type">int</span> n</code></em>, <em class="parameter"><code><span class="type">int</span> n</code></em>,
<em class="parameter"><code>const <span class="type">char</span> *attributes</code></em>, <em class="parameter"><code>const <span class="type">char</span> *attributes</code></em>,
<em class="parameter"><code><span class="type">GFileQueryInfoFlags</span> flags</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFile.html#GFileQueryInfoFlags"><span class="type">GFileQueryInfoFlags</span></a> flags</code></em>,
<em class="parameter"><code><span class="type">GFileInfo</span> **out_info</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GFileInfo.html#GFileInfo-struct"><span class="type">GFileInfo</span></a> **out_info</code></em>,
<em class="parameter"><code><span class="type">GCancellable</span> *cancellable</code></em>, <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
<em class="parameter"><code><span class="type">GError</span> **error</code></em>);</pre> <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
</div> </div>
</div> </div>
<div class="refsect1"> <div class="refsect1">

View File

@ -68,7 +68,6 @@
<keyword type="function" name="ostree_check_version ()" link="ostree-Core-repository-independent-functions.html#ostree-check-version"/> <keyword type="function" name="ostree_check_version ()" link="ostree-Core-repository-independent-functions.html#ostree-check-version"/>
<keyword type="macro" name="OSTREE_MAX_METADATA_SIZE" link="ostree-Core-repository-independent-functions.html#OSTREE-MAX-METADATA-SIZE:CAPS"/> <keyword type="macro" name="OSTREE_MAX_METADATA_SIZE" link="ostree-Core-repository-independent-functions.html#OSTREE-MAX-METADATA-SIZE:CAPS"/>
<keyword type="macro" name="OSTREE_MAX_METADATA_WARN_SIZE" link="ostree-Core-repository-independent-functions.html#OSTREE-MAX-METADATA-WARN-SIZE:CAPS"/> <keyword type="macro" name="OSTREE_MAX_METADATA_WARN_SIZE" link="ostree-Core-repository-independent-functions.html#OSTREE-MAX-METADATA-WARN-SIZE:CAPS"/>
<keyword type="macro" name="OSTREE_MAX_RECURSION" link="ostree-Core-repository-independent-functions.html#OSTREE-MAX-RECURSION:CAPS"/>
<keyword type="enum" name="enum OstreeObjectType" link="ostree-Core-repository-independent-functions.html#OstreeObjectType"/> <keyword type="enum" name="enum OstreeObjectType" link="ostree-Core-repository-independent-functions.html#OstreeObjectType"/>
<keyword type="macro" name="OSTREE_OBJECT_TYPE_LAST" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-LAST:CAPS"/> <keyword type="macro" name="OSTREE_OBJECT_TYPE_LAST" link="ostree-Core-repository-independent-functions.html#OSTREE-OBJECT-TYPE-LAST:CAPS"/>
<keyword type="macro" name="OSTREE_DIRMETA_GVARIANT_STRING" link="ostree-Core-repository-independent-functions.html#OSTREE-DIRMETA-GVARIANT-STRING:CAPS"/> <keyword type="macro" name="OSTREE_DIRMETA_GVARIANT_STRING" link="ostree-Core-repository-independent-functions.html#OSTREE-DIRMETA-GVARIANT-STRING:CAPS"/>
@ -257,6 +256,7 @@
<keyword type="function" name="ostree_sysroot_get_deployment_origin_path ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-origin-path"/> <keyword type="function" name="ostree_sysroot_get_deployment_origin_path ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-deployment-origin-path"/>
<keyword type="function" name="ostree_sysroot_cleanup ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup"/> <keyword type="function" name="ostree_sysroot_cleanup ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-cleanup"/>
<keyword type="function" name="ostree_sysroot_prepare_cleanup ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-prepare-cleanup"/> <keyword type="function" name="ostree_sysroot_prepare_cleanup ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-prepare-cleanup"/>
<keyword type="function" name="ostree_sysroot_repo ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-repo"/>
<keyword type="function" name="ostree_sysroot_get_repo ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-repo"/> <keyword type="function" name="ostree_sysroot_get_repo ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-repo"/>
<keyword type="function" name="ostree_sysroot_init_osname ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-init-osname"/> <keyword type="function" name="ostree_sysroot_init_osname ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-init-osname"/>
<keyword type="function" name="ostree_sysroot_deployment_set_kargs ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-kargs"/> <keyword type="function" name="ostree_sysroot_deployment_set_kargs ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-deployment-set-kargs"/>
@ -267,6 +267,7 @@
<keyword type="function" name="ostree_sysroot_write_origin_file ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-write-origin-file"/> <keyword type="function" name="ostree_sysroot_write_origin_file ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-write-origin-file"/>
<keyword type="function" name="ostree_sysroot_deploy_tree ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree"/> <keyword type="function" name="ostree_sysroot_deploy_tree ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-deploy-tree"/>
<keyword type="function" name="ostree_sysroot_get_merge_deployment ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-merge-deployment"/> <keyword type="function" name="ostree_sysroot_get_merge_deployment ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-get-merge-deployment"/>
<keyword type="function" name="ostree_sysroot_query_deployments_for ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-query-deployments-for" since="2017.7"/>
<keyword type="function" name="ostree_sysroot_origin_new_from_refspec ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-origin-new-from-refspec"/> <keyword type="function" name="ostree_sysroot_origin_new_from_refspec ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-origin-new-from-refspec"/>
<keyword type="function" name="ostree_sysroot_simple_write_deployment ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment"/> <keyword type="function" name="ostree_sysroot_simple_write_deployment ()" link="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment"/>
<keyword type="typedef" name="OstreeSysroot" link="ostree-Root-partition-mount-point.html#OstreeSysroot"/> <keyword type="typedef" name="OstreeSysroot" link="ostree-Root-partition-mount-point.html#OstreeSysroot"/>
@ -421,6 +422,7 @@
<keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_MIRROR" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-MIRROR:CAPS"/> <keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_MIRROR" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-MIRROR:CAPS"/>
<keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-COMMIT-ONLY:CAPS"/> <keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-COMMIT-ONLY:CAPS"/>
<keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_UNTRUSTED" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-UNTRUSTED:CAPS"/> <keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_UNTRUSTED" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-UNTRUSTED:CAPS"/>
<keyword type="constant" name="OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES" link="ostree-Content-addressed-object-store.html#OSTREE-REPO-PULL-FLAGS-BAREUSERONLY-FILES:CAPS"/>
<keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NONE" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NONE:CAPS"/> <keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NONE" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NONE:CAPS"/>
<keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_RETAIN" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-RETAIN:CAPS"/> <keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_RETAIN" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-RETAIN:CAPS"/>
<keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NOT-DEFAULT:CAPS"/> <keyword type="constant" name="OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT" link="ostree-Root-partition-mount-point.html#OSTREE-SYSROOT-SIMPLE-WRITE-DEPLOYMENT-FLAGS-NOT-DEFAULT:CAPS"/>

View File

@ -475,10 +475,6 @@ OSTREE_CHECK_VERSION, macro in ostree-version
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
<a class="link" href="ostree-Core-repository-independent-functions.html#OSTREE-MAX-RECURSION:CAPS" title="OSTREE_MAX_RECURSION">OSTREE_MAX_RECURSION</a>, macro in <a class="link" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions">Core repository-independent functions</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="ostree-Core-repository-independent-functions.html#ostree-metadata-variant-type" title="ostree_metadata_variant_type ()">ostree_metadata_variant_type</a>, function in <a class="link" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions">Core repository-independent functions</a> <a class="link" href="ostree-Core-repository-independent-functions.html#ostree-metadata-variant-type" title="ostree_metadata_variant_type ()">ostree_metadata_variant_type</a>, function in <a class="link" href="ostree-Core-repository-independent-functions.html" title="Core repository-independent functions">Core repository-independent functions</a>
</dt> </dt>
<dd></dd> <dd></dd>
@ -1391,6 +1387,14 @@ OSTREE_RELEASE_VERSION, macro in ostree-version
</dt> </dt>
<dd></dd> <dd></dd>
<dt> <dt>
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-query-deployments-for" title="ostree_sysroot_query_deployments_for ()">ostree_sysroot_query_deployments_for</a>, function in <a class="link" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">Root partition mount point</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-repo" title="ostree_sysroot_repo ()">ostree_sysroot_repo</a>, function in <a class="link" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">Root partition mount point</a>
</dt>
<dd></dd>
<dt>
<a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment" title="ostree_sysroot_simple_write_deployment ()">ostree_sysroot_simple_write_deployment</a>, function in <a class="link" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">Root partition mount point</a> <a class="link" href="ostree-Root-partition-mount-point.html#ostree-sysroot-simple-write-deployment" title="ostree_sysroot_simple_write_deployment ()">ostree_sysroot_simple_write_deployment</a>, function in <a class="link" href="ostree-Root-partition-mount-point.html" title="Root partition mount point">Root partition mount point</a>
</dt> </dt>
<dd></dd> <dd></dd>

View File

@ -3,4 +3,5 @@
OstreeRemote OstreeRemote
ostree_remote_ref ostree_remote_ref
ostree_remote_unref ostree_remote_unref
ostree_remote_get_name
</SECTION> </SECTION>

View File

@ -89,7 +89,6 @@ OSTREE_VERSION_HEX
<FILE>ostree-core</FILE> <FILE>ostree-core</FILE>
OSTREE_MAX_METADATA_SIZE OSTREE_MAX_METADATA_SIZE
OSTREE_MAX_METADATA_WARN_SIZE OSTREE_MAX_METADATA_WARN_SIZE
OSTREE_MAX_RECURSION
OstreeObjectType OstreeObjectType
OSTREE_OBJECT_TYPE_IS_META OSTREE_OBJECT_TYPE_IS_META
OSTREE_OBJECT_TYPE_LAST OSTREE_OBJECT_TYPE_LAST
@ -486,6 +485,7 @@ ostree_sysroot_get_deployment_dirpath
ostree_sysroot_get_deployment_origin_path ostree_sysroot_get_deployment_origin_path
ostree_sysroot_cleanup ostree_sysroot_cleanup
ostree_sysroot_prepare_cleanup ostree_sysroot_prepare_cleanup
ostree_sysroot_repo
ostree_sysroot_get_repo ostree_sysroot_get_repo
ostree_sysroot_init_osname ostree_sysroot_init_osname
ostree_sysroot_deployment_set_kargs ostree_sysroot_deployment_set_kargs
@ -496,6 +496,7 @@ ostree_sysroot_write_deployments_with_options
ostree_sysroot_write_origin_file ostree_sysroot_write_origin_file
ostree_sysroot_deploy_tree ostree_sysroot_deploy_tree
ostree_sysroot_get_merge_deployment ostree_sysroot_get_merge_deployment
ostree_sysroot_query_deployments_for
ostree_sysroot_origin_new_from_refspec ostree_sysroot_origin_new_from_refspec
OstreeSysrootSimpleWriteDeploymentFlags OstreeSysrootSimpleWriteDeploymentFlags
ostree_sysroot_simple_write_deployment ostree_sysroot_simple_write_deployment

View File

@ -1 +1 @@
2017.6 2017.7

View File

@ -1,6 +1,6 @@
# GLIB - Library of useful C routines # GLIB - Library of useful C routines
TESTS_ENVIRONMENT= \ AM_TESTS_ENVIRONMENT= \
G_TEST_SRCDIR="$(abs_srcdir)" \ G_TEST_SRCDIR="$(abs_srcdir)" \
G_TEST_BUILDDIR="$(abs_builddir)" \ G_TEST_BUILDDIR="$(abs_builddir)" \
UNINSTALLEDTESTS=1 \ UNINSTALLEDTESTS=1 \

62
configure vendored
View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for libostree 2017.6. # Generated by GNU Autoconf 2.69 for libostree 2017.7.
# #
# Report bugs to <walters@verbum.org>. # Report bugs to <walters@verbum.org>.
# #
@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='libostree' PACKAGE_NAME='libostree'
PACKAGE_TARNAME='libostree' PACKAGE_TARNAME='libostree'
PACKAGE_VERSION='2017.6' PACKAGE_VERSION='2017.7'
PACKAGE_STRING='libostree 2017.6' PACKAGE_STRING='libostree 2017.7'
PACKAGE_BUGREPORT='walters@verbum.org' PACKAGE_BUGREPORT='walters@verbum.org'
PACKAGE_URL='' PACKAGE_URL=''
@ -635,6 +635,8 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE am__EXEEXT_TRUE
LTLIBOBJS LTLIBOBJS
LIBOBJS LIBOBJS
BUILDOPT_IS_DEVEL_BUILD_FALSE
BUILDOPT_IS_DEVEL_BUILD_TRUE
ENABLE_EXPERIMENTAL_API_FALSE ENABLE_EXPERIMENTAL_API_FALSE
ENABLE_EXPERIMENTAL_API_TRUE ENABLE_EXPERIMENTAL_API_TRUE
BUILDOPT_GJS_FALSE BUILDOPT_GJS_FALSE
@ -732,6 +734,8 @@ INTROSPECTION_COMPILER
INTROSPECTION_SCANNER INTROSPECTION_SCANNER
USE_CURL_OR_SOUP_FALSE USE_CURL_OR_SOUP_FALSE
USE_CURL_OR_SOUP_TRUE USE_CURL_OR_SOUP_TRUE
BUILDOPT_TRIVIAL_HTTPD_FALSE
BUILDOPT_TRIVIAL_HTTPD_TRUE
HAVE_LIBSOUP_CLIENT_CERTS_FALSE HAVE_LIBSOUP_CLIENT_CERTS_FALSE
HAVE_LIBSOUP_CLIENT_CERTS_TRUE HAVE_LIBSOUP_CLIENT_CERTS_TRUE
USE_LIBSOUP_FALSE USE_LIBSOUP_FALSE
@ -1522,7 +1526,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures libostree 2017.6 to adapt to many kinds of systems. \`configure' configures libostree 2017.7 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1592,7 +1596,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of libostree 2017.6:";; short | recursive ) echo "Configuration of libostree 2017.7:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1823,7 +1827,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
libostree configure 2017.6 libostree configure 2017.7
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.
@ -2238,7 +2242,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by libostree $as_me 2017.6, which was It was created by libostree $as_me 2017.7, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@ $ $0 $@
@ -2586,6 +2590,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_compiler_gnu=$ac_cv_c_compiler_gnu
is_release_build=yes
ac_config_headers="$ac_config_headers config.h" ac_config_headers="$ac_config_headers config.h"
@ -3105,7 +3110,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='libostree' PACKAGE='libostree'
VERSION='2017.6' VERSION='2017.7'
# Some tools Automake needs. # Some tools Automake needs.
@ -5839,9 +5844,9 @@ test -n "$YACC" || YACC="yacc"
YEAR_VERSION=2017 YEAR_VERSION=2017
RELEASE_VERSION=6 RELEASE_VERSION=7
PACKAGE_VERSION=2017.6 PACKAGE_VERSION=2017.7
@ -14889,7 +14894,15 @@ else
enable_trivial_httpd_cmdline=no enable_trivial_httpd_cmdline=no
fi fi
if test x$enable_trivial_httpd_cmdline = xyes; then : if test x$enable_trivial_httpd_cmdline = xyes; then
BUILDOPT_TRIVIAL_HTTPD_TRUE=
BUILDOPT_TRIVIAL_HTTPD_FALSE='#'
else
BUILDOPT_TRIVIAL_HTTPD_TRUE='#'
BUILDOPT_TRIVIAL_HTTPD_FALSE=
fi
if test -z "$BUILDOPT_TRIVIAL_HTTPD_TRUE"; then :
$as_echo "#define BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE 1" >>confdefs.h $as_echo "#define BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE 1" >>confdefs.h
@ -17072,6 +17085,19 @@ else
ENABLE_EXPERIMENTAL_API_FALSE= ENABLE_EXPERIMENTAL_API_FALSE=
fi fi
if test x$is_release_build != xyes; then
BUILDOPT_IS_DEVEL_BUILD_TRUE=
BUILDOPT_IS_DEVEL_BUILD_FALSE='#'
else
BUILDOPT_IS_DEVEL_BUILD_TRUE='#'
BUILDOPT_IS_DEVEL_BUILD_FALSE=
fi
if test -z "$BUILDOPT_IS_DEVEL_BUILD_TRUE"; then :
release_build_type=devel
else
release_build_type=release
fi
ac_config_files="$ac_config_files Makefile apidoc/Makefile src/libostree/ostree-1.pc src/libostree/ostree-version.h" ac_config_files="$ac_config_files Makefile apidoc/Makefile src/libostree/ostree-1.pc src/libostree/ostree-version.h"
@ -17244,6 +17270,10 @@ if test -z "${HAVE_LIBSOUP_CLIENT_CERTS_TRUE}" && test -z "${HAVE_LIBSOUP_CLIENT
as_fn_error $? "conditional \"HAVE_LIBSOUP_CLIENT_CERTS\" was never defined. as_fn_error $? "conditional \"HAVE_LIBSOUP_CLIENT_CERTS\" 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 "${BUILDOPT_TRIVIAL_HTTPD_TRUE}" && test -z "${BUILDOPT_TRIVIAL_HTTPD_FALSE}"; then
as_fn_error $? "conditional \"BUILDOPT_TRIVIAL_HTTPD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
if test -z "${USE_CURL_OR_SOUP_TRUE}" && test -z "${USE_CURL_OR_SOUP_FALSE}"; then if test -z "${USE_CURL_OR_SOUP_TRUE}" && test -z "${USE_CURL_OR_SOUP_FALSE}"; then
as_fn_error $? "conditional \"USE_CURL_OR_SOUP\" was never defined. as_fn_error $? "conditional \"USE_CURL_OR_SOUP\" 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
@ -17356,6 +17386,10 @@ if test -z "${ENABLE_EXPERIMENTAL_API_TRUE}" && test -z "${ENABLE_EXPERIMENTAL_A
as_fn_error $? "conditional \"ENABLE_EXPERIMENTAL_API\" was never defined. as_fn_error $? "conditional \"ENABLE_EXPERIMENTAL_API\" 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 "${BUILDOPT_IS_DEVEL_BUILD_TRUE}" && test -z "${BUILDOPT_IS_DEVEL_BUILD_FALSE}"; then
as_fn_error $? "conditional \"BUILDOPT_IS_DEVEL_BUILD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
: "${CONFIG_STATUS=./config.status}" : "${CONFIG_STATUS=./config.status}"
ac_write_fail=0 ac_write_fail=0
@ -17753,7 +17787,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by libostree $as_me 2017.6, which was This file was extended by libostree $as_me 2017.7, 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
@ -17819,7 +17853,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
libostree config.status 2017.6 libostree config.status 2017.7
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\\"
@ -19509,7 +19543,7 @@ fi
echo " echo "
libOSTree $VERSION libOSTree $VERSION ($release_build_type)
=============== ===============

View File

@ -1,10 +1,13 @@
AC_PREREQ([2.63]) AC_PREREQ([2.63])
dnl If incrementing the version here, remember to update libostree.sym too dnl If doing a final release, remember to follow the instructions to
dnl update libostree-released.sym from libostree-devel.sym, and update the checksum
dnl in test-symbols.sh, and also set is_release_build=yes below. Then make
dnl another post-release commit to bump the version, and set is_release_build=no.
m4_define([year_version], [2017]) m4_define([year_version], [2017])
m4_define([release_version], [6]) m4_define([release_version], [7])
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
AC_CONFIG_HEADER([config.h]) AC_CONFIG_HEADER([config.h])
AC_CONFIG_MACRO_DIR([buildutil]) AC_CONFIG_MACRO_DIR([buildutil])
AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_AUX_DIR([build-aux])
@ -148,7 +151,8 @@ AC_ARG_ENABLE(trivial-httpd-cmdline,
[AS_HELP_STRING([--enable-trivial-httpd-cmdline], [AS_HELP_STRING([--enable-trivial-httpd-cmdline],
[Continue to support "ostree trivial-httpd" [default=no]])],, [Continue to support "ostree trivial-httpd" [default=no]])],,
enable_trivial_httpd_cmdline=no) enable_trivial_httpd_cmdline=no)
AS_IF([test x$enable_trivial_httpd_cmdline = xyes], AM_CONDITIONAL(BUILDOPT_TRIVIAL_HTTPD, test x$enable_trivial_httpd_cmdline = xyes)
AM_COND_IF(BUILDOPT_TRIVIAL_HTTPD,
[AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])] [AC_DEFINE([BUILDOPT_ENABLE_TRIVIAL_HTTPD_CMDLINE], 1, [Define if we are enabling ostree trivial-httpd entrypoint])]
) )
@ -455,6 +459,8 @@ AS_IF([test x$enable_experimental_api = xyes],
OSTREE_FEATURES="$OSTREE_FEATURES experimental"] OSTREE_FEATURES="$OSTREE_FEATURES experimental"]
) )
AM_CONDITIONAL([ENABLE_EXPERIMENTAL_API],[test x$enable_experimental_api = xyes]) AM_CONDITIONAL([ENABLE_EXPERIMENTAL_API],[test x$enable_experimental_api = xyes])
AM_CONDITIONAL([BUILDOPT_IS_DEVEL_BUILD],[test x$is_release_build != xyes])
AM_COND_IF([BUILDOPT_IS_DEVEL_BUILD], release_build_type=devel, release_build_type=release)
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
@ -465,7 +471,7 @@ src/libostree/ostree-version.h
AC_OUTPUT AC_OUTPUT
echo " echo "
libOSTree $VERSION libOSTree $VERSION ($release_build_type)
=============== ===============

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin cleanup .\" Title: ostree admin cleanup
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin cleanup .\" Manual: ostree admin cleanup
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin config-diff .\" Title: ostree admin config-diff
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin config-diff .\" Manual: ostree admin config-diff
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin deploy .\" Title: ostree admin deploy
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin deploy .\" Manual: ostree admin deploy
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin init-fs .\" Title: ostree admin init-fs
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin init-fs .\" Manual: ostree admin init-fs
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin instutil .\" Title: ostree admin instutil
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin instutil .\" Manual: ostree admin instutil
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin os-init .\" Title: ostree admin os-init
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin os-init .\" Manual: ostree admin os-init
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin set-origin .\" Title: ostree admin set-origin
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin set-origin .\" Manual: ostree admin set-origin
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin status .\" Title: ostree admin status
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin status .\" Manual: ostree admin status
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin switch .\" Title: ostree admin switch
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin switch .\" Manual: ostree admin switch
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin undeploy .\" Title: ostree admin undeploy
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin undeploy .\" Manual: ostree admin undeploy
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin unlock .\" Title: ostree admin unlock
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin unlock .\" Manual: ostree admin unlock
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin upgrade .\" Title: ostree admin upgrade
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin upgrade .\" Manual: ostree admin upgrade
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree admin .\" Title: ostree admin
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree admin .\" Manual: ostree admin
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree cat .\" Title: ostree cat
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree cat .\" Manual: ostree cat
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree checkout .\" Title: ostree checkout
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree checkout .\" Manual: ostree checkout
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree checksum .\" Title: ostree checksum
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree checksum .\" Manual: ostree checksum
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree commit .\" Title: ostree commit
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree commit .\" Manual: ostree commit
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree config .\" Title: ostree config
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree config .\" Manual: ostree config
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree diff .\" Title: ostree diff
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree diff .\" Manual: ostree diff
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree export .\" Title: ostree export
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree export .\" Manual: ostree export
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree fsck .\" Title: ostree fsck
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree fsck .\" Manual: ostree fsck
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree gpg-sign .\" Title: ostree gpg-sign
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree gpg-sign .\" Manual: ostree gpg-sign
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree init .\" Title: ostree init
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree init .\" Manual: ostree init
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree log .\" Title: ostree log
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree log .\" Manual: ostree log
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree ls .\" Title: ostree ls
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree ls .\" Manual: ostree ls
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree prune .\" Title: ostree prune
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree prune .\" Manual: ostree prune
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree pull-local .\" Title: ostree pull-local
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree pull-local .\" Manual: ostree pull-local
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree pull .\" Title: ostree pull
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree pull .\" Manual: ostree pull
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree refs .\" Title: ostree refs
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree refs .\" Manual: ostree refs
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree remote .\" Title: ostree remote
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree remote .\" Manual: ostree remote
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree reset .\" Title: ostree reset
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree reset .\" Manual: ostree reset
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree rev-parse .\" Title: ostree rev-parse
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree rev-parse .\" Manual: ostree rev-parse
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree show .\" Title: ostree show
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree show .\" Manual: ostree show
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree static-delta .\" Title: ostree static-delta
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree static-delta .\" Manual: ostree static-delta
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree summary .\" Title: ostree summary
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree summary .\" Manual: ostree summary
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -1,66 +0,0 @@
'\" t
.\" Title: ostree trivial-httpd
.\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017
.\" Manual: ostree trivial-httpd
.\" Source: OSTree
.\" Language: English
.\"
.TH "OSTREE TRIVIAL\-HTTP" "1" "" "OSTree" "ostree trivial-httpd"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
ostree-trivial-httpd \- Simple webserver
.SH "SYNOPSIS"
.HP \w'\fBostree\ trivial\-httpd\fR\ 'u
\fBostree trivial\-httpd\fR [OPTIONS...] [DIR]
.SH "DESCRIPTION"
.PP
This runs a simple webserver and keeps it running until killed\&. If DIR is not specified, it defaults to the current directory\&.
.SH "OPTIONS"
.PP
\fB\-\-daemonize\fR,\fB\-d\fR
.RS 4
Fork into background when ready\&.
.RE
.PP
\fB\-\-autoexit\fR
.RS 4
Automatically exit when directory is deleted\&.
.RE
.PP
\fB\-\-port\-file\fR,\fB\-p\fR="PATH"
.RS 4
Write port number to PATH (\- for standard output)\&.
.RE
.PP
\fB\-\-port\fR,\fB\-P\fR
.RS 4
Use the specified TCP port to listen on\&.
.RE
.PP
\fB\-\-force\-range\-requests\fR
.RS 4
Force range requests by only serving half of files\&.
.RE
.SH "EXAMPLE"
.PP
\fB$ ostree trivial\-httpd\fR

View File

@ -1,116 +0,0 @@
<?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 2011,2013 Colin Walters <walters@verbum.org>
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, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
-->
<refentry id="ostree">
<refentryinfo>
<title>ostree trivial-httpd</title>
<productname>OSTree</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Colin</firstname>
<surname>Walters</surname>
<email>walters@verbum.org</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>ostree trivial-httpd</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>ostree-trivial-httpd</refname>
<refpurpose>Simple webserver</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>ostree trivial-httpd</command> <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">DIR</arg>
</cmdsynopsis>
</refsynopsisdiv>
<!-- Don't entirely understand this command. Needs details, better content-->
<refsect1>
<title>Description</title>
<para>
This runs a simple webserver and keeps it running until killed. If DIR is not specified, it defaults to the current directory.
</para>
</refsect1>
<refsect1>
<title>Options</title>
<variablelist>
<varlistentry>
<term><option>--daemonize</option>,<option>-d</option></term>
<listitem><para>
Fork into background when ready.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--autoexit</option></term>
<listitem><para>
Automatically exit when directory is deleted.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--port-file</option>,<option>-p</option>="PATH"</term>
<listitem><para>
Write port number to PATH (- for standard output).
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--port</option>,<option>-P</option></term>
<listitem><para>
Use the specified TCP port to listen on.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--force-range-requests</option></term>
<listitem><para>
Force range requests by only serving half of files.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<!-- NEED EXAMPLE OUTPUT HERE!-->
<refsect1>
<title>Example</title>
<para><command>$ ostree trivial-httpd</command></para>
</refsect1>
</refentry>

View File

@ -2,7 +2,7 @@
.\" Title: ostree .\" Title: ostree
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree .\" Manual: ostree
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree.repo-config .\" Title: ostree.repo-config
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree.repo-config .\" Manual: ostree.repo-config
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: ostree.repo .\" Title: ostree.repo
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: ostree.repo .\" Manual: ostree.repo
.\" Source: OSTree .\" Source: OSTree
.\" Language: English .\" Language: English

View File

@ -2,7 +2,7 @@
.\" Title: rofiles-fuse .\" Title: rofiles-fuse
.\" Author: Colin Walters <walters@verbum.org> .\" Author: Colin Walters <walters@verbum.org>
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\" Date: 05/17/2017 .\" Date: 06/19/2017
.\" Manual: rofiles-fuse .\" Manual: rofiles-fuse
.\" Source: rofiles-fuse .\" Source: rofiles-fuse
.\" Language: English .\" Language: English

View File

@ -1,31 +0,0 @@
/*
* Copyright © 2017 Endless Mobile, 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, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*
* Authors:
* - Philip Withnall <withnall@endlessm.com>
*/
/* Symbols in this file are added to the build if OSTree is configured with
* --enable-experimental-api. They are not stable or officially supported, and
* might disappear or change in future releases. */
LIBOSTREE_2017.6_EXPERIMENTAL {
global:
ostree_remote_ref;
ostree_remote_unref;
} LIBOSTREE_2017.6;

View File

@ -1,4 +1,6 @@
/*** /* Released symbol file: DO NOT EDIT except in release commits!
Edit libostree-devel.sym instead.
Copyright (C) 2016 Colin Walters <walters@verbum.org> Copyright (C) 2016 Colin Walters <walters@verbum.org>
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
@ -17,6 +19,9 @@
Boston, MA 02111-1307, USA. Boston, MA 02111-1307, USA.
***/ ***/
/* DO NOT EDIT this file - use libostree-devel.sym instead. Release
* commits will move symbols from libostree-devel.sym to libostree-released.sym.
*/
/* /*
Retroactively make all of these symbols 2016.3, which is Retroactively make all of these symbols 2016.3, which is
@ -397,24 +402,12 @@ global:
ostree_async_progress_set_variant; ostree_async_progress_set_variant;
} LIBOSTREE_2017.4; } LIBOSTREE_2017.4;
/* NOTE NOTE NOTE LIBOSTREE_2017.7 {
* Versions above here are released. Only add symbols below this line.
* NOTE NOTE NOTE
*/
/*
LIBOSTREE_2017.$NEWVERSION {
global: global:
someostree_symbol_deleteme; ostree_sysroot_repo;
ostree_sysroot_query_deployments_for;
} LIBOSTREE_2017.6; } LIBOSTREE_2017.6;
*/
/* Stub section for the stable release *after* this development one; don't /* NOTE: Only add more content here in release commits! See the
* edit this other than to update the last number. This is just a copy/paste * comments at the top of this file.
* source. Replace $LASTSTABLE with the last stable version, and $NEWVERSION */
* with whatever the next version with new symbols will be.
LIBOSTREE_2017.$NEWVERSION {
global:
someostree_symbol_deleteme;
} LIBOSTREE_2017.$LASTSTABLE;
*/

View File

@ -1763,16 +1763,12 @@ validate_variant (GVariant *variant,
{ {
if (!g_variant_is_normal_form (variant)) if (!g_variant_is_normal_form (variant))
{ {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error, "%s", "Not normal form");
"Not normal form");
return FALSE;
} }
if (!g_variant_is_of_type (variant, variant_type)) if (!g_variant_is_of_type (variant, variant_type))
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error, "Doesn't match variant type '%s'",
"Doesn't match variant type '%s'", (char *)variant_type);
(char*)variant_type);
return FALSE;
} }
return TRUE; return TRUE;
} }

View File

@ -44,13 +44,6 @@ G_BEGIN_DECLS
*/ */
#define OSTREE_MAX_METADATA_WARN_SIZE (7 * 1024 * 1024) #define OSTREE_MAX_METADATA_WARN_SIZE (7 * 1024 * 1024)
/**
* OSTREE_MAX_RECURSION:
*
* Maximum depth of metadata.
*/
#define OSTREE_MAX_RECURSION (256)
/** /**
* OSTREE_SHA256_DIGEST_LEN: * OSTREE_SHA256_DIGEST_LEN:
* *

View File

@ -99,8 +99,7 @@ struct FetcherRequest {
OstreeFetcherRequestFlags flags; OstreeFetcherRequestFlags flags;
gboolean is_membuf; gboolean is_membuf;
GError *caught_write_error; GError *caught_write_error;
char *out_tmpfile; OtTmpfile tmpf;
int out_tmpfile_fd;
GString *output_buf; GString *output_buf;
CURL *easy; CURL *easy;
@ -269,12 +268,11 @@ request_get_uri (FetcherRequest *req, guint idx)
static gboolean static gboolean
ensure_tmpfile (FetcherRequest *req, GError **error) ensure_tmpfile (FetcherRequest *req, GError **error)
{ {
if (req->out_tmpfile_fd == -1) if (!req->tmpf.initialized)
{ {
if (!glnx_open_tmpfile_linkable_at (req->fetcher->tmpdir_dfd, ".", if (!ot_open_tmpfile_linkable_at (req->fetcher->tmpdir_dfd, ".",
O_WRONLY | O_CLOEXEC, &req->out_tmpfile_fd, O_WRONLY | O_CLOEXEC, &req->tmpf,
&req->out_tmpfile, error))
error))
return FALSE; return FALSE;
} }
return TRUE; return TRUE;
@ -387,18 +385,14 @@ check_multi_info (OstreeFetcher *fetcher)
{ {
g_task_return_error (task, g_steal_pointer (&local_error)); g_task_return_error (task, g_steal_pointer (&local_error));
} }
else if (fchmod (req->out_tmpfile_fd, 0644) < 0) else if (fchmod (req->tmpf.fd, 0644) < 0)
{ {
glnx_set_error_from_errno (error); glnx_set_error_from_errno (error);
g_task_return_error (task, g_steal_pointer (&local_error)); g_task_return_error (task, g_steal_pointer (&local_error));
} }
else if (!glnx_link_tmpfile_at (fetcher->tmpdir_dfd, else if (!ot_link_tmpfile_at (&req->tmpf, GLNX_LINK_TMPFILE_REPLACE,
GLNX_LINK_TMPFILE_REPLACE, fetcher->tmpdir_dfd, tmpfile_path,
req->out_tmpfile_fd, error))
req->out_tmpfile,
fetcher->tmpdir_dfd,
tmpfile_path,
error))
g_task_return_error (task, g_steal_pointer (&local_error)); g_task_return_error (task, g_steal_pointer (&local_error));
else else
{ {
@ -586,8 +580,8 @@ write_cb (void *ptr, size_t size, size_t nmemb, void *data)
{ {
if (!ensure_tmpfile (req, &req->caught_write_error)) if (!ensure_tmpfile (req, &req->caught_write_error))
return -1; return -1;
g_assert (req->out_tmpfile_fd >= 0); g_assert (req->tmpf.fd >= 0);
if (glnx_loop_write (req->out_tmpfile_fd, ptr, realsize) < 0) if (glnx_loop_write (req->tmpf.fd, ptr, realsize) < 0)
{ {
glnx_set_error_from_errno (&req->caught_write_error); glnx_set_error_from_errno (&req->caught_write_error);
return -1; return -1;
@ -622,9 +616,7 @@ request_unref (FetcherRequest *req)
g_ptr_array_unref (req->mirrorlist); g_ptr_array_unref (req->mirrorlist);
g_free (req->filename); g_free (req->filename);
g_clear_error (&req->caught_write_error); g_clear_error (&req->caught_write_error);
if (req->out_tmpfile_fd != -1) ot_tmpfile_clear (&req->tmpf);
(void) close (req->out_tmpfile_fd);
g_free (req->out_tmpfile);
if (req->output_buf) if (req->output_buf)
g_string_free (req->output_buf, TRUE); g_string_free (req->output_buf, TRUE);
curl_easy_cleanup (req->easy); curl_easy_cleanup (req->easy);
@ -770,6 +762,9 @@ initiate_next_curl_request (FetcherRequest *req,
curl_easy_setopt (req->easy, CURLOPT_SSLKEY, self->tls_client_key_path); curl_easy_setopt (req->easy, CURLOPT_SSLKEY, self->tls_client_key_path);
} }
if ((self->config_flags & OSTREE_FETCHER_FLAGS_TRANSFER_GZIP) > 0)
curl_easy_setopt (req->easy, CURLOPT_ACCEPT_ENCODING, "");
/* 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)); curl_easy_setopt (req->easy, CURLOPT_PROTOCOLS, (long)(CURLPROTO_HTTP | CURLPROTO_HTTPS | CURLPROTO_FILE));
/* Picked the current version in F25 as of 20170127, since /* Picked the current version in F25 as of 20170127, since
@ -847,7 +842,6 @@ _ostree_fetcher_request_async (OstreeFetcher *self,
/* We'll allocate the tmpfile on demand, so we handle /* We'll allocate the tmpfile on demand, so we handle
* file I/O errors just in the write func. * file I/O errors just in the write func.
*/ */
req->out_tmpfile_fd = -1;
if (req->is_membuf) if (req->is_membuf)
req->output_buf = g_string_new (""); req->output_buf = g_string_new ("");

View File

@ -63,6 +63,7 @@ typedef struct {
GVariant *extra_headers; GVariant *extra_headers;
int max_outstanding; int max_outstanding;
gboolean transfer_gzip;
/* Our active HTTP requests */ /* Our active HTTP requests */
GHashTable *outstanding; GHashTable *outstanding;
@ -553,6 +554,9 @@ ostree_fetcher_session_thread (gpointer data)
SOUP_SESSION_IDLE_TIMEOUT, 60, SOUP_SESSION_IDLE_TIMEOUT, 60,
NULL); NULL);
if (closure->transfer_gzip)
soup_session_add_feature_by_type (closure->session, SOUP_TYPE_CONTENT_DECODER);
/* XXX: Now that we have mirrorlist support, we could make this even smarter /* XXX: Now that we have mirrorlist support, we could make this even smarter
* by spreading requests across mirrors. */ * by spreading requests across mirrors. */
g_object_get (closure->session, "max-conns-per-host", &max_conns, NULL); g_object_get (closure->session, "max-conns-per-host", &max_conns, NULL);
@ -663,6 +667,7 @@ _ostree_fetcher_constructed (GObject *object)
self->thread_closure->ref_count = 1; self->thread_closure->ref_count = 1;
self->thread_closure->main_context = g_main_context_ref (main_context); self->thread_closure->main_context = g_main_context_ref (main_context);
self->thread_closure->running = 1; self->thread_closure->running = 1;
self->thread_closure->transfer_gzip = (self->config_flags & OSTREE_FETCHER_FLAGS_TRANSFER_GZIP) != 0;
self->thread_closure->tmpdir_dfd = -1; self->thread_closure->tmpdir_dfd = -1;
self->thread_closure->tmpdir_lock = empty_lockfile; self->thread_closure->tmpdir_lock = empty_lockfile;

View File

@ -46,9 +46,12 @@ struct OstreeFetcherClass
GObjectClass parent_class; GObjectClass parent_class;
}; };
G_DEFINE_AUTOPTR_CLEANUP_FUNC(OstreeFetcher, g_object_unref)
typedef enum { typedef enum {
OSTREE_FETCHER_FLAGS_NONE = 0, OSTREE_FETCHER_FLAGS_NONE = 0,
OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE = (1 << 0) OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE = (1 << 0),
OSTREE_FETCHER_FLAGS_TRANSFER_GZIP = (1 << 1)
} OstreeFetcherConfigFlags; } OstreeFetcherConfigFlags;
void void

View File

@ -665,9 +665,8 @@ ostree_gpg_verify_result_require_valid_signature (OstreeGpgVerifyResult *result,
if (ostree_gpg_verify_result_count_valid (result) == 0) if (ostree_gpg_verify_result_count_valid (result) == 0)
{ {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error, "%s",
"GPG signatures found, but none are in trusted keyring"); "GPG signatures found, but none are in trusted keyring");
return FALSE;
} }
return TRUE; return TRUE;

View File

@ -27,6 +27,8 @@
#include <sys/ioctl.h> #include <sys/ioctl.h>
#include <ext2fs/ext2_fs.h> #include <ext2fs/ext2_fs.h>
#include "otutil.h"
/** /**
* _ostree_linuxfs_fd_alter_immutable_flag: * _ostree_linuxfs_fd_alter_immutable_flag:
* @fd: A file descriptor * @fd: A file descriptor
@ -47,29 +49,21 @@ _ostree_linuxfs_fd_alter_immutable_flag (int fd,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
unsigned long flags;
int r;
static gint no_alter_immutable = 0; static gint no_alter_immutable = 0;
if (g_atomic_int_get (&no_alter_immutable)) if (g_atomic_int_get (&no_alter_immutable))
return TRUE; return TRUE;
r = ioctl (fd, EXT2_IOC_GETFLAGS, &flags); unsigned long flags;
int r = ioctl (fd, EXT2_IOC_GETFLAGS, &flags);
if (r == -1) if (r == -1)
{ {
int errsv = errno; if (errno == EPERM)
if (errsv == EPERM)
g_atomic_int_set (&no_alter_immutable, 1); g_atomic_int_set (&no_alter_immutable, 1);
else if (errsv == EOPNOTSUPP || errsv == ENOTTY) else if (errno == EOPNOTSUPP || errno == ENOTTY)
; ;
else else
{ return glnx_throw_errno_prefix (error, "ioctl(EXT2_IOC_GETFLAGS)");
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"ioctl(EXT2_IOC_GETFLAGS): %s",
g_strerror (errsv));
goto out;
}
} }
else else
{ {
@ -80,54 +74,14 @@ _ostree_linuxfs_fd_alter_immutable_flag (int fd,
r = ioctl (fd, EXT2_IOC_SETFLAGS, &flags); r = ioctl (fd, EXT2_IOC_SETFLAGS, &flags);
if (r == -1) if (r == -1)
{ {
int errsv = errno; if (errno == EPERM)
if (errsv == EPERM)
g_atomic_int_set (&no_alter_immutable, 1); g_atomic_int_set (&no_alter_immutable, 1);
else if (errsv == EOPNOTSUPP || errsv == ENOTTY) else if (errno == EOPNOTSUPP || errno == ENOTTY)
; ;
else else
{ return glnx_throw_errno_prefix (error, "ioctl(EXT2_IOC_SETFLAGS)");
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"ioctl(EXT2_IOC_GETFLAGS): %s",
g_strerror (errsv));
goto out;
}
} }
} }
ret = TRUE; return TRUE;
out:
return ret;
}
gboolean
_ostree_linuxfs_alter_immutable_flag (GFile *path,
gboolean new_immutable_state,
GCancellable *cancellable,
GError **error)
{
gboolean ret = FALSE;
glnx_fd_close int fd = -1;
if (g_cancellable_set_error_if_cancelled (cancellable, error))
return FALSE;
fd = open (gs_file_get_path_cached (path), O_RDONLY|O_NONBLOCK|O_LARGEFILE);
if (fd == -1)
{
int errsv = errno;
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"open(%s): %s",
gs_file_get_path_cached (path),
g_strerror (errsv));
goto out;
}
if (!_ostree_linuxfs_fd_alter_immutable_flag (fd, new_immutable_state,
cancellable, error))
goto out;
ret = TRUE;
out:
return ret;
} }

View File

@ -30,10 +30,4 @@ _ostree_linuxfs_fd_alter_immutable_flag (int fd,
GCancellable *cancellable, GCancellable *cancellable,
GError **error); GError **error);
gboolean
_ostree_linuxfs_alter_immutable_flag (GFile *path,
gboolean new_immutable_state,
GCancellable *cancellable,
GError **error);
G_END_DECLS G_END_DECLS

View File

@ -38,15 +38,15 @@ G_BEGIN_DECLS
struct OstreeRemote { struct OstreeRemote {
volatile int ref_count; volatile int ref_count;
char *name; char *name; /* (not nullable) */
char *group; /* group name in options */ char *group; /* group name in options (not nullable) */
char *keyring; /* keyring name (NAME.trustedkeys.gpg) */ char *keyring; /* keyring name (NAME.trustedkeys.gpg) (not nullable) */
GFile *file; /* NULL if remote defined in repo/config */ GFile *file; /* NULL if remote defined in repo/config */
GKeyFile *options; GKeyFile *options;
}; };
G_GNUC_INTERNAL G_GNUC_INTERNAL
OstreeRemote *ostree_remote_new (void); OstreeRemote *ostree_remote_new (const gchar *name);
G_GNUC_INTERNAL G_GNUC_INTERNAL
OstreeRemote *ostree_remote_new_from_keyfile (GKeyFile *keyfile, OstreeRemote *ostree_remote_new_from_keyfile (GKeyFile *keyfile,

View File

@ -53,12 +53,17 @@
*/ */
OstreeRemote * OstreeRemote *
ostree_remote_new (void) ostree_remote_new (const gchar *name)
{ {
OstreeRemote *remote; OstreeRemote *remote;
g_return_val_if_fail (name != NULL && *name != '\0', NULL);
remote = g_slice_new0 (OstreeRemote); remote = g_slice_new0 (OstreeRemote);
remote->ref_count = 1; remote->ref_count = 1;
remote->name = g_strdup (name);
remote->group = g_strdup_printf ("remote \"%s\"", name);
remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name);
remote->options = g_key_file_new (); remote->options = g_key_file_new ();
return remote; return remote;
@ -70,6 +75,7 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile,
{ {
g_autoptr(GMatchInfo) match = NULL; g_autoptr(GMatchInfo) match = NULL;
OstreeRemote *remote; OstreeRemote *remote;
g_autofree gchar *name = NULL;
static gsize regex_initialized; static gsize regex_initialized;
static GRegex *regex; static GRegex *regex;
@ -88,10 +94,8 @@ ostree_remote_new_from_keyfile (GKeyFile *keyfile,
if (!g_regex_match (regex, group, 0, &match)) if (!g_regex_match (regex, group, 0, &match))
return NULL; return NULL;
remote = ostree_remote_new (); name = g_match_info_fetch (match, 1);
remote->name = g_match_info_fetch (match, 1); remote = ostree_remote_new (name);
remote->group = g_strdup (group);
remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", remote->name);
ot_keyfile_copy_group (keyfile, remote->options, group); ot_keyfile_copy_group (keyfile, remote->options, group);
@ -148,3 +152,23 @@ G_DEFINE_BOXED_TYPE(OstreeRemote, ostree_remote,
ostree_remote_ref, ostree_remote_ref,
ostree_remote_unref); ostree_remote_unref);
#endif #endif
/**
* ostree_remote_get_name:
* @remote: an #OstreeRemote
*
* 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.
*
* Returns: remotes name
* Since: 2017.7
*/
const gchar *
ostree_remote_get_name (OstreeRemote *remote)
{
g_return_val_if_fail (remote != NULL, NULL);
g_return_val_if_fail (remote->ref_count > 0, NULL);
return remote->name;
}

View File

@ -48,16 +48,16 @@ G_BEGIN_DECLS
typedef struct OstreeRemote OstreeRemote; typedef struct OstreeRemote OstreeRemote;
#endif #endif
#ifdef OSTREE_ENABLE_EXPERIMENTAL_API #ifndef __GI_SCANNER__
_OSTREE_PUBLIC _OSTREE_PUBLIC
GType ostree_remote_get_type (void) G_GNUC_CONST; GType ostree_remote_get_type (void) G_GNUC_CONST;
#else
#ifndef __GI_SCANNER__
_OSTREE_PUBLIC _OSTREE_PUBLIC
OstreeRemote *ostree_remote_ref (OstreeRemote *remote); OstreeRemote *ostree_remote_ref (OstreeRemote *remote);
_OSTREE_PUBLIC _OSTREE_PUBLIC
void ostree_remote_unref (OstreeRemote *remote); void ostree_remote_unref (OstreeRemote *remote);
#endif /* GI_SCANNER */ #endif /* GI_SCANNER */
#endif
_OSTREE_PUBLIC
const gchar *ostree_remote_get_name (OstreeRemote *remote);
G_END_DECLS G_END_DECLS

View File

@ -60,13 +60,11 @@ checkout_object_for_uncompressed_cache (OstreeRepo *self,
guint32 file_mode = g_file_info_get_attribute_uint32 (src_info, "unix::mode"); guint32 file_mode = g_file_info_get_attribute_uint32 (src_info, "unix::mode");
file_mode &= ~(S_ISUID|S_ISGID); file_mode &= ~(S_ISUID|S_ISGID);
glnx_fd_close int fd = -1; g_auto(OtTmpfile) tmpf = { 0, };
g_autofree char *temp_filename = NULL; if (!ot_open_tmpfile_linkable_at (self->tmp_dir_fd, ".", O_WRONLY | O_CLOEXEC,
if (!glnx_open_tmpfile_linkable_at (self->tmp_dir_fd, ".", O_WRONLY | O_CLOEXEC, &tmpf, error))
&fd, &temp_filename,
error))
return FALSE; return FALSE;
g_autoptr(GOutputStream) temp_out = g_unix_output_stream_new (fd, FALSE); g_autoptr(GOutputStream) temp_out = g_unix_output_stream_new (tmpf.fd, FALSE);
if (g_output_stream_splice (temp_out, content, 0, cancellable, error) < 0) if (g_output_stream_splice (temp_out, content, 0, cancellable, error) < 0)
return FALSE; return FALSE;
@ -76,14 +74,14 @@ checkout_object_for_uncompressed_cache (OstreeRepo *self,
if (!self->disable_fsync) if (!self->disable_fsync)
{ {
if (TEMP_FAILURE_RETRY (fsync (fd)) < 0) if (TEMP_FAILURE_RETRY (fsync (tmpf.fd)) < 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
} }
if (!g_output_stream_close (temp_out, cancellable, error)) if (!g_output_stream_close (temp_out, cancellable, error))
return FALSE; return FALSE;
if (fchmod (fd, file_mode) < 0) if (fchmod (tmpf.fd, file_mode) < 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
if (!_ostree_repo_ensure_loose_objdir_at (self->uncompressed_objects_dir_fd, if (!_ostree_repo_ensure_loose_objdir_at (self->uncompressed_objects_dir_fd,
@ -91,10 +89,9 @@ checkout_object_for_uncompressed_cache (OstreeRepo *self,
cancellable, error)) cancellable, error))
return FALSE; return FALSE;
if (!glnx_link_tmpfile_at (self->tmp_dir_fd, GLNX_LINK_TMPFILE_NOREPLACE_IGNORE_EXIST, if (!ot_link_tmpfile_at (&tmpf, GLNX_LINK_TMPFILE_NOREPLACE_IGNORE_EXIST,
fd, temp_filename, self->uncompressed_objects_dir_fd, loose_path,
self->uncompressed_objects_dir_fd, loose_path, error))
error))
return FALSE; return FALSE;
return TRUE; return TRUE;
@ -143,10 +140,7 @@ write_regular_file_content (OstreeRepo *self,
{ {
if (TEMP_FAILURE_RETRY (fchown (outfd, g_file_info_get_attribute_uint32 (file_info, "unix::uid"), if (TEMP_FAILURE_RETRY (fchown (outfd, g_file_info_get_attribute_uint32 (file_info, "unix::uid"),
g_file_info_get_attribute_uint32 (file_info, "unix::gid"))) < 0) g_file_info_get_attribute_uint32 (file_info, "unix::gid"))) < 0)
return glnx_throw_errno (error); return glnx_throw_errno_prefix (error, "fchown");
if (TEMP_FAILURE_RETRY (fchmod (outfd, g_file_info_get_attribute_uint32 (file_info, "unix::mode"))) < 0)
return glnx_throw_errno (error);
if (xattrs) if (xattrs)
{ {
@ -155,10 +149,19 @@ write_regular_file_content (OstreeRepo *self,
} }
} }
guint32 file_mode = g_file_info_get_attribute_uint32 (file_info, "unix::mode");
/* Don't make setuid files on checkout when we're doing --user */
if (mode == OSTREE_REPO_CHECKOUT_MODE_USER)
file_mode &= ~(S_ISUID|S_ISGID);
if (TEMP_FAILURE_RETRY (fchmod (outfd, file_mode)) < 0)
return glnx_throw_errno_prefix (error, "fchmod");
if (fsync_is_enabled (self, options)) if (fsync_is_enabled (self, options))
{ {
if (fsync (outfd) == -1) if (fsync (outfd) == -1)
return glnx_throw_errno (error); return glnx_throw_errno_prefix (error, "fsync");
} }
if (outstream) if (outstream)
@ -185,7 +188,6 @@ create_file_copy_from_input_at (OstreeRepo *repo,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
g_autofree char *temp_filename = NULL;
const gboolean union_mode = options->overwrite_mode == OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES; const gboolean union_mode = options->overwrite_mode == OSTREE_REPO_CHECKOUT_OVERWRITE_UNION_FILES;
const gboolean add_mode = options->overwrite_mode == OSTREE_REPO_CHECKOUT_OVERWRITE_ADD_FILES; const gboolean add_mode = options->overwrite_mode == OSTREE_REPO_CHECKOUT_OVERWRITE_ADD_FILES;
const gboolean sepolicy_enabled = options->sepolicy && !repo->disable_xattrs; const gboolean sepolicy_enabled = options->sepolicy && !repo->disable_xattrs;
@ -252,33 +254,26 @@ create_file_copy_from_input_at (OstreeRepo *repo,
} }
else if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR) else if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR)
{ {
glnx_fd_close int temp_fd = -1; g_auto(OtTmpfile) tmpf = { 0, };
guint32 file_mode;
GLnxLinkTmpfileReplaceMode replace_mode; GLnxLinkTmpfileReplaceMode replace_mode;
file_mode = g_file_info_get_attribute_uint32 (file_info, "unix::mode"); if (!ot_open_tmpfile_linkable_at (destination_dfd, ".", O_WRONLY | O_CLOEXEC,
/* Don't make setuid files on checkout when we're doing --user */ &tmpf, error))
if (options->mode == OSTREE_REPO_CHECKOUT_MODE_USER)
file_mode &= ~(S_ISUID|S_ISGID);
if (!glnx_open_tmpfile_linkable_at (destination_dfd, ".", O_WRONLY | O_CLOEXEC,
&temp_fd, &temp_filename,
error))
return FALSE; return FALSE;
if (sepolicy_enabled) if (sepolicy_enabled && options->mode != OSTREE_REPO_CHECKOUT_MODE_USER)
{ {
g_autofree char *label = NULL; g_autofree char *label = NULL;
if (!ostree_sepolicy_get_label (options->sepolicy, if (!ostree_sepolicy_get_label (options->sepolicy, state->selabel_path_buf->str,
state->selabel_path_buf->str,
g_file_info_get_attribute_uint32 (file_info, "unix::mode"), g_file_info_get_attribute_uint32 (file_info, "unix::mode"),
&label, cancellable, error)) &label, cancellable, error))
return FALSE; return FALSE;
if (fsetxattr (temp_fd, "security.selinux", label, strlen (label), 0) < 0)
if (fsetxattr (tmpf.fd, "security.selinux", label, strlen (label), 0) < 0)
return glnx_throw_errno_prefix (error, "Setting security.selinux"); return glnx_throw_errno_prefix (error, "Setting security.selinux");
} }
if (!write_regular_file_content (repo, options, temp_fd, file_info, xattrs, input, if (!write_regular_file_content (repo, options, tmpf.fd, file_info, xattrs, input,
cancellable, error)) cancellable, error))
return FALSE; return FALSE;
@ -290,10 +285,9 @@ create_file_copy_from_input_at (OstreeRepo *repo,
else else
replace_mode = GLNX_LINK_TMPFILE_NOREPLACE; replace_mode = GLNX_LINK_TMPFILE_NOREPLACE;
if (!glnx_link_tmpfile_at (destination_dfd, replace_mode, if (!ot_link_tmpfile_at (&tmpf, replace_mode,
temp_fd, temp_filename, destination_dfd, destination_dfd, destination_name,
destination_name, error))
error))
return FALSE; return FALSE;
} }
else else
@ -699,9 +693,9 @@ checkout_tree_at_recurse (OstreeRepo *self,
g_autoptr(GVariant) contents_csum_v = NULL; g_autoptr(GVariant) contents_csum_v = NULL;
while (g_variant_iter_loop (&viter, "(&s@ay)", &fname, &contents_csum_v)) while (g_variant_iter_loop (&viter, "(&s@ay)", &fname, &contents_csum_v))
{ {
const size_t namelen = strlen (fname); const size_t origlen = selabel_path_buf ? selabel_path_buf->len : 0;
if (selabel_path_buf) if (selabel_path_buf)
g_string_append_len (selabel_path_buf, fname, namelen); g_string_append (selabel_path_buf, fname);
char tmp_checksum[OSTREE_SHA256_STRING_LEN+1]; char tmp_checksum[OSTREE_SHA256_STRING_LEN+1];
_ostree_checksum_inplace_from_bytes_v (contents_csum_v, tmp_checksum); _ostree_checksum_inplace_from_bytes_v (contents_csum_v, tmp_checksum);
@ -713,7 +707,7 @@ checkout_tree_at_recurse (OstreeRepo *self,
return FALSE; return FALSE;
if (selabel_path_buf) if (selabel_path_buf)
g_string_truncate (selabel_path_buf, selabel_path_buf->len - namelen); g_string_truncate (selabel_path_buf, origlen);
} }
contents_csum_v = NULL; /* iter_loop freed it */ contents_csum_v = NULL; /* iter_loop freed it */
} }
@ -728,10 +722,10 @@ checkout_tree_at_recurse (OstreeRepo *self,
while (g_variant_iter_loop (&viter, "(&s@ay@ay)", &dname, while (g_variant_iter_loop (&viter, "(&s@ay@ay)", &dname,
&subdirtree_csum_v, &subdirmeta_csum_v)) &subdirtree_csum_v, &subdirmeta_csum_v))
{ {
const size_t namelen = strlen (dname); const size_t origlen = selabel_path_buf ? selabel_path_buf->len : 0;
if (selabel_path_buf) if (selabel_path_buf)
{ {
g_string_append_len (selabel_path_buf, dname, namelen); g_string_append (selabel_path_buf, dname);
g_string_append_c (selabel_path_buf, '/'); g_string_append_c (selabel_path_buf, '/');
} }
@ -746,7 +740,7 @@ checkout_tree_at_recurse (OstreeRepo *self,
return FALSE; return FALSE;
if (selabel_path_buf) if (selabel_path_buf)
g_string_truncate (selabel_path_buf, selabel_path_buf->len - namelen); g_string_truncate (selabel_path_buf, origlen);
} }
} }
@ -755,8 +749,18 @@ checkout_tree_at_recurse (OstreeRepo *self,
*/ */
if (!did_exist) if (!did_exist)
{ {
if (TEMP_FAILURE_RETRY (fchmod (destination_dfd, mode)) < 0) guint32 canonical_mode;
return glnx_throw_errno (error); /* Silently ignore world-writable directories (plus sticky, suid bits,
* etc.) when doing a checkout for bare-user-only repos, or if requested explicitly.
* This is related to the logic in ostree-repo-commit.c for files.
* See also: https://github.com/ostreedev/ostree/pull/909 i.e. 0c4b3a2b6da950fd78e63f9afec602f6188f1ab0
*/
if (self->mode == OSTREE_REPO_MODE_BARE_USER_ONLY || options->bareuseronly_dirs)
canonical_mode = (mode & 0775) | S_IFDIR;
else
canonical_mode = mode;
if (TEMP_FAILURE_RETRY (fchmod (destination_dfd, canonical_mode)) < 0)
return glnx_throw_errno_prefix (error, "fchmod");
} }
if (!did_exist && options->mode != OSTREE_REPO_CHECKOUT_MODE_USER) if (!did_exist && options->mode != OSTREE_REPO_CHECKOUT_MODE_USER)

File diff suppressed because it is too large Load Diff

View File

@ -148,7 +148,6 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
const char *commit, const char *commit,
GError **error) GError **error)
{ {
OstreeRepoFile *ret = NULL;
g_autoptr(GVariant) commit_v = NULL; g_autoptr(GVariant) commit_v = NULL;
g_autoptr(GVariant) tree_contents_csum_v = NULL; g_autoptr(GVariant) tree_contents_csum_v = NULL;
g_autoptr(GVariant) tree_metadata_csum_v = NULL; g_autoptr(GVariant) tree_metadata_csum_v = NULL;
@ -161,7 +160,7 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_COMMIT, if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_COMMIT,
commit, &commit_v, error)) commit, &commit_v, error))
goto out; return NULL;
/* PARSE OSTREE_OBJECT_TYPE_COMMIT */ /* PARSE OSTREE_OBJECT_TYPE_COMMIT */
g_variant_get_child (commit_v, 6, "@ay", &tree_contents_csum_v); g_variant_get_child (commit_v, 6, "@ay", &tree_contents_csum_v);
@ -172,17 +171,13 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
ostree_checksum_inplace_from_bytes (g_variant_get_data (tree_metadata_csum_v), ostree_checksum_inplace_from_bytes (g_variant_get_data (tree_metadata_csum_v),
tree_metadata_csum); tree_metadata_csum);
ret = _ostree_repo_file_new_root (repo, tree_contents_csum, tree_metadata_csum); return _ostree_repo_file_new_root (repo, tree_contents_csum, tree_metadata_csum);
out:
return ret;
} }
static gboolean static gboolean
do_resolve (OstreeRepoFile *self, do_resolve (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GVariant) root_contents = NULL; g_autoptr(GVariant) root_contents = NULL;
g_autoptr(GVariant) root_metadata = NULL; g_autoptr(GVariant) root_metadata = NULL;
@ -190,27 +185,24 @@ do_resolve (OstreeRepoFile *self,
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE,
self->tree_contents_checksum, &root_contents, error)) self->tree_contents_checksum, &root_contents, error))
goto out; return FALSE;
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META,
self->tree_metadata_checksum, &root_metadata, error)) self->tree_metadata_checksum, &root_metadata, error))
goto out; return FALSE;
self->tree_metadata = root_metadata; self->tree_metadata = root_metadata;
root_metadata = NULL; root_metadata = NULL;
self->tree_contents = root_contents; self->tree_contents = root_contents;
root_contents = NULL; root_contents = NULL;
ret = TRUE; return TRUE;
out:
return ret;
} }
static gboolean static gboolean
do_resolve_nonroot (OstreeRepoFile *self, do_resolve_nonroot (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
gboolean is_dir; gboolean is_dir;
int i; int i;
g_autoptr(GVariant) container = NULL; g_autoptr(GVariant) container = NULL;
@ -221,13 +213,13 @@ do_resolve_nonroot (OstreeRepoFile *self,
g_autofree char *tmp_checksum = NULL; g_autofree char *tmp_checksum = NULL;
if (!ostree_repo_file_ensure_resolved (self->parent, error)) if (!ostree_repo_file_ensure_resolved (self->parent, error))
goto out; return FALSE;
if (!self->parent->tree_contents) if (!self->parent->tree_contents)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY,
"Not a directory"); "Not a directory");
goto out; return FALSE;
} }
i = ostree_repo_file_tree_find_child (self->parent, self->name, &is_dir, &container); i = ostree_repo_file_tree_find_child (self->parent, self->name, &is_dir, &container);
@ -235,7 +227,7 @@ do_resolve_nonroot (OstreeRepoFile *self,
if (i < 0) if (i < 0)
{ {
set_error_noent ((GFile*)self, error); set_error_noent ((GFile*)self, error);
goto out; return FALSE;
} }
if (is_dir) if (is_dir)
@ -255,14 +247,14 @@ do_resolve_nonroot (OstreeRepoFile *self,
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE,
tmp_checksum, &tree_contents, tmp_checksum, &tree_contents,
error)) error))
goto out; return FALSE;
g_free (tmp_checksum); g_free (tmp_checksum);
tmp_checksum = ostree_checksum_from_bytes_v (metadata_csum_v); tmp_checksum = ostree_checksum_from_bytes_v (metadata_csum_v);
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META,
tmp_checksum, &tree_metadata, tmp_checksum, &tree_metadata,
error)) error))
goto out; return FALSE;
self->tree_contents = tree_contents; self->tree_contents = tree_contents;
tree_contents = NULL; tree_contents = NULL;
@ -274,35 +266,29 @@ do_resolve_nonroot (OstreeRepoFile *self,
else else
self->index = i; self->index = i;
ret = TRUE; return TRUE;
out:
return ret;
} }
gboolean gboolean
ostree_repo_file_ensure_resolved (OstreeRepoFile *self, ostree_repo_file_ensure_resolved (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
if (self->parent == NULL) if (self->parent == NULL)
{ {
if (self->tree_contents == NULL) if (self->tree_contents == NULL)
if (!do_resolve (self, error)) if (!do_resolve (self, error))
goto out; return FALSE;
} }
else else
{ {
if (self->index == -1) if (self->index == -1)
{ {
if (!do_resolve_nonroot (self, error)) if (!do_resolve_nonroot (self, error))
goto out; return FALSE;
} }
} }
ret = TRUE; return TRUE;
out:
return ret;
} }
gboolean gboolean
@ -311,25 +297,21 @@ ostree_repo_file_get_xattrs (OstreeRepoFile *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GVariant) ret_xattrs = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return FALSE;
g_autoptr(GVariant) ret_xattrs = NULL;
if (self->tree_metadata) if (self->tree_metadata)
ret_xattrs = g_variant_get_child_value (self->tree_metadata, 3); ret_xattrs = g_variant_get_child_value (self->tree_metadata, 3);
else else
{ {
if (!ostree_repo_load_file (self->repo, ostree_repo_file_get_checksum (self), if (!ostree_repo_load_file (self->repo, ostree_repo_file_get_checksum (self),
NULL, NULL, &ret_xattrs, cancellable, error)) NULL, NULL, &ret_xattrs, cancellable, error))
goto out; return FALSE;
} }
ret = TRUE;
ot_transfer_out_value(out_xattrs, &ret_xattrs); ot_transfer_out_value(out_xattrs, &ret_xattrs);
out: return TRUE;
return ret;
} }
GVariant * GVariant *
@ -721,28 +703,24 @@ query_child_info_dir (OstreeRepo *repo,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GFileInfo) ret_info = NULL;
g_autoptr(GVariant) metadata = NULL;
ret_info = g_file_info_new (); g_autoptr(GFileInfo) ret_info = g_file_info_new ();
g_file_info_set_attribute_uint32 (ret_info, "standard::type", g_file_info_set_attribute_uint32 (ret_info, "standard::type",
G_FILE_TYPE_DIRECTORY); G_FILE_TYPE_DIRECTORY);
if (g_file_attribute_matcher_matches (matcher, "unix::mode")) if (g_file_attribute_matcher_matches (matcher, "unix::mode"))
{ {
g_autoptr(GVariant) metadata = NULL;
if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_DIR_META,
metadata_checksum, &metadata, error)) metadata_checksum, &metadata, error))
goto out; return FALSE;
set_info_from_dirmeta (ret_info, metadata); set_info_from_dirmeta (ret_info, metadata);
} }
ret = TRUE;
ot_transfer_out_value(out_info, &ret_info); ot_transfer_out_value(out_info, &ret_info);
out: return TRUE;
return ret;
} }
int int
@ -890,12 +868,11 @@ ostree_repo_file_query_info (GFile *file,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
OstreeRepoFile *self = OSTREE_REPO_FILE (file); OstreeRepoFile *self = OSTREE_REPO_FILE (file);
g_autoptr(GFileInfo) info = NULL; g_autoptr(GFileInfo) info = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return NULL;
if (!self->parent) if (!self->parent)
{ {
@ -904,20 +881,14 @@ ostree_repo_file_query_info (GFile *file,
} }
else else
{ {
if (!ostree_repo_file_tree_query_child (self->parent, self->index, if (!ostree_repo_file_tree_query_child (self->parent, self->index,
attributes, flags, attributes, flags,
&info, cancellable, error)) &info, cancellable, error))
goto out; return NULL;
g_assert (info != NULL); g_assert (info != NULL);
} }
ret = TRUE; return g_steal_pointer (&info);
out:
if (!ret)
g_clear_object (&info);
else
g_object_ref (info);
return info;
} }
static GFileAttributeInfoList * static GFileAttributeInfoList *
@ -938,38 +909,44 @@ ostree_repo_file_query_writable_namespaces (GFile *file,
static GFileInputStream * static GFileInputStream *
ostree_repo_file_read (GFile *file, ostree_repo_file_read (GFile *file,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
OstreeRepoFile *self = OSTREE_REPO_FILE (file); OstreeRepoFile *self = OSTREE_REPO_FILE (file);
const char *checksum; const char *checksum;
g_autoptr(GInputStream) ret_stream = NULL; g_autoptr(GInputStream) ret_stream = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return FALSE;
if (self->tree_contents) if (self->tree_contents)
{ {
g_set_error_literal (error, G_IO_ERROR, g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
G_IO_ERROR_IS_DIRECTORY, "Can't open directory");
"Can't open directory"); return NULL;
goto out;
} }
checksum = ostree_repo_file_get_checksum (self); checksum = ostree_repo_file_get_checksum (self);
if (!ostree_repo_load_file (self->repo, checksum, &ret_stream, g_autoptr(GFileInfo) finfo = NULL;
NULL, NULL, cancellable, error)) if (!ostree_repo_load_file (self->repo, checksum, NULL,
goto out; &finfo, NULL, cancellable, error))
return NULL;
ret = TRUE; if (g_file_info_get_file_type (finfo) == G_FILE_TYPE_REGULAR)
out: {
if (!ret) if (!ostree_repo_load_file (self->repo, checksum, &ret_stream,
g_clear_object (&ret_stream); NULL, NULL, cancellable, error))
return NULL;
}
else else
g_object_ref (ret_stream); {
return (GFileInputStream*)ret_stream; g_autoptr(GFile) parent = g_file_get_parent (file);
const char *target = g_file_info_get_symlink_target (finfo);
g_autoptr(GFile) dest = g_file_resolve_relative_path (parent, target);
return g_file_read (dest, cancellable, error);
}
return g_steal_pointer (&ret_stream);
} }
static void static void

View File

@ -640,9 +640,8 @@ aic_handle_entry (OstreeRepoArchiveImportContext *ctx,
return TRUE; return TRUE;
else else
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error, "Unsupported file type for path \"%s\"",
"Unsupported file type for path \"%s\"", path); path);
return FALSE;
} }
} }
} }

View File

@ -106,6 +106,7 @@ struct OstreeRepo {
gboolean inited; gboolean inited;
gboolean writable; gboolean writable;
gboolean is_system; /* Was this repo created via ostree_sysroot_get_repo() ? */
GError *writable_error; GError *writable_error;
gboolean in_transaction; gboolean in_transaction;
gboolean disable_fsync; gboolean disable_fsync;
@ -115,6 +116,7 @@ struct OstreeRepo {
GHashTable *updated_uncompressed_dirs; GHashTable *updated_uncompressed_dirs;
GHashTable *object_sizes; GHashTable *object_sizes;
uid_t owner_uid;
uid_t target_owner_uid; uid_t target_owner_uid;
gid_t target_owner_gid; gid_t target_owner_gid;
@ -318,28 +320,6 @@ _ostree_repo_commit_trusted_content_bare (OstreeRepo *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error); GError **error);
gboolean
_ostree_repo_open_untrusted_content_bare (OstreeRepo *self,
const char *expected_checksum,
guint64 content_len,
OstreeRepoContentBareCommit *out_state,
GOutputStream **out_stream,
gboolean *out_have_object,
GCancellable *cancellable,
GError **error);
gboolean
_ostree_repo_commit_untrusted_content_bare (OstreeRepo *self,
const char *expected_checksum,
OstreeRepoContentBareCommit *state,
guint32 uid,
guint32 gid,
guint32 mode,
GVariant *xattrs,
GCancellable *cancellable,
GError **error);
gboolean gboolean
_ostree_repo_read_bare_fd (OstreeRepo *self, _ostree_repo_read_bare_fd (OstreeRepo *self,
const char *checksum, const char *checksum,
@ -351,9 +331,12 @@ gboolean
_ostree_repo_update_mtime (OstreeRepo *self, _ostree_repo_update_mtime (OstreeRepo *self,
GError **error); GError **error);
void gboolean
_ostree_repo_add_remote (OstreeRepo *self, _ostree_repo_add_remote (OstreeRepo *self,
OstreeRemote *remote); OstreeRemote *remote);
gboolean
_ostree_repo_remove_remote (OstreeRepo *self,
OstreeRemote *remote);
OstreeRemote * OstreeRemote *
_ostree_repo_get_remote (OstreeRepo *self, _ostree_repo_get_remote (OstreeRepo *self,
const char *name, const char *name,

View File

@ -80,6 +80,7 @@ typedef struct {
GHashTable *expected_commit_sizes; /* Maps commit checksum to known size */ GHashTable *expected_commit_sizes; /* Maps commit checksum to known size */
GHashTable *commit_to_depth; /* Maps commit checksum maximum depth */ GHashTable *commit_to_depth; /* Maps commit checksum maximum depth */
GHashTable *scanned_metadata; /* Maps object name to itself */ GHashTable *scanned_metadata; /* Maps object name to itself */
GHashTable *fetched_detached_metadata; /* Set<checksum> */
GHashTable *requested_metadata; /* Maps object name to itself */ GHashTable *requested_metadata; /* Maps object name to itself */
GHashTable *requested_content; /* Maps checksum to itself */ GHashTable *requested_content; /* Maps checksum to itself */
GHashTable *requested_fallback_content; /* Maps checksum to itself */ GHashTable *requested_fallback_content; /* Maps checksum to itself */
@ -110,6 +111,7 @@ typedef struct {
gboolean is_mirror; gboolean is_mirror;
gboolean is_commit_only; gboolean is_commit_only;
gboolean is_untrusted; gboolean is_untrusted;
gboolean is_bareuseronly_files;
GPtrArray *dirs; GPtrArray *dirs;
@ -151,7 +153,7 @@ typedef struct {
guchar csum[OSTREE_SHA256_DIGEST_LEN]; guchar csum[OSTREE_SHA256_DIGEST_LEN];
char *path; char *path;
OstreeObjectType objtype; OstreeObjectType objtype;
guint recursion_depth; guint recursion_depth; /* NB: not used anymore, though might be nice to print */
} ScanObjectQueueData; } ScanObjectQueueData;
static void start_fetch (OtPullData *pull_data, FetchObjectData *fetch); static void start_fetch (OtPullData *pull_data, FetchObjectData *fetch);
@ -555,6 +557,94 @@ pull_matches_subdir (OtPullData *pull_data,
return FALSE; return FALSE;
} }
/* This bit mirrors similar code in commit_loose_content_object() for the
* bare-user-only mode. It's opt-in though for all pulls.
*/
static gboolean
validate_bareuseronly_mode (OtPullData *pull_data,
const char *checksum,
guint32 content_mode,
GError **error)
{
if (!pull_data->is_bareuseronly_files)
return TRUE;
if (S_ISREG (content_mode))
{
const guint32 invalid_modebits = ((content_mode & ~S_IFMT) & ~0775);
if (invalid_modebits > 0)
return glnx_throw (error, "object %s.file: invalid mode 0%04o with bits 0%04o",
checksum, content_mode, invalid_modebits);
}
else if (S_ISLNK (content_mode))
; /* Nothing */
else
g_assert_not_reached ();
return TRUE;
}
/* Import a single content object in the case where
* we have pull_data->remote_repo_local.
*
* One important special case here is handling the
* OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES flag.
*/
static gboolean
import_one_local_content_object (OtPullData *pull_data,
const char *checksum,
GCancellable *cancellable,
GError **error)
{
g_assert (pull_data->remote_repo_local);
const gboolean trusted = !pull_data->is_untrusted;
if (trusted && !pull_data->is_bareuseronly_files)
{
if (!ostree_repo_import_object_from_with_trust (pull_data->repo, pull_data->remote_repo_local,
OSTREE_OBJECT_TYPE_FILE, checksum,
trusted,
cancellable, error))
return FALSE;
}
else
{
/* In this case we either need to validate the checksum
* or the file mode.
*/
g_autoptr(GInputStream) content_input = NULL;
g_autoptr(GFileInfo) content_finfo = NULL;
g_autoptr(GVariant) content_xattrs = NULL;
if (!ostree_repo_load_file (pull_data->remote_repo_local, checksum,
&content_input, &content_finfo, &content_xattrs,
cancellable, error))
return FALSE;
if (!validate_bareuseronly_mode (pull_data, checksum,
g_file_info_get_attribute_uint32 (content_finfo, "unix::mode"),
error))
return FALSE;
/* Now that we've potentially validated it, convert to object stream */
guint64 length;
g_autoptr(GInputStream) object_stream = NULL;
if (!ostree_raw_file_to_content_stream (content_input, content_finfo,
content_xattrs, &object_stream,
&length, cancellable, error))
return FALSE;
g_autofree guchar *real_csum = NULL;
if (!ostree_repo_write_content (pull_data->repo, checksum,
object_stream, length,
&real_csum,
cancellable, error))
return FALSE;
}
return TRUE;
}
static gboolean static gboolean
scan_dirtree_object (OtPullData *pull_data, scan_dirtree_object (OtPullData *pull_data,
const char *checksum, const char *checksum,
@ -563,9 +653,6 @@ scan_dirtree_object (OtPullData *pull_data,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
if (recursion_depth > OSTREE_MAX_RECURSION)
return glnx_throw (error, "Exceeded maximum recursion");
g_autoptr(GVariant) tree = NULL; g_autoptr(GVariant) tree = NULL;
if (!ostree_repo_load_variant (pull_data->repo, OSTREE_OBJECT_TYPE_DIR_TREE, checksum, if (!ostree_repo_load_variant (pull_data->repo, OSTREE_OBJECT_TYPE_DIR_TREE, checksum,
&tree, error)) &tree, error))
@ -597,15 +684,19 @@ scan_dirtree_object (OtPullData *pull_data,
&file_is_stored, cancellable, error)) &file_is_stored, cancellable, error))
return FALSE; return FALSE;
if (!file_is_stored && pull_data->remote_repo_local) /* If we already have this object, move on to the next */
if (file_is_stored)
continue;
/* Is this a local repo? */
if (pull_data->remote_repo_local)
{ {
if (!ostree_repo_import_object_from_with_trust (pull_data->repo, pull_data->remote_repo_local, if (!import_one_local_content_object (pull_data, file_checksum, cancellable, error))
OSTREE_OBJECT_TYPE_FILE, file_checksum, !pull_data->is_untrusted,
cancellable, error))
return FALSE; return FALSE;
} }
else if (!file_is_stored && !g_hash_table_lookup (pull_data->requested_content, file_checksum)) else if (!g_hash_table_lookup (pull_data->requested_content, file_checksum))
{ {
/* In this case we're doing HTTP pulls */
g_hash_table_add (pull_data->requested_content, file_checksum); g_hash_table_add (pull_data->requested_content, file_checksum);
enqueue_one_object_request (pull_data, file_checksum, OSTREE_OBJECT_TYPE_FILE, path, FALSE, FALSE); enqueue_one_object_request (pull_data, file_checksum, OSTREE_OBJECT_TYPE_FILE, path, FALSE, FALSE);
file_checksum = NULL; /* Transfer ownership */ file_checksum = NULL; /* Transfer ownership */
@ -780,7 +871,12 @@ content_fetch_on_complete (GObject *object,
checksum_obj = ostree_object_to_string (checksum, objtype); checksum_obj = ostree_object_to_string (checksum, objtype);
g_debug ("fetch of %s complete", checksum_obj); g_debug ("fetch of %s complete", checksum_obj);
if (pull_data->is_mirror && pull_data->repo->mode == OSTREE_REPO_MODE_ARCHIVE_Z2) /* If we're mirroring and writing into an archive repo, we can directly copy
* the content rather than paying the cost of exploding it, checksumming, and
* re-gzip.
*/
if (pull_data->is_mirror && pull_data->repo->mode == OSTREE_REPO_MODE_ARCHIVE_Z2
&& !pull_data->is_bareuseronly_files)
{ {
gboolean have_object; gboolean have_object;
if (!ostree_repo_has_object (pull_data->repo, OSTREE_OBJECT_TYPE_FILE, checksum, if (!ostree_repo_has_object (pull_data->repo, OSTREE_OBJECT_TYPE_FILE, checksum,
@ -812,16 +908,22 @@ content_fetch_on_complete (GObject *object,
} }
/* Also, delete it now that we've opened it, we'll hold /* Also, delete it now that we've opened it, we'll hold
* a reference to the fd. If we fail to write later, then * a reference to the fd. If we fail to validate or write, then
* the temp space will be cleaned up. * the temp space will be cleaned up.
*/ */
(void) unlinkat (_ostree_fetcher_get_dfd (fetcher), temp_path, 0); (void) unlinkat (_ostree_fetcher_get_dfd (fetcher), temp_path, 0);
if (!validate_bareuseronly_mode (pull_data,
checksum,
g_file_info_get_attribute_uint32 (file_info, "unix::mode"),
error))
goto out;
if (!ostree_raw_file_to_content_stream (file_in, file_info, xattrs, if (!ostree_raw_file_to_content_stream (file_in, file_info, xattrs,
&object_input, &length, &object_input, &length,
cancellable, error)) cancellable, error))
goto out; goto out;
pull_data->n_outstanding_content_write_requests++; pull_data->n_outstanding_content_write_requests++;
ostree_repo_write_content_async (pull_data->repo, checksum, ostree_repo_write_content_async (pull_data->repo, checksum,
object_input, length, object_input, length,
@ -912,8 +1014,15 @@ meta_fetch_on_complete (GObject *object,
{ {
/* There isn't any detached metadata, just fetch the commit */ /* There isn't any detached metadata, just fetch the commit */
g_clear_error (&local_error); g_clear_error (&local_error);
/* Now that we've at least tried to fetch it, we can proceed to
* scan/fetch the commit object */
g_hash_table_add (pull_data->fetched_detached_metadata, g_strdup (checksum));
if (!fetch_data->object_is_stored) if (!fetch_data->object_is_stored)
enqueue_one_object_request (pull_data, checksum, objtype, fetch_data->path, FALSE, FALSE); enqueue_one_object_request (pull_data, checksum, objtype, fetch_data->path, FALSE, FALSE);
else
queue_scan_one_metadata_object (pull_data, checksum, objtype, fetch_data->path, 0);
} }
/* When traversing parents, do not fail on a missing commit. /* When traversing parents, do not fail on a missing commit.
@ -960,8 +1069,12 @@ meta_fetch_on_complete (GObject *object,
pull_data->cancellable, error)) pull_data->cancellable, error))
goto out; goto out;
g_hash_table_add (pull_data->fetched_detached_metadata, g_strdup (checksum));
if (!fetch_data->object_is_stored) if (!fetch_data->object_is_stored)
enqueue_one_object_request (pull_data, checksum, objtype, fetch_data->path, FALSE, FALSE); enqueue_one_object_request (pull_data, checksum, objtype, fetch_data->path, FALSE, FALSE);
else
queue_scan_one_metadata_object (pull_data, checksum, objtype, fetch_data->path, 0);
} }
else else
{ {
@ -977,7 +1090,7 @@ meta_fetch_on_complete (GObject *object,
if (!write_commitpartial_for (pull_data, checksum, error)) if (!write_commitpartial_for (pull_data, checksum, error))
goto out; goto out;
} }
ostree_repo_write_metadata_async (pull_data->repo, objtype, checksum, metadata, ostree_repo_write_metadata_async (pull_data->repo, objtype, checksum, metadata,
pull_data->cancellable, pull_data->cancellable,
on_metadata_written, fetch_data); on_metadata_written, fetch_data);
@ -1176,13 +1289,6 @@ scan_commit_object (OtPullData *pull_data,
gint depth; gint depth;
gboolean is_partial; gboolean is_partial;
if (recursion_depth > OSTREE_MAX_RECURSION)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
"Exceeded maximum recursion");
goto out;
}
if (g_hash_table_lookup_extended (pull_data->commit_to_depth, checksum, if (g_hash_table_lookup_extended (pull_data->commit_to_depth, checksum,
NULL, &depthp)) NULL, &depthp))
{ {
@ -1377,15 +1483,20 @@ scan_one_metadata_object_c (OtPullData *pull_data,
} }
else if (is_stored && objtype == OSTREE_OBJECT_TYPE_COMMIT) else if (is_stored && objtype == OSTREE_OBJECT_TYPE_COMMIT)
{ {
/* For commits, always refetch detached metadata. */ /* Even though we already have the commit, we always try to (re)fetch the
enqueue_one_object_request (pull_data, tmp_checksum, objtype, path, TRUE, TRUE); * detached metadata before scanning it, in case new signatures appear.
* https://github.com/projectatomic/rpm-ostree/issues/630 */
if (!g_hash_table_contains (pull_data->fetched_detached_metadata, tmp_checksum))
enqueue_one_object_request (pull_data, tmp_checksum, objtype, path, TRUE, TRUE);
else
{
if (!scan_commit_object (pull_data, tmp_checksum, recursion_depth,
pull_data->cancellable, error))
goto out;
if (!scan_commit_object (pull_data, tmp_checksum, recursion_depth, g_hash_table_add (pull_data->scanned_metadata, g_variant_ref (object));
pull_data->cancellable, error)) pull_data->n_scanned_metadata++;
goto out; }
g_hash_table_add (pull_data->scanned_metadata, g_variant_ref (object));
pull_data->n_scanned_metadata++;
} }
else if (is_stored && objtype == OSTREE_OBJECT_TYPE_DIR_TREE) else if (is_stored && objtype == OSTREE_OBJECT_TYPE_DIR_TREE)
{ {
@ -2144,6 +2255,7 @@ _ostree_repo_cache_summary (OstreeRepo *self,
static OstreeFetcher * static OstreeFetcher *
_ostree_repo_remote_new_fetcher (OstreeRepo *self, _ostree_repo_remote_new_fetcher (OstreeRepo *self,
const char *remote_name, const char *remote_name,
gboolean gzip,
GError **error) GError **error)
{ {
OstreeFetcher *fetcher = NULL; OstreeFetcher *fetcher = NULL;
@ -2162,6 +2274,9 @@ _ostree_repo_remote_new_fetcher (OstreeRepo *self,
if (tls_permissive) if (tls_permissive)
fetcher_flags |= OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE; fetcher_flags |= OSTREE_FETCHER_FLAGS_TLS_PERMISSIVE;
if (gzip)
fetcher_flags |= OSTREE_FETCHER_FLAGS_TRANSFER_GZIP;
fetcher = _ostree_fetcher_new (self->tmp_dir_fd, remote_name, fetcher_flags); fetcher = _ostree_fetcher_new (self->tmp_dir_fd, remote_name, fetcher_flags);
{ {
@ -2419,7 +2534,7 @@ repo_remote_fetch_summary (OstreeRepo *self,
mainctx = g_main_context_new (); mainctx = g_main_context_new ();
g_main_context_push_thread_default (mainctx); g_main_context_push_thread_default (mainctx);
fetcher = _ostree_repo_remote_new_fetcher (self, name, error); fetcher = _ostree_repo_remote_new_fetcher (self, name, TRUE, error);
if (fetcher == NULL) if (fetcher == NULL)
goto out; goto out;
@ -2527,7 +2642,7 @@ static gboolean
reinitialize_fetcher (OtPullData *pull_data, const char *remote_name, GError **error) reinitialize_fetcher (OtPullData *pull_data, const char *remote_name, GError **error)
{ {
g_clear_object (&pull_data->fetcher); g_clear_object (&pull_data->fetcher);
pull_data->fetcher = _ostree_repo_remote_new_fetcher (pull_data->repo, remote_name, error); pull_data->fetcher = _ostree_repo_remote_new_fetcher (pull_data->repo, remote_name, FALSE, error);
if (pull_data->fetcher == NULL) if (pull_data->fetcher == NULL)
return FALSE; return FALSE;
@ -2679,7 +2794,7 @@ initiate_request (OtPullData *pull_data,
* * override-commit-ids (as): Array of specific commit IDs to fetch for refs * * override-commit-ids (as): Array of specific commit IDs to fetch for refs
* * dry-run (b): Only print information on what will be downloaded (requires static deltas) * * dry-run (b): Only print information on what will be downloaded (requires static deltas)
* * override-url (s): Fetch objects from this URL if remote specifies no metalink in options * * override-url (s): Fetch objects from this URL if remote specifies no metalink in options
* * inherit-transaction (b): Don't initiate, finish or abort a transaction, usefult to do multiple pulls in one transaction. * * inherit-transaction (b): Don't initiate, finish or abort a transaction, useful to do multiple pulls in one transaction.
* * http-headers (a(ss)): Additional headers to add to all HTTP requests * * http-headers (a(ss)): Additional headers to add to all HTTP requests
* * update-frequency (u): Frequency to call the async progress callback in milliseconds, if any; only values higher than 0 are valid * * update-frequency (u): Frequency to call the async progress callback in milliseconds, if any; only values higher than 0 are valid
*/ */
@ -2764,6 +2879,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
pull_data->is_mirror = (flags & OSTREE_REPO_PULL_FLAGS_MIRROR) > 0; pull_data->is_mirror = (flags & OSTREE_REPO_PULL_FLAGS_MIRROR) > 0;
pull_data->is_commit_only = (flags & OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY) > 0; pull_data->is_commit_only = (flags & OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY) > 0;
pull_data->is_untrusted = (flags & OSTREE_REPO_PULL_FLAGS_UNTRUSTED) > 0; pull_data->is_untrusted = (flags & OSTREE_REPO_PULL_FLAGS_UNTRUSTED) > 0;
pull_data->is_bareuseronly_files = (flags & OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES) > 0;
pull_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL; pull_data->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
if (error) if (error)
@ -2787,6 +2903,8 @@ ostree_repo_pull_with_options (OstreeRepo *self,
(GDestroyNotify)g_free); (GDestroyNotify)g_free);
pull_data->scanned_metadata = g_hash_table_new_full (ostree_hash_object_name, g_variant_equal, pull_data->scanned_metadata = g_hash_table_new_full (ostree_hash_object_name, g_variant_equal,
(GDestroyNotify)g_variant_unref, NULL); (GDestroyNotify)g_variant_unref, NULL);
pull_data->fetched_detached_metadata = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify)g_free, NULL);
pull_data->requested_content = g_hash_table_new_full (g_str_hash, g_str_equal, pull_data->requested_content = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify)g_free, NULL); (GDestroyNotify)g_free, NULL);
pull_data->requested_fallback_content = g_hash_table_new_full (g_str_hash, g_str_equal, pull_data->requested_fallback_content = g_hash_table_new_full (g_str_hash, g_str_equal,
@ -3029,11 +3147,15 @@ ostree_repo_pull_with_options (OstreeRepo *self,
} }
} }
/* For local pulls, default to disabling static deltas so that the if (pull_data->remote_repo_local)
* exact object files are copied. {
*/ /* For local pulls, default to disabling static deltas so that the
if (pull_data->remote_repo_local && !pull_data->require_static_deltas) * exact object files are copied.
pull_data->disable_static_deltas = TRUE; */
if (!pull_data->require_static_deltas)
pull_data->disable_static_deltas = TRUE;
}
/* We can't use static deltas if pulling into an archive-z2 repo. */ /* We can't use static deltas if pulling into an archive-z2 repo. */
if (self->mode == OSTREE_REPO_MODE_ARCHIVE_Z2) if (self->mode == OSTREE_REPO_MODE_ARCHIVE_Z2)
@ -3161,8 +3283,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
if (pull_data->summary) if (pull_data->summary)
{ {
refs = g_variant_get_child_value (pull_data->summary, 0); refs = g_variant_get_child_value (pull_data->summary, 0);
n = g_variant_n_children (refs); for (i = 0, n = g_variant_n_children (refs); i < n; i++)
for (i = 0; i < n; i++)
{ {
const char *refname; const char *refname;
g_autoptr(GVariant) ref = g_variant_get_child_value (refs, i); g_autoptr(GVariant) ref = g_variant_get_child_value (refs, i);
@ -3229,7 +3350,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
char *commitid = commitid_strviter ? g_strdup (*commitid_strviter) : NULL; char *commitid = commitid_strviter ? g_strdup (*commitid_strviter) : NULL;
g_hash_table_insert (requested_refs_to_fetch, g_strdup (branch), commitid); g_hash_table_insert (requested_refs_to_fetch, g_strdup (branch), commitid);
} }
strviter++; strviter++;
if (commitid_strviter) if (commitid_strviter)
commitid_strviter++; commitid_strviter++;
@ -3365,7 +3486,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
ret = TRUE; ret = TRUE;
goto out; goto out;
} }
g_assert_cmpint (pull_data->n_outstanding_metadata_fetches, ==, 0); g_assert_cmpint (pull_data->n_outstanding_metadata_fetches, ==, 0);
g_assert_cmpint (pull_data->n_outstanding_metadata_write_requests, ==, 0); g_assert_cmpint (pull_data->n_outstanding_metadata_write_requests, ==, 0);
g_assert_cmpint (pull_data->n_outstanding_content_fetches, ==, 0); g_assert_cmpint (pull_data->n_outstanding_content_fetches, ==, 0);
@ -3378,9 +3499,9 @@ ostree_repo_pull_with_options (OstreeRepo *self,
const char *checksum = value; const char *checksum = value;
g_autofree char *remote_ref = NULL; g_autofree char *remote_ref = NULL;
g_autofree char *original_rev = NULL; g_autofree char *original_rev = NULL;
if (pull_data->remote_name) if (pull_data->remote_name)
remote_ref = g_strdup_printf ("%s/%s", pull_data->remote_name, ref); remote_ref = g_strdup_printf ("%s:%s", pull_data->remote_name, ref);
else else
remote_ref = g_strdup (ref); remote_ref = g_strdup (ref);
@ -3397,7 +3518,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
} }
} }
if (pull_data->is_mirror && pull_data->summary_data) if (pull_data->is_mirror && pull_data->summary_data && !refs_to_fetch && !configured_branches)
{ {
GLnxFileReplaceFlags replaceflag = GLnxFileReplaceFlags replaceflag =
pull_data->repo->disable_fsync ? GLNX_FILE_REPLACE_NODATASYNC : 0; pull_data->repo->disable_fsync ? GLNX_FILE_REPLACE_NODATASYNC : 0;
@ -3467,15 +3588,16 @@ ostree_repo_pull_with_options (OstreeRepo *self,
if (!ot_ensure_unlinked_at (pull_data->repo->repo_dir_fd, commitpartial_path, 0)) if (!ot_ensure_unlinked_at (pull_data->repo->repo_dir_fd, commitpartial_path, 0))
goto out; goto out;
} }
g_hash_table_iter_init (&hash_iter, commits_to_fetch);
while (g_hash_table_iter_next (&hash_iter, &key, &value))
{
const char *commit = value;
g_autofree char *commitpartial_path = _ostree_get_commitpartial_path (commit);
if (!ot_ensure_unlinked_at (pull_data->repo->repo_dir_fd, commitpartial_path, 0)) g_hash_table_iter_init (&hash_iter, commits_to_fetch);
goto out; while (g_hash_table_iter_next (&hash_iter, &key, &value))
} {
const char *commit = value;
g_autofree char *commitpartial_path = _ostree_get_commitpartial_path (commit);
if (!ot_ensure_unlinked_at (pull_data->repo->repo_dir_fd, commitpartial_path, 0))
goto out;
}
} }
ret = TRUE; ret = TRUE;
@ -3509,6 +3631,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
g_clear_pointer (&pull_data->commit_to_depth, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->commit_to_depth, (GDestroyNotify) 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, (GDestroyNotify) g_hash_table_unref);
g_clear_pointer (&pull_data->scanned_metadata, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->scanned_metadata, (GDestroyNotify) g_hash_table_unref);
g_clear_pointer (&pull_data->fetched_detached_metadata, (GDestroyNotify) 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, (GDestroyNotify) g_hash_table_unref);
g_clear_pointer (&pull_data->requested_content, (GDestroyNotify) g_hash_table_unref); g_clear_pointer (&pull_data->requested_content, (GDestroyNotify) 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, (GDestroyNotify) g_hash_table_unref);

View File

@ -45,9 +45,8 @@ _ostree_static_delta_parse_checksum_array (GVariant *array,
if (G_UNLIKELY(n > (G_MAXUINT32/OSTREE_STATIC_DELTA_OBJTYPE_CSUM_LEN) || if (G_UNLIKELY(n > (G_MAXUINT32/OSTREE_STATIC_DELTA_OBJTYPE_CSUM_LEN) ||
(n_checksums * OSTREE_STATIC_DELTA_OBJTYPE_CSUM_LEN) != n)) (n_checksums * OSTREE_STATIC_DELTA_OBJTYPE_CSUM_LEN) != n))
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error,
"Invalid checksum array length %" G_GSIZE_FORMAT, n); "Invalid checksum array length %" G_GSIZE_FORMAT, n);
return FALSE;
} }
*out_checksums_array = (gpointer)g_variant_get_data (array); *out_checksums_array = (gpointer)g_variant_get_data (array);

View File

@ -115,9 +115,7 @@ read_varuint64 (StaticDeltaExecutionState *state,
gsize bytes_read; gsize bytes_read;
if (!_ostree_read_varuint64 (state->opdata, state->oplen, out_value, &bytes_read)) if (!_ostree_read_varuint64 (state->opdata, state->oplen, out_value, &bytes_read))
{ {
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error, "%s", "Unexpected EOF reading varint");
"Unexpected EOF reading varint");
return FALSE;
} }
state->opdata += bytes_read; state->opdata += bytes_read;
state->oplen -= bytes_read; state->oplen -= bytes_read;
@ -692,7 +690,8 @@ dispatch_open (OstreeRepo *repo,
if (!state->stats_only) if (!state->stats_only)
{ {
g_assert (repo->mode == OSTREE_REPO_MODE_BARE || g_assert (repo->mode == OSTREE_REPO_MODE_BARE ||
repo->mode == OSTREE_REPO_MODE_BARE_USER); repo->mode == OSTREE_REPO_MODE_BARE_USER ||
repo->mode == OSTREE_REPO_MODE_BARE_USER_ONLY);
} }
if (!open_output_target (state, cancellable, error)) if (!open_output_target (state, cancellable, error))

View File

@ -150,24 +150,28 @@ _ostree_repo_get_remote_inherited (OstreeRepo *self,
return g_steal_pointer (&remote); return g_steal_pointer (&remote);
} }
void gboolean
_ostree_repo_add_remote (OstreeRepo *self, _ostree_repo_add_remote (OstreeRepo *self,
OstreeRemote *remote) OstreeRemote *remote)
{ {
g_return_if_fail (self != NULL); gboolean already_existed;
g_return_if_fail (remote != NULL);
g_return_if_fail (remote->name != NULL); g_return_val_if_fail (self != NULL, FALSE);
g_return_val_if_fail (remote != NULL, FALSE);
g_return_val_if_fail (remote->name != NULL, FALSE);
g_mutex_lock (&self->remotes_lock); g_mutex_lock (&self->remotes_lock);
g_hash_table_replace (self->remotes, remote->name, ostree_remote_ref (remote)); already_existed = g_hash_table_replace (self->remotes, remote->name, ostree_remote_ref (remote));
g_mutex_unlock (&self->remotes_lock); g_mutex_unlock (&self->remotes_lock);
return already_existed;
} }
static gboolean gboolean
ost_repo_remove_remote (OstreeRepo *self, _ostree_repo_remove_remote (OstreeRepo *self,
OstreeRemote *remote) OstreeRemote *remote)
{ {
gboolean removed; gboolean removed;
@ -706,6 +710,12 @@ ostree_repo_is_system (OstreeRepo *repo)
g_return_val_if_fail (OSTREE_IS_REPO (repo), FALSE); g_return_val_if_fail (OSTREE_IS_REPO (repo), FALSE);
/* If we were created via ostree_sysroot_get_repo(), we know the answer is yes
* without having to compare file paths.
*/
if (repo->is_system)
return TRUE;
default_repo_path = get_default_repo_path (repo->sysroot_dir); default_repo_path = get_default_repo_path (repo->sysroot_dir);
return g_file_equal (repo->repodir, default_repo_path); return g_file_equal (repo->repodir, default_repo_path);
@ -882,10 +892,7 @@ impl_repo_remote_add (OstreeRepo *self,
name, remote->file ? gs_file_get_path_cached (remote->file) : "(in config)"); name, remote->file ? gs_file_get_path_cached (remote->file) : "(in config)");
} }
remote = ostree_remote_new (); remote = ostree_remote_new (name);
remote->name = g_strdup (name);
remote->group = g_strdup_printf ("remote \"%s\"", name);
remote->keyring = g_strdup_printf ("%s.trustedkeys.gpg", name);
/* The OstreeRepo maintains its own internal system root path, /* The OstreeRepo maintains its own internal system root path,
* so we need to not only check if a "sysroot" argument was given * so we need to not only check if a "sysroot" argument was given
@ -1039,7 +1046,7 @@ impl_repo_remote_delete (OstreeRepo *self,
if (!ot_ensure_unlinked_at (self->repo_dir_fd, remote->keyring, error)) if (!ot_ensure_unlinked_at (self->repo_dir_fd, remote->keyring, error))
return FALSE; return FALSE;
ost_repo_remove_remote (self, remote); _ostree_repo_remove_remote (self, remote);
return TRUE; return TRUE;
} }
@ -1322,7 +1329,6 @@ ostree_repo_remote_gpg_import (OstreeRepo *self,
struct stat stbuf; struct stat stbuf;
gpgme_error_t gpg_error; gpgme_error_t gpg_error;
gboolean ret = FALSE; gboolean ret = FALSE;
const GLnxFileCopyFlags copyflags = self->disable_xattrs ? GLNX_FILE_COPY_NOXATTRS : 0;
g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE); g_return_val_if_fail (OSTREE_IS_REPO (self), FALSE);
g_return_val_if_fail (name != NULL, FALSE); g_return_val_if_fail (name != NULL, FALSE);
@ -1446,7 +1452,7 @@ ostree_repo_remote_gpg_import (OstreeRepo *self,
{ {
if (!glnx_file_copy_at (self->repo_dir_fd, remote->keyring, if (!glnx_file_copy_at (self->repo_dir_fd, remote->keyring,
&stbuf, target_temp_fd, "pubring.gpg", &stbuf, target_temp_fd, "pubring.gpg",
copyflags, cancellable, error)) GLNX_FILE_COPY_NOXATTRS, cancellable, error))
{ {
g_prefix_error (error, "Unable to copy remote's keyring: "); g_prefix_error (error, "Unable to copy remote's keyring: ");
goto out; goto out;
@ -1530,7 +1536,7 @@ ostree_repo_remote_gpg_import (OstreeRepo *self,
* updated keyring in the target context's temporary directory. */ * updated keyring in the target context's temporary directory. */
if (!glnx_file_copy_at (target_temp_fd, "pubring.gpg", NULL, if (!glnx_file_copy_at (target_temp_fd, "pubring.gpg", NULL,
self->repo_dir_fd, remote->keyring, self->repo_dir_fd, remote->keyring,
copyflags | GLNX_FILE_COPY_OVERWRITE, GLNX_FILE_COPY_NOXATTRS | GLNX_FILE_COPY_OVERWRITE,
cancellable, error)) cancellable, error))
goto out; goto out;
@ -2086,6 +2092,7 @@ ostree_repo_open (OstreeRepo *self,
if (fstat (self->objects_dir_fd, &stbuf) != 0) if (fstat (self->objects_dir_fd, &stbuf) != 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
self->owner_uid = stbuf.st_uid;
if (stbuf.st_uid != getuid () || stbuf.st_gid != getgid ()) if (stbuf.st_uid != getuid () || stbuf.st_gid != getgid ())
{ {
@ -2495,19 +2502,33 @@ load_metadata_internal (OstreeRepo *self,
return TRUE; return TRUE;
} }
/* Basically fstatat(), but also looks in both the committed and staging
* directories, and returns *out_dfd for where we found the object.
*/
static gboolean static gboolean
query_info_for_bare_content_object (OstreeRepo *self, stat_bare_content_object (OstreeRepo *self,
const char *loose_path_buf, const char *loose_path_buf,
GFileInfo **out_info, int *out_dfd,
GCancellable *cancellable, GFileInfo **out_info,
GError **error) GCancellable *cancellable,
GError **error)
{ {
struct stat stbuf; struct stat stbuf;
int res;
int dirfd;
if (TEMP_FAILURE_RETRY (fstatat (self->objects_dir_fd, loose_path_buf, &stbuf, AT_SYMLINK_NOFOLLOW)) < 0) dirfd = self->objects_dir_fd;
res = TEMP_FAILURE_RETRY (fstatat (dirfd, loose_path_buf, &stbuf, AT_SYMLINK_NOFOLLOW));
if (res < 0 && errno == ENOENT && self->commit_stagedir_fd != -1)
{
dirfd = self->commit_stagedir_fd;
res = TEMP_FAILURE_RETRY (fstatat (dirfd, loose_path_buf, &stbuf, AT_SYMLINK_NOFOLLOW));
}
if (res < 0)
{ {
if (errno == ENOENT) if (errno == ENOENT)
{ {
*out_dfd = -1;
*out_info = NULL; *out_info = NULL;
return TRUE; return TRUE;
} }
@ -2522,13 +2543,14 @@ query_info_for_bare_content_object (OstreeRepo *self,
} }
else if (S_ISLNK (stbuf.st_mode)) else if (S_ISLNK (stbuf.st_mode))
{ {
if (!ot_readlinkat_gfile_info (self->objects_dir_fd, loose_path_buf, if (!ot_readlinkat_gfile_info (dirfd, loose_path_buf,
ret_info, cancellable, error)) ret_info, cancellable, error))
return FALSE; return FALSE;
} }
else else
return glnx_throw (error, "Not a regular file or symlink: %s", loose_path_buf); return glnx_throw (error, "Not a regular file or symlink: %s", loose_path_buf);
*out_dfd = dirfd;
ot_transfer_out_value (out_info, &ret_info); ot_transfer_out_value (out_info, &ret_info);
return TRUE; return TRUE;
} }
@ -2569,6 +2591,12 @@ _ostree_repo_read_bare_fd (OstreeRepo *self,
if (!ot_openat_ignore_enoent (self->objects_dir_fd, loose_path_buf, out_fd, error)) if (!ot_openat_ignore_enoent (self->objects_dir_fd, loose_path_buf, out_fd, error))
return FALSE; return FALSE;
if (*out_fd == -1 && self->commit_stagedir_fd != -1)
{
if (!ot_openat_ignore_enoent (self->commit_stagedir_fd, loose_path_buf, out_fd, error))
return FALSE;
}
if (*out_fd == -1) if (*out_fd == -1)
{ {
if (self->parent_repo) if (self->parent_repo)
@ -2590,9 +2618,9 @@ _ostree_repo_read_bare_fd (OstreeRepo *self,
* ostree_repo_load_file: * ostree_repo_load_file:
* @self: Repo * @self: Repo
* @checksum: ASCII SHA256 checksum * @checksum: ASCII SHA256 checksum
* @out_input: (out) (allow-none): File content * @out_input: (out) (optional) (nullable): File content
* @out_file_info: (out) (allow-none): File information * @out_file_info: (out) (optional) (nullable): File information
* @out_xattrs: (out) (allow-none): Extended attributes * @out_xattrs: (out) (optional) (nullable): Extended attributes
* @cancellable: Cancellable * @cancellable: Cancellable
* @error: Error * @error: Error
* *
@ -2655,9 +2683,11 @@ ostree_repo_load_file (OstreeRepo *self,
} }
else else
{ {
if (!query_info_for_bare_content_object (self, loose_path_buf, int objdir_fd; /* referenced */
&ret_file_info, if (!stat_bare_content_object (self, loose_path_buf,
cancellable, error)) &objdir_fd,
&ret_file_info,
cancellable, error))
return FALSE; return FALSE;
if (ret_file_info) if (ret_file_info)
@ -2675,7 +2705,7 @@ ostree_repo_load_file (OstreeRepo *self,
* always do an open, then query the user.ostreemeta xattr for * always do an open, then query the user.ostreemeta xattr for
* more information. * more information.
*/ */
fd = openat (self->objects_dir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC); fd = openat (objdir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC);
if (fd < 0) if (fd < 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
@ -2729,7 +2759,7 @@ ostree_repo_load_file (OstreeRepo *self,
if (g_file_info_get_file_type (ret_file_info) == G_FILE_TYPE_REGULAR && if (g_file_info_get_file_type (ret_file_info) == G_FILE_TYPE_REGULAR &&
out_input) out_input)
{ {
fd = openat (self->objects_dir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC); fd = openat (objdir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC);
if (fd < 0) if (fd < 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
@ -2753,7 +2783,7 @@ ostree_repo_load_file (OstreeRepo *self,
{ {
glnx_fd_close int fd = -1; glnx_fd_close int fd = -1;
fd = openat (self->objects_dir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC); fd = openat (objdir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC);
if (fd < 0) if (fd < 0)
return glnx_throw_errno (error); return glnx_throw_errno (error);
@ -2777,7 +2807,7 @@ ostree_repo_load_file (OstreeRepo *self,
{ {
if (self->disable_xattrs) if (self->disable_xattrs)
ret_xattrs = g_variant_ref_sink (g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0)); ret_xattrs = g_variant_ref_sink (g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0));
else if (!glnx_dfd_name_get_all_xattrs (self->objects_dir_fd, loose_path_buf, else if (!glnx_dfd_name_get_all_xattrs (objdir_fd, loose_path_buf,
&ret_xattrs, &ret_xattrs,
cancellable, error)) cancellable, error))
return FALSE; return FALSE;
@ -3043,75 +3073,18 @@ copy_detached_metadata (OstreeRepo *self,
return TRUE; return TRUE;
} }
/* Special case between bare-user and bare-user-only,
* mostly for https://github.com/flatpak/flatpak/issues/845
* see below for any more comments.
*/
static gboolean static gboolean
import_one_object_copy (OstreeRepo *self, import_is_bareuser_only_conversion (OstreeRepo *src_repo,
OstreeRepo *source, OstreeRepo *dest_repo,
const char *checksum, OstreeObjectType objtype)
OstreeObjectType objtype,
gboolean trusted,
GCancellable *cancellable,
GError **error)
{ {
guint64 length; return src_repo->mode == OSTREE_REPO_MODE_BARE_USER
g_autoptr(GInputStream) object_stream = NULL; && dest_repo->mode == OSTREE_REPO_MODE_BARE_USER_ONLY
&& objtype == OSTREE_OBJECT_TYPE_FILE;
if (!ostree_repo_load_object_stream (source, objtype, checksum,
&object_stream, &length,
cancellable, error))
return FALSE;
if (objtype == OSTREE_OBJECT_TYPE_FILE)
{
if (trusted)
{
if (!ostree_repo_write_content_trusted (self, checksum,
object_stream, length,
cancellable, error))
return FALSE;
}
else
{
g_autofree guchar *real_csum = NULL;
if (!ostree_repo_write_content (self, checksum,
object_stream, length,
&real_csum,
cancellable, error))
return FALSE;
}
}
else
{
if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
{
if (!copy_detached_metadata (self, source, checksum, cancellable, error))
return FALSE;
}
if (trusted)
{
if (!ostree_repo_write_metadata_stream_trusted (self, objtype,
checksum, object_stream, length,
cancellable, error))
return FALSE;
}
else
{
g_autofree guchar *real_csum = NULL;
g_autoptr(GVariant) variant = NULL;
if (!ostree_repo_load_variant (source, objtype, checksum,
&variant, error))
return FALSE;
if (!ostree_repo_write_metadata (self, objtype,
checksum, variant,
&real_csum,
cancellable, error))
return FALSE;
}
}
return TRUE;
} }
static gboolean static gboolean
@ -3126,6 +3099,33 @@ import_one_object_link (OstreeRepo *self,
char loose_path_buf[_OSTREE_LOOSE_PATH_MAX]; char loose_path_buf[_OSTREE_LOOSE_PATH_MAX];
_ostree_loose_path (loose_path_buf, checksum, objtype, self->mode); _ostree_loose_path (loose_path_buf, checksum, objtype, self->mode);
/* Hardlinking between bare-user → bare-user-only is only possible for regular
* files, *not* symlinks, which in bare-user are stored as regular files. At
* this point we need to parse the file to see the difference.
*/
if (import_is_bareuser_only_conversion (source, self, objtype))
{
g_autoptr(GFileInfo) finfo = NULL;
if (!ostree_repo_load_file (source, checksum, NULL, &finfo, NULL,
cancellable, error))
return FALSE;
switch (g_file_info_get_file_type (finfo))
{
case G_FILE_TYPE_REGULAR:
/* This is OK, we'll drop through and try a hardlink */
break;
case G_FILE_TYPE_SYMBOLIC_LINK:
/* NOTE early return */
*out_was_supported = FALSE;
return TRUE;
default:
g_assert_not_reached ();
break;
}
}
if (!_ostree_repo_ensure_loose_objdir_at (self->objects_dir_fd, loose_path_buf, cancellable, error)) if (!_ostree_repo_ensure_loose_objdir_at (self->objects_dir_fd, loose_path_buf, cancellable, error))
return FALSE; return FALSE;
@ -3184,6 +3184,28 @@ ostree_repo_import_object_from (OstreeRepo *self,
checksum, TRUE, cancellable, error); checksum, TRUE, cancellable, error);
} }
static gboolean
import_via_hardlink_is_possible (OstreeRepo *src_repo,
OstreeRepo *dest_repo,
OstreeObjectType objtype)
{
/* We need the ability to make hardlinks */
if (src_repo->owner_uid != dest_repo->owner_uid)
return FALSE;
/* Equal modes are always compatible */
if (src_repo->mode == dest_repo->mode)
return TRUE;
/* Metadata is identical between all modes */
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
return TRUE;
/* And now a special case between bare-user and bare-user-only,
* mostly for https://github.com/flatpak/flatpak/issues/845
*/
if (import_is_bareuser_only_conversion (src_repo, dest_repo, objtype))
return TRUE;
return FALSE;
}
/** /**
* ostree_repo_import_object_from_with_trust: * ostree_repo_import_object_from_with_trust:
* @self: Destination repo * @self: Destination repo
@ -3210,29 +3232,95 @@ ostree_repo_import_object_from_with_trust (OstreeRepo *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean hardlink_was_supported = FALSE; /* We try to import via hardlink. If the remote is explicitly not trusted
* (i.e.) their checksums may be incorrect, we skip that. Also, we require the
if (trusted && /* Don't hardlink into untrusted remotes */ * repository modes to match, as well as the owner uid (since we need to be
self->mode == source->mode) * able to make hardlinks).
*/
if (trusted && import_via_hardlink_is_possible (source, self, objtype))
{ {
gboolean hardlink_was_supported = FALSE;
if (!import_one_object_link (self, source, checksum, objtype, if (!import_one_object_link (self, source, checksum, objtype,
&hardlink_was_supported, &hardlink_was_supported,
cancellable, error)) cancellable, error))
return FALSE; return FALSE;
/* If we hardlinked, we're done! */
if (hardlink_was_supported)
return TRUE;
} }
if (!hardlink_was_supported) /* The copy path */
{
gboolean has_object;
if (!ostree_repo_has_object (self, objtype, checksum, &has_object, /* First, do we have the object already? */
cancellable, error)) gboolean has_object;
if (!ostree_repo_has_object (self, objtype, checksum, &has_object,
cancellable, error))
return FALSE;
/* If we have it, we're done */
if (has_object)
return TRUE;
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
{
/* Metadata object */
g_autoptr(GVariant) variant = NULL;
if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
{
/* FIXME - cleanup detached metadata if copy below fails */
if (!copy_detached_metadata (self, source, checksum, cancellable, error))
return FALSE;
}
if (!ostree_repo_load_variant (source, objtype, checksum,
&variant, error))
return FALSE; return FALSE;
if (!has_object) if (trusted)
{ {
if (!import_one_object_copy (self, source, checksum, objtype, trusted, if (!ostree_repo_write_metadata_trusted (self, objtype,
cancellable, error)) checksum, variant,
cancellable, error))
return FALSE;
}
else
{
g_autofree guchar *real_csum = NULL;
if (!ostree_repo_write_metadata (self, objtype,
checksum, variant,
&real_csum,
cancellable, error))
return FALSE;
}
}
else
{
/* Content object */
guint64 length;
g_autoptr(GInputStream) object_stream = NULL;
if (!ostree_repo_load_object_stream (source, objtype, checksum,
&object_stream, &length,
cancellable, error))
return FALSE;
if (trusted)
{
if (!ostree_repo_write_content_trusted (self, checksum,
object_stream, length,
cancellable, error))
return FALSE;
}
else
{
g_autofree guchar *real_csum = NULL;
if (!ostree_repo_write_content (self, checksum,
object_stream, length,
&real_csum,
cancellable, error))
return FALSE; return FALSE;
} }
} }
@ -3263,9 +3351,14 @@ ostree_repo_query_object_storage_size (OstreeRepo *self,
{ {
char loose_path[_OSTREE_LOOSE_PATH_MAX]; char loose_path[_OSTREE_LOOSE_PATH_MAX];
_ostree_loose_path (loose_path, sha256, objtype, self->mode); _ostree_loose_path (loose_path, sha256, objtype, self->mode);
int res;
struct stat stbuf; struct stat stbuf;
if (TEMP_FAILURE_RETRY (fstatat (self->objects_dir_fd, loose_path, &stbuf, AT_SYMLINK_NOFOLLOW)) < 0) res = TEMP_FAILURE_RETRY (fstatat (self->objects_dir_fd, loose_path, &stbuf, AT_SYMLINK_NOFOLLOW));
if (res < 0 && errno == ENOENT && self->commit_stagedir_fd != -1)
res = TEMP_FAILURE_RETRY (fstatat (self->commit_stagedir_fd, loose_path, &stbuf, AT_SYMLINK_NOFOLLOW));
if (res < 0)
return glnx_throw_errno_prefix (error, "Querying object %s.%s", sha256, ostree_object_type_to_string (objtype)); return glnx_throw_errno_prefix (error, "Querying object %s.%s", sha256, ostree_object_type_to_string (objtype));
*out_size = stbuf.st_size; *out_size = stbuf.st_size;
@ -4470,54 +4563,55 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
g_autoptr(GHashTable) refs = NULL;
if (!ostree_repo_list_refs (self, NULL, &refs, cancellable, error))
return FALSE;
g_auto(GVariantDict) additional_metadata_builder = OT_VARIANT_BUILDER_INITIALIZER; g_auto(GVariantDict) additional_metadata_builder = OT_VARIANT_BUILDER_INITIALIZER;
g_variant_dict_init (&additional_metadata_builder, additional_metadata); g_variant_dict_init (&additional_metadata_builder, additional_metadata);
g_autoptr(GVariantBuilder) refs_builder = g_variant_builder_new (G_VARIANT_TYPE ("a(s(taya{sv}))")); g_autoptr(GVariantBuilder) refs_builder = g_variant_builder_new (G_VARIANT_TYPE ("a(s(taya{sv}))"));
g_autoptr(GList) ordered_keys = g_hash_table_get_keys (refs); {
ordered_keys = g_list_sort (ordered_keys, (GCompareFunc)strcmp); g_autoptr(GHashTable) refs = NULL;
if (!ostree_repo_list_refs (self, NULL, &refs, cancellable, error))
return FALSE;
for (GList *iter = ordered_keys; iter; iter = iter->next) g_autoptr(GList) ordered_keys = g_hash_table_get_keys (refs);
{ ordered_keys = g_list_sort (ordered_keys, (GCompareFunc)strcmp);
const char *ref = iter->data;
const char *commit = g_hash_table_lookup (refs, ref);
g_auto(GVariantDict) commit_metadata_builder = OT_VARIANT_BUILDER_INITIALIZER;
g_assert (commit); for (GList *iter = ordered_keys; iter; iter = iter->next)
{
const char *ref = iter->data;
const char *commit = g_hash_table_lookup (refs, ref);
g_auto(GVariantDict) commit_metadata_builder = OT_VARIANT_BUILDER_INITIALIZER;
g_autofree char *remotename = NULL; g_assert (commit);
if (!ostree_parse_refspec (ref, &remotename, NULL, NULL))
g_assert_not_reached ();
/* Don't put remote refs in the summary */ g_autofree char *remotename = NULL;
if (remotename != NULL) if (!ostree_parse_refspec (ref, &remotename, NULL, NULL))
continue; g_assert_not_reached ();
g_autoptr(GVariant) commit_obj = NULL; /* Don't put remote refs in the summary */
if (!ostree_repo_load_variant (self, OSTREE_OBJECT_TYPE_COMMIT, commit, &commit_obj, error)) if (remotename != NULL)
return FALSE; continue;
g_variant_dict_init (&commit_metadata_builder, NULL); g_autoptr(GVariant) commit_obj = NULL;
if (!ostree_repo_load_variant (self, OSTREE_OBJECT_TYPE_COMMIT, commit, &commit_obj, error))
return FALSE;
/* Forward the commits timestamp if its valid. */ g_variant_dict_init (&commit_metadata_builder, NULL);
guint64 commit_timestamp = ostree_commit_get_timestamp (commit_obj);
g_autoptr(GDateTime) dt = g_date_time_new_from_unix_utc (commit_timestamp);
if (dt != NULL) /* Forward the commits timestamp if its valid. */
g_variant_dict_insert_value (&commit_metadata_builder, OSTREE_COMMIT_TIMESTAMP, guint64 commit_timestamp = ostree_commit_get_timestamp (commit_obj);
g_variant_new_uint64 (GUINT64_TO_BE (commit_timestamp))); g_autoptr(GDateTime) dt = g_date_time_new_from_unix_utc (commit_timestamp);
g_variant_builder_add_value (refs_builder, if (dt != NULL)
g_variant_new ("(s(t@ay@a{sv}))", ref, g_variant_dict_insert_value (&commit_metadata_builder, OSTREE_COMMIT_TIMESTAMP,
(guint64) g_variant_get_size (commit_obj), g_variant_new_uint64 (GUINT64_TO_BE (commit_timestamp)));
ostree_checksum_to_bytes_v (commit),
g_variant_dict_end (&commit_metadata_builder)));
}
g_variant_builder_add_value (refs_builder,
g_variant_new ("(s(t@ay@a{sv}))", ref,
(guint64) g_variant_get_size (commit_obj),
ostree_checksum_to_bytes_v (commit),
g_variant_dict_end (&commit_metadata_builder)));
}
}
{ {
g_autoptr(GPtrArray) delta_names = NULL; g_autoptr(GPtrArray) delta_names = NULL;
@ -4542,7 +4636,6 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
g_autoptr(GInputStream) in_stream = g_unix_input_stream_new (superblock_file_fd, FALSE); g_autoptr(GInputStream) in_stream = g_unix_input_stream_new (superblock_file_fd, FALSE);
if (!in_stream) if (!in_stream)
return FALSE; return FALSE;
superblock_file_fd = -1; /* Transfer ownership */
g_autofree guchar *csum = NULL; g_autofree guchar *csum = NULL;
if (!ot_gio_checksum_stream (in_stream, if (!ot_gio_checksum_stream (in_stream,
@ -4554,7 +4647,8 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], ot_gvariant_new_bytearray (csum, 32)); g_variant_dict_insert_value (&deltas_builder, delta_names->pdata[i], ot_gvariant_new_bytearray (csum, 32));
} }
g_variant_dict_insert_value (&additional_metadata_builder, OSTREE_SUMMARY_STATIC_DELTAS, g_variant_dict_end (&deltas_builder)); if (delta_names->len > 0)
g_variant_dict_insert_value (&additional_metadata_builder, OSTREE_SUMMARY_STATIC_DELTAS, g_variant_dict_end (&deltas_builder));
} }
{ {

View File

@ -768,7 +768,8 @@ typedef struct {
gboolean process_whiteouts; gboolean process_whiteouts;
gboolean no_copy_fallback; gboolean no_copy_fallback;
gboolean force_copy; /* Since: 2017.6 */ gboolean force_copy; /* Since: 2017.6 */
gboolean unused_bools[6]; gboolean bareuseronly_dirs; /* Since: 2017.7 */
gboolean unused_bools[5];
const char *subpath; const char *subpath;
@ -1015,12 +1016,14 @@ gboolean ostree_repo_prune_from_reachable (OstreeRepo *self,
* @OSTREE_REPO_PULL_FLAGS_MIRROR: Write out refs suitable for mirrors * @OSTREE_REPO_PULL_FLAGS_MIRROR: Write out refs suitable for mirrors
* @OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY: Fetch only the commit metadata * @OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY: Fetch only the commit metadata
* @OSTREE_REPO_PULL_FLAGS_UNTRUSTED: Don't trust local remote * @OSTREE_REPO_PULL_FLAGS_UNTRUSTED: Don't trust local remote
* @OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES: Since 2017.7. Reject writes of content objects with modes outside of 0775.
*/ */
typedef enum { typedef enum {
OSTREE_REPO_PULL_FLAGS_NONE, OSTREE_REPO_PULL_FLAGS_NONE,
OSTREE_REPO_PULL_FLAGS_MIRROR = (1 << 0), OSTREE_REPO_PULL_FLAGS_MIRROR = (1 << 0),
OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY = (1 << 1), OSTREE_REPO_PULL_FLAGS_COMMIT_ONLY = (1 << 1),
OSTREE_REPO_PULL_FLAGS_UNTRUSTED = (1 << 2) OSTREE_REPO_PULL_FLAGS_UNTRUSTED = (1 << 2),
OSTREE_REPO_PULL_FLAGS_BAREUSERONLY_FILES = (1 << 3)
} OstreeRepoPullFlags; } OstreeRepoPullFlags;
_OSTREE_PUBLIC _OSTREE_PUBLIC

View File

@ -501,31 +501,27 @@ _ostree_sysroot_cleanup_internal (OstreeSysroot *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
glnx_unref_object OstreeRepo *repo = NULL;
g_return_val_if_fail (OSTREE_IS_SYSROOT (self), FALSE); g_return_val_if_fail (OSTREE_IS_SYSROOT (self), FALSE);
g_return_val_if_fail (self->loaded, FALSE); g_return_val_if_fail (self->loaded, FALSE);
if (!cleanup_other_bootversions (self, cancellable, error)) if (!cleanup_other_bootversions (self, cancellable, error))
return FALSE; return glnx_prefix_error (error, "Cleaning bootversions");
if (!cleanup_old_deployments (self, cancellable, error)) if (!cleanup_old_deployments (self, cancellable, error))
return FALSE; return glnx_prefix_error (error, "Cleaning deployments");
if (!ostree_sysroot_get_repo (self, &repo, cancellable, error))
return FALSE;
OstreeRepo *repo = ostree_sysroot_repo (self);
if (!generate_deployment_refs (self, repo, if (!generate_deployment_refs (self, repo,
self->bootversion, self->bootversion,
self->subbootversion, self->subbootversion,
self->deployments, self->deployments,
cancellable, error)) cancellable, error))
return FALSE; return glnx_prefix_error (error, "Generating deployment refs");
if (do_prune_repo) if (do_prune_repo)
{ {
if (!prune_repo (repo, cancellable, error)) if (!prune_repo (repo, cancellable, error))
return FALSE; return glnx_prefix_error (error, "Pruning repo");
} }
return TRUE; return TRUE;

View File

@ -423,11 +423,18 @@ copy_modified_config_file (int orig_etc_fd,
return ret; return ret;
} }
/** /*
* merge_etc_changes: * merge_configuration_from:
* @sysroot: Sysroot
* @merge_deployment: Source of configuration differences
* @merge_deployment_dfd: Directory fd, may be -1
* @new_deployment: Target for merge of configuration
* @new_deployment_dfd: Directory fd for @new_deployment (may *not* be -1)
* @cancellable: Cancellable
* @error: Error
* *
* Compute the difference between @orig_etc and @modified_etc, * Compute the difference between @merge_deployment's `/usr/etc` and `/etc`, and
* and apply that to @new_etc. * apply that to @new_deployment's `/etc`.
* *
* The algorithm for computing the difference is pretty simple; it's * The algorithm for computing the difference is pretty simple; it's
* approximately equivalent to "diff -unR orig_etc modified_etc", * approximately equivalent to "diff -unR orig_etc modified_etc",
@ -435,26 +442,37 @@ copy_modified_config_file (int orig_etc_fd,
* changed in @new_etc, the modified version always wins. * changed in @new_etc, the modified version always wins.
*/ */
static gboolean static gboolean
merge_etc_changes (GFile *orig_etc, merge_configuration_from (OstreeSysroot *sysroot,
GFile *modified_etc, OstreeDeployment *merge_deployment,
GFile *new_etc, int merge_deployment_dfd,
OstreeSysrootDebugFlags flags, OstreeDeployment *new_deployment,
GCancellable *cancellable, int new_deployment_dfd,
GError **error) GCancellable *cancellable,
GError **error)
{ {
gboolean ret = FALSE; glnx_fd_close int owned_merge_deployment_dfd = -1;
g_autoptr(GPtrArray) modified = NULL; const OstreeSysrootDebugFlags flags = sysroot->debug_flags;
g_autoptr(GPtrArray) removed = NULL;
g_autoptr(GPtrArray) added = NULL;
guint i;
glnx_fd_close int orig_etc_fd = -1;
glnx_fd_close int modified_etc_fd = -1;
glnx_fd_close int new_etc_fd = -1;
modified = g_ptr_array_new_with_free_func ((GDestroyNotify) ostree_diff_item_unref); g_assert (merge_deployment != NULL && new_deployment != NULL);
removed = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); g_assert (new_deployment_dfd != -1);
added = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
/* Allow the caller to pass -1 for the merge, for convenience */
if (merge_deployment_dfd == -1)
{
g_autofree char *merge_deployment_path = ostree_sysroot_get_deployment_dirpath (sysroot, merge_deployment);
if (!glnx_opendirat (sysroot->sysroot_fd, merge_deployment_path, FALSE,
&owned_merge_deployment_dfd, error))
return FALSE;
merge_deployment_dfd = owned_merge_deployment_dfd;
}
/* TODO: get rid of GFile usage here */
g_autoptr(GFile) orig_etc = ot_fdrel_to_gfile (merge_deployment_dfd, "usr/etc");
g_autoptr(GFile) modified_etc = ot_fdrel_to_gfile (merge_deployment_dfd, "etc");
/* Return values for below */
g_autoptr(GPtrArray) modified = g_ptr_array_new_with_free_func ((GDestroyNotify) ostree_diff_item_unref);
g_autoptr(GPtrArray) removed = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
g_autoptr(GPtrArray) added = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref);
/* For now, ignore changes to xattrs; the problem is that /* For now, ignore changes to xattrs; the problem is that
* security.selinux will be different between the /usr/etc labels * security.selinux will be different between the /usr/etc labels
* and the ones in the real /etc, so they all show up as different. * and the ones in the real /etc, so they all show up as different.
@ -466,42 +484,37 @@ merge_etc_changes (GFile *orig_etc,
if (!ostree_diff_dirs (OSTREE_DIFF_FLAGS_IGNORE_XATTRS, if (!ostree_diff_dirs (OSTREE_DIFF_FLAGS_IGNORE_XATTRS,
orig_etc, modified_etc, modified, removed, added, orig_etc, modified_etc, modified, removed, added,
cancellable, error)) cancellable, error))
{ return glnx_prefix_error (error, "While computing configuration diff");
g_prefix_error (error, "While computing configuration diff: ");
goto out;
}
ot_log_structured_print_id_v (OSTREE_CONFIGMERGE_ID, ot_log_structured_print_id_v (OSTREE_CONFIGMERGE_ID,
"Copying /etc changes: %u modified, %u removed, %u added", "Copying /etc changes: %u modified, %u removed, %u added",
modified->len, modified->len,
removed->len, removed->len,
added->len); added->len);
if (!glnx_opendirat (AT_FDCWD, gs_file_get_path_cached (orig_etc), TRUE, glnx_fd_close int orig_etc_fd = -1;
&orig_etc_fd, error)) if (!glnx_opendirat (merge_deployment_dfd, "usr/etc", TRUE, &orig_etc_fd, error))
goto out; return FALSE;
if (!glnx_opendirat (AT_FDCWD, gs_file_get_path_cached (modified_etc), TRUE, glnx_fd_close int modified_etc_fd = -1;
&modified_etc_fd, error)) if (!glnx_opendirat (merge_deployment_dfd, "etc", TRUE, &modified_etc_fd, error))
goto out; return FALSE;
if (!glnx_opendirat (AT_FDCWD, gs_file_get_path_cached (new_etc), TRUE, glnx_fd_close int new_etc_fd = -1;
&new_etc_fd, error)) if (!glnx_opendirat (new_deployment_dfd, "etc", TRUE, &new_etc_fd, error))
goto out; return FALSE;
for (i = 0; i < removed->len; i++) for (guint i = 0; i < removed->len; i++)
{ {
GFile *file = removed->pdata[i]; GFile *file = removed->pdata[i];
g_autoptr(GFile) target_file = NULL;
g_autofree char *path = NULL; g_autofree char *path = NULL;
path = g_file_get_relative_path (orig_etc, file); path = g_file_get_relative_path (orig_etc, file);
g_assert (path); g_assert (path);
target_file = g_file_resolve_relative_path (new_etc, path);
if (!glnx_shutil_rm_rf_at (AT_FDCWD, gs_file_get_path_cached (target_file), cancellable, error)) if (!glnx_shutil_rm_rf_at (new_etc_fd, path, cancellable, error))
goto out; return FALSE;
} }
for (i = 0; i < modified->len; i++) for (guint i = 0; i < modified->len; i++)
{ {
OstreeDiffItem *diff = modified->pdata[i]; OstreeDiffItem *diff = modified->pdata[i];
g_autofree char *path = g_file_get_relative_path (modified_etc, diff->target); g_autofree char *path = g_file_get_relative_path (modified_etc, diff->target);
@ -510,9 +523,9 @@ merge_etc_changes (GFile *orig_etc,
if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path, if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path,
flags, cancellable, error)) flags, cancellable, error))
goto out; return FALSE;
} }
for (i = 0; i < added->len; i++) for (guint i = 0; i < added->len; i++)
{ {
GFile *file = added->pdata[i]; GFile *file = added->pdata[i];
g_autofree char *path = g_file_get_relative_path (modified_etc, file); g_autofree char *path = g_file_get_relative_path (modified_etc, file);
@ -521,12 +534,10 @@ merge_etc_changes (GFile *orig_etc,
if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path, if (!copy_modified_config_file (orig_etc_fd, modified_etc_fd, new_etc_fd, path,
flags, cancellable, error)) flags, cancellable, error))
goto out; return FALSE;
} }
ret = TRUE; return TRUE;
out:
return ret;
} }
/** /**
@ -775,16 +786,7 @@ merge_configuration (OstreeSysroot *sysroot,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autofree char *deployment_abspath = glnx_fdrel_abspath (deployment_dfd, ".");
g_autoptr(GFile) deployment_path = g_file_new_for_path (deployment_abspath);
g_autoptr(GFile) source_etc_path = NULL;
g_autoptr(GFile) source_etc_pristine_path = NULL;
g_autoptr(GFile) deployment_usretc_path = NULL;
g_autoptr(GFile) deployment_etc_path = NULL;
glnx_unref_object OstreeSePolicy *sepolicy = NULL; glnx_unref_object OstreeSePolicy *sepolicy = NULL;
gboolean etc_exists;
gboolean usretc_exists;
if (previous_deployment) if (previous_deployment)
{ {
@ -792,8 +794,6 @@ merge_configuration (OstreeSysroot *sysroot,
OstreeBootconfigParser *previous_bootconfig; OstreeBootconfigParser *previous_bootconfig;
previous_path = ostree_sysroot_get_deployment_directory (sysroot, previous_deployment); previous_path = ostree_sysroot_get_deployment_directory (sysroot, previous_deployment);
source_etc_path = g_file_resolve_relative_path (previous_path, "etc");
source_etc_pristine_path = g_file_resolve_relative_path (previous_path, "usr/etc");
previous_bootconfig = ostree_deployment_get_bootconfig (previous_deployment); previous_bootconfig = ostree_deployment_get_bootconfig (previous_deployment);
if (previous_bootconfig) if (previous_bootconfig)
@ -807,26 +807,20 @@ merge_configuration (OstreeSysroot *sysroot,
} }
} }
deployment_etc_path = g_file_get_child (deployment_path, "etc"); gboolean etc_exists = FALSE;
deployment_usretc_path = g_file_resolve_relative_path (deployment_path, "usr/etc"); if (!ot_query_exists_at (deployment_dfd, "etc", &etc_exists, error))
return FALSE;
etc_exists = g_file_query_exists (deployment_etc_path, NULL); gboolean usretc_exists = FALSE;
usretc_exists = g_file_query_exists (deployment_usretc_path, NULL); if (!ot_query_exists_at (deployment_dfd, "usr/etc", &usretc_exists, error))
return FALSE;
if (etc_exists && usretc_exists) if (etc_exists && usretc_exists)
{ return glnx_throw (error, "Tree contains both /etc and /usr/etc");
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
"Tree contains both /etc and /usr/etc");
goto out;
}
else if (etc_exists) else if (etc_exists)
{ {
/* Compatibility hack */ /* Compatibility hack */
if (renameat (deployment_dfd, "etc", deployment_dfd, "usr/etc") < 0) if (renameat (deployment_dfd, "etc", deployment_dfd, "usr/etc") < 0)
{ return glnx_throw_errno_prefix (error, "renameat");
glnx_set_error_from_errno (error);
goto out;
}
usretc_exists = TRUE; usretc_exists = TRUE;
etc_exists = FALSE; etc_exists = FALSE;
} }
@ -843,9 +837,9 @@ merge_configuration (OstreeSysroot *sysroot,
/* Here, we initialize SELinux policy from the /usr/etc inside /* Here, we initialize SELinux policy from the /usr/etc inside
* the root - this is before we've finalized the configuration * the root - this is before we've finalized the configuration
* merge into /etc. */ * merge into /etc. */
sepolicy = ostree_sepolicy_new (deployment_path, cancellable, error); sepolicy = ostree_sepolicy_new_at (deployment_dfd, cancellable, error);
if (!sepolicy) if (!sepolicy)
goto out; return FALSE;
if (ostree_sepolicy_get_name (sepolicy) != NULL) if (ostree_sepolicy_get_name (sepolicy) != NULL)
etc_co_opts.sepolicy = sepolicy; etc_co_opts.sepolicy = sepolicy;
@ -854,21 +848,21 @@ merge_configuration (OstreeSysroot *sysroot,
deployment_dfd, "etc", deployment_dfd, "etc",
ostree_deployment_get_csum (deployment), ostree_deployment_get_csum (deployment),
cancellable, error)) cancellable, error))
goto out; return FALSE;
} }
if (source_etc_path) if (previous_deployment)
{ {
if (!merge_etc_changes (source_etc_pristine_path, source_etc_path, deployment_etc_path, if (!merge_configuration_from (sysroot, previous_deployment, -1,
sysroot->debug_flags, cancellable, error)) deployment, deployment_dfd,
goto out; cancellable, error))
return FALSE;
} }
ret = TRUE;
if (out_sepolicy) if (out_sepolicy)
*out_sepolicy = g_steal_pointer (&sepolicy); *out_sepolicy = g_steal_pointer (&sepolicy);
out: return TRUE;
return ret;
} }
static gboolean static gboolean
@ -1034,9 +1028,9 @@ checksum_from_kernel_src (const char *name,
const char *last_dash = strrchr (name, '-'); const char *last_dash = strrchr (name, '-');
if (!last_dash) if (!last_dash)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, return glnx_throw (error,
"Malformed kernel/initramfs name '%s', missing '-'", name); "Malformed kernel/initramfs name '%s', missing '-'",
return FALSE; name);
} }
*out_checksum = g_strdup (last_dash + 1); *out_checksum = g_strdup (last_dash + 1);
return TRUE; return TRUE;
@ -1962,10 +1956,7 @@ ostree_sysroot_deploy_tree (OstreeSysroot *self,
if (!glnx_opendirat (self->sysroot_fd, osdeploypath, TRUE, &os_deploy_dfd, error)) if (!glnx_opendirat (self->sysroot_fd, osdeploypath, TRUE, &os_deploy_dfd, error))
return FALSE; return FALSE;
glnx_unref_object OstreeRepo *repo = NULL; OstreeRepo *repo = ostree_sysroot_repo (self);
if (!ostree_sysroot_get_repo (self, &repo, cancellable, error))
return FALSE;
glnx_unref_object OstreeDeployment *merge_deployment = NULL; glnx_unref_object OstreeDeployment *merge_deployment = NULL;
if (provided_merge_deployment != NULL) if (provided_merge_deployment != NULL)
merge_deployment = g_object_ref (provided_merge_deployment); merge_deployment = g_object_ref (provided_merge_deployment);

View File

@ -57,6 +57,7 @@ struct OstreeSysroot {
/* Only access through ostree_sysroot_get_repo() */ /* Only access through ostree_sysroot_get_repo() */
OstreeRepo *repo; OstreeRepo *repo;
gboolean repo_opened;
OstreeSysrootDebugFlags debug_flags; OstreeSysrootDebugFlags debug_flags;
}; };

View File

@ -512,6 +512,10 @@ ostree_sysroot_upgrader_pull_one_dir (OstreeSysrootUpgrader *self,
char *refs_to_fetch[] = { NULL, NULL }; char *refs_to_fetch[] = { NULL, NULL };
const char *from_revision = NULL; const char *from_revision = NULL;
g_autofree char *origin_refspec = NULL; g_autofree char *origin_refspec = NULL;
g_autofree char *new_revision = NULL;
g_autoptr(GVariant) new_variant = NULL;
g_autoptr(GVariant) new_metadata = NULL;
g_autoptr(GVariant) rebase = NULL;
if (self->override_csum != NULL) if (self->override_csum != NULL)
refs_to_fetch[0] = self->override_csum; refs_to_fetch[0] = self->override_csum;
@ -541,6 +545,48 @@ ostree_sysroot_upgrader_pull_one_dir (OstreeSysrootUpgrader *self,
ostree_async_progress_finish (progress); ostree_async_progress_finish (progress);
} }
/* Check to see if the commit marks the ref as EOL, redirecting to
* another. */
if (!ostree_repo_resolve_rev (repo, origin_refspec, FALSE,
&new_revision, error))
return FALSE;
if (!ostree_repo_load_variant (repo,
OSTREE_OBJECT_TYPE_COMMIT,
new_revision,
&new_variant,
error))
return FALSE;
g_variant_get_child (new_variant, 0, "@a{sv}", &new_metadata);
rebase = g_variant_lookup_value (new_metadata, "ostree.endoflife-rebase", G_VARIANT_TYPE_STRING);
if (rebase)
{
const char *new_ref = g_variant_get_string (rebase, 0);
/* Pull the new ref */
if (self->origin_remote &&
(upgrader_flags & OSTREE_SYSROOT_UPGRADER_PULL_FLAGS_SYNTHETIC) == 0)
{
refs_to_fetch[0] = (char *) new_ref;
if (!ostree_repo_pull_one_dir (repo, self->origin_remote, dir_to_pull, refs_to_fetch,
flags, progress, cancellable, error))
return FALSE;
}
/* Use the new ref for the rest of the update process */
g_free (self->origin_ref);
self->origin_ref = g_strdup(new_ref);
g_free (origin_refspec);
if (self->origin_remote)
origin_refspec = g_strconcat (self->origin_remote, ":", new_ref, NULL);
else
origin_refspec = g_strdup (new_ref);
g_key_file_set_string (self->origin, "origin", "refspec", origin_refspec);
}
if (self->override_csum != NULL) if (self->override_csum != NULL)
{ {
if (!ostree_repo_set_ref_immediate (repo, if (!ostree_repo_set_ref_immediate (repo,

View File

@ -26,6 +26,7 @@
#include <sys/wait.h> #include <sys/wait.h>
#include "ostree-core-private.h" #include "ostree-core-private.h"
#include "ostree-repo-private.h"
#include "ostree-sepolicy-private.h" #include "ostree-sepolicy-private.h"
#include "ostree-sysroot-private.h" #include "ostree-sysroot-private.h"
#include "ostree-deployment-private.h" #include "ostree-deployment-private.h"
@ -133,6 +134,7 @@ ostree_sysroot_constructed (GObject *object)
repo_path = g_file_resolve_relative_path (self->path, "ostree/repo"); repo_path = g_file_resolve_relative_path (self->path, "ostree/repo");
self->repo = ostree_repo_new_for_sysroot_path (repo_path, self->path); self->repo = ostree_repo_new_for_sysroot_path (repo_path, self->path);
self->repo->is_system = TRUE;
G_OBJECT_CLASS (ostree_sysroot_parent_class)->constructed (object); G_OBJECT_CLASS (ostree_sysroot_parent_class)->constructed (object);
} }
@ -727,6 +729,18 @@ ostree_sysroot_load (OstreeSysroot *self,
return ostree_sysroot_load_if_changed (self, NULL, cancellable, error); return ostree_sysroot_load_if_changed (self, NULL, cancellable, error);
} }
static gboolean
ensure_repo_opened (OstreeSysroot *self,
GError **error)
{
if (self->repo_opened)
return TRUE;
if (!ostree_repo_open (self->repo, NULL, error))
return FALSE;
self->repo_opened = TRUE;
return TRUE;
}
gboolean gboolean
ostree_sysroot_load_if_changed (OstreeSysroot *self, ostree_sysroot_load_if_changed (OstreeSysroot *self,
gboolean *out_changed, gboolean *out_changed,
@ -736,6 +750,13 @@ ostree_sysroot_load_if_changed (OstreeSysroot *self,
if (!ensure_sysroot_fd (self, error)) if (!ensure_sysroot_fd (self, error))
return FALSE; return FALSE;
/* Here we also lazily initialize the repository. We didn't do this
* previous to v2017.6, but we do now to support the error-free
* ostree_sysroot_repo() API.
*/
if (!ensure_repo_opened (self, error))
return FALSE;
int bootversion = 0; int bootversion = 0;
if (!read_current_bootversion (self, &bootversion, cancellable, error)) if (!read_current_bootversion (self, &bootversion, cancellable, error))
return FALSE; return FALSE;
@ -916,8 +937,7 @@ ostree_sysroot_get_repo (OstreeSysroot *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
/* ostree_repo_open() is idempotent. */ if (!ensure_repo_opened (self, error))
if (!ostree_repo_open (self->repo, cancellable, error))
return FALSE; return FALSE;
if (out_repo != NULL) if (out_repo != NULL)
@ -925,6 +945,24 @@ ostree_sysroot_get_repo (OstreeSysroot *self,
return TRUE; return TRUE;
} }
/**
* ostree_sysroot_repo:
* @self: Sysroot
*
* This function is a variant of ostree_sysroot_get_repo() that cannot fail, and
* returns a cached repository. Can only be called after ostree_sysroot_load()
* has been invoked successfully.
*
* Returns: (transfer none): The OSTree repository in sysroot @self.
*/
OstreeRepo *
ostree_sysroot_repo (OstreeSysroot *self)
{
g_return_val_if_fail (self->loaded, NULL);
g_assert (self->repo);
return self->repo;
}
/** /**
* ostree_sysroot_query_bootloader: * ostree_sysroot_query_bootloader:
* @sysroot: Sysroot * @sysroot: Sysroot
@ -1069,6 +1107,63 @@ find_booted_deployment (OstreeSysroot *self,
return TRUE; return TRUE;
} }
/**
* ostree_sysroot_query_deployments_for:
* @self: Sysroot
* @osname: (allow-none): "stateroot" name
* @out_pending: (out) (allow-none) (transfer full): The pending deployment
* @out_rollback: (out) (allow-none) (transfer full): The rollback deployment
*
* Find the pending and rollback deployments for @osname. Pass %NULL for @osname
* to use the booted deployment's osname. By default, pending deployment is the
* first deployment in the order that matches @osname, and @rollback will be the
* next one after the booted deployment, or the deployment after the pending if
* we're not looking at the booted deployment.
*
* Since: 2017.7
*/
void
ostree_sysroot_query_deployments_for (OstreeSysroot *self,
const char *osname,
OstreeDeployment **out_pending,
OstreeDeployment **out_rollback)
{
g_return_if_fail (osname != NULL || self->booted_deployment != NULL);
g_autoptr(OstreeDeployment) ret_pending = NULL;
g_autoptr(OstreeDeployment) ret_rollback = NULL;
if (osname == NULL)
osname = ostree_deployment_get_osname (self->booted_deployment);
gboolean found_booted = FALSE;
for (guint i = 0; i < self->deployments->len; i++)
{
OstreeDeployment *deployment = self->deployments->pdata[i];
/* Is this deployment booted? If so, note we're past the booted */
if (self->booted_deployment != NULL &&
ostree_deployment_equal (deployment, self->booted_deployment))
{
found_booted = TRUE;
continue;
}
/* Ignore deployments not for this osname */
if (strcmp (ostree_deployment_get_osname (deployment), osname) != 0)
continue;
if (!found_booted && !ret_pending)
ret_pending = g_object_ref (deployment);
else if (found_booted && !ret_rollback)
ret_rollback = g_object_ref (deployment);
}
if (out_pending)
*out_pending = g_steal_pointer (&ret_pending);
if (out_rollback)
*out_rollback = g_steal_pointer (&ret_rollback);
}
/** /**
* ostree_sysroot_get_merge_deployment: * ostree_sysroot_get_merge_deployment:
* @self: Sysroot * @self: Sysroot
@ -1094,23 +1189,13 @@ ostree_sysroot_get_merge_deployment (OstreeSysroot *self,
*/ */
if (self->booted_deployment && if (self->booted_deployment &&
g_strcmp0 (ostree_deployment_get_osname (self->booted_deployment), osname) == 0) g_strcmp0 (ostree_deployment_get_osname (self->booted_deployment), osname) == 0)
{
return g_object_ref (self->booted_deployment); return g_object_ref (self->booted_deployment);
}
else else
{ {
guint i; g_autoptr(OstreeDeployment) pending = NULL;
for (i = 0; i < self->deployments->len; i++) ostree_sysroot_query_deployments_for (self, osname, &pending, NULL);
{ return g_steal_pointer (&pending);
OstreeDeployment *deployment = self->deployments->pdata[i];
if (strcmp (ostree_deployment_get_osname (deployment), osname) != 0)
continue;
return g_object_ref (deployment);
}
} }
return NULL;
} }
/** /**
@ -1352,6 +1437,11 @@ ostree_sysroot_init_osname (OstreeSysroot *self,
* If %OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT is * If %OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NOT_DEFAULT is
* specified, then instead of prepending, the new deployment will be * specified, then instead of prepending, the new deployment will be
* added right after the booted or merge deployment, instead of first. * added right after the booted or merge deployment, instead of first.
*
* If %OSTREE_SYSROOT_SIMPLE_WRITE_DEPLOYMENT_FLAGS_NO_CLEAN is
* specified, then no cleanup will be performed after adding the
* deployment. Make sure to call ostree_sysroot_cleanup() sometime
* later, instead.
*/ */
gboolean gboolean
ostree_sysroot_simple_write_deployment (OstreeSysroot *sysroot, ostree_sysroot_simple_write_deployment (OstreeSysroot *sysroot,

View File

@ -126,6 +126,9 @@ gboolean ostree_sysroot_write_origin_file (OstreeSysroot *sysroot,
GCancellable *cancellable, GCancellable *cancellable,
GError **error); GError **error);
_OSTREE_PUBLIC
OstreeRepo * ostree_sysroot_repo (OstreeSysroot *self);
_OSTREE_PUBLIC _OSTREE_PUBLIC
gboolean ostree_sysroot_get_repo (OstreeSysroot *self, gboolean ostree_sysroot_get_repo (OstreeSysroot *self,
OstreeRepo **out_repo, OstreeRepo **out_repo,
@ -184,6 +187,12 @@ gboolean ostree_sysroot_deployment_unlock (OstreeSysroot *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error); GError **error);
_OSTREE_PUBLIC
void ostree_sysroot_query_deployments_for (OstreeSysroot *self,
const char *osname,
OstreeDeployment **out_pending,
OstreeDeployment **out_rollback);
_OSTREE_PUBLIC _OSTREE_PUBLIC
OstreeDeployment *ostree_sysroot_get_merge_deployment (OstreeSysroot *self, OstreeDeployment *ostree_sysroot_get_merge_deployment (OstreeSysroot *self,
const char *osname); const char *osname);

View File

@ -32,6 +32,8 @@
* OSTREE_YEAR_VERSION: * OSTREE_YEAR_VERSION:
* *
* ostree year version component (e.g. 2017 if %OSTREE_VERSION is 2017.2) * ostree year version component (e.g. 2017 if %OSTREE_VERSION is 2017.2)
*
* Since: 2017.4
*/ */
#define OSTREE_YEAR_VERSION (2017) #define OSTREE_YEAR_VERSION (2017)
@ -39,23 +41,29 @@
* OSTREE_RELEASE_VERSION: * OSTREE_RELEASE_VERSION:
* *
* ostree release version component (e.g. 2 if %OSTREE_VERSION is 2017.2) * ostree release version component (e.g. 2 if %OSTREE_VERSION is 2017.2)
*
* Since: 2017.4
*/ */
#define OSTREE_RELEASE_VERSION (6) #define OSTREE_RELEASE_VERSION (7)
/** /**
* OSTREE_VERSION * OSTREE_VERSION
* *
* ostree version. * ostree version.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION (2017.6) #define OSTREE_VERSION (2017.7)
/** /**
* OSTREE_VERSION_S: * OSTREE_VERSION_S:
* *
* ostree version, encoded as a string, useful for printing and * ostree version, encoded as a string, useful for printing and
* concatenation. * concatenation.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION_S "2017.6" #define OSTREE_VERSION_S "2017.7"
#define OSTREE_ENCODE_VERSION(year,release) \ #define OSTREE_ENCODE_VERSION(year,release) \
((year) << 16 | (release)) ((year) << 16 | (release))
@ -65,6 +73,8 @@
* *
* ostree version, encoded as an hexadecimal number, useful for * ostree version, encoded as an hexadecimal number, useful for
* integer comparisons. * integer comparisons.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION_HEX \ #define OSTREE_VERSION_HEX \
(OSTREE_ENCODE_VERSION (OSTREE_YEAR_VERSION, OSTREE_RELEASE_VERSION)) (OSTREE_ENCODE_VERSION (OSTREE_YEAR_VERSION, OSTREE_RELEASE_VERSION))
@ -76,6 +86,8 @@
* *
* Compile-time version checking. Evaluates to %TRUE if the version * Compile-time version checking. Evaluates to %TRUE if the version
* of ostree is equal or greater than the required one. * of ostree is equal or greater than the required one.
*
* Since: 2017.4
*/ */
#define OSTREE_CHECK_VERSION(year,release) \ #define OSTREE_CHECK_VERSION(year,release) \
(OSTREE_YEAR_VERSION > (year) || \ (OSTREE_YEAR_VERSION > (year) || \

View File

@ -32,6 +32,8 @@
* OSTREE_YEAR_VERSION: * OSTREE_YEAR_VERSION:
* *
* ostree year version component (e.g. 2017 if %OSTREE_VERSION is 2017.2) * ostree year version component (e.g. 2017 if %OSTREE_VERSION is 2017.2)
*
* Since: 2017.4
*/ */
#define OSTREE_YEAR_VERSION (@YEAR_VERSION@) #define OSTREE_YEAR_VERSION (@YEAR_VERSION@)
@ -39,6 +41,8 @@
* OSTREE_RELEASE_VERSION: * OSTREE_RELEASE_VERSION:
* *
* ostree release version component (e.g. 2 if %OSTREE_VERSION is 2017.2) * ostree release version component (e.g. 2 if %OSTREE_VERSION is 2017.2)
*
* Since: 2017.4
*/ */
#define OSTREE_RELEASE_VERSION (@RELEASE_VERSION@) #define OSTREE_RELEASE_VERSION (@RELEASE_VERSION@)
@ -46,6 +50,8 @@
* OSTREE_VERSION * OSTREE_VERSION
* *
* ostree version. * ostree version.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION (@VERSION@) #define OSTREE_VERSION (@VERSION@)
@ -54,6 +60,8 @@
* *
* ostree version, encoded as a string, useful for printing and * ostree version, encoded as a string, useful for printing and
* concatenation. * concatenation.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION_S "@VERSION@" #define OSTREE_VERSION_S "@VERSION@"
@ -65,6 +73,8 @@
* *
* ostree version, encoded as an hexadecimal number, useful for * ostree version, encoded as an hexadecimal number, useful for
* integer comparisons. * integer comparisons.
*
* Since: 2017.4
*/ */
#define OSTREE_VERSION_HEX \ #define OSTREE_VERSION_HEX \
(OSTREE_ENCODE_VERSION (OSTREE_YEAR_VERSION, OSTREE_RELEASE_VERSION)) (OSTREE_ENCODE_VERSION (OSTREE_YEAR_VERSION, OSTREE_RELEASE_VERSION))
@ -76,6 +86,8 @@
* *
* Compile-time version checking. Evaluates to %TRUE if the version * Compile-time version checking. Evaluates to %TRUE if the version
* of ostree is equal or greater than the required one. * of ostree is equal or greater than the required one.
*
* Since: 2017.4
*/ */
#define OSTREE_CHECK_VERSION(year,release) \ #define OSTREE_CHECK_VERSION(year,release) \
(OSTREE_YEAR_VERSION > (year) || \ (OSTREE_YEAR_VERSION > (year) || \

View File

@ -25,6 +25,61 @@
#include <sys/xattr.h> #include <sys/xattr.h>
#include <gio/gunixinputstream.h> #include <gio/gunixinputstream.h>
/* Before https://github.com/GNOME/libglnx/commit/9929adc, the libglnx
* tmpfile API made it hard to clean up tmpfiles in failure cases.
* it's API breaking. Carry the fix here until we're ready to fully port.
*/
void
ot_tmpfile_clear (OtTmpfile *tmpf)
{
if (!tmpf->initialized)
return;
if (tmpf->fd == -1)
return;
(void) close (tmpf->fd);
/* If ->path is set, we're likely aborting due to an error. Clean it up */
if (tmpf->path)
{
(void) unlinkat (tmpf->src_dfd, tmpf->path, 0);
g_free (tmpf->path);
}
}
gboolean
ot_open_tmpfile_linkable_at (int dfd,
const char *subpath,
int flags,
OtTmpfile *out_tmpf,
GError **error)
{
if (!glnx_open_tmpfile_linkable_at (dfd, subpath, flags, &out_tmpf->fd, &out_tmpf->path, error))
return FALSE;
out_tmpf->initialized = TRUE;
out_tmpf->src_dfd = dfd;
return TRUE;
}
gboolean
ot_link_tmpfile_at (OtTmpfile *tmpf,
GLnxLinkTmpfileReplaceMode mode,
int target_dfd,
const char *target,
GError **error)
{
g_return_val_if_fail (tmpf->initialized, FALSE);
glnx_fd_close int fd = glnx_steal_fd (&tmpf->fd);
if (!glnx_link_tmpfile_at (tmpf->src_dfd, mode, fd, tmpf->path,
target_dfd, target, error))
{
if (tmpf->path)
(void) unlinkat (tmpf->src_dfd, tmpf->path, 0);
tmpf->initialized = FALSE;
return FALSE;
}
tmpf->initialized = FALSE;
return TRUE;
}
/* Convert a fd-relative path to a GFile* - use /* Convert a fd-relative path to a GFile* - use
* for legacy code. * for legacy code.
*/ */
@ -42,24 +97,15 @@ ot_readlinkat_gfile_info (int dfd,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
char targetbuf[PATH_MAX+1]; char targetbuf[PATH_MAX+1];
ssize_t len; ssize_t len;
do if (TEMP_FAILURE_RETRY (len = readlinkat (dfd, path, targetbuf, sizeof (targetbuf) - 1)) < 0)
len = readlinkat (dfd, path, targetbuf, sizeof (targetbuf) - 1); return glnx_throw_errno_prefix (error, "readlinkat");
while (G_UNLIKELY (len == -1 && errno == EINTR));
if (len == -1)
{
glnx_set_error_from_errno (error);
goto out;
}
targetbuf[len] = '\0'; targetbuf[len] = '\0';
g_file_info_set_symlink_target (target_info, targetbuf); g_file_info_set_symlink_target (target_info, targetbuf);
ret = TRUE; return TRUE;
out:
return ret;
} }
@ -85,26 +131,17 @@ ot_openat_read_stream (int dfd,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
int fd = -1; int fd = -1;
int flags = O_RDONLY | O_NOCTTY | O_CLOEXEC; int flags = O_RDONLY | O_NOCTTY | O_CLOEXEC;
if (!follow) if (!follow)
flags |= O_NOFOLLOW; flags |= O_NOFOLLOW;
do if (TEMP_FAILURE_RETRY (fd = openat (dfd, path, flags, 0)) < 0)
fd = openat (dfd, path, flags, 0); return glnx_throw_errno_prefix (error, "openat(%s)", path);
while (G_UNLIKELY (fd == -1 && errno == EINTR));
if (fd == -1)
{
glnx_set_error_from_errno (error);
goto out;
}
*out_istream = g_unix_input_stream_new (fd, TRUE); *out_istream = g_unix_input_stream_new (fd, TRUE);
ret = TRUE; return TRUE;
out:
return ret;
} }
gboolean gboolean
@ -115,10 +152,7 @@ ot_ensure_unlinked_at (int dfd,
if (unlinkat (dfd, path, 0) != 0) if (unlinkat (dfd, path, 0) != 0)
{ {
if (G_UNLIKELY (errno != ENOENT)) if (G_UNLIKELY (errno != ENOENT))
{ return glnx_throw_errno_prefix (error, "unlink(%s)", path);
glnx_set_error_from_errno (error);
return FALSE;
}
} }
return TRUE; return TRUE;
} }
@ -134,10 +168,7 @@ ot_query_exists_at (int dfd, const char *path,
if (fstatat (dfd, path, &stbuf, AT_SYMLINK_NOFOLLOW) < 0) if (fstatat (dfd, path, &stbuf, AT_SYMLINK_NOFOLLOW) < 0)
{ {
if (errno != ENOENT) if (errno != ENOENT)
{ return glnx_throw_errno_prefix (error, "fstatat(%s)", path);
glnx_set_error_from_errno (error);
return FALSE;
}
ret_exists = FALSE; ret_exists = FALSE;
} }
else else
@ -153,23 +184,15 @@ ot_openat_ignore_enoent (int dfd,
int *out_fd, int *out_fd,
GError **error) GError **error)
{ {
gboolean ret = FALSE; int target_fd = openat (dfd, path, O_CLOEXEC | O_RDONLY);
int target_fd = -1;
target_fd = openat (dfd, path, O_CLOEXEC | O_RDONLY);
if (target_fd < 0) if (target_fd < 0)
{ {
if (errno != ENOENT) if (errno != ENOENT)
{ return glnx_throw_errno_prefix (error, "openat(%s)", path);
glnx_set_error_from_errno (error);
goto out;
}
} }
ret = TRUE;
*out_fd = target_fd; *out_fd = target_fd;
out: return TRUE;
return ret;
} }
/* Like glnx_dirfd_iterator_init_at(), but if %ENOENT, then set /* Like glnx_dirfd_iterator_init_at(), but if %ENOENT, then set
@ -206,10 +229,7 @@ ot_file_mapat_bytes (int dfd,
g_autoptr(GMappedFile) mfile = NULL; g_autoptr(GMappedFile) mfile = NULL;
if (fd < 0) if (fd < 0)
{ return glnx_null_throw_errno_prefix (error, "openat(%s)", path);
glnx_set_error_from_errno (error);
return FALSE;
}
mfile = g_mapped_file_new_from_fd (fd, FALSE, error); mfile = g_mapped_file_new_from_fd (fd, FALSE, error);
if (!mfile) if (!mfile)

Some files were not shown because too many files have changed in this diff Show More