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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
handling recommends 馃棧 #718
Comments
One thing that makes this trickier for us is our anti-hysteresis - there's We could pretty easily have a single global flag to ignore weak dependencies, but I'm not sure how easy it'd be to implement "per package" weak state. It seems like we'd need to do something like do a depsolve with all weak off, then for every package that isn't weak, readd it to the goal with recommends on. |
dracut recommends: https://bugzilla.redhat.com/show_bug.cgi?id=1452348 |
Can you expand on this? If an application has a weak dep on a shared lib, then surely it can't unconditionally link against it, right? Or are you talking about something else? |
I meant compat with existing treefiles. Updated the summary above. |
I am thinking now that it should be pretty easily to explicitly do e.g.:
Somehow we'd try to verify that everything that depends on it was solely via weak deps. Alternatively, we could just do |
It would be useful to be able to globally turn this on or off depending on the use case. For IoT we explicitly don't want weak dependencies enabled because it brings in a lot of extra things and we want ot be able to control that, for example it pulls in linux-atm-libs which we won't ever have a requirement for. We need to be able to explicitly control what we have due to size, updates etc in particular from a security PoV (if it's not shipped it can't be compromised) and from a change delta PoV (there's a lot of IoT usecases where there will be constrained bandwidth available so every bit counts (also in cases where we could potentially have millions of devices) which for a lot of the current OSTree use cases which are in datacentres where there's usually multiple Gb available. |
I looked at this again briefly, but it looks like libdnf needs API here to support this. Today at least our libdnf does:
Yet we need to pass What I had in a local branch, rebased:
|
Is there a bug reported with libdnf for the API request? |
@cgwalters can you provide the reference to the libdnf bug/RFE? |
This is for: coreos#718 But I'm not going to close that issue as this only does the server side, and I think we should support it client side too. Since I wrote that issue, we ended up skipping the `dnf_transaction_depsolve()` API, and hence we don't need to block on a libdnf change. So this was quite simple.
PR in #1513 |
This is for: #718 But I'm not going to close that issue as this only does the server side, and I think we should support it client side too. Since I wrote that issue, we ended up skipping the `dnf_transaction_depsolve()` API, and hence we don't need to block on a libdnf change. So this was quite simple. Closes: #1513 Approved by: jlebon
This is for: #718 But I'm not going to close that issue as this only does the server side, and I think we should support it client side too. Since I wrote that issue, we ended up skipping the `dnf_transaction_depsolve()` API, and hence we don't need to block on a libdnf change. So this was quite simple. Closes: #1513 Approved by: jlebon
This is for: #718 But I'm not going to close that issue as this only does the server side, and I think we should support it client side too. Since I wrote that issue, we ended up skipping the `dnf_transaction_depsolve()` API, and hence we don't need to block on a libdnf change. So this was quite simple. Closes: #1513 Approved by: jlebon
This is for: #718 But I'm not going to close that issue as this only does the server side, and I think we should support it client side too. Since I wrote that issue, we ended up skipping the `dnf_transaction_depsolve()` API, and hence we don't need to block on a libdnf change. So this was quite simple. Closes: #1513 Approved by: jlebon
I need to remove a recommended package, I have
But
I don't know how to remove
|
@heyakyra You can try using |
Thanks for the tip, but it says it is not found:
Edit: This gets things working temporarily, but doesn't persist through reboots:
|
Ahh right, it's an overlay. Hmm, if NetworkManager-l2tp did something more like I'm afraid I don't have a good answer for you. This is what this issue is tracking. :) I'm not familiar with those packages, though I'd be surprised if there weren't a way to tell the software to use a specific backend. |
It seems to me the only part missing for recommends handling is the client side. As a note, related BZ was closed: https://bugzilla.redhat.com/show_bug.cgi?id=1582939
|
This also appears to be blocking rebase to F35 because of recommends on |
I am trying to do a build with the |
Looking over this issue again, it seems to be split into two different problems: (1) rpm-ostree installs recommended dependencies. I see the Treefile operation of (2) Recommended dependencies cannot be managed on a per-package basis. This is still lingering and why this GitHub Issue is still open. |
Actually, the suggested (but never created) |
libdnf defaults to installing
Recommends
(aka weak deps). There isDNF_IGNORE_WEAK_DEPS
which wraps the libsolv handling.Hence, today we default to installing weak dependencies. I think for compat with existing treefiles we'll need to continue to do so by default. Though an evaluation of what would drop out of e.g. Atomic Host if we dropped Recommends would be interesting.
However, for layered packages, I think we should support omitting them. The reason I'm filing this is right now in Fedora gdb has a Recommends on dnf.
The text was updated successfully, but these errors were encountered: