Mailinglist Archive: zypp-devel (53 mails)

< Previous Next >
Re: [zypp-devel] package dependency problem with zypper or yast
  • From: Ralf Becker <rb@xxxxxxxxxx>
  • Date: Fri, 26 Jun 2009 10:37:53 +0200
  • Message-id: <4A4488E1.6050305@xxxxxxxxxx>
Hi Michael,

thanks for your help :-)

We were not aware of a (circular) dependency from egroupware-epl-core to
egroupware-epl, as this was never explicitly specified in our spec file.

It was caused by a compatibility/workaround for suse: to be able to
start cli scripts with #!/usr/bin/php we created a symlink from
/usr/bin/php --> /usr/bin/php5 and that was created in egroupware-epl
and only implicitly required by rpm analysing the script interpreter.

Anyway thanks for pointing in the right direction :-)

Ralf

Michael Schroeder schrieb:
On Thu, Jun 25, 2009 at 12:42:11PM +0200, Ralf Becker wrote:
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.


--
Ralf Becker
Director Software Development

Stylite GmbH
[open style of IT]

Morschheimer Strasse 15
67292 Kirchheimbolanden

fon +49 (0) 6352 70629-0
fax +49 (0) 6352 70629-30
mailto: rb@xxxxxxxxxx

www.stylite.de
www.egroupware.org
________________________________________________

Geschäftsführer Andre Keller, Gudrun Müller,
Nigel Vickers und Ralf Becker
Registergericht Kaiserslautern HRB 30575
Umsatzsteuer-Id / VAT-Id: DE214280951
--
To unsubscribe, e-mail: zypp-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-devel+help@xxxxxxxxxxxx

< Previous Next >