Mailinglist Archive: zypp-devel (53 mails)
| < Previous | Next > |
Re: [zypp-devel] package dependency problem with zypper or yast
- From: Michael Schroeder <mls@xxxxxxx>
- Date: Thu, 25 Jun 2009 19:02:18 +0200
- Message-id: <20090625170218.GA9727@xxxxxxx>
On Thu, Jun 25, 2009 at 12:42:11PM +0200, Ralf Becker wrote:
Looking at the solver testcase I see some cycles:
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-registration-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-calendar-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-manual-9.1.20090618-41.1.noarch
####> egroupware-epl-wiki-9.1.20090618-41.1.noarch
----> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-manual-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-bookmarks-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-tracker-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
CYCLE: ----> egroupware-epl-9.1.20090618-41.1.noarch
====> egroupware-epl-core-9.1.20090618-41.1.noarch
####>
----> normal dependency
====> prereq dependency
####> broken dependency
This was generated with the new transaction ordering code from
the libsatsolver library. In 11.1, libzypp does the ordering.
The zypper log contains:
dependency loop: egroupware-epl -> egroupware-epl-core
dependency loop: apache2-prefork -> apache2
dependency loop: egroupware-epl-egw-pear -> egroupware-epl-core
dependency loop: egroupware-epl-wiki -> egroupware-epl-core
dependency loop: egroupware-epl-emailadmin -> egroupware-epl-core
dependency loop: egroupware-epl-sitemgr -> egroupware-epl-core
dependency loop: egroupware-epl-filemanager -> egroupware-epl-core
dependency loop: egroupware-epl-infolog -> egroupware-epl-core
dependency loop: egroupware-epl-projectmanager -> egroupware-epl-core
dependency loop: egroupware-epl-importexport -> egroupware-epl-core
dependency loop: egroupware-epl-news_admin -> egroupware-epl-core
dependency loop: egroupware-epl-stylite -> egroupware-epl-core
dependency loop: egroupware-epl-notifications -> egroupware-epl-core
dependency loop: egroupware-epl-phpsysinfo -> egroupware-epl-core
dependency loop: egroupware-epl-developer_tools -> egroupware-epl-core
dependency loop: egroupware-epl-felamimail -> egroupware-epl-core
dependency loop: egroupware-epl-sambaadmin -> egroupware-epl-core
dependency loop: egroupware-epl-phpbrain -> egroupware-epl-core
dependency loop: egroupware-epl-syncml -> egroupware-epl-core
dependency loop: egroupware-epl-timesheet -> egroupware-epl-core
dependency loop: egroupware-epl-resources -> egroupware-epl-core
dependency loop: egroupware-epl -> egroupware-epl-polls
dependency loop: egroupware-epl-tracker -> egroupware-epl-core
dependency loop: egroupware-epl-bookmarks -> egroupware-epl-core
dependency loop: egroupware-epl-manual -> egroupware-epl-core
dependency loop: egroupware-epl-calendar -> egroupware-epl-core
dependency loop: egroupware-epl-registration -> egroupware-epl-core
So it also sees the cycles. I'm not sure if it is clever enough
to not break PreReqs if the cycle can be broken with normal
Requires, though. I may be that it treats PreReqs like Reqs, which
would be a bug.
(Actually it's a packaging error from your side: A cycle containing
a PreReq dependency is not installable.
egroupware-epl PreReq: egroupware-epl-core
means that egroupware-epl-core must be when egroupware-epl
gets installed. Working means that all dependencies are fulfilled,
but egroupware-epl-core requires egroupware-epl.)
Nevertheless, it shouldn't break PreReq deps. The new libsatsolver
code will not do this, it has computed the following order:
install egroupware-epl-registration-9.1.20090618-41.1.noarch
install egroupware-epl-calendar-9.1.20090618-41.1.noarch
install egroupware-epl-manual-9.1.20090618-41.1.noarch
install egroupware-epl-bookmarks-9.1.20090618-41.1.noarch
install egroupware-epl-tracker-9.1.20090618-41.1.noarch
install egroupware-epl-core-9.1.20090618-41.1.noarch
install egroupware-epl-polls-9.1.20090618-41.1.noarch
install egroupware-epl-projectmanager-9.1.20090618-41.1.noarch
install egroupware-epl-wiki-9.1.20090618-41.1.noarch
install egroupware-epl-stylite-9.1.20090618-41.1.noarch
install egroupware-epl-developer_tools-9.1.20090618-41.1.noarch
install egroupware-epl-sambaadmin-9.1.20090618-41.1.noarch
install egroupware-epl-infolog-9.1.20090618-41.1.noarch
install egroupware-epl-resources-9.1.20090618-41.1.noarch
install egroupware-epl-news_admin-9.1.20090618-41.1.noarch
install egroupware-epl-timesheet-9.1.20090618-41.1.noarch
install egroupware-epl-phpsysinfo-9.1.20090618-41.1.noarch
install egroupware-epl-notifications-9.1.20090618-41.1.noarch
install egroupware-epl-egw-pear-9.1.20090618-41.1.noarch
install egroupware-epl-phpbrain-9.1.20090618-41.1.noarch
install egroupware-epl-sitemgr-9.1.20090618-41.1.noarch
install egroupware-epl-importexport-9.1.20090618-41.1.noarch
install egroupware-epl-filemanager-9.1.20090618-41.1.noarch
install egroupware-epl-syncml-9.1.20090618-41.1.noarch
install egroupware-epl-emailadmin-9.1.20090618-41.1.noarch
install egroupware-epl-felamimail-9.1.20090618-41.1.noarch
install egroupware-epl-9.1.20090618-41.1.noarch
Michael Andres, any comments about the libzypp behaviour?
Cheers,
Michael.
--
Michael Schroeder mls@xxxxxxx
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx
I'm building rpm packages for EGroupware (www.egroupware.org).
They have a "metapackage" requiring the default modules and then
executing a post_install script (create database, install EGroupware and
all modules via a comand line client). All modules depend of a core
module, which is also required by the metapackage and which includes the
post-install script itself. (That way you can use the metapackage for
convenience, but you can also install the single packages, if you want to).
What I expect would be the following behaviour:
1. Install required packages (including required core package)
2. Install metapackage
3. Execute post install of metapackage
(That's eg. the behaviour of yum or aptitude).
Looking at the solver testcase I see some cycles:
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-registration-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-calendar-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-manual-9.1.20090618-41.1.noarch
####> egroupware-epl-wiki-9.1.20090618-41.1.noarch
----> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-manual-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-bookmarks-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
cycle: ----> egroupware-epl-9.1.20090618-41.1.noarch
----> egroupware-epl-tracker-9.1.20090618-41.1.noarch
####> egroupware-epl-core-9.1.20090618-41.1.noarch
---->
CYCLE: ----> egroupware-epl-9.1.20090618-41.1.noarch
====> egroupware-epl-core-9.1.20090618-41.1.noarch
####>
----> normal dependency
====> prereq dependency
####> broken dependency
This was generated with the new transaction ordering code from
the libsatsolver library. In 11.1, libzypp does the ordering.
The zypper log contains:
dependency loop: egroupware-epl -> egroupware-epl-core
dependency loop: apache2-prefork -> apache2
dependency loop: egroupware-epl-egw-pear -> egroupware-epl-core
dependency loop: egroupware-epl-wiki -> egroupware-epl-core
dependency loop: egroupware-epl-emailadmin -> egroupware-epl-core
dependency loop: egroupware-epl-sitemgr -> egroupware-epl-core
dependency loop: egroupware-epl-filemanager -> egroupware-epl-core
dependency loop: egroupware-epl-infolog -> egroupware-epl-core
dependency loop: egroupware-epl-projectmanager -> egroupware-epl-core
dependency loop: egroupware-epl-importexport -> egroupware-epl-core
dependency loop: egroupware-epl-news_admin -> egroupware-epl-core
dependency loop: egroupware-epl-stylite -> egroupware-epl-core
dependency loop: egroupware-epl-notifications -> egroupware-epl-core
dependency loop: egroupware-epl-phpsysinfo -> egroupware-epl-core
dependency loop: egroupware-epl-developer_tools -> egroupware-epl-core
dependency loop: egroupware-epl-felamimail -> egroupware-epl-core
dependency loop: egroupware-epl-sambaadmin -> egroupware-epl-core
dependency loop: egroupware-epl-phpbrain -> egroupware-epl-core
dependency loop: egroupware-epl-syncml -> egroupware-epl-core
dependency loop: egroupware-epl-timesheet -> egroupware-epl-core
dependency loop: egroupware-epl-resources -> egroupware-epl-core
dependency loop: egroupware-epl -> egroupware-epl-polls
dependency loop: egroupware-epl-tracker -> egroupware-epl-core
dependency loop: egroupware-epl-bookmarks -> egroupware-epl-core
dependency loop: egroupware-epl-manual -> egroupware-epl-core
dependency loop: egroupware-epl-calendar -> egroupware-epl-core
dependency loop: egroupware-epl-registration -> egroupware-epl-core
So it also sees the cycles. I'm not sure if it is clever enough
to not break PreReqs if the cycle can be broken with normal
Requires, though. I may be that it treats PreReqs like Reqs, which
would be a bug.
(Actually it's a packaging error from your side: A cycle containing
a PreReq dependency is not installable.
egroupware-epl PreReq: egroupware-epl-core
means that egroupware-epl-core must be when egroupware-epl
gets installed. Working means that all dependencies are fulfilled,
but egroupware-epl-core requires egroupware-epl.)
Nevertheless, it shouldn't break PreReq deps. The new libsatsolver
code will not do this, it has computed the following order:
install egroupware-epl-registration-9.1.20090618-41.1.noarch
install egroupware-epl-calendar-9.1.20090618-41.1.noarch
install egroupware-epl-manual-9.1.20090618-41.1.noarch
install egroupware-epl-bookmarks-9.1.20090618-41.1.noarch
install egroupware-epl-tracker-9.1.20090618-41.1.noarch
install egroupware-epl-core-9.1.20090618-41.1.noarch
install egroupware-epl-polls-9.1.20090618-41.1.noarch
install egroupware-epl-projectmanager-9.1.20090618-41.1.noarch
install egroupware-epl-wiki-9.1.20090618-41.1.noarch
install egroupware-epl-stylite-9.1.20090618-41.1.noarch
install egroupware-epl-developer_tools-9.1.20090618-41.1.noarch
install egroupware-epl-sambaadmin-9.1.20090618-41.1.noarch
install egroupware-epl-infolog-9.1.20090618-41.1.noarch
install egroupware-epl-resources-9.1.20090618-41.1.noarch
install egroupware-epl-news_admin-9.1.20090618-41.1.noarch
install egroupware-epl-timesheet-9.1.20090618-41.1.noarch
install egroupware-epl-phpsysinfo-9.1.20090618-41.1.noarch
install egroupware-epl-notifications-9.1.20090618-41.1.noarch
install egroupware-epl-egw-pear-9.1.20090618-41.1.noarch
install egroupware-epl-phpbrain-9.1.20090618-41.1.noarch
install egroupware-epl-sitemgr-9.1.20090618-41.1.noarch
install egroupware-epl-importexport-9.1.20090618-41.1.noarch
install egroupware-epl-filemanager-9.1.20090618-41.1.noarch
install egroupware-epl-syncml-9.1.20090618-41.1.noarch
install egroupware-epl-emailadmin-9.1.20090618-41.1.noarch
install egroupware-epl-felamimail-9.1.20090618-41.1.noarch
install egroupware-epl-9.1.20090618-41.1.noarch
Michael Andres, any comments about the libzypp behaviour?
Cheers,
Michael.
--
Michael Schroeder mls@xxxxxxx
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx
| < Previous | Next > |