#142 Collect and expose optional rpm deps
Closed: Fixed 7 years ago Opened 7 years ago by ralph.

We can currently collect the deps of an rpm from koji via the getRPMDeps endpoint. Awesome!

However, it only exposes information about about:

  • koji.DEP_REQUIRE
  • koji.DEP_CONFLICT
  • koji.DEP_OBSOLETE
  • koji.DEP_PROVIDE

Does the koji.DEP_REQUIRE type also include optional RPM dependencies? If so, great!


That's a good question. If you can point me at a rpm with optional deps, I can check.

@mikeb: langpack packages for glibc and firefox have Supplements. osc has Recommends. sway has Suggests. I don't know of any packages in Fedora with Enhances right now.

Looking at the code, it queries explicitly for the four types of deps mentioned above. Support for new dependency types would need to be added.

OK - good to know. Consider this an RFE :crocodile:.

I don't need it for anything specific at the moment, but for Factory 2.0 we're trying to build a generalized dependency graph of things in our pipeline. Having the specific details of optional deps would enhance that. :)

Note that we do not collect dep info at all. The hub call just reads the rpm to fulfill the request.

@tkopecek I would suggest presenting ordered as "Provides -> Obsoletes -> Conflicts -> Requires -> Recommends -> Suggests -> Supplements -> Enhances". That way, all the forward relationships are listed from strongest to weakest in order, and the reverse relationships are also strongest to weakest.

@mikem, @ralph Do you think it is safe to change order of original values, or do you suspect it could be used somewhere (out of core koji) without koji.DEP_* ?

@tkopecek I wouldn't change the values of the existing constants, just add to the list, as you do in your patch. I believe @ngompa was talking about how they're presented in the UI, correct?

Has anyone tested this on RHEL-6 or RHEL-7? I'm pretty sure only rpm from recent Fedoras understands the new dep types.

@mikeb Yes, I was referring to presentation.

RPM on RHEL 6 and 7 do not understand these tags, but you should be able to conditionalize it on detecting RPM 4.12.0 or newer.

I've added code for ignoring rpm < 4.12 and display in web ui. Tested with rhel6.

https://pagure.io/fork/tkopecek/koji/commits/issue142

https://pagure.io/koji/pull-request/178

@mikem changed the status to Fixed

7 years ago

Commit 51eca73 relates to this ticket

Log in to comment on this ticket.

Metadata