[opensuse-factory] Dependency check on delete requests is insufficient.
gooeygirl@linux-Lappy:~> sudo zypper in shutter [sudo] password for root: Loading repository data... Reading installed packages... Resolving package dependencies... Problem: nothing provides perl(Gtk2::Unique) needed by shutter-0.94-1.2.noarch Solution 1: do not install shutter-0.94-1.2.noarch Solution 2: break shutter-0.94-1.2.noarch by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/c] (c): But 519980 State:accepted By:dimstar_suse When:2017-09-05T13:12:57 delete: openSUSE:Factory/perl-Gtk2-Unique Review by Group is accepted: legal-auto(licensedigger) Review by Group is accepted: factory-auto(factory-auto) Review by Group is accepted: factory-staging(staging-bot) Review by Package is accepted: devel:languages:perl/perl-Gtk2-Unique(coolo) Review by User is accepted: repo-checker(repo-checker) Review by Project is accepted: openSUSE:Factory:Staging:B(dimstar_suse) Descr: osc whatdependson perl-Gtk2-Unique comes back empthy and so does zypper se --requires --recommends perl-Gtk2-Unique -- Remove what seems to be an obsolete package that depends on libunique1 (old compat package) Comment: Accept to openSUSE:Factory Well ... shutter requires perl(Gtk2::Unique) which is (was) provided by perl-Gtk2-Unique, so above search command did does not catch it. Neither is it build requirements so "whatdependson" logically does not show it as well. I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it. -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Saturday, October 7, 2017 2:06:36 AM CDT Andrei Borzenkov wrote:
Well ... shutter requires perl(Gtk2::Unique) which is (was) provided by perl-Gtk2-Unique, so above search command did does not catch it. Neither is it build requirements so "whatdependson" logically does not show it as well.
I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it.
It is possible to have the tools perform a install-time Requires check during delete request validation. The same was done for cleanup_rings tool and there is an open issue to do so for delete requests globally against all packages [1]. [1] https://github.com/openSUSE/osc-plugin-factory/issues/277 -- Jimmy -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
08.10.2017 03:52, Jimmy Berry пишет:
On Saturday, October 7, 2017 2:06:36 AM CDT Andrei Borzenkov wrote:
Well ... shutter requires perl(Gtk2::Unique) which is (was) provided by perl-Gtk2-Unique, so above search command did does not catch it. Neither is it build requirements so "whatdependson" logically does not show it as well.
I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it.
It is possible to have the tools perform a install-time Requires check during delete request validation.
Do you mean to attempt installation of every package in Factory^WTumbleweed on delete request? Reverse dependency check against package provides looks really more simple (and that is what is expected when you ask "anything requires this package?". Users hardly imply "anything requires this exact string?")
The same was done for cleanup_rings tool and there is an open issue to do so for delete requests globally against all packages [1].
[1] https://github.com/openSUSE/osc-plugin-factory/issues/277
-- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
On Sunday, October 8, 2017 1:03:14 AM CDT Andrei Borzenkov wrote:
08.10.2017 03:52, Jimmy Berry пишет:
On Saturday, October 7, 2017 2:06:36 AM CDT Andrei Borzenkov wrote:
Well ... shutter requires perl(Gtk2::Unique) which is (was) provided by perl-Gtk2-Unique, so above search command did does not catch it. Neither is it build requirements so "whatdependson" logically does not show it as well.
I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it.
It is possible to have the tools perform a install-time Requires check during delete request validation.
Do you mean to attempt installation of every package in Factory^WTumbleweed on delete request? Reverse dependency check against package provides looks really more simple (and that is what is expected when you ask "anything requires this package?". Users hardly imply "anything requires this exact string?")
As I stated a check of "install-time Requires" which would be done using a reverse dependency check. Currently, the check on looks at BuildRequires like whatdependson osc command. Interesting to know is that repo-checker already performs an installcheck and fileconflicts check on all packages, but ignores those not part of the staging it is reviewing. -- Jimmy -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
Hi, But why perl-Gtk2-Unique is not returned to Tumbleweed as it still needed for shutter? -- Kind regards, Mykola Krachkovsky -- Найкращі побажання, Микола Крачковський
On Sat, Oct 7, 2017 at 3:06 AM, Andrei Borzenkov
I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it.
For what it's worth, both DNF and Zypper (both in openSUSE Tumbleweed) are capable of this. Zypper doesn't by default for user install requests (you need to use "-C" for that), but it certainly does for dependency resolution. You can do queries using DNF with "dnf repoquery --whatprovides" or "dnf provides", and you can with Zypper with "zypper search --provides". Most OBS tooling resolves by capabilities (aka Provides) first, and then handles preferences afterward. -- 真実はいつも一つ!/ Always, there's only one truth! -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
08.10.2017 04:48, Neal Gompa пишет:
On Sat, Oct 7, 2017 at 3:06 AM, Andrei Borzenkov
wrote: I wonder if zypper is capable of "search for all provides in this package" (i.e. find package that require any provide in other package). I think Mandrake urpm could do it.
For what it's worth, both DNF and Zypper (both in openSUSE Tumbleweed) are capable of this. Zypper doesn't by default for user install requests (you need to use "-C" for that), but it certainly does for dependency resolution.
I have no idea whether "zypper se --requires" fits into "dependency resolution" definition, but it does not do it. Picking random perl module: bor@10:~> zypper info --provides perl-UNIVERSAL-isa Loading repository data... Reading installed packages... Information for package perl-UNIVERSAL-isa: ------------------------------------------- Repository : openSUSE-20170729-0 Name : perl-UNIVERSAL-isa Version : 1.20150614-1.6 Arch : noarch Vendor : openSUSE Installed Size : 30.7 KiB Installed : No Status : not installed Source package : perl-UNIVERSAL-isa-1.20150614-1.6.src Summary : Attempt to recover from people calling UNIVERSAL::isa as a function Description : Whenever you use the UNIVERSAL/isa manpage as a function, a kitten using the Test::MockObject manpage dies. Normally, the kittens would be helpless, but if they use the UNIVERSAL::isa manpage (the module whose docs you are reading), the kittens can live long and prosper. This module replaces 'UNIVERSAL::isa' with a version that makes sure that, when called as a function on objects which override 'isa', 'isa' will call the appropriate method on those objects In all other cases, the real 'UNIVERSAL::isa' gets called directly. *NOTE:* You should use this module only for debugging purposes. It does not belong as a dependency in running code. Provides : [2] perl(UNIVERSAL::isa) = 1.20150614 perl-UNIVERSAL-isa = 1.20150614-1.6 bor@10:~> zypper se --requires 'perl(UNIVERSAL::isa)' Loading repository data... Reading installed packages... S | Name | Summary | Type --+----------------------+---------------------------------------------+-------- | perl-Test-MockObject | Perl extension for emulating troublesome -> | package bor@10:~> zypper se --requires perl-UNIVERSAL-isa Loading repository data... Reading installed packages... No matching items found. bor@10:~>
You can do queries using DNF with "dnf repoquery --whatprovides" or "dnf provides", and you can with Zypper with "zypper search --provides".
You seem to have missed the original problem - to verify delete request "zypper search --requires" was run against package name and returned nothing, although there was package that Requires one of Provides in deleted package.
Most OBS tooling resolves by capabilities (aka Provides) first, and then handles preferences afterward.
Well, can you suggest how to reliably check whether something depends on deleted package *including* provides from this package? -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (4)
-
Andrei Borzenkov
-
Jimmy Berry
-
Mykola Krachkovsky
-
Neal Gompa