Merge tag 'upstream/2017.7' into debian/master
Upstream version 2017.7
This commit is contained in:
commit
31880a6e5c
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 \
|
||||||
|
|
|
||||||
44
Makefile.in
44
Makefile.in
|
|
@ -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'; \
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">&</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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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">
|
||||||
|
|
|
||||||
|
|
@ -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"/>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -3,4 +3,5 @@
|
||||||
OstreeRemote
|
OstreeRemote
|
||||||
ostree_remote_ref
|
ostree_remote_ref
|
||||||
ostree_remote_unref
|
ostree_remote_unref
|
||||||
|
ostree_remote_get_name
|
||||||
</SECTION>
|
</SECTION>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
2017.6
|
2017.7
|
||||||
|
|
@ -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 \
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
16
configure.ac
16
configure.ac
|
|
@ -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)
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
|
|
@ -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;
|
|
||||||
*/
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -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,11 +268,10 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
@ -387,17 +385,13 @@ 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,
|
|
||||||
req->out_tmpfile,
|
|
||||||
fetcher->tmpdir_dfd,
|
|
||||||
tmpfile_path,
|
|
||||||
error))
|
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 ("");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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: remote’s 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;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,8 +89,7 @@ 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;
|
||||||
|
|
@ -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,9 +285,8 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -179,10 +179,13 @@ _ostree_repo_commit_loose_final (OstreeRepo *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Given either a file or symlink, apply the final metadata to it depending on
|
||||||
|
* the repository mode. Note that @checksum is assumed to have been validated by
|
||||||
|
* the caller.
|
||||||
|
*/
|
||||||
static gboolean
|
static gboolean
|
||||||
commit_loose_object_trusted (OstreeRepo *self,
|
commit_loose_content_object (OstreeRepo *self,
|
||||||
const char *checksum,
|
const char *checksum,
|
||||||
OstreeObjectType objtype,
|
|
||||||
const char *temp_filename,
|
const char *temp_filename,
|
||||||
gboolean object_is_symlink,
|
gboolean object_is_symlink,
|
||||||
guint32 uid,
|
guint32 uid,
|
||||||
|
|
@ -193,8 +196,6 @@ commit_loose_object_trusted (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean ret = FALSE;
|
|
||||||
|
|
||||||
/* We may be writing as root to a non-root-owned repository; if so,
|
/* We may be writing as root to a non-root-owned repository; if so,
|
||||||
* automatically inherit the non-root ownership.
|
* automatically inherit the non-root ownership.
|
||||||
*/
|
*/
|
||||||
|
|
@ -204,19 +205,13 @@ commit_loose_object_trusted (OstreeRepo *self,
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
{
|
{
|
||||||
if (fchown (fd, self->target_owner_uid, self->target_owner_gid) < 0)
|
if (fchown (fd, self->target_owner_uid, self->target_owner_gid) < 0)
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fchown");
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (G_UNLIKELY (fchownat (self->tmp_dir_fd, temp_filename,
|
else if (G_UNLIKELY (fchownat (self->tmp_dir_fd, temp_filename,
|
||||||
self->target_owner_uid,
|
self->target_owner_uid,
|
||||||
self->target_owner_gid,
|
self->target_owner_gid,
|
||||||
AT_SYMLINK_NOFOLLOW) == -1))
|
AT_SYMLINK_NOFOLLOW) == -1))
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fchownat");
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Special handling for symlinks in bare repositories */
|
/* Special handling for symlinks in bare repositories */
|
||||||
|
|
@ -235,85 +230,70 @@ commit_loose_object_trusted (OstreeRepo *self,
|
||||||
if (G_UNLIKELY (fchownat (self->tmp_dir_fd, temp_filename,
|
if (G_UNLIKELY (fchownat (self->tmp_dir_fd, temp_filename,
|
||||||
uid, gid,
|
uid, gid,
|
||||||
AT_SYMLINK_NOFOLLOW) == -1))
|
AT_SYMLINK_NOFOLLOW) == -1))
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fchownat");
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (xattrs != NULL)
|
if (xattrs != NULL)
|
||||||
{
|
{
|
||||||
ot_security_smack_reset_dfd_name (self->tmp_dir_fd, temp_filename);
|
ot_security_smack_reset_dfd_name (self->tmp_dir_fd, temp_filename);
|
||||||
if (!glnx_dfd_name_set_all_xattrs (self->tmp_dir_fd, temp_filename,
|
if (!glnx_dfd_name_set_all_xattrs (self->tmp_dir_fd, temp_filename,
|
||||||
xattrs, cancellable, error))
|
xattrs, cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int res;
|
if (self->mode == OSTREE_REPO_MODE_BARE)
|
||||||
|
{
|
||||||
|
if (TEMP_FAILURE_RETRY (fchown (fd, uid, gid)) < 0)
|
||||||
|
return glnx_throw_errno_prefix (error, "fchown");
|
||||||
|
|
||||||
if (objtype == OSTREE_OBJECT_TYPE_FILE && self->mode == OSTREE_REPO_MODE_BARE)
|
if (TEMP_FAILURE_RETRY (fchmod (fd, mode)) < 0)
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fchmod");
|
||||||
do
|
|
||||||
res = fchown (fd, uid, gid);
|
|
||||||
while (G_UNLIKELY (res == -1 && errno == EINTR));
|
|
||||||
if (G_UNLIKELY (res == -1))
|
|
||||||
{
|
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
do
|
|
||||||
res = fchmod (fd, mode);
|
|
||||||
while (G_UNLIKELY (res == -1 && errno == EINTR));
|
|
||||||
if (G_UNLIKELY (res == -1))
|
|
||||||
{
|
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (xattrs)
|
if (xattrs)
|
||||||
{
|
{
|
||||||
ot_security_smack_reset_fd (fd);
|
ot_security_smack_reset_fd (fd);
|
||||||
if (!glnx_fd_set_all_xattrs (fd, xattrs, cancellable, error))
|
if (!glnx_fd_set_all_xattrs (fd, xattrs, cancellable, error))
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (objtype == OSTREE_OBJECT_TYPE_FILE &&
|
|
||||||
(self->mode == OSTREE_REPO_MODE_BARE_USER || self->mode == OSTREE_REPO_MODE_BARE_USER_ONLY))
|
|
||||||
{
|
|
||||||
if (!object_is_symlink)
|
|
||||||
{
|
|
||||||
/* We need to apply at least some mode bits, because the repo file was created
|
|
||||||
with mode 644, and we need e.g. exec bits to be right when we do a user-mode
|
|
||||||
checkout. To make this work we apply all user bits and the read bits for
|
|
||||||
group/other. Furthermore, setting user xattrs requires write access, so
|
|
||||||
this makes sure it's at least writable by us. (O_TMPFILE uses mode 0 by default) */
|
|
||||||
if (fchmod (fd, mode | 0744) < 0)
|
|
||||||
return glnx_throw_errno (error);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (self->mode == OSTREE_REPO_MODE_BARE_USER &&
|
|
||||||
!write_file_metadata_to_xattr (fd, uid, gid, mode, xattrs, error))
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (self->mode == OSTREE_REPO_MODE_BARE_USER)
|
||||||
|
{
|
||||||
|
if (!write_file_metadata_to_xattr (fd, uid, gid, mode, xattrs, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if (objtype == OSTREE_OBJECT_TYPE_FILE && _ostree_repo_mode_is_bare (self->mode))
|
if (!object_is_symlink)
|
||||||
|
{
|
||||||
|
/* Note that previously this path added `| 0755` which made every
|
||||||
|
* file executable, see
|
||||||
|
* https://github.com/ostreedev/ostree/issues/907
|
||||||
|
*/
|
||||||
|
const mode_t content_mode = (mode & (S_IFREG | 0775));
|
||||||
|
if (fchmod (fd, content_mode) < 0)
|
||||||
|
return glnx_throw_errno_prefix (error, "fchmod");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (self->mode == OSTREE_REPO_MODE_BARE_USER_ONLY
|
||||||
|
&& !object_is_symlink)
|
||||||
|
{
|
||||||
|
guint32 invalid_modebits = (mode & ~S_IFMT) & ~0775;
|
||||||
|
if (invalid_modebits > 0)
|
||||||
|
return glnx_throw (error, "Invalid mode 0%04o with bits 0%04o in bare-user-only repository",
|
||||||
|
mode, invalid_modebits);
|
||||||
|
|
||||||
|
if (fchmod (fd, mode) < 0)
|
||||||
|
return glnx_throw_errno_prefix (error, "fchmod");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_ostree_repo_mode_is_bare (self->mode))
|
||||||
{
|
{
|
||||||
/* To satisfy tools such as guile which compare mtimes
|
/* To satisfy tools such as guile which compare mtimes
|
||||||
* to determine whether or not source files need to be compiled,
|
* to determine whether or not source files need to be compiled,
|
||||||
* set the modification time to OSTREE_TIMESTAMP.
|
* set the modification time to OSTREE_TIMESTAMP.
|
||||||
*/
|
*/
|
||||||
const struct timespec times[2] = { { OSTREE_TIMESTAMP, UTIME_OMIT }, { OSTREE_TIMESTAMP, 0} };
|
const struct timespec times[2] = { { OSTREE_TIMESTAMP, UTIME_OMIT }, { OSTREE_TIMESTAMP, 0} };
|
||||||
do
|
if (TEMP_FAILURE_RETRY (futimens (fd, times)) < 0)
|
||||||
res = futimens (fd, times);
|
return glnx_throw_errno_prefix (error, "futimens");
|
||||||
while (G_UNLIKELY (res == -1 && errno == EINTR));
|
|
||||||
if (G_UNLIKELY (res == -1))
|
|
||||||
{
|
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ensure that in case of a power cut, these files have the data we
|
/* Ensure that in case of a power cut, these files have the data we
|
||||||
|
|
@ -322,23 +302,16 @@ commit_loose_object_trusted (OstreeRepo *self,
|
||||||
if (!self->in_transaction && !self->disable_fsync)
|
if (!self->in_transaction && !self->disable_fsync)
|
||||||
{
|
{
|
||||||
if (fsync (fd) == -1)
|
if (fsync (fd) == -1)
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fsync");
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!_ostree_repo_commit_loose_final (self, checksum, objtype,
|
if (!_ostree_repo_commit_loose_final (self, checksum, OSTREE_OBJECT_TYPE_FILE,
|
||||||
self->tmp_dir_fd, fd, temp_filename,
|
self->tmp_dir_fd, fd, temp_filename,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
|
||||||
ret = TRUE;
|
return TRUE;
|
||||||
out:
|
|
||||||
if (G_UNLIKELY (error && *error))
|
|
||||||
g_prefix_error (error, "Writing object %s.%s: ", checksum, ostree_object_type_to_string (objtype));
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
|
|
@ -535,13 +508,16 @@ _ostree_repo_commit_trusted_content_bare (OstreeRepo *self,
|
||||||
|
|
||||||
if (state->fd != -1)
|
if (state->fd != -1)
|
||||||
{
|
{
|
||||||
if (!commit_loose_object_trusted (self, checksum, OSTREE_OBJECT_TYPE_FILE,
|
if (!commit_loose_content_object (self, checksum,
|
||||||
state->temp_filename,
|
state->temp_filename,
|
||||||
FALSE, uid, gid, mode,
|
FALSE, uid, gid, mode,
|
||||||
xattrs, state->fd,
|
xattrs, state->fd,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
|
{
|
||||||
|
g_prefix_error (error, "Writing object %s.%s: ", checksum, ostree_object_type_to_string (OSTREE_OBJECT_TYPE_FILE));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ret = TRUE;
|
ret = TRUE;
|
||||||
out:
|
out:
|
||||||
|
|
@ -591,9 +567,26 @@ create_regular_tmpfile_linkable_with_content (OstreeRepo *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* A little helper to call unlinkat() as a cleanup
|
||||||
|
* function. Mostly only necessary to handle
|
||||||
|
* deletion of temporary symlinks.
|
||||||
|
*/
|
||||||
|
typedef struct {
|
||||||
|
int dfd;
|
||||||
|
const char *path;
|
||||||
|
} CleanupUnlinkat;
|
||||||
|
|
||||||
|
static void
|
||||||
|
cleanup_unlinkat (CleanupUnlinkat *cleanup)
|
||||||
|
{
|
||||||
|
if (cleanup->path)
|
||||||
|
(void) unlinkat (cleanup->dfd, cleanup->path, 0);
|
||||||
|
}
|
||||||
|
G_DEFINE_AUTO_CLEANUP_CLEAR_FUNC(CleanupUnlinkat, cleanup_unlinkat);
|
||||||
|
|
||||||
|
/* Write a content object. */
|
||||||
static gboolean
|
static gboolean
|
||||||
write_object (OstreeRepo *self,
|
write_content_object (OstreeRepo *self,
|
||||||
OstreeObjectType objtype,
|
|
||||||
const char *expected_checksum,
|
const char *expected_checksum,
|
||||||
GInputStream *input,
|
GInputStream *input,
|
||||||
guint64 file_object_length,
|
guint64 file_object_length,
|
||||||
|
|
@ -601,60 +594,29 @@ write_object (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
gboolean ret = FALSE;
|
|
||||||
const char *actual_checksum = NULL;
|
|
||||||
g_autofree char *actual_checksum_owned = NULL;
|
|
||||||
gboolean do_commit;
|
|
||||||
OstreeRepoMode repo_mode;
|
|
||||||
g_autofree char *temp_filename = NULL;
|
|
||||||
g_autofree guchar *ret_csum = NULL;
|
|
||||||
glnx_unref_object OtChecksumInstream *checksum_input = NULL;
|
|
||||||
g_autoptr(GInputStream) file_input = NULL;
|
|
||||||
g_autoptr(GFileInfo) file_info = NULL;
|
|
||||||
g_autoptr(GVariant) xattrs = NULL;
|
|
||||||
gboolean have_obj;
|
|
||||||
gboolean temp_file_is_regular;
|
|
||||||
gboolean temp_file_is_symlink;
|
|
||||||
glnx_fd_close int temp_fd = -1;
|
|
||||||
gboolean object_is_symlink = FALSE;
|
|
||||||
gssize unpacked_size = 0;
|
|
||||||
gboolean indexable = FALSE;
|
|
||||||
|
|
||||||
g_return_val_if_fail (expected_checksum || out_csum, FALSE);
|
g_return_val_if_fail (expected_checksum || out_csum, FALSE);
|
||||||
|
|
||||||
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
if (expected_checksum)
|
OstreeRepoMode repo_mode = ostree_repo_get_mode (self);
|
||||||
{
|
|
||||||
if (!_ostree_repo_has_loose_object (self, expected_checksum, objtype, &have_obj,
|
|
||||||
cancellable, error))
|
|
||||||
goto out;
|
|
||||||
if (have_obj)
|
|
||||||
{
|
|
||||||
if (out_csum)
|
|
||||||
*out_csum = ostree_checksum_to_bytes (expected_checksum);
|
|
||||||
ret = TRUE;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
repo_mode = ostree_repo_get_mode (self);
|
|
||||||
|
|
||||||
|
glnx_unref_object OtChecksumInstream *checksum_input = NULL;
|
||||||
if (out_csum)
|
if (out_csum)
|
||||||
checksum_input = ot_checksum_instream_new (input, G_CHECKSUM_SHA256);
|
checksum_input = ot_checksum_instream_new (input, G_CHECKSUM_SHA256);
|
||||||
|
|
||||||
if (objtype == OSTREE_OBJECT_TYPE_FILE)
|
g_autoptr(GInputStream) file_input = NULL;
|
||||||
{
|
g_autoptr(GVariant) xattrs = NULL;
|
||||||
|
g_autoptr(GFileInfo) file_info = NULL;
|
||||||
if (!ostree_content_stream_parse (FALSE, checksum_input ? (GInputStream*)checksum_input : input,
|
if (!ostree_content_stream_parse (FALSE, checksum_input ? (GInputStream*)checksum_input : input,
|
||||||
file_object_length, FALSE,
|
file_object_length, FALSE,
|
||||||
&file_input, &file_info, &xattrs,
|
&file_input, &file_info, &xattrs,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
|
||||||
temp_file_is_regular = g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR;
|
gboolean temp_file_is_regular = g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR;
|
||||||
temp_file_is_symlink = object_is_symlink =
|
gboolean temp_file_is_symlink = g_file_info_get_file_type (file_info) == G_FILE_TYPE_SYMBOLIC_LINK;
|
||||||
g_file_info_get_file_type (file_info) == G_FILE_TYPE_SYMBOLIC_LINK;
|
gboolean object_is_symlink = temp_file_is_symlink;
|
||||||
|
|
||||||
if (repo_mode == OSTREE_REPO_MODE_BARE_USER && object_is_symlink)
|
if (repo_mode == OSTREE_REPO_MODE_BARE_USER && object_is_symlink)
|
||||||
{
|
{
|
||||||
|
|
@ -666,19 +628,15 @@ write_object (OstreeRepo *self,
|
||||||
as regular files */
|
as regular files */
|
||||||
temp_file_is_regular = TRUE;
|
temp_file_is_regular = TRUE;
|
||||||
temp_file_is_symlink = FALSE;
|
temp_file_is_symlink = FALSE;
|
||||||
|
|
||||||
if (file_input != NULL)
|
if (file_input != NULL)
|
||||||
g_object_unref (file_input);
|
g_object_unref (file_input);
|
||||||
|
|
||||||
/* Include the terminating zero so we can e.g. mmap this file */
|
/* Include the terminating zero so we can e.g. mmap this file */
|
||||||
file_input = g_memory_input_stream_new_from_bytes (target);
|
file_input = g_memory_input_stream_new_from_bytes (target);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(temp_file_is_regular || temp_file_is_symlink))
|
if (!(temp_file_is_regular || temp_file_is_symlink))
|
||||||
{
|
return glnx_throw (error, "Unsupported file type %u", g_file_info_get_file_type (file_info));
|
||||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
|
||||||
"Unsupported file type %u", g_file_info_get_file_type (file_info));
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* For regular files, we create them with default mode, and only
|
/* For regular files, we create them with default mode, and only
|
||||||
* later apply any xattrs and setuid bits. The rationale here
|
* later apply any xattrs and setuid bits. The rationale here
|
||||||
|
|
@ -687,6 +645,15 @@ write_object (OstreeRepo *self,
|
||||||
* binary with trailing garbage, creating a window on the local
|
* binary with trailing garbage, creating a window on the local
|
||||||
* system where a malicious setuid binary exists.
|
* system where a malicious setuid binary exists.
|
||||||
*/
|
*/
|
||||||
|
/* These variables are almost equivalent to OtTmpfile, except
|
||||||
|
* temp_filename might also be a symlink. Hence the CleanupUnlinkat
|
||||||
|
* which handles that case.
|
||||||
|
*/
|
||||||
|
g_auto(CleanupUnlinkat) tmp_unlinker = { self->tmp_dir_fd, NULL };
|
||||||
|
glnx_fd_close int temp_fd = -1;
|
||||||
|
g_autofree char *temp_filename = NULL;
|
||||||
|
gssize unpacked_size = 0;
|
||||||
|
gboolean indexable = FALSE;
|
||||||
if ((_ostree_repo_mode_is_bare (repo_mode)) && temp_file_is_regular)
|
if ((_ostree_repo_mode_is_bare (repo_mode)) && temp_file_is_regular)
|
||||||
{
|
{
|
||||||
guint64 size = g_file_info_get_size (file_info);
|
guint64 size = g_file_info_get_size (file_info);
|
||||||
|
|
@ -694,7 +661,8 @@ write_object (OstreeRepo *self,
|
||||||
if (!create_regular_tmpfile_linkable_with_content (self, size, file_input,
|
if (!create_regular_tmpfile_linkable_with_content (self, size, file_input,
|
||||||
&temp_fd, &temp_filename,
|
&temp_fd, &temp_filename,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
tmp_unlinker.path = temp_filename;
|
||||||
}
|
}
|
||||||
else if (_ostree_repo_mode_is_bare (repo_mode) && temp_file_is_symlink)
|
else if (_ostree_repo_mode_is_bare (repo_mode) && temp_file_is_symlink)
|
||||||
{
|
{
|
||||||
|
|
@ -704,7 +672,8 @@ write_object (OstreeRepo *self,
|
||||||
g_file_info_get_symlink_target (file_info),
|
g_file_info_get_symlink_target (file_info),
|
||||||
&temp_filename,
|
&temp_filename,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
tmp_unlinker.path = temp_filename;
|
||||||
}
|
}
|
||||||
else if (repo_mode == OSTREE_REPO_MODE_ARCHIVE_Z2)
|
else if (repo_mode == OSTREE_REPO_MODE_ARCHIVE_Z2)
|
||||||
{
|
{
|
||||||
|
|
@ -719,7 +688,8 @@ write_object (OstreeRepo *self,
|
||||||
if (!glnx_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,
|
||||||
&temp_fd, &temp_filename,
|
&temp_fd, &temp_filename,
|
||||||
error))
|
error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
tmp_unlinker.path = temp_filename;
|
||||||
temp_file_is_regular = TRUE;
|
temp_file_is_regular = TRUE;
|
||||||
temp_out = g_unix_output_stream_new (temp_fd, FALSE);
|
temp_out = g_unix_output_stream_new (temp_fd, FALSE);
|
||||||
|
|
||||||
|
|
@ -727,7 +697,7 @@ write_object (OstreeRepo *self,
|
||||||
|
|
||||||
if (!_ostree_write_variant_with_size (temp_out, file_meta, 0, NULL, NULL,
|
if (!_ostree_write_variant_with_size (temp_out, file_meta, 0, NULL, NULL,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
|
||||||
if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR)
|
if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR)
|
||||||
{
|
{
|
||||||
|
|
@ -739,88 +709,183 @@ write_object (OstreeRepo *self,
|
||||||
unpacked_size = g_output_stream_splice (compressed_out_stream, file_input,
|
unpacked_size = g_output_stream_splice (compressed_out_stream, file_input,
|
||||||
0, cancellable, error);
|
0, cancellable, error);
|
||||||
if (unpacked_size < 0)
|
if (unpacked_size < 0)
|
||||||
goto out;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!g_output_stream_flush (temp_out, cancellable, error))
|
if (!g_output_stream_flush (temp_out, cancellable, error))
|
||||||
goto out;
|
return FALSE;
|
||||||
|
|
||||||
if (fchmod (temp_fd, 0644) < 0)
|
if (fchmod (temp_fd, 0644) < 0)
|
||||||
{
|
return glnx_throw_errno_prefix (error, "fchmod");
|
||||||
glnx_set_error_from_errno (error);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
g_assert_not_reached ();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!create_regular_tmpfile_linkable_with_content (self, file_object_length,
|
|
||||||
checksum_input ? (GInputStream*)checksum_input : input,
|
|
||||||
&temp_fd, &temp_filename,
|
|
||||||
cancellable, error))
|
|
||||||
goto out;
|
|
||||||
temp_file_is_regular = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *actual_checksum = NULL;
|
||||||
|
g_autofree char *actual_checksum_owned = NULL;
|
||||||
if (!checksum_input)
|
if (!checksum_input)
|
||||||
actual_checksum = expected_checksum;
|
actual_checksum = expected_checksum;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
actual_checksum = actual_checksum_owned = ot_checksum_instream_get_string (checksum_input);
|
actual_checksum = actual_checksum_owned = ot_checksum_instream_get_string (checksum_input);
|
||||||
if (expected_checksum && strcmp (actual_checksum, expected_checksum) != 0)
|
if (expected_checksum && strcmp (actual_checksum, expected_checksum) != 0)
|
||||||
{
|
return glnx_throw (error, "Corrupted %s object %s (actual checksum is %s)",
|
||||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
ostree_object_type_to_string (OSTREE_OBJECT_TYPE_FILE),
|
||||||
"Corrupted %s object %s (actual checksum is %s)",
|
|
||||||
ostree_object_type_to_string (objtype),
|
|
||||||
expected_checksum, actual_checksum);
|
expected_checksum, actual_checksum);
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_assert (actual_checksum != NULL); /* Pacify static analysis */
|
g_assert (actual_checksum != NULL); /* Pacify static analysis */
|
||||||
|
|
||||||
if (indexable && temp_file_is_regular)
|
/* See whether or not we have the object, now that we know the
|
||||||
|
* checksum.
|
||||||
|
*/
|
||||||
|
gboolean have_obj;
|
||||||
|
if (!_ostree_repo_has_loose_object (self, actual_checksum, OSTREE_OBJECT_TYPE_FILE,
|
||||||
|
&have_obj, cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
/* If we already have it, just update the stats. */
|
||||||
|
if (have_obj)
|
||||||
{
|
{
|
||||||
struct stat stbuf;
|
g_mutex_lock (&self->txn_stats_lock);
|
||||||
|
self->txn_stats.content_objects_total++;
|
||||||
if (fstat (temp_fd, &stbuf) == -1)
|
g_mutex_unlock (&self->txn_stats_lock);
|
||||||
{
|
if (out_csum)
|
||||||
glnx_set_error_from_errno (error);
|
*out_csum = ostree_checksum_to_bytes (actual_checksum);
|
||||||
goto out;
|
/* Note early return */
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
repo_store_size_entry (self, actual_checksum, unpacked_size, stbuf.st_size);
|
const guint32 uid = g_file_info_get_attribute_uint32 (file_info, "unix::uid");
|
||||||
}
|
const guint32 gid = g_file_info_get_attribute_uint32 (file_info, "unix::gid");
|
||||||
|
const guint32 mode = g_file_info_get_attribute_uint32 (file_info, "unix::mode");
|
||||||
if (!_ostree_repo_has_loose_object (self, actual_checksum, objtype, &have_obj,
|
if (!commit_loose_content_object (self, actual_checksum,
|
||||||
cancellable, error))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
do_commit = !have_obj;
|
|
||||||
|
|
||||||
if (do_commit)
|
|
||||||
{
|
|
||||||
guint32 uid, gid, mode;
|
|
||||||
|
|
||||||
if (file_info)
|
|
||||||
{
|
|
||||||
uid = g_file_info_get_attribute_uint32 (file_info, "unix::uid");
|
|
||||||
gid = g_file_info_get_attribute_uint32 (file_info, "unix::gid");
|
|
||||||
mode = g_file_info_get_attribute_uint32 (file_info, "unix::mode");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
uid = gid = mode = 0;
|
|
||||||
|
|
||||||
if (!commit_loose_object_trusted (self, actual_checksum, objtype,
|
|
||||||
temp_filename,
|
temp_filename,
|
||||||
object_is_symlink,
|
object_is_symlink,
|
||||||
uid, gid, mode,
|
uid, gid, mode,
|
||||||
xattrs, temp_fd,
|
xattrs, temp_fd,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
goto out;
|
return glnx_prefix_error (error, "Writing object %s.%s: ", actual_checksum,
|
||||||
|
ostree_object_type_to_string (OSTREE_OBJECT_TYPE_FILE));
|
||||||
|
/* Clear the unlinker path, it was consumed */
|
||||||
|
tmp_unlinker.path = NULL;
|
||||||
|
|
||||||
|
/* Update size metadata if configured */
|
||||||
|
if (indexable && temp_file_is_regular)
|
||||||
|
{
|
||||||
|
struct stat stbuf;
|
||||||
|
|
||||||
|
if (!glnx_fstat (temp_fd, &stbuf, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
repo_store_size_entry (self, actual_checksum, unpacked_size, stbuf.st_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Update statistics */
|
||||||
|
g_mutex_lock (&self->txn_stats_lock);
|
||||||
|
self->txn_stats.content_objects_written++;
|
||||||
|
self->txn_stats.content_bytes_written += file_object_length;
|
||||||
|
self->txn_stats.content_objects_total++;
|
||||||
|
g_mutex_unlock (&self->txn_stats_lock);
|
||||||
|
|
||||||
|
if (out_csum)
|
||||||
|
{
|
||||||
|
g_assert (actual_checksum);
|
||||||
|
*out_csum = ostree_checksum_to_bytes (actual_checksum);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
write_metadata_object (OstreeRepo *self,
|
||||||
|
OstreeObjectType objtype,
|
||||||
|
const char *expected_checksum,
|
||||||
|
GBytes *buf,
|
||||||
|
guchar **out_csum,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (expected_checksum || out_csum, FALSE);
|
||||||
|
|
||||||
|
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* In the metadata case, we're not streaming, so we don't bother creating a
|
||||||
|
* tempfile until we compute the checksum. Some metadata like dirmeta is
|
||||||
|
* commonly duplicated, and computing the checksum is going to be cheaper than
|
||||||
|
* making a tempfile.
|
||||||
|
*
|
||||||
|
* However, tombstone commit types don't make sense to checksum, because for
|
||||||
|
* historical reasons we used ostree_repo_write_metadata_trusted() with the
|
||||||
|
* *original* sha256 to say what commit was being killed.
|
||||||
|
*/
|
||||||
|
const gboolean is_tombstone = (objtype == OSTREE_OBJECT_TYPE_TOMBSTONE_COMMIT);
|
||||||
|
g_autofree char *actual_checksum = NULL;
|
||||||
|
if (is_tombstone)
|
||||||
|
{
|
||||||
|
actual_checksum = g_strdup (expected_checksum);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
actual_checksum = g_compute_checksum_for_bytes (G_CHECKSUM_SHA256, buf);
|
||||||
|
gboolean have_obj;
|
||||||
|
if (!_ostree_repo_has_loose_object (self, actual_checksum, objtype, &have_obj,
|
||||||
|
cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
/* If we already have the object, we just need to update the tried-to-commit
|
||||||
|
* stat for metadata and be done here.
|
||||||
|
*/
|
||||||
|
if (have_obj)
|
||||||
|
{
|
||||||
|
g_mutex_lock (&self->txn_stats_lock);
|
||||||
|
self->txn_stats.metadata_objects_total++;
|
||||||
|
g_mutex_unlock (&self->txn_stats_lock);
|
||||||
|
|
||||||
|
if (out_csum)
|
||||||
|
*out_csum = ostree_checksum_to_bytes (actual_checksum);
|
||||||
|
/* Note early return */
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (expected_checksum && strcmp (actual_checksum, expected_checksum) != 0)
|
||||||
|
return glnx_throw (error, "Corrupted %s object %s (actual checksum is %s)",
|
||||||
|
ostree_object_type_to_string (objtype),
|
||||||
|
expected_checksum, actual_checksum);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ok, checksum is known, let's get the data */
|
||||||
|
gsize len;
|
||||||
|
const guint8 *bufp = g_bytes_get_data (buf, &len);
|
||||||
|
|
||||||
|
/* Do the size warning here, to avoid warning for already extant metadata */
|
||||||
|
if (G_UNLIKELY (len > OSTREE_MAX_METADATA_WARN_SIZE))
|
||||||
|
{
|
||||||
|
g_autofree char *metasize = g_format_size (len);
|
||||||
|
g_autofree char *warnsize = g_format_size (OSTREE_MAX_METADATA_WARN_SIZE);
|
||||||
|
g_autofree char *maxsize = g_format_size (OSTREE_MAX_METADATA_SIZE);
|
||||||
|
g_warning ("metadata object %s is %s, which is larger than the warning threshold of %s." \
|
||||||
|
" The hard limit on metadata size is %s. Put large content in the tree itself, not in metadata.",
|
||||||
|
actual_checksum,
|
||||||
|
metasize, warnsize, maxsize);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Write the metadata to a temporary file */
|
||||||
|
g_auto(OtTmpfile) tmpf = { 0, };
|
||||||
|
if (!ot_open_tmpfile_linkable_at (self->tmp_dir_fd, ".", O_WRONLY|O_CLOEXEC,
|
||||||
|
&tmpf, error))
|
||||||
|
return FALSE;
|
||||||
|
if (!ot_fallocate (tmpf.fd, len, error))
|
||||||
|
return FALSE;
|
||||||
|
if (glnx_loop_write (tmpf.fd, bufp, len) < 0)
|
||||||
|
return glnx_throw_errno_prefix (error, "write()");
|
||||||
|
if (fchmod (tmpf.fd, 0644) < 0)
|
||||||
|
return glnx_throw_errno_prefix (error, "fchmod");
|
||||||
|
|
||||||
|
/* And commit it into place */
|
||||||
|
if (!_ostree_repo_commit_loose_final (self, actual_checksum, objtype,
|
||||||
|
self->tmp_dir_fd, tmpf.fd, tmpf.path,
|
||||||
|
cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
/* The temp path was consumed */
|
||||||
|
g_clear_pointer (&tmpf.path, g_free);
|
||||||
|
|
||||||
if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
|
if (objtype == OSTREE_OBJECT_TYPE_COMMIT)
|
||||||
{
|
{
|
||||||
|
|
@ -838,59 +903,20 @@ write_object (OstreeRepo *self,
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_propagate_error (error, local_error);
|
g_propagate_error (error, local_error);
|
||||||
goto out;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
|
/* Update the stats, note we both wrote one and add to total */
|
||||||
{
|
|
||||||
if (G_UNLIKELY (file_object_length > OSTREE_MAX_METADATA_WARN_SIZE))
|
|
||||||
{
|
|
||||||
g_autofree char *metasize = g_format_size (file_object_length);
|
|
||||||
g_autofree char *warnsize = g_format_size (OSTREE_MAX_METADATA_WARN_SIZE);
|
|
||||||
g_autofree char *maxsize = g_format_size (OSTREE_MAX_METADATA_SIZE);
|
|
||||||
g_warning ("metadata object %s is %s, which is larger than the warning threshold of %s." \
|
|
||||||
" The hard limit on metadata size is %s. Put large content in the tree itself, not in metadata.",
|
|
||||||
actual_checksum,
|
|
||||||
metasize, warnsize, maxsize);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
g_clear_pointer (&temp_filename, g_free);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_mutex_lock (&self->txn_stats_lock);
|
g_mutex_lock (&self->txn_stats_lock);
|
||||||
if (do_commit)
|
|
||||||
{
|
|
||||||
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
|
|
||||||
{
|
|
||||||
self->txn_stats.metadata_objects_written++;
|
self->txn_stats.metadata_objects_written++;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
self->txn_stats.content_objects_written++;
|
|
||||||
self->txn_stats.content_bytes_written += file_object_length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
|
|
||||||
self->txn_stats.metadata_objects_total++;
|
self->txn_stats.metadata_objects_total++;
|
||||||
else
|
|
||||||
self->txn_stats.content_objects_total++;
|
|
||||||
g_mutex_unlock (&self->txn_stats_lock);
|
g_mutex_unlock (&self->txn_stats_lock);
|
||||||
|
|
||||||
if (checksum_input)
|
if (out_csum)
|
||||||
{
|
*out_csum = ostree_checksum_to_bytes (actual_checksum);
|
||||||
g_assert (actual_checksum);
|
return TRUE;
|
||||||
ret_csum = ostree_checksum_to_bytes (actual_checksum);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
ot_transfer_out_value(out_csum, &ret_csum);
|
|
||||||
out:
|
|
||||||
if (temp_filename)
|
|
||||||
(void) unlinkat (self->tmp_dir_fd, temp_filename, 0);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
@ -1141,7 +1167,9 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
struct dirent *dent;
|
struct dirent *dent;
|
||||||
|
gboolean renamed_some_object = FALSE;
|
||||||
g_auto(GLnxDirFdIterator) child_dfd_iter = { 0, };
|
g_auto(GLnxDirFdIterator) child_dfd_iter = { 0, };
|
||||||
|
char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
|
||||||
|
|
||||||
if (!glnx_dirfd_iterator_next_dent_ensure_dtype (&dfd_iter, &dent, cancellable, error))
|
if (!glnx_dirfd_iterator_next_dent_ensure_dtype (&dfd_iter, &dent, cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -1159,21 +1187,20 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
&child_dfd_iter, error))
|
&child_dfd_iter, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
loose_objpath[0] = dent->d_name[0];
|
||||||
|
loose_objpath[1] = dent->d_name[1];
|
||||||
|
loose_objpath[2] = '/';
|
||||||
|
|
||||||
/* Iterate over inner checksum dir */
|
/* Iterate over inner checksum dir */
|
||||||
while (TRUE)
|
while (TRUE)
|
||||||
{
|
{
|
||||||
struct dirent *child_dent;
|
struct dirent *child_dent;
|
||||||
char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
|
|
||||||
|
|
||||||
if (!glnx_dirfd_iterator_next_dent (&child_dfd_iter, &child_dent, cancellable, error))
|
if (!glnx_dirfd_iterator_next_dent (&child_dfd_iter, &child_dent, cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
if (child_dent == NULL)
|
if (child_dent == NULL)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
loose_objpath[0] = dent->d_name[0];
|
|
||||||
loose_objpath[1] = dent->d_name[1];
|
|
||||||
loose_objpath[2] = '/';
|
|
||||||
|
|
||||||
g_strlcpy (loose_objpath + 3, child_dent->d_name, sizeof (loose_objpath)-3);
|
g_strlcpy (loose_objpath + 3, child_dent->d_name, sizeof (loose_objpath)-3);
|
||||||
|
|
||||||
if (!_ostree_repo_ensure_loose_objdir_at (self->objects_dir_fd, loose_objpath,
|
if (!_ostree_repo_ensure_loose_objdir_at (self->objects_dir_fd, loose_objpath,
|
||||||
|
|
@ -1183,9 +1210,34 @@ rename_pending_loose_objects (OstreeRepo *self,
|
||||||
if (G_UNLIKELY (renameat (child_dfd_iter.fd, loose_objpath + 3,
|
if (G_UNLIKELY (renameat (child_dfd_iter.fd, loose_objpath + 3,
|
||||||
self->objects_dir_fd, loose_objpath) < 0))
|
self->objects_dir_fd, loose_objpath) < 0))
|
||||||
return glnx_throw_errno (error);
|
return glnx_throw_errno (error);
|
||||||
|
|
||||||
|
renamed_some_object = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (renamed_some_object)
|
||||||
|
{
|
||||||
|
/* Ensure that in the case of a power cut all the directory metadata that
|
||||||
|
we want has reached the disk. In particular, we want this before we
|
||||||
|
update the refs to point to these objects. */
|
||||||
|
glnx_fd_close int target_dir_fd = -1;
|
||||||
|
|
||||||
|
loose_objpath[2] = 0;
|
||||||
|
|
||||||
|
if (!glnx_opendirat (self->objects_dir_fd,
|
||||||
|
loose_objpath, FALSE,
|
||||||
|
&target_dir_fd,
|
||||||
|
error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (fsync (target_dir_fd) == -1)
|
||||||
|
return glnx_throw_errno_prefix (error, "fsync");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* In case we created any loose object subdirs, make sure they are on disk */
|
||||||
|
if (fsync (self->objects_dir_fd) == -1)
|
||||||
|
return glnx_throw_errno_prefix (error, "fsync");
|
||||||
|
|
||||||
if (!glnx_shutil_rm_rf_at (self->tmp_dir_fd, self->commit_stagedir_name,
|
if (!glnx_shutil_rm_rf_at (self->tmp_dir_fd, self->commit_stagedir_name,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -1481,6 +1533,25 @@ ostree_repo_abort_transaction (OstreeRepo *self,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* These limits were introduced since in some cases we may be processing
|
||||||
|
* malicious metadata, and we want to make disk space exhaustion attacks harder.
|
||||||
|
*/
|
||||||
|
static gboolean
|
||||||
|
metadata_size_valid (OstreeObjectType objtype,
|
||||||
|
gsize len,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
if (G_UNLIKELY (len > OSTREE_MAX_METADATA_SIZE))
|
||||||
|
{
|
||||||
|
g_autofree char *input_bytes = g_format_size (len);
|
||||||
|
g_autofree char *max_bytes = g_format_size (OSTREE_MAX_METADATA_SIZE);
|
||||||
|
return glnx_throw (error, "Metadata object of type '%s' is %s; maximum metadata size is %s",
|
||||||
|
ostree_object_type_to_string (objtype), input_bytes, max_bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ostree_repo_write_metadata:
|
* ostree_repo_write_metadata:
|
||||||
* @self: Repo
|
* @self: Repo
|
||||||
|
|
@ -1507,23 +1578,38 @@ ostree_repo_write_metadata (OstreeRepo *self,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
g_autoptr(GVariant) normalized = NULL;
|
g_autoptr(GVariant) normalized = NULL;
|
||||||
|
/* First, if we have an expected checksum, see if we already have this
|
||||||
normalized = g_variant_get_normal_form (object);
|
* object. This mirrors the same logic in ostree_repo_write_content().
|
||||||
|
*/
|
||||||
if (G_UNLIKELY (g_variant_get_size (normalized) > OSTREE_MAX_METADATA_SIZE))
|
if (expected_checksum)
|
||||||
{
|
{
|
||||||
g_autofree char *input_bytes = g_format_size (g_variant_get_size (normalized));
|
gboolean have_obj;
|
||||||
g_autofree char *max_bytes = g_format_size (OSTREE_MAX_METADATA_SIZE);
|
if (!_ostree_repo_has_loose_object (self, expected_checksum, objtype, &have_obj,
|
||||||
return glnx_throw (error, "Metadata object of type '%s' is %s; maximum metadata size is %s",
|
cancellable, error))
|
||||||
ostree_object_type_to_string (objtype), input_bytes, max_bytes);
|
return FALSE;
|
||||||
|
if (have_obj)
|
||||||
|
{
|
||||||
|
if (out_csum)
|
||||||
|
*out_csum = ostree_checksum_to_bytes (expected_checksum);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
/* If the caller is giving us an expected checksum, the object really has
|
||||||
|
* to be normalized already. Otherwise, how would they know the checksum?
|
||||||
|
* There's no sense in redoing it.
|
||||||
|
*/
|
||||||
|
normalized = g_variant_ref (object);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
normalized = g_variant_get_normal_form (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_autoptr(GInputStream) input = ot_variant_read (normalized);
|
if (!metadata_size_valid (objtype, g_variant_get_size (normalized), error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
if (!write_object (self, objtype, expected_checksum,
|
g_autoptr(GBytes) vdata = g_variant_get_data_as_bytes (normalized);
|
||||||
input, g_variant_get_size (normalized),
|
if (!write_metadata_object (self, objtype, expected_checksum,
|
||||||
out_csum,
|
vdata, out_csum, cancellable, error))
|
||||||
cancellable, error))
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
@ -1551,7 +1637,21 @@ ostree_repo_write_metadata_stream_trusted (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
return write_object (self, objtype, checksum, object_input, length, NULL,
|
if (length > 0 && !metadata_size_valid (objtype, length, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
/* This is all pretty ridiculous, but we're keeping this API for backwards
|
||||||
|
* compatibility, it doesn't really need to be fast.
|
||||||
|
*/
|
||||||
|
g_autoptr(GMemoryOutputStream) tmpbuf = (GMemoryOutputStream*)g_memory_output_stream_new_resizable ();
|
||||||
|
if (g_output_stream_splice ((GOutputStream*)tmpbuf, object_input,
|
||||||
|
G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET, cancellable, error) < 0)
|
||||||
|
return FALSE;
|
||||||
|
g_autoptr(GBytes) tmpb = g_memory_output_stream_steal_as_bytes (tmpbuf);
|
||||||
|
|
||||||
|
g_autoptr(GVariant) tmpv = g_variant_new_from_bytes (ostree_metadata_variant_type (objtype),
|
||||||
|
tmpb, TRUE);
|
||||||
|
return ostree_repo_write_metadata_trusted (self, objtype, checksum, tmpv,
|
||||||
cancellable, error);
|
cancellable, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1575,15 +1675,8 @@ ostree_repo_write_metadata_trusted (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
g_autoptr(GInputStream) input = NULL;
|
return ostree_repo_write_metadata (self, type,
|
||||||
g_autoptr(GVariant) normalized = NULL;
|
checksum, variant, NULL,
|
||||||
|
|
||||||
normalized = g_variant_get_normal_form (variant);
|
|
||||||
input = ot_variant_read (normalized);
|
|
||||||
|
|
||||||
return write_object (self, type, checksum,
|
|
||||||
input, g_variant_get_size (normalized),
|
|
||||||
NULL,
|
|
||||||
cancellable, error);
|
cancellable, error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1731,9 +1824,8 @@ ostree_repo_write_content_trusted (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
return write_object (self, OSTREE_OBJECT_TYPE_FILE, checksum,
|
return ostree_repo_write_content (self, checksum, object_input, length,
|
||||||
object_input, length, NULL,
|
NULL, cancellable, error);
|
||||||
cancellable, error);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1759,7 +1851,25 @@ ostree_repo_write_content (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
return write_object (self, OSTREE_OBJECT_TYPE_FILE, expected_checksum,
|
/* First, if we have an expected checksum, see if we already have this
|
||||||
|
* object. This mirrors the same logic in ostree_repo_write_metadata().
|
||||||
|
*/
|
||||||
|
if (expected_checksum)
|
||||||
|
{
|
||||||
|
gboolean have_obj;
|
||||||
|
if (!_ostree_repo_has_loose_object (self, expected_checksum,
|
||||||
|
OSTREE_OBJECT_TYPE_FILE, &have_obj,
|
||||||
|
cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
if (have_obj)
|
||||||
|
{
|
||||||
|
if (out_csum)
|
||||||
|
*out_csum = ostree_checksum_to_bytes (expected_checksum);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return write_content_object (self, expected_checksum,
|
||||||
object_input, length, out_csum,
|
object_input, length, out_csum,
|
||||||
cancellable, error);
|
cancellable, error);
|
||||||
}
|
}
|
||||||
|
|
@ -2185,11 +2295,23 @@ _ostree_repo_commit_modifier_apply (OstreeRepo *self,
|
||||||
|
|
||||||
if ((modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_CANONICAL_PERMISSIONS) != 0)
|
if ((modifier->flags & OSTREE_REPO_COMMIT_MODIFIER_FLAGS_CANONICAL_PERMISSIONS) != 0)
|
||||||
{
|
{
|
||||||
|
guint mode = g_file_info_get_attribute_uint32 (modified_info, "unix::mode");
|
||||||
if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR)
|
switch (g_file_info_get_file_type (file_info))
|
||||||
{
|
{
|
||||||
guint current_mode = g_file_info_get_attribute_uint32 (modified_info, "unix::mode");
|
case G_FILE_TYPE_REGULAR:
|
||||||
g_file_info_set_attribute_uint32 (modified_info, "unix::mode", current_mode | 0744);
|
/* In particular, we want to squash the s{ug}id bits, but this also
|
||||||
|
* catches the sticky bit for example.
|
||||||
|
*/
|
||||||
|
g_file_info_set_attribute_uint32 (modified_info, "unix::mode", mode & (S_IFREG | 0755));
|
||||||
|
break;
|
||||||
|
case G_FILE_TYPE_DIRECTORY:
|
||||||
|
/* Like the above but for directories */
|
||||||
|
g_file_info_set_attribute_uint32 (modified_info, "unix::mode", mode & (S_IFDIR | 0755));
|
||||||
|
break;
|
||||||
|
case G_FILE_TYPE_SYMBOLIC_LINK:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
g_assert_not_reached ();
|
||||||
}
|
}
|
||||||
g_file_info_set_attribute_uint32 (modified_info, "unix::uid", 0);
|
g_file_info_set_attribute_uint32 (modified_info, "unix::uid", 0);
|
||||||
g_file_info_set_attribute_uint32 (modified_info, "unix::gid", 0);
|
g_file_info_set_attribute_uint32 (modified_info, "unix::gid", 0);
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
@ -907,17 +884,11 @@ ostree_repo_file_query_info (GFile *file,
|
||||||
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 *
|
||||||
|
|
@ -941,35 +912,41 @@ 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");
|
||||||
goto out;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
checksum = ostree_repo_file_get_checksum (self);
|
checksum = ostree_repo_file_get_checksum (self);
|
||||||
|
|
||||||
|
g_autoptr(GFileInfo) finfo = NULL;
|
||||||
|
if (!ostree_repo_load_file (self->repo, checksum, NULL,
|
||||||
|
&finfo, NULL, cancellable, error))
|
||||||
|
return NULL;
|
||||||
|
if (g_file_info_get_file_type (finfo) == G_FILE_TYPE_REGULAR)
|
||||||
|
{
|
||||||
if (!ostree_repo_load_file (self->repo, checksum, &ret_stream,
|
if (!ostree_repo_load_file (self->repo, checksum, &ret_stream,
|
||||||
NULL, NULL, cancellable, error))
|
NULL, NULL, cancellable, error))
|
||||||
goto out;
|
return NULL;
|
||||||
|
}
|
||||||
ret = TRUE;
|
|
||||||
out:
|
|
||||||
if (!ret)
|
|
||||||
g_clear_object (&ret_stream);
|
|
||||||
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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,11 +908,17 @@ 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))
|
||||||
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
@ -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,9 +1483,13 @@ 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
|
||||||
|
* 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);
|
enqueue_one_object_request (pull_data, tmp_checksum, objtype, path, TRUE, TRUE);
|
||||||
|
else
|
||||||
|
{
|
||||||
if (!scan_commit_object (pull_data, tmp_checksum, recursion_depth,
|
if (!scan_commit_object (pull_data, tmp_checksum, recursion_depth,
|
||||||
pull_data->cancellable, error))
|
pull_data->cancellable, error))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
@ -1387,6 +1497,7 @@ scan_one_metadata_object_c (OtPullData *pull_data,
|
||||||
g_hash_table_add (pull_data->scanned_metadata, g_variant_ref (object));
|
g_hash_table_add (pull_data->scanned_metadata, g_variant_ref (object));
|
||||||
pull_data->n_scanned_metadata++;
|
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)
|
||||||
{
|
{
|
||||||
if (!scan_dirtree_object (pull_data, tmp_checksum, path, recursion_depth,
|
if (!scan_dirtree_object (pull_data, tmp_checksum, path, recursion_depth,
|
||||||
|
|
@ -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,12 +3147,16 @@ ostree_repo_pull_with_options (OstreeRepo *self,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pull_data->remote_repo_local)
|
||||||
|
{
|
||||||
/* For local pulls, default to disabling static deltas so that the
|
/* For local pulls, default to disabling static deltas so that the
|
||||||
* exact object files are copied.
|
* exact object files are copied.
|
||||||
*/
|
*/
|
||||||
if (pull_data->remote_repo_local && !pull_data->require_static_deltas)
|
if (!pull_data->require_static_deltas)
|
||||||
pull_data->disable_static_deltas = TRUE;
|
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);
|
||||||
|
|
@ -3380,7 +3501,7 @@ ostree_repo_pull_with_options (OstreeRepo *self,
|
||||||
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,6 +3588,7 @@ 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);
|
g_hash_table_iter_init (&hash_iter, commits_to_fetch);
|
||||||
while (g_hash_table_iter_next (&hash_iter, &key, &value))
|
while (g_hash_table_iter_next (&hash_iter, &key, &value))
|
||||||
{
|
{
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
|
|
|
||||||
|
|
@ -150,23 +150,27 @@ _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,
|
||||||
|
int *out_dfd,
|
||||||
GFileInfo **out_info,
|
GFileInfo **out_info,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
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,7 +2683,9 @@ ostree_repo_load_file (OstreeRepo *self,
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!query_info_for_bare_content_object (self, loose_path_buf,
|
int objdir_fd; /* referenced */
|
||||||
|
if (!stat_bare_content_object (self, loose_path_buf,
|
||||||
|
&objdir_fd,
|
||||||
&ret_file_info,
|
&ret_file_info,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -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,28 +3232,94 @@ ostree_repo_import_object_from_with_trust (OstreeRepo *self,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
|
/* 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
|
||||||
|
* repository modes to match, as well as the owner uid (since we need to be
|
||||||
|
* able to make hardlinks).
|
||||||
|
*/
|
||||||
|
if (trusted && import_via_hardlink_is_possible (source, self, objtype))
|
||||||
|
{
|
||||||
gboolean hardlink_was_supported = FALSE;
|
gboolean hardlink_was_supported = FALSE;
|
||||||
|
|
||||||
if (trusted && /* Don't hardlink into untrusted remotes */
|
|
||||||
self->mode == source->mode)
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
|
/* First, do we have the object already? */
|
||||||
|
gboolean has_object;
|
||||||
if (!ostree_repo_has_object (self, objtype, checksum, &has_object,
|
if (!ostree_repo_has_object (self, objtype, checksum, &has_object,
|
||||||
cancellable, error))
|
cancellable, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
/* If we have it, we're done */
|
||||||
|
if (has_object)
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
if (!has_object)
|
if (OSTREE_OBJECT_TYPE_IS_META (objtype))
|
||||||
{
|
{
|
||||||
if (!import_one_object_copy (self, source, checksum, objtype, trusted,
|
/* 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;
|
||||||
|
|
||||||
|
if (trusted)
|
||||||
|
{
|
||||||
|
if (!ostree_repo_write_metadata_trusted (self, objtype,
|
||||||
|
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))
|
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,14 +4563,15 @@ 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(GHashTable) refs = NULL;
|
||||||
|
if (!ostree_repo_list_refs (self, NULL, &refs, cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
g_autoptr(GList) ordered_keys = g_hash_table_get_keys (refs);
|
g_autoptr(GList) ordered_keys = g_hash_table_get_keys (refs);
|
||||||
ordered_keys = g_list_sort (ordered_keys, (GCompareFunc)strcmp);
|
ordered_keys = g_list_sort (ordered_keys, (GCompareFunc)strcmp);
|
||||||
|
|
||||||
|
|
@ -4517,7 +4611,7 @@ ostree_repo_regenerate_summary (OstreeRepo *self,
|
||||||
ostree_checksum_to_bytes_v (commit),
|
ostree_checksum_to_bytes_v (commit),
|
||||||
g_variant_dict_end (&commit_metadata_builder)));
|
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,6 +4647,7 @@ 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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (delta_names->len > 0)
|
||||||
g_variant_dict_insert_value (&additional_metadata_builder, OSTREE_SUMMARY_STATIC_DELTAS, g_variant_dict_end (&deltas_builder));
|
g_variant_dict_insert_value (&additional_metadata_builder, OSTREE_SUMMARY_STATIC_DELTAS, g_variant_dict_end (&deltas_builder));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
int new_deployment_dfd,
|
||||||
GCancellable *cancellable,
|
GCancellable *cancellable,
|
||||||
GError **error)
|
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,10 +484,7 @@ 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",
|
||||||
|
|
@ -477,31 +492,29 @@ merge_etc_changes (GFile *orig_etc,
|
||||||
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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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) || \
|
||||||
|
|
|
||||||
|
|
@ -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) || \
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Reference in New Issue