Add a notion of "physical" sysroot, use for remote writing

Using `${sysroot}` to mean the physical storage root: We don't want to write to
`${sysroot}/etc/ostree/remotes.d`, since nothing will read it, and really
`${sysroot}` should just have `/ostree` (ideally). Today the Anaconda rpmostree
code ends up writing there. Fix this by adding a notion of "physical" sysroot.
We determine whether the path is physical by checking for `/sysroot`, which
exists in deployment roots (and there shouldn't be a `${sysroot}/sysroot`).

In order to unit test this, I added a `--sysroot` argument to `remote add`.
However, doing this better would require reworking the command line parsing for
the `remote` argument to support specifying `--repo` or `--sysroot`, and I
didn't quite want to do that yet in this patch.

Closes: https://github.com/ostreedev/ostree/issues/892

Closes: #896
Approved by: jlebon
This commit is contained in:
Colin Walters authored and Atomic Bot committed 2017-06-01 18:15:56 +00:00
1 parent 2414704609
commit 1eff3e8343
9 files changed
+81 -23

No files matched your search

+2 -1
View File
@@ -48,7 +48,8 @@ struct OstreeSysroot {
GLnxLockFile lock;
gboolean loaded;
gboolean is_physical; /* TRUE if we're pointed at physical storage root and not a deployment */
GPtrArray *deployments;
int bootversion;
int subbootversion;