Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Fedora Packaging (http://www.linux-archive.org/fedora-packaging/)
-   -   php/php53 application packaging (http://www.linux-archive.org/fedora-packaging/701062-php-php53-application-packaging.html)

indent man 09-06-2012 11:03 AM

php/php53 application packaging
 
On Thu, Sep 6, 2012 at 11:49 AM, Michael Schwendt <mschwendt@gmail.com> wrote:

Make the dependencies more specific.


Add dependencies on package names and/or specific versions. Use RPM to

examine the package's current "Requires" (both the automatically added

ones as well as manually added ones) and the PHP package's "Provides".



If multiple packages provide the same thing, Yum assumes that either one

can be used to resolve a dependency.

Ok, I hoped yum would not to choose conflicting providers.Since it does, I suppose I'd better provide 2 separate packages for my app with explicit dependencies.
Thank you for your answer !

--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

Michael Schwendt 09-06-2012 11:30 AM

php/php53 application packaging
 
On Thu, 6 Sep 2012 13:03:07 +0200, indent man wrote:

> > Make the dependencies more specific.
> >
> > Add dependencies on package names and/or specific versions. Use RPM to
> > examine the package's current "Requires" (both the automatically added
> > ones as well as manually added ones) and the PHP package's "Provides".
> >
> > If multiple packages provide the same thing, Yum assumes that either one
> > can be used to resolve a dependency.
> >
>
> Ok, I hoped yum would not to choose conflicting providers.
> Since it does,

It doesn't. And it cannot know that a package that provides "php(foo)"
isn't sufficient for a simple dependency on "php(foo)". How would it
know about a version requirement without any such version in the
dependency?

The terminology with regard to "conflicts" is different, btw. Packages
conflict only if there are explicit "Conflicts:" tags in them, or if they
contain conflicting files in the same path (aka "implicit conflict").

Assumably, the two php(foo) providers can be installed in parallel even.
So, they don't conflict. It's really just that you need to be more
specific about which version of php(foo) to install/depend on.

> I suppose I'd better provide 2 separate packages for my app
> with explicit dependencies.

Of course! There is no way to guess which version of PHP you need.
That version must be specified in the dependencies wherever it matters.

--
Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64
loadavg: 0.08 0.25 0.29
--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

indent man 09-06-2012 11:49 AM

php/php53 application packaging
 
I should have said that I'm also packaging the php/php53 foo/bar dependencies.So maybe I just forgot some "Conflicts" tags (my bad).Taking a look at it...


On Thu, Sep 6, 2012 at 1:30 PM, Michael Schwendt <mschwendt@gmail.com> wrote:

On Thu, 6 Sep 2012 13:03:07 +0200, indent man wrote:



> > Make the dependencies more specific.

> >

> > Add dependencies on package names and/or specific versions. Use RPM to

> > examine the package's current "Requires" (both the automatically added

> > ones as well as manually added ones) and the PHP package's "Provides".

> >

> > If multiple packages provide the same thing, Yum assumes that either one

> > can be used to resolve a dependency.

> >

>

> Ok, I hoped yum would not to choose conflicting providers.

> Since it does,



It doesn't. And it cannot know that a package that provides "php(foo)"

isn't sufficient for a simple dependency on "php(foo)". How would it

know about a version requirement without any such version in the

dependency?



The terminology with regard to "conflicts" is different, btw. Packages

conflict only if there are explicit "Conflicts:" tags in them, or if they

contain conflicting files in the same path (aka "implicit conflict").



Assumably, the two php(foo) providers can be installed in parallel even.

So, they don't conflict. It's really just that you need to be more

specific about which version of php(foo) to install/depend on.



> I suppose I'd better provide 2 separate packages for my app

> with explicit dependencies.



Of course! There is no way to guess which version of PHP you need.

That version must be specified in the dependencies wherever it matters.



--

Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64

loadavg: 0.08 0.25 0.29

--

packaging mailing list

packaging@lists.fedoraproject.org

https://admin.fedoraproject.org/mailman/listinfo/packaging

--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

Michael Schwendt 09-06-2012 01:32 PM

php/php53 application packaging
 
On Thu, 6 Sep 2012 13:49:23 +0200, indent man wrote:

> I should have said that I'm also packaging the php/php53 foo/bar
> dependencies.
> So maybe I just forgot some "Conflicts" tags (my bad).
> Taking a look at it...

Adding them won't solve your problem, however, and may even be
wrong for parallel-installable packages.
Also notice: http://fedoraproject.org/wiki/Packaging:Conflicts

--
Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64
loadavg: 0.15 0.28 0.31
--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

indent man 09-07-2012 10:37 AM

php/php53 application packaging
 
I'm a bit lost...From what I can read, it's not possible to package a php app in centos 5 so that it may be installed with either php or php53, is it ?So should I provide 2 packages: myapp and myapp-php53 ?

My app also needs json.The official centos php53-common package "provides" php-pecl-json (1.2.1), but php-common does not.So, and since I can't use EPEL, I need to provide my own php-pecl-json package, with version 1.2.1, and a dependency on php < 5.2.
And to make myapp depend on php-pecl-json.Then, when I try to yum install myapp (not myapp-php53), it tries to install php53-common, because it is a valid provider of php-pecl-json.And as it also tries to install other php (5.1) dependencies, it crashes because of the conflict between php-common and php53-common.

So what is the correct way to make myapp (not myapp-php53) depend on php-pecl-json, and not on php53-pecl-json ?
Thanks,

On Thu, Sep 6, 2012 at 3:32 PM, Michael Schwendt <mschwendt@gmail.com> wrote:

On Thu, 6 Sep 2012 13:49:23 +0200, indent man wrote:



> I should have said that I'm also packaging the php/php53 foo/bar

> dependencies.

> So maybe I just forgot some "Conflicts" tags (my bad).

> Taking a look at it...



Adding them won't solve your problem, however, and may even be

wrong for parallel-installable packages.

Also notice: http://fedoraproject.org/wiki/Packaging:Conflicts



--

Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64

loadavg: 0.15 0.28 0.31

--

packaging mailing list

packaging@lists.fedoraproject.org

https://admin.fedoraproject.org/mailman/listinfo/packaging

--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

indent man 09-07-2012 10:42 AM

php/php53 application packaging
 
Or should I make myapp depend on a specific release/epoch/whatever ? (sounds like a bad idea)Or change the php-pecl-json version to 1.2.1.myapp ? (bad idea too)Or provide a php-pecl-json-myapp package ?



On Fri, Sep 7, 2012 at 12:37 PM, indent man <indentman@gmail.com> wrote:

I'm a bit lost...From what I can read, it's not possible to package a php app in centos 5 so that it may be installed with either php or php53, is it ?So should I provide 2 packages: myapp and myapp-php53 ?


My app also needs json.The official centos php53-common package "provides" php-pecl-json (1.2.1), but php-common does not.So, and since I can't use EPEL, I need to provide my own php-pecl-json package, with version 1.2.1, and a dependency on php < 5.2.

And to make myapp depend on php-pecl-json.Then, when I try to yum install myapp (not myapp-php53), it tries to install php53-common, because it is a valid provider of php-pecl-json.And as it also tries to install other php (5.1) dependencies, it crashes because of the conflict between php-common and php53-common.


So what is the correct way to make myapp (not myapp-php53) depend on php-pecl-json, and not on php53-pecl-json ?
Thanks,


On Thu, Sep 6, 2012 at 3:32 PM, Michael Schwendt <mschwendt@gmail.com> wrote:

On Thu, 6 Sep 2012 13:49:23 +0200, indent man wrote:



> I should have said that I'm also packaging the php/php53 foo/bar

> dependencies.

> So maybe I just forgot some "Conflicts" tags (my bad).

> Taking a look at it...



Adding them won't solve your problem, however, and may even be

wrong for parallel-installable packages.

Also notice: http://fedoraproject.org/wiki/Packaging:Conflicts



--

Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64

loadavg: 0.15 0.28 0.31

--

packaging mailing list

packaging@lists.fedoraproject.org

https://admin.fedoraproject.org/mailman/listinfo/packaging



--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

Michael Schwendt 09-07-2012 11:45 AM

php/php53 application packaging
 
On Fri, 7 Sep 2012 12:37:22 +0200, indent man wrote:

> I'm a bit lost...
> From what I can read, it's not possible to package a php app in centos 5 so
> that it may be installed with either php or php53, is it ?

Well, first of all, it depends on the app and whether the app can detect the
PHP runtime environment and adjust to the different versions it might
find and how it handles missing modules. You could leave it to the admin/user
to install the needed pieces, but you could also create RPM packages which
contain proper dependencies on everything that's strictly needed (and make
installation of the whole show much more comfortable).

> So should I provide 2 packages: myapp and myapp-php53 ?

Give a few details about what those packages would do/contain, and the
question would be easier to answer. A solution could also be to create a
common app package and two meta packages that add the needed stuff via
dependencies.

> My app also needs json.
> The official centos php53-common package "provides" php-pecl-json (1.2.1),
> but php-common does not.
> So, and since I can't use EPEL, I need to provide my own php-pecl-json
> package, with version 1.2.1, and a dependency on php < 5.2.
> And to make myapp depend on php-pecl-json.
> Then, when I try to yum install myapp (not myapp-php53), it tries to

Yum does not know anything about PHP. It only evaluates RPM package metadata.
Make the dependencies more accurate/strict, and any package tool will be
able to install the right stuff.

> install php53-common, because it is a valid provider of php-pecl-json.
> And as it also tries to install other php (5.1) dependencies, it crashes
> because of the conflict between php-common and php53-common.
>
> So what is the correct way to make myapp (not myapp-php53) depend on
> php-pecl-json, and not on php53-pecl-json ?

Choose a more suitable package name for the json version you want to
provide. Depend on that one. Or invent a more convenient virtual
capability to add to the package as "Provides", which to depend on.

--
Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64
loadavg: 0.03 0.05 0.05
--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging

Remi Collet 09-07-2012 01:43 PM

php/php53 application packaging
 
Le 07/09/2012 12:37, indent man a écrit :

> My app also needs json.
> The official centos php53-common package "provides" php-pecl-json
> (1.2.1), but php-common does not.
> So, and since I can't use EPEL, I need to provide my own php-pecl-json
> package, with version 1.2.1, and a dependency on php < 5.2.

No, it should only requires correct ABI which is php(abi)

> And to make myapp depend on php-pecl-json.
> Then, when I try to yum install myapp (not myapp-php53), it tries to
> install php53-common, because it is a valid provider of php-pecl-json.

php-pecl-json is a better provider (name match) than php53-common
(virtual provides)

I full yum output should be interesting.


> And as it also tries to install other php (5.1) dependencies, it crashes
> because of the conflict between php-common and php53-common.
>
> So what is the correct way to make myapp (not myapp-php53) depend on
> php-pecl-json, and not on php53-pecl-json ?
>
> Thanks,
>
>
> On Thu, Sep 6, 2012 at 3:32 PM, Michael Schwendt <mschwendt@gmail.com
> <mailto:mschwendt@gmail.com>> wrote:
>
> On Thu, 6 Sep 2012 13:49:23 +0200, indent man wrote:
>
> > I should have said that I'm also packaging the php/php53 foo/bar
> > dependencies.
> > So maybe I just forgot some "Conflicts" tags (my bad).
> > Taking a look at it...
>
> Adding them won't solve your problem, however, and may even be
> wrong for parallel-installable packages.
> Also notice: http://fedoraproject.org/wiki/Packaging:Conflicts
>
> --
> Fedora release 17 (Beefy Miracle) - Linux 3.5.3-1.fc17.x86_64
> loadavg: 0.15 0.28 0.31
> --
> packaging mailing list
> packaging@lists.fedoraproject.org
> <mailto:packaging@lists.fedoraproject.org>
> https://admin.fedoraproject.org/mailman/listinfo/packaging
>
>
>
>
> --
> packaging mailing list
> packaging@lists.fedoraproject.org
> https://admin.fedoraproject.org/mailman/listinfo/packaging
>

--
packaging mailing list
packaging@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/packaging


All times are GMT. The time now is 04:23 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.