DNF vs ZYpp: Fight!
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Untertitel |
| |
Serientitel | ||
Anzahl der Teile | 40 | |
Autor | ||
Mitwirkende | ||
Lizenz | CC-Namensnennung 3.0 Unported: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/54403 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | ||
Genre | ||
Abstract |
|
00:00
PaarvergleichDisjunktive NormalformOffene MengeProjektive EbeneBitDisjunktive NormalformAnalytische FortsetzungSoftwareInstantiierungMereologieQuick-SortProgrammierumgebungDatenmanagementSoftwarewartungSystemverwaltungZahlenbereichOpen SourceDienst <Informatik>SicherungskopieWiederherstellung <Informatik>Prozess <Informatik>Computeranimation
01:08
RechenschieberDatenmanagementÄhnlichkeitsgeometrieDatenverwaltungAuflösung <Mathematik>Konfiguration <Informatik>FunktionalKlasse <Mathematik>SoftwarewartungSoftwareentwicklerKlassische PhysikZentrische StreckungOffene MengeComputerarchitektursinc-FunktionProgrammbibliothekDistributionenraumLoopBestimmtheitsmaßComputeranimation
03:01
ÄhnlichkeitsgeometrieSimulationProgrammbibliothekÄhnlichkeitsgeometrieAuflösung <Mathematik>DatenmanagementSoftware EngineeringParametersystemBildschirmmaskeGruppenoperationVollständigkeitRadikal <Mathematik>GraphfärbungFront-End <Software>BenutzerfreundlichkeitDatenstrukturPlug inDifferenteInterface <Schaltung>MetadatenProgrammbibliothekDisjunktive NormalformRepository <Informatik>DistributionenraumDokumentenserverBimodulGebäude <Mathematik>ProgrammSoftware Development KitBitComputeranimation
04:51
GraphFunktion <Mathematik>DifferenteDisjunktive NormalformProgrammbibliothekModul <Datentyp>ComputerarchitekturFormale SpracheDateiformatMetadatenDebuggingDatenmanagementMeta-TagMusterspracheElektronische PublikationKeller <Informatik>Kategorie <Mathematik>AggregatzustandVirtuelle MaschineSchnelltasteNotebook-ComputerTransaktionFront-End <Software>Netbook-ComputerAuflösung <Mathematik>Interface <Schaltung>GruppenoperationSampler <Musikinstrument>BimodulStandardabweichungBildschirmmaskeKonfiguration <Informatik>DokumentenserverSkriptspracheNabel <Mathematik>Mini-DiscHeegaard-ZerlegungFunktion <Mathematik>Shape <Informatik>ImplementierungFastringKartesische KoordinatenAliasingBus <Informatik>Güte der AnpassungSoftwareentwicklerMultiplikationComputeranimation
09:41
Plug inMaßerweiterungDisjunktive NormalformGraphische BenutzeroberflächeSoftwareentwicklerDatenmanagementSoftwarePlug inBitMathematische LogikMixed RealityProjektive EbeneProgrammbibliothekMaßerweiterungFront-End <Software>TermMultiplikationsoperatorDisjunktive NormalformSchreib-Lese-KopfEndliche ModelltheorieDebuggingEinsPaarvergleichCodeMultiplikationKeller <Informatik>Software Development KitPOKEStochastische AbhängigkeitComputeranimation
13:17
Virtuelle MaschineBitComputeranimationProgramm/Quellcode
13:53
Virtuelle MaschineProgramm/Quellcode
14:26
TransaktionComputeranimation
15:07
ÄquivalenzklasseTransaktionSoftwaretestMereologieBildschirmmaskePhysikalisches SystemProgramm/QuellcodeJSON
16:19
Data MiningElektronische PublikationKonfiguration <Informatik>InformationDesintegration <Mathematik>Framework <Informatik>TypentheorieDatenmanagementSoftwareSchlüsselverwaltungIntegralHyperbelverfahrenSchnittmengeSharewareTransaktionProgramm/QuellcodeComputeranimation
16:55
Interface <Schaltung>Physikalisches SystemKonfiguration <Informatik>RechnernetzBiegungBridge <Kommunikationstechnik>Mobiles InternetMehrwertnetzVarietät <Mathematik>Dienst <Informatik>Plug inSoftwareDatenmanagementInformationElektronische PublikationElektronischer FingerabdruckModul <Datentyp>Total <Mathematik>FirmwareSpeicherabzugTransaktionFunktion <Mathematik>PasswortTypentheorieComputeranimation
17:40
Disjunktive NormalformFunktion <Mathematik>Virtuelle MaschineMultiplikationsoperatorRechter WinkelProgramm/Quellcode
18:30
Komplex <Algebra>Architektur <Informatik>EinsFormale SpracheDisjunktive NormalformDeterministischer ProzessDisjunktive NormalformProgramm/QuellcodeComputeranimation
19:01
DatenmanagementDienst <Informatik>Quick-SortGebäude <Mathematik>ZahlenbereichPlug inGüte der AnpassungSchnelltasteComputerarchitekturTermMaßerweiterungPunktInterface <Schaltung>BitFormale SpracheMereologieHackerTexteditorBenutzerfreundlichkeitWort <Informatik>Metropolitan area networkComputeranimation
21:43
Physikalisches SystemDatenmanagementElektronische PublikationMetadatenGruppenoperationSampler <Musikinstrument>Elektronische UnterschriftBitFunktionalProgrammverifikationMeta-TagNeuroinformatikMusterspracheWurzel <Mathematik>Gebäude <Mathematik>MultiplikationsoperatorATMBinärcodeOpen SourceSchaltnetzSchnittmengeTypentheorieÄhnlichkeitsgeometrieBimodulDisjunktive NormalformTermMetropolitan area networkHidden-Markov-ModellArithmetisches MittelVorzeichen <Mathematik>MereologieInstallation <Informatik>VerzeichnisdienstPunktDokumentenserverSummierbarkeitRoutingComputeranimation
26:59
DatenverwaltungInformationBimodulDokumentenserverAutorisierungInterface <Schaltung>Pay-TVSoftwareschwachstelleProgrammSchnittmengeMathematische LogikInteraktives FernsehenEntscheidungstheorieBitDatenbankMereologieInformationsspeicherungDatenmanagementRepository <Informatik>Disjunktive NormalformSichtenkonzeptSoftwarePunktRegistrierung <Bildverarbeitung>UnternehmensarchitekturMAPFunktionalGruppenoperationLipschitz-StetigkeitPhysikalisches SystemProgrammbibliothekWhiteboardMinimumSatellitensystemPlug inAbfrageElektronische PublikationDirekte numerische SimulationTransaktionMini-DiscSampler <Musikinstrument>Front-End <Software>Computeranimation
32:15
VideokonferenzComputeranimation
Transkript: Englisch(automatisch erzeugt)
00:06
Hello everyone So My name is Neil Gompa. I'm a Contributor in Fedora project as well as in open SUSE and whatnot and here I'm to talk about like DNF versus zipper, you know fight because you know, why not?
00:23
So a little bit about who I am I'm sort of a self-styled open source advocate I'm a contributor and package maintainer in Fedora magi and open SUSE And I've contributed to RPM DNF zipper Kiwi the open build service and a number of the system management based stuff
00:42
For my day job. I'm a DevOps engineer at Datto a disaster recovery backup business continuity company and part of my role involves managing the release engineering of our software including running an OBS instance internally and Doing terrible package backport things because you know, that's what always happens when you're in a corporate environment
01:05
So let's kind of start with introducing the two package managers So to begin with like the one that most of y'all probably aren't too familiar with If the slide would move there we go
01:21
DNF so it's a successor to the yellow dog updater modified or yum as a lot of people may Vaguely know of from the Red Hat ecosystem. It was forked from yum about Five six years ago to rework the internals to use the libsolve library and to offer a saner Maintainable API it offers a defined plug-in architecture for extending the package manager functionality
01:46
It is the package manager in fedora open mandriva. Yocto and now Red Hat Enterprise Linux has a relate It is available also as a as a supported package manager in magia it is included in open SUSE as of leap 15 0 and
02:03
It actually was included in rel 7 as of rel 7.6 as an option for you to use instead of crappy old yum And then of course the classical zipper thing that you guys all Kind of know this it's the package manager that made a whole new class of package managers in itself with set solving and large-scale
02:24
It replaced the motley of crazy-ass package management options that we all inherited from zimmy and in SUSE back when the two companies Kind of came together when novell bought them both Spawn the development of the libset solver which became libsolve it is used primarily today in of course the SUSE distributions as well as Tizen
02:46
And it is also in fedora since fedora 26 courtesy of yours truly So it is kind of functional all the way through fedora 28 after that not so much So
03:01
Some of the similarities here. I mean because there are of course similarities between the two So they both use libsolve for dependency resolution the low-level aspects of both package managers are in C and C++ Plugins are supported in the base library interfaces, and they both work with package kit So like anything that's leveraging package kit on these distributions that use the DNF or zipper will be able to leverage those backends correctly
03:26
They exclusively handle RPM metadata repositories this technically wasn't true in the past because zipper used to handle yast repos But it doesn't anymore it silently says well yast repos don't exist. We're gonna do RPM repos instead
03:42
and Both of them actually do support fairly well being able to build custom front-end interfaces And of course arbitrary subcommands through extending through either modules Python modules in or C++ programs or whatnot The user experience between the two is actually fairly similar as well
04:02
the CLI interface Structure is the same. It's you know the tool with the action with the arguments for the action Subcommands in both DNF and zipper have standard abbreviated forms This is something that maybe some people aren't familiar with that in the DNF package manager. They've kind of adopted the same
04:21
technique that the zipper people have where Common subcommands have a short form that's easier to type and remember so that you don't necessarily require bash completion to be able to get to them and Of course the CLI supports colors when the terminal supports it and will help you distinguish stuff when the colors are activated
04:41
There's graphical front ends to offer more intuitive user-friendly ways to do software management as well, of course But there's a fair bit of differences to the the underlying differences between DNF and zip stack are actually quite
05:02
significant The biggest one is that the underlying architecture for the DNF stack is very? Very modular it is split up across five or six libraries if we exclude libRPM itself and libsolve Whereas the zip stack is one library when you exclude all of that when you exclude those
05:26
One thing that's a little bit scary and surprising is that zipper actually installs packages by sub processing out to the RPM command where with From what I understand from Eons gone by they couldn't trust libRPM to do the right thing so they sub processed it and did
05:45
Scary things to make sure everything looked like it worked DNF however has no such compunction and uses libRPM to install things directly so the transaction is handled directly by RPM through the library interface and
06:00
Doesn't look quite as terrifying from the 10,000 feet view The way that you install collections of packages is slightly different between DNF and zipper because of the comps stuff composition groups and now new module
06:20
Metadata stuff so fedora has this new modularity thing which has a new extra metadata format with more stuff and it's kind of complicated but It adds more things to how DNF can handle collections of packages Whereas of course zipper has the patterns which y'all familiar are basically very fancy metapackages with extra properties attached to them
06:46
So that zipper knows how to find them One of the things that was actually kind of surprising when I first started looking at the Comparing the two stacks years years ago when I was first looking at this was that Language bindings and zipper are actually in a pretty poor state
07:02
the zip bindings thing is Not in good shape and it's essentially unsupported and don't work Whereas in the DNF stack as a consequence of how the front end Front ends are implemented and some of the hit legacy language bindings in the libraries are actually a first-class citizen
07:24
And they're and while it only currently supports Python more languages are expected to follow in the near future and DNF also has an implementation that exports the API as a D bus interface for applications to
07:40
interrogate and manipulate through that manner if they wish That's something that as far as I'm aware only The yum DNF and apt actually have some form of this Not very many package managers have like a direct way to be interrogated via D bus
08:00
The user experience is actually somewhat different as well, but not too much. So DNF has the feature of aliases which it inherits from yum, so you can have sub commands that you can define That are built on Standard commands with options and things like that so you can make short forms of custom short forms of whatever you want
08:21
Another thing that DNF does that is different from zipper is that you can actually install any package based on any file path That is in that is known by the repository because DNF actually parses the file lists completely and handles that in its solver pool whereas zipper does not normally do that and
08:41
There's multiple native graphical front ends Zipper has To its credit. It has strangely enough a machine readable output form XML for its output so that it can be Manipulated from other tools through shell script and awk and pearl and stuff like that One really neat thing that it does is that it can split transactions up into smaller chunks
09:04
If it detects a low disk situation or if there's a special solver situation that requires splitting the transaction up That is really handy when you're working with laptops and with small SSDs or netbooks and things like that And that's a really nice fancy feature to have
09:21
Unfortunately, yes, it's the only graphical front end that exists for it Yes, just cool and all but the fact that there isn't an independent front end that kind of just works on its own makes it a little difficult to demonstrate whether how well to use the libzip API for building such things so yeah, as far as the ecosystem goes like we can kind of start with the development activity of
09:47
the Actual package manager software itself as soon as that shows up. There we go So for DNF the first that for DNF and zipper the two ones at the top are
10:01
Actually the command line front end so you can see that the DNF one starts in 2002 That's because it was forked from yum. So if you ignore everything before 2012 that's all 2012 and earlier is all yum code forward on that is DNF and In zipper, you can also see that by comparison. There isn't a whole lot going on in the CLI land
10:24
That's because unlike in DNF Zippers stack the CLI doesn't actually have a whole lot of logic in it Most of it is in the library and so you can see comparatively libzip has a lot more code going on in there Whereas on the DNF side, it's a little bit mixed
10:42
There's a lot of business logic in both the CLI front end as well as in the libraries And that's something hopefully that will be fixed over time In terms of like how the ecosystem tends to use this the plugins and extensions model is Something that is very well supported in DNF and it's something that I think actually it has been a really good boost to how that
11:05
How that has been used by a lot of people Because the API is now stabilized and well-defined there's been a lot of Plugins and extensions for supporting interesting workflows and tools and things like that There's like over 25 officially supported plugins
11:23
Off the top of my head. I know of at least a dozen more that people have written that they're using and then there's also things like salt and ansible which Poke the DNF API directly Because they can and they know that that stuff is going to work
11:41
And that allows them to do More creative things when they need to For zipper, I'm actually not too certain if there were that many plugins that were written for it I could only really find a few major ones like this the one for a spacewalk suza manager and the customer center package search
12:02
Plugin that was those were the only ones I could really find I couldn't really find too many others The methods to support plugins and extensions doesn't seem to be that well documented or pointed out anywhere Was a little curious because like From what I could tell it is supposed to be capable of it. It's just not used which I'm a little weirded out about
12:26
But another bit like as I mentioned earlier there was there's also graphical front ends for the DNF stack multiples of them and of course is because The CLI is scary. It's
12:40
But aside from the package kit front ends like gnome software and plasma discover There's a few native front ends that exist for it. The first was actually Yum X DNF which was the Yum Xtender DNF flavor That project is now defunct and it's been superseded By DNF Tagora, which is from the magia project and simple DNF, which is made by some independent developer who?
13:06
Wanted to make a much simpler GTK based front-end it actually I think is brand new. I only found it like a couple of weeks ago and So I'm gonna show you just a little bit of that stuff with the DNF things
13:22
So, let's see here. Oh, come on. Don't do this to me now fine Let me Kill this and then let's go over here Let's start this
14:31
There we go so here I pre-loaded a transaction here to show So let's make this a little whoa, that is not what I wanted. So if you see
14:58
What is oh?
15:00
I see what's going on here. So if you see over here This is I'm about to execute a transaction to like actually do the equivalent of zippered up on a tumbleweed system, I actually already pre-downloaded the whole transaction because
15:21
Well, it took like seven hours in my hotel room to download everything So I figured I didn't want to trust, you know Wi-Fi to work or something like that So I should also like kill the test transaction part Let's see So I'm also using a short form here desync I could actually if I wanted to be super clever
15:44
We'll just use dup so dnf-dup so
16:00
That shows all the stuff that's gonna happen. It's gonna install 160 packages upgrade 1.5. K of them remove and downgrade a few Do a thing Already downloaded all of it. So it's gonna run a transaction check and Actually do the thing and then meanwhile and then over here I have
16:41
dnf-dragora Set up to install some things. I've checked a few packages and Then build transactions later. This is why you don't do demos. Let's see here
17:00
Chakra, there we go. Now it shows all the stuff and so this is you know, it it's basically the same kind of output you'd see from the CLI or if you're familiar with the ask you'll see something like this when it's about to
17:20
Propose a transaction to you It's just gonna make me type in my password again, and now it's gonna download way while the Wi-Fi works here So it's downloading packages and it's gonna do stuff Well that's happening then over here. You can see it's doing basically the same thing. It's upgrading the packages
17:46
Running through the scriptlets and stuff actually something that I learned while I was doing this We run a lot of scriptlets during an upgrade in OpenSUSE like a whole lot Far more than I actually expected to
18:02
But it was an interesting exercise because It showed that for one OpenSUSE does do stuff the right way because even swapping from zipper to DNF things work fairly well You can see all the output it does all the right ordering and installation and stuff There's nothing too special or crazy
18:21
actually, this virtual machine has been upgraded like three times using DNF rather than zipper and Nothing has exploded so far. So We'll just go back to this beach ball of doom
18:53
alright, so Since that kind of shows like what was going on in there the kind of conclusions I came from this was
19:04
The DNF package manager and the zipper package manager are actually fairly comparable at this point In terms of user experience performance and usability, they're pretty they're pretty up there They're pretty good with each other and they're pretty good as as package managers as a whole I'm a little bit disappointed at like some of the when I
19:24
Looked at how the sausage was made for a zipper like how some of the stuff actually worked inside Compared to maybe it's again part of the fact that zipper is so much older and they trusted the underlying stack a lot less but it's a little bit weird the kind of hacks that are in there that I feel like somebody should take a
19:45
Second look at and maybe think maybe that they're no longer needed to work this way Another thing that was sort of a thing was It feels like somebody needs to care about developing a little community around it zipper is a perfectly serviceable package manager
20:01
and it's totally a good replacement for a lot of Subpar package managers in the RPM ecosystem, but it seems like there's not much Attempt to really drive adoption or usage of that Supporting plugins and extensions is hard and zip is well
20:20
Fill in your own word, but I would say zip is pretty awesome For the DNF side the architecture is kind of complicated. It's a little hard to follow how all the pieces fit together On the flips. I think the community is pretty strong. That's maybe partly my fault, but the There's there's a large number of people that are actually using it and building tools around it and doing things like that
20:46
The language binding support beyond Python is still missing and I think it kind of comes away that DNF makes you I'm really not stuck not suck. It has a good CLI interface. The performance is pretty good the extensibility is is
21:00
awesome and Generally, I enjoy it man. It's like you shouldn't have to say like I it's not that I don't want to say I Love working with my packages all the time, but like it doesn't make it a chore to deal with all of them. So in summary, I guess Zipper is probably still slightly up there higher than what DNF is
21:23
but I think there there's there's potential in both ways and there's still a bunch to learn from both of them like DNF does does certain things a little bit better than I think zipper does and vice versa As I've kind of mentioned earlier, so yeah
21:43
Questions Okay. Yeah, so the question was is there
22:21
To just simplify this that was the question was is there an rpm-based package manager that does source to binary reproducibility For verification before installation the answer to this is no One that is extremely expensive that requires setting up build roots or worse installing all the build dependencies on the computer first
22:42
before installing the for building it and then installing the real package at the end and Then probably figuring out a way to track all the build dependencies to remove afterwards because you don't need them And to It's not strictly necessary. Most of the time most people who are building rpms are hopefully using a build system
23:02
That's worth a damn like OBS or Koji, which provides source to binary guarantees and reproducibility that lets you make sure you are not doing dumb things in your packages and Usually the repository metadata can be verified to ensure it's not tampered with either through checksums
23:23
metalink's GPG checks or a combination of those and With that you can usually trace from there to the binary package Check the checksum and the signatures of those and then install there. So you have enough path paths of Verification that it's usually not necessary to go down the extra mile of Rebuild and then install to verify that the the reproducibility there
23:43
Usually that's the kind of stuff you'd want to do server-side in a build farm like in an OBS or a Koji setup But there are bits and pieces of that functionality in both package managers zipper has a function called source install which allows you to download us download or pulling it to a source rpm and
24:03
That will go and read it and install all the build dependencies and unpack it into an rpm build Directory or whatnot so that you could just go ahead and build the package yourself if you'd like DNF has the build depp subcommand which allows it to read a spec file or a source package and
24:22
Install the build dependencies and then you could do whatever you want there, but it doesn't have an equivalent to the source install Functionality might get it someday, but right now it doesn't have it But that's kind of the closest you get other package managers like you or PMI user rpm from man triva They have the ability to download and unpack just like zipper does
24:42
Apt rpm doesn't have any of this functionality. It doesn't it really tries to ignore the fact that source packages exist and Pole deck and others are just kind of waffling on what to do with with this kind of thing So it's it's not really a thing that all a lot of the rpm package managers concern themselves too much with
25:04
Hmm Yeah You mean group installation? Meaning you mean group installation as in like installing from one thing from using one command to a bunch of computers at once or
25:26
Do you mean installing a bunch of packages? The latter okay, so group installation in terms of installing a bunch of packages In in the DNF stack you have this through the composition groups or comps groups as a lot of people call it
25:41
And now with the module MD so the module metadata and the comps groups what they are essentially are metadata files that describe a set of packages that belong for a specific role or a type or Some logical grouping of some kind that a user may want to act upon So they want to install it or remove it or upgrade them together or something like that
26:04
Zipper has this kind of the similar behavior with patterns It treats the meta packages slightly differently in pattern mode and tries to accomplish the same behavior And the reason it used to be that patterns were special metadata like comps groups were like comps groups are sorry
26:22
But nowadays it is just meta packages with fancy labels and stuff inside But essentially both package managers provide that kind of functionality for zipper. It's zipper install dash T pattern name of pattern And for DNF it's DNF install at sign name of group or
26:41
Name of module and it will go ahead and do the thing to install a collection of packages together, and it tracks those Collections as they're installed uninstalled upgraded and whatnot so you will know that whether a package was installed as part of a group Or if it was installed individually
27:02
Yeah, so Good question the question was does DNF have any special behavior for handling when a user explicitly removes Subdependency or a weak dependency weak installed package the answer this question unfortunately right now is no however
27:25
Because DNF tracks how the DNF tracks the reason in which a package is installed and actually already has the information To make these kinds of decisions the only reason right now It doesn't do things like automatically excluding weak installed package that a user has explicitly removed is
27:42
Because No one has written the logic to do that like it's the all the pieces are there It's just the filter is not actually wired up yet There was actually an effort a couple of years ago to redo how DNF stores its reason information They now call it a software database. It used to be a descendant of the yum database
28:01
it's essentially a database that tracks all the transactions that have ever happened and also indicates like how the packages were installed and why and That information also tracks when users decide to say I don't want this anymore And you uninstall it it it records that reason as well that those reasons are currently not fully factored into the dependency solving
28:22
But they vary they could be and if they were then you could get more intelligent results out of that Hello Hello You talked about DNF's module
28:41
Functions does it support any higher level functions for example? Dependencies between modules or comps or for example registering enterprise modules yeah, so Unfortunately it does so modules modules actually export the same level of
29:02
Interfaces and manipulation Apis that packages do so you can install remove update query them and modules can have module level dependencies The way that the module stuff works is it's kind of a layer you start with a repository layer at the bottom Which has a soup of packages then you have module MDs that say these
29:22
These buckets and of these soups of packages belong with these and then the buckets of packages inside are So each layer it goes all the way down and DNF Basically handles each of those as if they are like a package and you can do actions and things like that So those are resolved using libsolve then libsolve knows nothing
29:44
Unfortunately libsolve knows nothing right now part of this is because a lot of the behaviors related specifically to modules are not fully fleshed out to the point that we can Start figuring out how they should work in libsolve because it'd be unfair to everybody if we implemented it once and
30:02
Then it turned out like six months later. We have to change everything again We kind of want to have a solid idea of how it's supposed to behave Across the board before we want to do something like that and make libsolve actually fully aware of them For now from libsolve point of view it looks like DNF is saying I want to disable all these packages or I
30:21
Enable all these packages these are in these filter groups These are considered higher priority, but it doesn't know why from the libsolve point of view and can you do anything? Like enterprise registrations of rel using DNF for a plug-in Yeah, I mean the subscription management Sorry, the subscription management functionality has been integrated into
30:43
Into the lower levels. So for example Red Hat subscription management Actually now has a C library librhsm which is plugged into the libdnf library as a plug-in and So if you are on a rel system that plug-in is built in and it will it will track Your entitlement status and regenerate the red hat dot repo file that is installed on there to include your repositories
31:06
That you are entitled to the subscription manager tool from candlepin is the one that author that manipulates the settings for that And that's a Python program that lives a little bit outside of it But it also wires into the DNF front-end through its Python API to make sure that those things are all coherent
31:24
there should be this should be done slightly more smoothly, but that takes a little bit of work of like figuring out how the Interactions between the package manager and the entitlement management system need to be rationalized especially in the in the part about handling a transition from talking to rhsm directly and
31:44
Talking to and switching over to a satellite system or assume a system or something like that Any other questions?
32:05
Okay