Opened 4 years ago

Last modified 4 years ago

#12366 new enhancement

[Package Kit] in case of a missing provides list all of them

Reported by: diver Owned by: bonefish
Priority: normal Milestone: Unscheduled
Component: Kits/Package Kit Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: All



When installing freshly built packages from haikuports package_daemon's Package problems window only list first missing provides. It would be handy to list all of them.

Change History (3)

comment:1 Changed 4 years ago by bonefish

Do you have an example? Does pkgman list more?

comment:2 Changed 4 years ago by diver

Component: Servers/package_daemonKits/Package Kit
Summary: [package_daemon] in case of a missing provides list all of them[Package Kit] in case of a missing provides list all of them

Sure, I have qutim_x86-0.3.3-1-x86_gcc2.hpkg which requires these two (yet missing from haikuports)

pkgman ins qutim_x86-0.3.3-1-x86_gcc2.hpkg 
Downloading repochecksum-1...done.
Validating checksum for Guest One's Java ports...done.                                                                                 
Encountered problems:
problem 1: nothing provides lib:libaspell_x86>= needed by qutim_x86-0.3.3-1
  solution 1:
    - do not install "pkg:qutim_x86-0.3.3-1-x86_gcc2"
Please select a solution, skip the problem for now or quit.
select [1/s/q]:

As can be seen, pkgman lists only one required package. If I install it and try to install qutim again pkgman will complain about the second one. Not very convenient.

comment:3 Changed 4 years ago by bonefish

I created a dummy package and took a closer look at the libsolv debug output. After the initial solver run it knows of (i.e. prints) both missing dependencies, but after refining the suggestions only one problem with one solution remains. It kind of makes sense, since the only solution (not to install the package) is the same for both problems and listing both problems separately with the same solution wouldn't make sense. The limitation is the data structure side of things I suppose -- only one specific issue (i.e. one missing provides) can be expressed per problem, so the two problems can't be merged into one while still retaining all information.

Not sure, if all missing provides could be retrieved from libsolv in some way. At any rate, it won't be a trivial implementation change AFAICT.

Note: See TracTickets for help on using tickets.