From 61de6d0c2d4b09b31094396f8651b96fa5ad51c8 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sun, 26 Jun 2016 12:32:22 +0100 Subject: [PATCH] d/p/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch: apply patch from upstream to fix a bug that flatpak currently works around --- debian/changelog | 3 + ...-repo-parent_repo-when-applying-stat.patch | 57 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 61 insertions(+) create mode 100644 debian/patches/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch diff --git a/debian/changelog b/debian/changelog index 0d66baf5..97a50e22 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,9 @@ ostree (2016.6-1) UNRELEASED; urgency=medium (add https://github.com/ostreedev/ostree as a remote) * d/p/libostree.sym-Fix-test-symbols.patch: apply patch from upstream to fix a build-time test + * d/p/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch: + apply patch from upstream to fix a bug that flatpak currently works + around -- Simon McVittie Wed, 15 Jun 2016 14:05:53 -0400 diff --git a/debian/patches/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch b/debian/patches/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch new file mode 100644 index 00000000..62de025d --- /dev/null +++ b/debian/patches/pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch @@ -0,0 +1,57 @@ +From: Alexander Larsson +Date: Thu, 23 Jun 2016 11:51:15 +0200 +Subject: pull: Correctly handle repo->parent_repo when applying static deltas + +In flatpak i was using a parent repo, and it failed to update +with ENOENT when dispatching an set-read-source opcode, because the +object it referenced was in the parent repo. + +This fixes that by making _ostree_repo_read_bare_fd look +at parent_repo. + +Closes: #362 +Approved by: cgwalters +Origin: upstream, 2016.7, commit:fc4a7ec35e6e7a3a2db80257508faa592329786c +--- + src/libostree/ostree-repo.c | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +diff --git a/src/libostree/ostree-repo.c b/src/libostree/ostree-repo.c +index e86685b..b835348 100644 +--- a/src/libostree/ostree-repo.c ++++ b/src/libostree/ostree-repo.c +@@ -2715,18 +2715,29 @@ _ostree_repo_read_bare_fd (OstreeRepo *self, + GError **error) + { + char loose_path_buf[_OSTREE_LOOSE_PATH_MAX]; +- ++ + g_assert (self->mode == OSTREE_REPO_MODE_BARE || + self->mode == OSTREE_REPO_MODE_BARE_USER); + + _ostree_loose_path (loose_path_buf, checksum, OSTREE_OBJECT_TYPE_FILE, self->mode); +- +- *out_fd = openat (self->objects_dir_fd, loose_path_buf, O_RDONLY | O_CLOEXEC); +- if (*out_fd < 0) ++ ++ if (!ot_openat_ignore_enoent (self->objects_dir_fd, loose_path_buf, out_fd, error)) ++ return FALSE; ++ ++ if (*out_fd == -1) + { +- glnx_set_error_from_errno (error); ++ if (self->parent_repo) ++ return _ostree_repo_read_bare_fd (self->parent_repo, ++ checksum, ++ out_fd, ++ cancellable, ++ error); ++ ++ g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND, ++ "No such file object %s", checksum); + return FALSE; + } ++ + return TRUE; + } + diff --git a/debian/patches/series b/debian/patches/series index a185cd6c..ccc85506 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ libostree.sym-Fix-test-symbols.patch +pull-Correctly-handle-repo-parent_repo-when-applying-stat.patch