| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Closes: #481
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
OSTree function ostree_repo_pull_with_options starts a
series of operations that makes heavy use of the PullData's
cancellable.
This isn't effective, however, since nowhere in the code
the OtPullData.cancellable field is set. This is visible,
for example, when trying to cancel a Flatpak pull and nothing
happens, because the cancellable is not properly passed
to the pull data.
Fix that by setting the cancellable field of the pull data. It
owns a reference for safety reasons, and unreferences it at the
end of the operation.
ostreedev/ostree#482
Closes: #483
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the build system by removing the need for
`libswitchroot-mountutil.la`.
Original idea by @cgwalters in #477.
Closes: #478
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `warn()` libc extension has exactly the same behaviour as our own
`perrorv` function, but is available in (at least) glibc and musl. As an
added bonus the similar function `err()` which will exit with an error
code afterwards.
This implementation is tidier and allows us to get rid of our own
`perrorv`. It paves the way to removing `ostree-mount-util.c` to simplify
the build scripts.
Original idea by @cgwalters in #477.
Closes: #478
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the `--with-static-compiler=musl-gcc` configure flag is given.
ostree-prepare-root can be used as init in a system without a populated
/lib. To support this use case we need to link statically as we will be
unable to locate libc.so at run time if it's not installed in /lib.
We support building ostree-prepare-root with a different compiler to the
rest of ostree so we can use musl rather than glibc. This reduces the size
of the executable significantly: from ~700K -> ~30K. We have to use
`_SCRIPTS` here to get autotools to install this as an executable but
without generating rules to make it itself which we have specified
manually.
See https://lists.gnu.org/archive/html/help-gnu-utils/2007-01/msg00007.html
for advice on using autotools in this manner.
Closes: #477
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
POSIX and GNU define conflicting versions of `strerror_r`. The GNU
version returns the string but doesn't necessilary write into buf.
The POSIX version writes into buf and returns the length but doesn't
necessilary append a terminate the string with a NUL if it's too long
to fit in buf.
This commit fixes building ostree-prepare-root with musl libc. The
stripped static build with musl on my machine is 30K vs. 724K with glibc
static and 11K with glibc shared.
Closes: #477
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We hold a fd open on this, and it's basically now expected
to be immortal. Confer that status.
This was showing up in flatpak crashers, because we'd get
an unexpected errno.
(I didn't test this fixes the crasher, but it's clearly right)
https://bugzilla.redhat.com/show_bug.cgi?id=1347293
Closes: #476
Approved by: alexlarsson
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I noticed seeing the output of `prune` twice in rpm-ostree, and had
always wondered why. When reading the rpm-ostree code to fix
something else, reasons, I noticed the reason - we were pruning once
here, and then once after rpm-ostree regenerates its "base" refs.
There's no reason to clean twice, so let's add a flag so rpm-ostree
can suppress doing it inside libostree.
Closes: #474
Approved by: giuseppe
|
|
|
|
|
|
|
|
|
|
|
| |
It's close-on-exec, not close-on-fork. I was clearly confused when
writing this; it works just fine to reference the fd in the child and
`fchdir()` before exec. So drop the unnecessary duplication.
Just noticed this while reading the code for a random other reason.
Closes: #473
Approved by: giuseppe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a proper fix for:
https://bugzilla.gnome.org/show_bug.cgi?id=755787
With this patch, an admin (system builder) can now:
1) Edit /usr/lib/ostree-boot/uEnv.txt
2) Deploy the new tree. OSTree will append system's uEnv.txt
to the OSTree's managed uEnv.txt (loader/uEnv.txt).
It is common for u-boot systems to read in an extra env
from external /uEnv.txt. The same file OSTree uses to pass
in its env. With this patch /uEnv.txt now contains OSTree's
env + custom env added by system builders.
Closes: #466
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes this warning:
src/libostree/ostree-repo-pull.c:2162: Warning: OSTree: ostree_repo_pull_with_options: unknown parameter 'remote_name_or_baseurl' in documentation comment, should be 'remote_name'
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Closes: #472
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
|
| |
When doing a prune, we should not try to delete objects in parent
repos, since it'll fail. There is a bigger discussion about the
semantics of `parent=` to be had, but this will fix trying to use
`ostree prune --repo=/ostree/repo/extensions/rpmostree/pkgcache`.
Closes: https://github.com/ostreedev/ostree/issues/467
Closes: #471
Approved by: jlebon
|
|
|
|
|
|
|
|
| |
I hit these while causing errors in prune. Let's add the specific
object we were looking for.
Closes: #471
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
| |
In CentOS, these happened to appear in a repo that is served
via rsync, and having them not be world-readable caused mirroring
tools to fail.
They aren't secret, so don't make them so.
Closes: #468
Approved by: giuseppe
|
|
|
|
|
| |
Closes: #465
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
| |
We used to only look at the "gpg-verify" and "gpg-verify-summary"
options when we're passed a local URL. Make these options also have an
effect in the configured remote case.
Closes: #465
Approved by: cgwalters
|
|
|
|
|
| |
Closes: #465
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Programs like `useradd` try to `open(/etc/passwd, O_RDWR)` to append,
which didn't work with rofiles-fuse. Thinking about this, I realized
that there's a simpler algorithm for "can we write to this file" which
is "does it have a hardlink count <= 1"?
Switching to this both drops complexity (we no longer need to keep a
hash table of files we created), and also lets useradd work.
Closes: #462
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test suite was actually doing something before, just
not quite what I intended. Without `-U` for bare-user checkouts
we end up doing a copy.
Now, a future commit will change how rofiles work, which would cause
the test suite to permit inplace mutation for non-hardlinked files.
So let's ensure they *are* hardlinked.
Closes: #462
Approved by: jlebon
|
|
|
|
|
| |
Closes: #461
Approved by: giuseppe
|
|
|
|
|
|
|
| |
Inquiring minds want to know.
Closes: #461
Approved by: giuseppe
|
|
|
|
|
|
|
| |
Signed-off-by: Adam Miller <maxamillion@fedoraproject.org>
Closes: #460
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
| |
The documentation says this is ignored, implying that you should pass
NULL to it. However, the function immediately returns in this case even
though the argument isn't used anywhere.
Closes: #458
Approved by: cgwalters
|
|
|
|
|
| |
Closes: #459
Approved by: cgwalters
|
|
|
|
|
| |
Closes: #457
Approved by: cgwalters
|
|
|
|
|
|
|
| |
Otherwise we break local installs.
Closes: #456
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Why not to use libexecdir?
Because this directory does not exist on some distros or paths
between distros varies. There are several reasons why a well
known path is prefered, for example when generating a kernel
command line:
init=${ostree}/usr/lib/ostree-boot/ostree-prepare-root
In addition this saves us some typing in a console when wanting
to access the "ostree" cmd line.
Closes: #449
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
| |
Pulls from local repos now default to disabling static deltas so that
objects are copied. To check this is the case, see if the object files
are hardlinked after pulling.
Closes: #447
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For local pulls there's no benefit pulling the static delta over the
individual object files since there's no HTTP overhead. Furthermore,
processing deltas always generates the objects whereas a standard pull
ensures that the exact object files are copied. Using deltas also
prevents hardlinking the objects if the repos exist on the same
filesystem.
Closes: #447
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
|
|
| |
When testing pulling of deltas, use the new --require-static-deltas
option to pull-local to ensure that deltas are actually used. To support
the require-static-deltas mode, the summary in the remote repo must be
generated.
Closes: #447
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
| |
Add the --require-static-deltas option like pull to ensure static deltas
are processed for local pulls.
Closes: #447
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
| |
You need to supply an argument to F_DUPFD_CLOEXEC or fcntl will return
EINVAL. Use 3 as the minimum fd number as is standard.
Closes: #454
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
|
| |
If there's an early error, part_temp_fds will be NULL and dereferencing
the len member will segfault.
Closes: #454
Closes: #448
Approved by: cgwalters
|
|
|
|
|
|
|
| |
We should remember to do this in the commit updating configure.ac.
Closes: #453
Approved by: jlebon
|
|
|
|
|
|
|
|
| |
It's time for a new release, there's enough queued and it's
been ~a month.
Closes: #452
Approved by: jlebon
|
|
|
|
|
|
|
|
| |
My case-sensitive `git grep` didn't find this one originally,
but the Travis+Debian setup was configured to run it.
Closes: #451
Approved by: jlebon
|
|
|
|
|
|
|
| |
I'm getting spammed. We'll see the results in the status.
Closes: #450
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Lots and lots of preparation led to this moment - when nothing
apparent changes for users! Woo!
But seriously, having the extra dependency is a minor annoyance, and
in the big picture I think the libgsystem idea was wrong - we need to
land things in GLib, and use git submodules for API-unstable or
Linux-specific sharing. For a lot of OSTree, the libgsystem `GFile*`
orientation was also wrong, we really want fd-relative.
Closes: #444
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I hit an error with [CAHC](https://wiki.centos.org/SpecialInterestGroup/Atomic/Devel)
where we were doing time-based pruning. `ostree summary -u` started failing,
and it took me a bit to realize it was because we were pruning
even the tip of old branches, which I was not at all expecting,
and I don't think users will too.
Perhaps in the future we could add some sort of --prune-ref-tips or
something if people wanted it, but I doubt it.
Closes: #445
Approved by: jlebon
|
|
|
|
|
|
|
| |
The patch to add more symlink bits also needed CLEANFILES updates.
Closes: #446
Approved by: jlebon
|
|
|
|
|
|
|
|
|
| |
Since we already had a "recursive copy" implementation here, let's
reuse it rather than the libgsystem `gs_shutil_cp_a()`. Part of the
libglnx porting.
Closes: #428
Approved by: jlebon
|
|
|
|
|
|
|
|
|
|
|
| |
It handles ownership of the `DIR*` for us more cleanly, and
is just a better API.
This is in preparation for further changes to this code to do SELinux
labeling while copying.
Closes: #428
Approved by: jlebon
|
|
|
|
|
| |
Closes: #431
Approved by: giuseppe
|
|
|
|
|
|
|
|
| |
This should hopefully avoid me accidentally passing NULL for an `int`
file descriptor in the future.
Closes: #431
Approved by: giuseppe
|
|
|
|
|
|
|
|
|
| |
I want to add `-Werror=int-conversion`, but it's only available in
newer GCC versions. So let's start autodetecting available compiler
flags.
Closes: #431
Approved by: giuseppe
|
|
|
|
|
|
|
|
|
| |
I forgot to actually remove `config_file` in the previous
commit, the txn lock hasn't been used in a long time, and
for the uncompressed cache, everything uses the fd already.
Closes: #433
Approved by: giuseppe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.travis.yml is obviously still Travis-specific, but tests/ci-* are
designed to be shareable with other CI environments if there is interest
in doing so.
At the moment I'm only testing on Debian and Ubuntu. In principle we
could try a non-Debian-derived Docker container such as Fedora or CentOS
inside travis-ci's Ubuntu environment, similar to what I'm doing
for Debian, but I don't know the correct setup commands to use there.
Closes: #438
Approved by: cgwalters
|
|
|
|
|
|
|
| |
@smcv will re-add a new version.
Closes: #439
Approved by: smcv
|
|
|
|
|
|
|
|
|
|
|
|
| |
ostree's naming convention for whiteouts is similar to what is
done in aufs, which means we can't compose the trees to test this
feature under Docker with the aufs storage driver, as used on
travis-ci.
Signed-off-by: Simon McVittie <smcv@debian.org>
Closes: #437
Approved by: cgwalters
|
|
|
|
|
|
|
|
|
| |
This fixes distcheck.
Signed-off-by: Simon McVittie <smcv@debian.org>
Closes: #436
Approved by: cgwalters
|