lib: Fix a bad call to g_file_get_child
authorValentin David <me@valentindavid.com>
Tue, 2 Nov 2021 18:49:04 +0000 (19:49 +0100)
committerSimon McVittie <smcv@debian.org>
Thu, 10 Mar 2022 11:59:18 +0000 (11:59 +0000)
In Glib, since commit 3a6e8bc8876e149c36b6b14c6a25a718edb581ed,
`g_file_get_child` does not accept absolute path as paramater anymore.

The broken assertion was encountered during `ostree admin deploy`
command for the checkout of subpath `etc`.

Example of error log:
```
(ostree admin deploy:1640): GLib-GIO-CRITICAL **: 03:42:00.570: g_file_get_child: assertion '!g_path_is_absolute (name)' failed

(ostree admin deploy:1640): GLib-GIO-CRITICAL **: 03:42:00.570: g_file_query_info: assertion 'G_IS_FILE (file)' failed
**
OSTree:ERROR:src/ostree/ot-main.c:232:ostree_run: assertion failed: (success || error)
Bail out! OSTree:ERROR:src/ostree/ot-main.c:232:ostree_run: assertion failed: (success || error)
```

Bug: https://github.com/flatpak/flatpak/pull/4707
Origin: upstream, 2021.6, commit:adc097a2edb1b7aaf5604043b4b1d5bd6ef8a308

Gbp-Pq: Name lib-Fix-a-bad-call-to-g_file_get_child.patch

src/libostree/ostree-repo-checkout.c

index 00c6a7732afd0aff811b54aa10d601bae13db4ab..c6645d75ebe2107898614b91d570de36329ec85a 100644 (file)
@@ -1381,7 +1381,7 @@ ostree_repo_checkout_at (OstreeRepo                        *self,
   g_autoptr(GFile) target_dir = NULL;
 
   if (strcmp (options->subpath, "/") != 0)
-    target_dir = g_file_get_child (commit_root, options->subpath);
+    target_dir = g_file_resolve_relative_path (commit_root, options->subpath);
   else
     target_dir = g_object_ref (commit_root);
   g_autoptr(GFileInfo) target_info =