diff --git a/Makefile-libostree.am b/Makefile-libostree.am index 39dc0d14..0a4de6de 100644 --- a/Makefile-libostree.am +++ b/Makefile-libostree.am @@ -101,6 +101,7 @@ libostree_1_la_SOURCES = \ src/libostree/ostree-repo-checkout.c \ src/libostree/ostree-repo-commit.c \ src/libostree/ostree-repo-pull.c \ + src/libostree/ostree-repo-pull-private.h \ src/libostree/ostree-repo-libarchive.c \ src/libostree/ostree-repo-prune.c \ src/libostree/ostree-repo-refs.c \ diff --git a/Makefile-tests.am b/Makefile-tests.am index 6d0e0865..2b335556 100644 --- a/Makefile-tests.am +++ b/Makefile-tests.am @@ -108,6 +108,7 @@ _installed_or_uninstalled_test_scripts = \ tests/test-xattrs.sh \ tests/test-auto-summary.sh \ tests/test-prune.sh \ + tests/test-concurrency.py \ tests/test-refs.sh \ tests/test-demo-buildsystem.sh \ tests/test-switchroot.sh \ diff --git a/Makefile.am b/Makefile.am index 6043b2aa..ea1863d3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -31,7 +31,8 @@ AM_CPPFLAGS += -DDATADIR='"$(datadir)"' -DLIBEXECDIR='"$(libexecdir)"' \ -DOSTREE_GITREV='"$(OSTREE_GITREV)"' \ -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40 '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,50)' \ -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)' -AM_CFLAGS += -std=gnu99 $(WARN_CFLAGS) +# For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622 +AM_CFLAGS += -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS) AM_DISTCHECK_CONFIGURE_FLAGS += \ --enable-gtk-doc \ --enable-man \ diff --git a/Makefile.in b/Makefile.in index cb185ad0..0a220382 100644 --- a/Makefile.in +++ b/Makefile.in @@ -704,6 +704,7 @@ am__libostree_1_la_SOURCES_DIST = \ src/libostree/ostree-repo-checkout.c \ src/libostree/ostree-repo-commit.c \ src/libostree/ostree-repo-pull.c \ + src/libostree/ostree-repo-pull-private.h \ src/libostree/ostree-repo-libarchive.c \ src/libostree/ostree-repo-prune.c \ src/libostree/ostree-repo-refs.c \ @@ -1728,11 +1729,12 @@ am__EXEEXT_25 = tests/test-basic.sh tests/test-basic-user.sh \ tests/test-reset-nonlinear.sh tests/test-oldstyle-partial.sh \ tests/test-delta.sh tests/test-xattrs.sh \ tests/test-auto-summary.sh tests/test-prune.sh \ - tests/test-refs.sh tests/test-demo-buildsystem.sh \ - tests/test-switchroot.sh tests/test-pull-contenturl.sh \ - tests/test-pull-mirrorlist.sh tests/test-summary-update.sh \ - tests/test-summary-view.sh $(am__EXEEXT_2) $(am__EXEEXT_22) \ - $(am__append_68) $(am__append_71) $(am__EXEEXT_24) + tests/test-concurrency.py tests/test-refs.sh \ + tests/test-demo-buildsystem.sh tests/test-switchroot.sh \ + tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \ + tests/test-summary-update.sh tests/test-summary-view.sh \ + $(am__EXEEXT_2) $(am__EXEEXT_22) $(am__append_68) \ + $(am__append_71) $(am__EXEEXT_24) @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@am__EXEEXT_26 = \ @ENABLE_INSTALLED_TESTS_EXCLUSIVE_FALSE@ $(am__EXEEXT_25) am__EXEEXT_27 = $(am__EXEEXT_2) $(am__EXEEXT_26) @@ -2023,7 +2025,8 @@ AM_CPPFLAGS = -DDATADIR='"$(datadir)"' -DLIBEXECDIR='"$(libexecdir)"' \ '-DGLIB_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,50)' \ -DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_40 \ '-DSOUP_VERSION_MAX_ALLOWED=G_ENCODE_VERSION(2,48)' -AM_CFLAGS = -std=gnu99 $(WARN_CFLAGS) +# For strict aliasing, see https://bugzilla.gnome.org/show_bug.cgi?id=791622 +AM_CFLAGS = -std=gnu99 -fno-strict-aliasing $(WARN_CFLAGS) # Allow the distcheck install under $prefix test to pass AM_DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man \ @@ -2315,6 +2318,7 @@ libostree_1_la_SOURCES = src/libostree/ostree-async-progress.c \ src/libostree/ostree-repo-checkout.c \ src/libostree/ostree-repo-commit.c \ src/libostree/ostree-repo-pull.c \ + src/libostree/ostree-repo-pull-private.h \ src/libostree/ostree-repo-libarchive.c \ src/libostree/ostree-repo-prune.c \ src/libostree/ostree-repo-refs.c \ @@ -2547,11 +2551,12 @@ _installed_or_uninstalled_test_scripts = tests/test-basic.sh \ tests/test-reset-nonlinear.sh tests/test-oldstyle-partial.sh \ tests/test-delta.sh tests/test-xattrs.sh \ tests/test-auto-summary.sh tests/test-prune.sh \ - tests/test-refs.sh tests/test-demo-buildsystem.sh \ - tests/test-switchroot.sh tests/test-pull-contenturl.sh \ - tests/test-pull-mirrorlist.sh tests/test-summary-update.sh \ - tests/test-summary-view.sh $(NULL) $(am__append_65) \ - $(am__append_68) $(am__append_71) $(am__append_72) + tests/test-concurrency.py tests/test-refs.sh \ + tests/test-demo-buildsystem.sh tests/test-switchroot.sh \ + tests/test-pull-contenturl.sh tests/test-pull-mirrorlist.sh \ + tests/test-summary-update.sh tests/test-summary-view.sh \ + $(NULL) $(am__append_65) $(am__append_68) $(am__append_71) \ + $(am__append_72) experimental_test_scripts = \ tests/test-create-usb.sh \ tests/test-find-remotes.sh \ @@ -7666,6 +7671,13 @@ tests/test-prune.sh.log: tests/test-prune.sh --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-concurrency.py.log: tests/test-concurrency.py + @p='tests/test-concurrency.py'; \ + b='tests/test-concurrency.py'; \ + $(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-refs.sh.log: tests/test-refs.sh @p='tests/test-refs.sh'; \ b='tests/test-refs.sh'; \ diff --git a/README.md b/README.md index 3e72c061..5bf8b7b0 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,10 @@ projects. where OSTree was born - as a high performance continuous delivery/testing system for GNOME. +The [BuildStream](https://gitlab.com/BuildStream/buildstream) build and +integration tool uses libostree as a caching system to store and share +built artifacts. + Building -------- diff --git a/apidoc/Makefile.am b/apidoc/Makefile.am index f3405fb0..d46eac78 100644 --- a/apidoc/Makefile.am +++ b/apidoc/Makefile.am @@ -83,6 +83,7 @@ IGNORE_HFILES= \ ostree-metalink.h \ ostree-repo-file-enumerator.h \ ostree-repo-private.h \ + ostree-repo-pull-private.h \ ostree-repo-static-delta-private.h \ ostree-sysroot-private.h \ ostree-tls-cert-interaction.h \ diff --git a/apidoc/Makefile.in b/apidoc/Makefile.in index 04588e88..a2c0886e 100644 --- a/apidoc/Makefile.in +++ b/apidoc/Makefile.in @@ -453,6 +453,7 @@ IGNORE_HFILES = \ ostree-metalink.h \ ostree-repo-file-enumerator.h \ ostree-repo-private.h \ + ostree-repo-pull-private.h \ ostree-repo-static-delta-private.h \ ostree-sysroot-private.h \ ostree-tls-cert-interaction.h \ diff --git a/apidoc/html/index.html b/apidoc/html/index.html index 212b67f8..9bb5be8f 100644 --- a/apidoc/html/index.html +++ b/apidoc/html/index.html @@ -14,7 +14,7 @@
OSTree API references |
|---|
for OSTree 2017.14
for OSTree 2017.15
gboolean +ostree_break_hardlink (+int dfd, +const char *path, +gboolean skip_xattrs, +GCancellable *cancellable, +GError **error);
In many cases using libostree, a program may need to "break" +hardlinks by performing a copy. For example, in order to +logically append to a file.
+This function performs full copying, including e.g. extended +attributes and permissions of both regular files and symbolic links.
+If the file is not hardlinked, this function does nothing and +returns successfully.
+This function does not perform synchronization via or
+fsync(); the idea is this will commonly be done as part
+of an fdatasync(), which itself takes
+care of synchronization.ostree_repo_commit_transaction()
dfd |
+Directory fd |
++ |
path |
+Path relative to |
++ |
skip_xattrs |
+Do not copy extended attributes |
++ |
error |
+error |
++ |
Since: 2017.15
+gboolean ostree_checksum_file_from_input (GFileInfo *file_info, diff --git a/apidoc/html/ostree-OstreeRepo.html b/apidoc/html/ostree-OstreeRepo.html index 0410ab45..064077d9 100644 --- a/apidoc/html/ostree-OstreeRepo.html +++ b/apidoc/html/ostree-OstreeRepo.html @@ -412,6 +412,14 @@ gboolean+ostree_repo_mark_commit_partial () + + ++ @@ -609,6 +617,14 @@+gboolean + +ostree_repo_write_metadata () + +gboolean + ++ostree_repo_fsck_object () + ++ OstreeRepoCommitFilterResult @@ -2644,6 +2660,7 @@ entire objects directory. If your commit is composed of mostly hardlinks to existing ostree objects, then this will speed up considerably, so call it before you call ostree_write_directory_to_mtree()or similar. However,ostree_repo_devino_cache_new()is better as it avoids scanning all objects. +Multithreading: This function is *not* MT safe.
Parameters