Git Product home page Git Product logo

Comments (10)

genodeftest avatar genodeftest commented on June 11, 2024 1

Unfortunately that is a problem that comes from Fedora that does not have groups, and we need to cache info to retrieve packages from groups and viceversa.

Yes, Fedora does have groups. Yumex-dnf uses them and it takes literally no extra time to load the groups page in yumex-dnf. Dnfdaemon should already support this. https://dnf-daemon.readthedocs.io/en/latest/server.html?highlight=group looks like that too.

And if dnfdragora really needs to cache this info, how about loading it in background as soon as it starts, still allowing user interaction?

In the mean while you can can check the "Do not show groups next start up" following Options->User preferences menu. Caching will be performed as soon as groups are chosen.

Hm, that sounds like a pretty dirty hack…

from dnfdragora.

anaselli avatar anaselli commented on June 11, 2024

Guessing you're using Fedora, are you displaying groups or all at start-up?

from dnfdragora.

jamundso avatar jamundso commented on June 11, 2024

Ah yes, the Groups display is the problem.

from dnfdragora.

anaselli avatar anaselli commented on June 11, 2024

Unfortunately that is a problem that comes from Fedora that does not have groups, and we need to cache info to retrieve packages from groups and viceversa. So since i can't see that nothing comes from dnf side we need to find someone who implements something in dnfdaemon for that. In the mean while you can can check the "Do not show groups next start up" following Options->User preferences menu. Caching will be performed as soon as groups are chosen.

from dnfdragora.

jamundso avatar jamundso commented on June 11, 2024

And if dnfdragora really needs to cache this info, how about loading it in background as soon as it starts, still allowing user interaction?

I completely agree. I think there is a better possible outcome with this.
Can this be re-opened please? Perhaps tagged as an Enhancement...?

from dnfdragora.

anaselli avatar anaselli commented on June 11, 2024

Well,

Hm, that sounds like a pretty dirty hack…

it isn't, it just allows Fedora users to work as yumex-dnf, despite of the problem we have now.

And if dnfdragora really needs to cache this info, how about loading it in background as soon as it starts, still allowing user interaction?

We can't, we have no threads, and that's why it must be addressed to dnfdaemon.

Yes, Fedora does have groups.

Well they are not the same as other distros, but i leave @Conan-Kudo to explain what i mean.

from dnfdragora.

Conan-Kudo avatar Conan-Kudo commented on June 11, 2024

What @anaselli means by Groups is that Fedora doesn't actively use the RPM Groups tag anymore. dnfdragora's default configuration is parse the Group tag to organize packages. However, the Group tag is utter nonsense in Fedora since people stopped properly maintaining the organizational structure there. Well, that and the Red Hat Linux 9 groups definition is really bad compared to what SUSE and Mageia do.

Anyway... Fedora uses composition groups (what most people call "comps groups"), which are specifically a type of object from Anaconda to represent installable collections, since the RPM collections feature never really worked. SUSE's equivalent is Patterns, which we don't support at all since DNF doesn't yet.

Because comps groups are a different type of metadata, it has to be handled differently. There are also some issues in the DNF API for handling comps groups, in part because the underlying libcomps library sucks. We do some extra stuff in dnfdragora to make this not as crappy, but figuring out a way to do this sanely in dnf(daemon) so that it's not so bad is difficult.

The two fundamental issues are:

  1. dnfdaemon can't get the "full names" (including translated names) directly from DNF
  2. comps groups are an N:M relationship, so we need to reparse it multiple times to categorize things correctly

Solving (1) is tricky due to having to touch all the underlying API layers, and solving (2) is almost impossible without inducing lockups everywhere. One thing we could do is possibly have it load the group package list on-demand, but that just staggers out the load requests rather than buffering them up at the beginning. It might be an acceptable way to handle it for now, though. I'm not sure if we're already doing this, though...

from dnfdragora.

jamundso avatar jamundso commented on June 11, 2024

I should think the "comps" files already in /var/cache/dnf, or some existing interface to them, could be utilized.
I guess that's why
https://dnf-daemon.readthedocs.io/en/latest/server.html?highlight=group
specifically notes that Group support is Under Development. :)

from dnfdragora.

anaselli avatar anaselli commented on June 11, 2024

as you can see dnfdaemon is now under manatools developement since @Conan-Kudo took its ownership, so I don't know what is still valid in that documentation, I mean Under Development means not developed by old maintainers...

from dnfdragora.

Conan-Kudo avatar Conan-Kudo commented on June 11, 2024

Well, it means the feature isn't fully there, which is definitely true.

from dnfdragora.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.