Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Fedora Packaging (http://www.linux-archive.org/fedora-packaging/)
-   -   Automatic detection of Requires and versions (http://www.linux-archive.org/fedora-packaging/30905-automatic-detection-requires-versions.html)

Rex Dieter 01-07-2008 12:20 PM

Automatic detection of Requires and versions
 
Eduardo M KALINOWSKI wrote:


I'm attempting to package a program I wrote, that uses the GTK+
libraries. It uses features first found in the 2.10.X series, so I
include

BuildRequires: gtk2-devel >= 2.10.0

(and similar lines for glib and other required libraries). All this is
OK. The problem is regarding the Requires for the generated .rpm. I
could use

Requires: gtk2 >= 2.10.0

but apparently this is bad style and bad for maintenance, because
dependencies are found automatically on build time. However, without
manually adding the requires, the generated .rpm contains (with regard
to GTK+) this:

libgtk-x11-2.0.so.0

that is, no mention of the version, and I expect that even a GTK+ 2.8
package (old as that may be) should provide that file with that name.

What is the best way to handle that? Include the Require manually?
Leave this as-is?


Leave as is (imo).

-- Rex

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Patrice Dumas 01-07-2008 02:15 PM

Automatic detection of Requires and versions
 
On Mon, Jan 07, 2008 at 10:40:05AM -0200, Eduardo M KALINOWSKI wrote:
> Hi,
>
> I'm attempting to package a program I wrote, that uses the GTK+
> libraries. It uses features first found in the 2.10.X series, so I
> include
>
> BuildRequires: gtk2-devel >= 2.10.0
>
> (and similar lines for glib and other required libraries). All this is
> OK. The problem is regarding the Requires for the generated .rpm. I
> could use
>
> Requires: gtk2 >= 2.10.0
>
> but apparently this is bad style and bad for maintenance, because
> dependencies are found automatically on build time. However, without
> manually adding the requires, the generated .rpm contains (with regard
> to GTK+) this:
>
> libgtk-x11-2.0.so.0
>
> that is, no mention of the version, and I expect that even a GTK+ 2.8
> package (old as that may be) should provide that file with that name.
>
> What is the best way to handle that? Include the Require manually?
> Leave this as-is?

I'd say the reverse than Rex, include the Require manually. But I may
well be wrong.

--
Pat

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Ralf Corsepius 01-07-2008 02:20 PM

Automatic detection of Requires and versions
 
On Mon, 2008-01-07 at 16:15 +0100, Patrice Dumas wrote:
> On Mon, Jan 07, 2008 at 10:40:05AM -0200, Eduardo M KALINOWSKI wrote:
> > Hi,
> >
> > I'm attempting to package a program I wrote, that uses the GTK+
> > libraries. It uses features first found in the 2.10.X series, so I
> > include
> >
> > BuildRequires: gtk2-devel >= 2.10.0
> >
> > (and similar lines for glib and other required libraries). All this is
> > OK. The problem is regarding the Requires for the generated .rpm. I
> > could use
> >
> > Requires: gtk2 >= 2.10.0
> >
> > but apparently this is bad style and bad for maintenance, because
> > dependencies are found automatically on build time. However, without
> > manually adding the requires, the generated .rpm contains (with regard
> > to GTK+) this:
> >
> > libgtk-x11-2.0.so.0
> >
> > that is, no mention of the version, and I expect that even a GTK+ 2.8
> > package (old as that may be) should provide that file with that name.
> >
> > What is the best way to handle that? Include the Require manually?
> > Leave this as-is?
>
> I'd say the reverse than Rex, include the Require manually. But I may
> well be wrong.

Well, you are. If an upstream has its package properly designed (Esp.
uses SONAMEs properly), then there should not be any need to let a
run-time/application-package explicitly require a package by name.

Ralf


--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Patrice Dumas 01-07-2008 02:43 PM

Automatic detection of Requires and versions
 
On Mon, Jan 07, 2008 at 04:20:54PM +0100, Ralf Corsepius wrote:
>
> On Mon, 2008-01-07 at 16:15 +0100, Patrice Dumas wrote:
> >
> > I'd say the reverse than Rex, include the Require manually. But I may
> > well be wrong.
>
> Well, you are. If an upstream has its package properly designed (Esp.
> uses SONAMEs properly), then there should not be any need to let a
> run-time/application-package explicitly require a package by name.

Unless I am wrong, the sonames of 2.8 nad 2.10 are the same, but above
2.10 is needed.

--
Pat

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Ralf Corsepius 01-07-2008 03:38 PM

Automatic detection of Requires and versions
 
On Mon, 2008-01-07 at 16:43 +0100, Patrice Dumas wrote:
> On Mon, Jan 07, 2008 at 04:20:54PM +0100, Ralf Corsepius wrote:
> >
> > On Mon, 2008-01-07 at 16:15 +0100, Patrice Dumas wrote:
> > >
> > > I'd say the reverse than Rex, include the Require manually. But I may
> > > well be wrong.
> >
> > Well, you are. If an upstream has its package properly designed (Esp.
> > uses SONAMEs properly), then there should not be any need to let a
> > run-time/application-package explicitly require a package by name.
>
> Unless I am wrong, the sonames of 2.8 nad 2.10 are the same, but above
> 2.10 is needed.
If the SONAMEs are the same, the libraries MUST be compatible.

=> No need for a package dep.

Ralf



--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Jason L Tibbitts III 01-07-2008 03:45 PM

Automatic detection of Requires and versions
 
>>>>> "RC" == Ralf Corsepius <rc040203@freenet.de> writes:

RC> If the SONAMEs are the same, the libraries MUST be compatible.

Well, either that or the developers of said library have screwed up.
It's not as if we haven't seen that before.

RC> => No need for a package dep.

In the case where you depend on a package that's broken as above,
though, you may not have a lot of choice.

Of course, I think this is all moot as we don't generally go updating
gtk within a release, and all supported Fedora releases already have
gtk2 2.10 anyway. So a versioned dependency on gtk2 would be
pointless because it's always going to be satisfied in situations we
support.

- J<

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Axel Thimm 01-07-2008 08:19 PM

Automatic detection of Requires and versions
 
On Mon, Jan 07, 2008 at 04:20:54PM +0100, Ralf Corsepius wrote:
>
> On Mon, 2008-01-07 at 16:15 +0100, Patrice Dumas wrote:
> > On Mon, Jan 07, 2008 at 10:40:05AM -0200, Eduardo M KALINOWSKI wrote:
> > > Hi,
> > >
> > > I'm attempting to package a program I wrote, that uses the GTK+
> > > libraries. It uses features first found in the 2.10.X series, so I
> > > include
> > >
> > > BuildRequires: gtk2-devel >= 2.10.0
> > >
> > > (and similar lines for glib and other required libraries). All this is
> > > OK. The problem is regarding the Requires for the generated .rpm. I
> > > could use
> > >
> > > Requires: gtk2 >= 2.10.0
> > >
> > > but apparently this is bad style and bad for maintenance, because
> > > dependencies are found automatically on build time. However, without
> > > manually adding the requires, the generated .rpm contains (with regard
> > > to GTK+) this:
> > >
> > > libgtk-x11-2.0.so.0
> > >
> > > that is, no mention of the version, and I expect that even a GTK+ 2.8
> > > package (old as that may be) should provide that file with that name.
> > >
> > > What is the best way to handle that? Include the Require manually?
> > > Leave this as-is?
> >
> > I'd say the reverse than Rex, include the Require manually. But I may
> > well be wrong.
>
> Well, you are. If an upstream has its package properly designed (Esp.
> uses SONAMEs properly), then there should not be any need to let a
> run-time/application-package explicitly require a package by name.

That's a big if actually. But I would reason differently - if the
package *build* ensured that gtk2-devel was larger than 2.10.0 then
gtk2 will also be larger than that when pulled from the same repo. So
in the (usual) case of using a Fedora X package within Fedora X one
doesn't have to add versioned Requires:.

In the rare case that one would want to use the package in a different
environment then things change - for example it has happened a couple
of times in the past that using a package built on the *updated*
gtk2/glib2 will require symbols not found in the non-updated *release*
version and will break the app. It has happened with synaptic a couple
of times, e.g. a user installs from DVD then wants to use apt/synaptic
from updates-released to update his system and this synaptic bails out
as it is not compatible to the old libs from the release (I think it
was glib2 that had some more symbols used than the release had)

In order to avoid this catch22 depsolver updates should in theory be
built against the released non-updated bits only, but this is probably
not really worth the trouble - I once maintained non-updated build
chroots just for that reason until the maintenance was too much to
handle (and all depsolvers eventually made it into Fedora anyway, so I
hadn't had to deal with the problem anymore ;)
--
Axel.Thimm at ATrpms.net
--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Patrice Dumas 01-07-2008 09:08 PM

Automatic detection of Requires and versions
 
On Mon, Jan 07, 2008 at 05:38:52PM +0100, Ralf Corsepius wrote:
>
> If the SONAMEs are the same, the libraries MUST be compatible.
>
> => No need for a package dep.

They can be backward compatible and not forward compatible and have the
same sonames. It is the case with usual libtool versionning. Though, as
Axel said it may be a bit pointless since the updated library will be in
the updated repo.

--
Pat

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Ralf Corsepius 01-09-2008 08:14 AM

Automatic detection of Requires and versions
 
On Mon, 2008-01-07 at 23:08 +0100, Patrice Dumas wrote:
> On Mon, Jan 07, 2008 at 05:38:52PM +0100, Ralf Corsepius wrote:
> >
> > If the SONAMEs are the same, the libraries MUST be compatible.
> >
> > => No need for a package dep.
>
> They can be backward compatible and not forward compatible and have the
> same sonames. It is the case with usual libtool versionning.
And were is the problem? I feel you are splitting hairs.

Ralf


--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging

Patrice Dumas 01-09-2008 08:46 AM

Automatic detection of Requires and versions
 
On Wed, Jan 09, 2008 at 10:14:09AM +0100, Ralf Corsepius wrote:
>
> On Mon, 2008-01-07 at 23:08 +0100, Patrice Dumas wrote:
> > On Mon, Jan 07, 2008 at 05:38:52PM +0100, Ralf Corsepius wrote:
> > >
> > > If the SONAMEs are the same, the libraries MUST be compatible.
> > >
> > > => No need for a package dep.
> >
> > They can be backward compatible and not forward compatible and have the
> > same sonames. It is the case with usual libtool versionning.
> And were is the problem? I feel you are splitting hairs.

If something is added between 2.8 and 2.10 while ABI is kept compatible
and the soname isn't changed, and that new thing is needed, then the
soname is not enough.

--
Pat

--
Fedora-packaging mailing list
Fedora-packaging@redhat.com
https://www.redhat.com/mailman/listinfo/fedora-packaging


All times are GMT. The time now is 09:52 AM.

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