Mailinglist Archive: opensuse-buildservice (177 mails)

< Previous Next >
Re: [opensuse-buildservice] RPM naming conventions in OBS
  • From: Roger Oberholtzer <roger.oberholtzer@xxxxxxxxx>
  • Date: Fri, 16 Dec 2016 12:45:49 +0100
  • Message-id: <CANkOqwPO96dOaLGF1ZpsybeyHFe+HmMJfvdk9aBTHTp=8eOxYw@mail.gmail.com>
On Fri, Dec 16, 2016 at 12:18 PM, Neal Gompa <ngompa13@xxxxxxxxx> wrote:

I'm not sure what you're talking about. The "pkgconfig(sndfile)"
string is generated by reading the pkg-config file during the packing
process and reading the names. The dependencies described in the RPM
are from the pkgconfig file and from the built resultant binaries.
This is why even nosrc RPMs are able to be built with full
dependencies described.

And usually, you know the pkgconfig() name because it's the same name
you use for pkg_check_modules() in autotools and CMake. If you don't
even know that, then you might be doing this wrong...

The binaries that are being checked are not on OBS and may not be in
an RPM at all. The checking is not part of any packaging of the
binaries. It is a check of what a group of binaries need (1) in order
to run and (2) in order to be compiled. #1 is easy. #2 is less easy.

The binaries do, however, use things from OBS. Which is why I am
asking on this list. I am just trying to figure out what the OBS
dependencies are. It is the -devel part that is the issue because of
inconsistent RPM naming.

The reason for this naming is, I guess:

1. There can be two versions of a package, each with, say, libraries
with different versions. Like libabc.so.5 and libabc.so.6. Each is in
an RPM with a different name, and so they can easily be installed
together - the RPM has the version as part of the name, and the
contents have different names. Programs that were linked against
either will run as both can be present at the same time. The RPMs
would be something like:

libabc5-1.rpm
libabc6-1.rpm

2. The -devel package will contain libabc.so (not the libs listed
above), which is a sym link to either libabc.so.5 or libabc.so.6.
Newly compiled things will link with -labc, But it is what the symlink
points to that is put in the binary. libabc.so is only used/needed
when linking something new. Note that one cannot have the development
package for both version installed at the same time. By not including
the version in the -devel name, this will be enforced by the package
installer. The problem with this is (1) you cannot develop against
both versions (include file differences add to the dilemma), and (2)
there is no way by looking at the name of the -devel RPM that you can
tell which version it is for. The RPM name would be (for either lib
version 5 or 6):

libabc-1.rpm

I am saying all this so it is understood that I get why things are
named as they are, and what it solves. I just want to add that it does
present other issues.

How about a tag in the RPM that tells the name of the development RPM?
RPM could provide is as %DEVEL%

--
Roger Oberholtzer
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >