On Jan 6, 2013, at 12:52 PM, Mykel Alvis wrote:

> Just to clarify, this package is NOT for public consumption.  The software is 
> distributed via installer, to be run by humans.  Since we're doing automation 
> using puppet, an RPM of the code reduces the complexity of the installation 
> substantially and generates a repeatably installable artifact into an 
> existing artifact repository (RH Satellite, in this case).
> 

Most linux distros are development "dog food" aimed at enthusiasts.
Whether one wishes to call that "piublic" is a matter of taste and de facto.

> There actually IS a reason to believe that the ELF data can is, while not 
> wrong, producing undesirable output.  The problem isn't that the dependencies 
> aren't correct.  It's that the package itself supplies those dependencies 
> internally and very specifically doesn't want to external system to interfere 
> with its deployment of the shared libraries.
> 

There is no reason that you have pointed out to suspect that ELF data is wrong.

There are reasosn to suspect that you aren't adding -Wl,soname,YOUR_SONAME_HERE
when building and I asked whether the libraries had DT_SONAME (and give you the 
readelf
command to verify.

> The package builds very well without turning off the internal dependency 
> generator.  The issue arises when I try to install it and rpm looks at it's 
> huge list of requirements and notes that apparently not all of them are 
> satisfied internally or it would rather I use the packages that it purports 
> work best.  The problem is that they ARE supplied internally and that rpm, 
> during the packaging step, didn't understand that.  I'm not terrible at 
> writing spec files, at least for private consumption, but this seems like it 
> might be something that the rpm developers didn't expect to have to handle as 
> often as I seem to.
> 

THe "buils" is entirely in the eye of the beholder. RPM extracts info from ELF 
files:
if the "build" doesn't put the correct data into the ELF header, you can blame 
RPM
all you wish, but its the "buikld" that needs to be fixed.

> The quantity of software that I've had to install using the various 
> shell/executable installer systems is growing, not shrinking.  I attribute 
> this to laziness on the part of the distributor/developer.  They don't take 
> the time to ensure compatibility with various distributions.
> In all fairness, there are an awfully large number of distros to deal with 
> and many/most of them don't take wider-ranging compatibility into account, at 
> least not as a primary element, when getting their (frequently volunteer) 
> packagers to produce their native-level packaging.
> 

Life's tough ... have a kleenex and my sympathies.

> Thus, in this case, this solution is (probably) the only viable one short of 
> writing more code to filter more packages, essentially by hand.  I can't have 
> compatibility with this package because if I stripped out all the perl 
> binaries and used the native perl executables, I might not get what I 
> expected.  Perl has a way of changing across versions and this is a pretty 
> complicated piece of code.  
> 

You may supply whatever reasoning you wish for how you choose to solve your 
problem.

That won't solve my problem: supply reasonable "support" for unknown RPM 
problems.

> Because the developers saw fit to package a modified version of code that 
> exists generally in the wild (JDK, perl, probably something that I'm 
> missing), this entire piece of software can either be viewed as a black box 
> (install it all and let it sort itself out) or it would have to be 
> hand-engineered to extract all the pieces that are different and use those as 
> alternates to the ones supplied by standard OS packaging.  I don't have the 
> insight into the product to do the latter, so the former has to suffice.
> 
> Thus, I package it like it was a Big Pile of Obfuscated Code(tm), and it 
> works like a champ.  Scripts inside the code modify library paths to point ot 
> specific versions of specific things and I get a running server.  Woot!
> 

So Ship It!

> Do I think this is a good idea?  No. 
> Do I think that packaging frankenserver versions of perl and the JDK are good 
> ideas?  Definitely not.
> Do I think that software should be written towards wider compatibility with 
> existing packages?  Definitely yes.  
> Do most enterprise software developers seem to agree with me/us?  It doesn't 
> look that way.
> 
> I'm actually speaking at a conference in a few weeks about this specific 
> issue (not the rpm problem, but the "stop writing stuff that's hard to 
> deliver" problem).
> 

Good for you!

Now can you tell me whether your libraries have a DT_SONAME using
        readelf -a /path/to/some/lib/libfoo*.so | grep SONAME
please?

73 de Jeff

______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
User Communication List                             [email protected]

Reply via email to