Library multi-version and dependencies

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Working again on multi-versions of the same library.

We start to have more and more libraries available in multiple versions.

In a consumer package:

If composer.json states foo: "~1 | ~2"

As v1 and v2 are different major version, we are going to have 2
different packages installed in different tree.

php-foo1, with autoloader in /usr/share/php/foo1/autoload.php
php-foo2, with autoloader in /usr/share/php/foo2/autoload.php

So you MUST allow both version ONLY if your autoloader is aware of each
autoloader patch

Examples

	BuildRequires: php-composer(foo) <  3
	BuildRequires: php-composer(foo) >= 1
	Requires: php-composer(foo) <  3
	Requires: php-composer(foo) >= 1

And in autoloader

   \Fedora\Autoloader\Dependencies::required(array(
       array(
          '/usr/share/php/foo2/autoload.php',
          '/usr/share/php/foo1/autoload.php',
   )));

Do not allow multi major versions if your composer if not aware.

Do not add Conflicts on composer virtual name.

   Conflicts: php-composer(foo) >= 3

This is bad, as if php-foo3 exists, it will be installed in another
tree, so won't be used, and no conflicts needed.


Comment (before I try to add something in the packaging tips page) ?


Remi.


Ex:
https://raw.githubusercontent.com/remicollet/remirepo/160ef9c7e1fba0418103c33e5d2bdd8890a79cdf/php/doctrine/php-doctrine-doctrine-bundle/php-doctrine-doctrine-bundle.spec
(in my repo)

- twig 1 and 2 are allowed, as autoloader is aware of both versions
- symfony 3 is not allowed (despite supported by upstream) as the
autoloader is only aware of v2
_______________________________________________
php-devel mailing list -- php-devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to php-devel-leave@xxxxxxxxxxxxxxxxxxxxxxx




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora KDE]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux