-
Notifications
You must be signed in to change notification settings - Fork 195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
unified core 🌐 migration #729
Comments
This gives scripts access to e.g. `/dev/urandom`. Short term hack until we implement coreos#729 The reason we don't need to explicitly clean these up before committing is right now for treecompose we only lift `/usr` from the RPM content, so we don't run into ostree refusing to commit devices. Closes: coreos#727
This gives scripts access to e.g. `/dev/urandom`. Short term hack until we implement #729 The reason we don't need to explicitly clean these up before committing is right now for treecompose we only lift `/usr` from the RPM content, so we don't run into ostree refusing to commit devices. Closes: #727 Closes: #730 Approved by: jlebon
This gives scripts access to e.g. `/dev/urandom`. Short term hack until we implement #729 The reason we don't need to explicitly clean these up before committing is right now for treecompose we only lift `/usr` from the RPM content, so we don't run into ostree refusing to commit devices. Closes: #727
At one point `rpm-ostree install libvirt` dragged in libguestfs which in turn brought in `syslinux-extlinux-nonlinux` which has files in `/boot/extlinux`, which we rejected. (That dependency chain appears to have been fixed currently) For the general case, this is just a partial fix in that we haven't nailed down the semantics of how updates for `/boot` work. But in this particular case, we'll just break libguestfs' `extlinux` verb, which I'm OK with. Another case is `fwupdate-efi` - we require manual intervention to copy the data into `/boot` after installing the package. This is also preparation for [unified core](coreos#729) in that we now ensure imported kernels don't end up in `/boot` unless explicitly configured. Closes: coreos#853
At one point `rpm-ostree install libvirt` dragged in libguestfs which in turn brought in `syslinux-extlinux-nonlinux` which has files in `/boot/extlinux`, which we rejected. (That dependency chain appears to have been fixed currently) For the general case, this is just a partial fix in that we haven't nailed down the semantics of how updates for `/boot` work. But in this particular case, we'll just break libguestfs' `extlinux` verb, which I'm OK with. Another case is `fwupdate-efi` - we require manual intervention to copy the data into `/boot` after installing the package. This is also preparation for [unified core](#729) in that we now ensure imported kernels don't end up in `/boot` unless explicitly configured. Closes: #853 Closes: #969 Approved by: jlebon
At one point `rpm-ostree install libvirt` dragged in libguestfs which in turn brought in `syslinux-extlinux-nonlinux` which has files in `/boot/extlinux`, which we rejected. (That dependency chain appears to have been fixed currently) For the general case, this is just a partial fix in that we haven't nailed down the semantics of how updates for `/boot` work. But in this particular case, we'll just break libguestfs' `extlinux` verb, which I'm OK with. Another case is `fwupdate-efi` - we require manual intervention to copy the data into `/boot` after installing the package. This is also preparation for [unified core](#729) in that we now ensure imported kernels don't end up in `/boot` unless explicitly configured. Closes: #853 Closes: #969 Approved by: jlebon
Today in Fedora the `glibc-all-langpacks.posttrans` is implemented in lua, for no good reason. See: https://bugzilla.redhat.com/show_bug.cgi?id=1367585 Since that's stalled out, let's add support for overrides. This is obviously a much bigger step with more long term maintenance implications over our current "ignore scripts" list. But we can't block either. This is needed for unified core work: coreos#729 (We also override `fedora-release-atomichost` but I'll likely submit a patch for that upstream)
Today in Fedora the `glibc-all-langpacks.posttrans` is implemented in lua, for no good reason. See: https://bugzilla.redhat.com/show_bug.cgi?id=1367585 Since that's stalled out, let's add support for overrides. This is obviously a much bigger step with more long term maintenance implications over our current "ignore scripts" list. But we can't block either. This is needed for unified core work: #729 (We also override `fedora-release-atomichost` but I'll likely submit a patch for that upstream) Closes: #980 Approved by: jlebon
Today in Fedora the `glibc-all-langpacks.posttrans` is implemented in lua, for no good reason. See: https://bugzilla.redhat.com/show_bug.cgi?id=1367585 Since that's stalled out, let's add support for overrides. This is obviously a much bigger step with more long term maintenance implications over our current "ignore scripts" list. But we can't block either. This is needed for unified core work: coreos#729 (We also override `fedora-release-atomichost` but I'll likely submit a patch for that upstream)
ex
Keeping this issue open for things to do to move |
Sadly https://sourceware.org/bugzilla/show_bug.cgi?id=22089 is I think going to actually force us to cave here. Even if we got the glibc patch in today, we need to support the RHEL glibc. See also discussion about fish as part of the general Fedora tracker. This is basically needed to unblock rpm-ostree unified core 🌐: coreos/rpm-ostree#729 Closes: ostreedev#1377
Sadly https://sourceware.org/bugzilla/show_bug.cgi?id=22089 is I think going to actually force us to cave here. Even if we got the glibc patch in today, we need to support the RHEL glibc. See also discussion about fish as part of the general Fedora tracker. This is basically needed to unblock rpm-ostree unified core 🌐: coreos/rpm-ostree#729 Closes: ostreedev#1377
Sadly https://sourceware.org/bugzilla/show_bug.cgi?id=22089 is I think going to actually force us to cave here. Even if we got the glibc patch in today, we need to support the RHEL glibc. See also discussion about fish as part of the general Fedora tracker. This is basically needed to unblock rpm-ostree unified core 🌐: coreos/rpm-ostree#729 Closes: ostreedev#1377
Sadly https://sourceware.org/bugzilla/show_bug.cgi?id=22089 is I think going to actually force us to cave here. Even if we got the glibc patch in today, we need to support the RHEL glibc. See also discussion about fish as part of the general Fedora tracker. This is basically needed to unblock rpm-ostree unified core 🌐: coreos/rpm-ostree#729 Closes: #1377 Closes: #1382 Approved by: jlebon
Yeah, I think we're almost ready for that, right? Definitely still some minor issues to figure out (e.g. the locale issue we're seeing in RHCOS), but overall it's been pretty solid so far. Need to figure out how this intersects with Silverblue/FAH/IoT as well (have you tried composing a Silverblue tree in unified mode yet?) |
ex
I noticed the deprecation message when building my own ostree, and tried to add
This doesn't happen with the default. This isn't mentioned here or in the linked #1793 |
What's the backing filesystem like for the repository? Is it pretty low on free space or not? Could it have been transiently full? |
@cgwalters: I use a dynamic tmpfs, as (1) I'm not interested in permanently keeping it around, and (2) writing to disk is too slow:
My entire tree is < 2G, so far this has always worked fine. I tried this again without a tmpfs on /var/home/repo, and that's bigger:
but I get exactly the same problem, except on "kernel-core" instead of "librados2"; but I got it on different packages with tmpfs as well, there seems to be some randomness there. |
Ah, I think I see the problem. With So does it work to specify BTW at a much higher level...rpm-ostree today is not at all optimized for this "compose repo locally" flow - but if you use unified core, it can be much better because the packages are cached in the ostree repo itself, so you only download changed packages. The most in line though with rpm-ostree today is to use a separate server for building, or to switch to e.g. using a pre-shipped system FCOS/FSB as a base system and layering on things you want. EDIT: I think we should warn when we're auto-creating a cachedir in |
@cgwalters: My compose.sh has always used It now fails with
but I better file this as a separate bug, instead of littering this one. Thanks for your help!y Update: I took out dpkg-dev and python3-debian from my ostree compose, and it works fine now. |
Yeah...one of the two hard problems in computer science 😉 In coreos-assembler we have this issue related to this: coreos/coreos-assembler#1495
That indeed looks exactly like a unified core compat issue, and indeed all the stuff in the package post is not allowed. In rpm-ostree we keep the RPM db in Alternatively a simple patch might be to just See also https://bugzilla.redhat.com/show_bug.cgi?id=1352154 |
To extend on this slightly though...rpm-ostree does correctly handle caching for layered packages in the client case - it's basically "walk over deployments, query their rpmdb, add those to referenced set, then prune unreferenced pkgs". But on the server side we'd need to do it based on commit objects or so, and then we still need to handle things like the repodata which we're not committing into ostree today (though it could make sense). This is just another variant of the "rpm-ostree is optimized for server side composes and client side layering, not client side composes yet". |
Thanks @cgwalters! Indeed this is https://bugzilla.redhat.com/show_bug.cgi?id=1817258 . It's not crucial for me, I can run autopkgtest in toolbox (or so I hope..). Working now \o/ |
I saw a lot of this kind of log when I build my own fedora 32 compose with
|
I built my own fedora 32 compose with
And
|
Update: #940 has been merged, but more work remains.
When rpm-ostree was first created, the "build process" was basically "yum install --installroot + ostree commit". This was very simplistic obviously, but worked as a minimum viable product.
Since then, the project has grown much, much more sophisticated. In particular, "client side" package layering when it first landed worked in a different way where packages are imported into OSTree commits. Basically since then, rpm-ostree has grown a significant re-implementation of major parts of librpm. For example, we isolate scripts in containers.
The default for
rpm-ostree compose tree
is still the "old" path, and we'd like to drop it.This does change some corner cases in behavior of the system, so out of conservatism it's still not enabled by default. We would like to eventually make it the default and drop the old path.
Porting
The simple answer is add
--unified-core
and it may just work.However, trying this out in e.g. a bare
mock
root,selinux-policy
is now a requirement. And you really want to use--cachedir
.Also,
/dev/fuse
becomes a requirement.For best practices around this, the coreos-assembler sources are useful.
See: #1793
The text was updated successfully, but these errors were encountered: