IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an
email to Administrator. User accounts are meant only to access repo
and report issues and/or generate pull requests.
This is a purpose-specific Git hosting for
BaseALT
projects. Thank you for your understanding!
Только зарегистрированные пользователи имеют доступ к сервису!
Для получения аккаунта, обратитесь к администратору.
This adds an internal temporary copy of the rpm version comparison
logic from librpmio (LGPL).
It allows relaxing the minimum library version to >= 4.14.
Supporting the session bus was a nice idea but we don't
have any tests for this anymore, and carrying it is
nontrivial overhead. It used to only kind of work because
ostree ran well as non-root, but rpm-ostreed really requires
root nowadays.
I planned to use this as part of doing live diffs, e.g. to
notice the kernel changed between commits.
But also, at some point I'd like to add `ostree.architecture`
there to obsolete the cosa-specific `coreos-assembler.basearch`
so that multiple buildsystems and consumers can use that.
(That said, they can also just use `$(arch)` today)
This adds a minimum required version on rpm-devel >= 4.16.0.
rpm-ostree uses the new comparison APIs from 'rpmver.h', which
did not exist on previous versions.
We haven't actually tested this in a long time, it's just
cruft now. Bigger picture we need to make it as ergonomic and
fast as possible to test in VMs.
(I think it likely would be worthwhile at some point having rpm-ostree run in a "stock
podman container" w/o systemd but that's a whole lot of work.)
Prep for some work on socket activation.
Alternative to https://github.com/coreos/rpm-ostree/pull/2845
which moved the `reboot` invocation into the client (which I think
still makes sense in some cases).
Previously we were starting the reboot before we're returned
a success reply to the client, so it could see the daemon killed
by `SIGTERM` and hence emit a spurious error.
(Really in this case any 3 of the calling process, the client
binary or the daemon could be killed in any order, so it's messy
but this just closes one race)
For cleanliness we reject starting any new transactions after the daemon has
started a reboot.
Closes: https://github.com/coreos/rpm-ostree/issues/1348
The only part left that we will need to keep ~forever is
the treefile parsing `rojig:` because it's used by coreos-assembler.
But all we need is to propagate it into the JSON treefile.
One thing I realized is we need to keep the `rojig:` bit
in the treefile because we're (ab)using it in coreos-assembler
for image naming.
But we don't need the spec file generation bits, so that can go.
This is a better alternative to https://github.com/coreos/fedora-coreos-config/pull/830
Basically rather than trying to send this out to all FCOS users,
it's much saner to allow people to opt-in to it locally.
If we'd finished https://github.com/coreos/rpm-ostree/issues/2326
then this would be something as trivial as:
```
$ echo 'cliwrap: true' > /etc/rpm-ostree.d/cliwrap.yaml
$ rpm-ostree rebuild
```
Unfortunately that's not the world we live in, so a whole lot of
layers here need crossing to just propagate a boolean. And it
interacts in a tricky way with our change detection code.
But, it works and will allow people to try this out.
Other fixed problems:
- Our `rpm --verify` wrapping was broken
- Dropping privileges clashed with the default directory being `/root`,
so `chdir(/)` too
The inevitable followup to https://github.com/coreos/rpm-ostree/pull/2278
that I was too cowardly to do at the time. But it's time to admit
the 2 months or so of work on this was wasted. We have too much
tech debt and this is a large chunk of C/C++ code that touches everything
in the codebase in a nontrivial way.
Bigger picture, I'm going to work on
https://github.com/coreos/fedora-coreos-tracker/issues/828
which will strongly orient rpm-ostree towards the container world instead.
We'll still obviously keep the rpm package world around, but only
as a secondary layer. What rojig was trying to do in putting "images"
inside an RPM was conflating layers. It would have had a lot of
benefits probably if we'd truly pushed it over the edge into completion,
but that didn't happen. Let's focus on containers instead.
There's still a lot more rojig code to delete but this first patch removes
the bulk of it. Touching everything that references e.g. `RPMOSTREE_REFSPEC_TYPE_ROJIG`
etc. can come as a 3rd phase.
This new `rpm-ostree ex-container` CLI is just code copied
from the `ostree-ext-cli container` binary code. In the future
I may just add the CLI code as a library API too to simplify this.
For now, I don't want to try to add a new Rust CLI as an RPM
package for example. This exposes it via rpm-ostree, and
in the future rpm-ostree may have some layering on top of this
anyways.
This reworks the special-case handling of `/var/lib/rpm`, in order
to make it uniform across codepaths and outside of auto-tmpfiles logic.
It prepares for further oxidation and auto-tmpfiles codepaths unification.