Bug 237579 - Review Request: cernlib-g77 - General purpose CERN library and associated binaries
Summary: Review Request: cernlib-g77 - General purpose CERN library and associated bin...
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jason Tibbitts
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks: 241416
TreeView+ depends on / blocked
 
Reported: 2007-04-23 21:23 UTC by Patrice Dumas
Modified: 2007-11-30 22:12 UTC (History)
2 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2007-08-08 13:21:33 UTC
Type: ---
Embargoed:
j: fedora-review+
j: fedora-cvs+


Attachments (Terms of Use)

Description Patrice Dumas 2007-04-23 21:23:24 UTC
Spec URL: http://www.environnement.ens.fr/perso/dumas/fc-srpms/cernlib-g77.spec
SRPM URL: http://www.environnement.ens.fr/perso/dumas/fc-srpms/cernlib-g77-2006-6.fc7.src.rpm
Description: 

This is a sort of compat package for the cernlib. Indeed in F7 the
cernlib is compiled by gfortran, however gfortran compiled libraries
are binary incompatible with g77 compiled libraries (and therefore
have a different soname). Moreover gfortran is sort of new, so I 
think it is interesting to be able to use g77 and gfortran compiled 
binaries and libraries in parallel.

The spec file is the cernlib specfile with the %bcond reversed in 
order to have g77 used instead of gfortran. To have cernlib and cernlib-g77
packages available from the same spec file, there is a use of a lot
of conditionals, so the spec file isn't that legible, but in my opinion 
it is more maintainable like that.

Comment 1 Patrice Dumas 2007-04-23 21:24:48 UTC
Jose, since you did the cernlib review, could it be possible for
you to review that one too? I'd like to have it in F7 if possible.

Comment 2 Joachim Frieben 2007-05-13 08:20:53 UTC
The package name should probably follow the notation already used for
other compatibility packages such as "compat-gcc-34-g77-3.4.6-7.i386.rpm".
One could thus imagine something something like:

    "compat-cernlib-34-g77-2006-6.fc7.src.rpm" .

Comment 3 Patrice Dumas 2007-05-13 09:34:41 UTC
The 34 is because the gcc version is 3.4 which is not the latest.
Here the cernlib version is the latest, so I think that no number 
should appear in the name. As for adding compat in front of the
name, why not. I'll do a try. 

Comment 5 Joachim Frieben 2007-05-13 15:10:56 UTC
(In reply to comment #3)
> The 34 is because the gcc version is 3.4 which is not the latest.
> Here the cernlib version is the latest, so I think that no number 
> should appear in the name. As for adding compat in front of the
> name, why not. I'll do a try.

The actual version of "gcc" which "compat-gcc-34-g77-3.4.6-7" is
referring to is "3.4.6". However, all compilers of the "3.4.x"
series are binary compatible. That's, I guess, why "34" is mentionned
in the first place. It does not refer to version "3.4.0". It simply
drops the minor version ["6"] which is irrelevant. If you omit "34"
in the package name, it is not clear against which version the
"cernlib" package has been compiled. E.g., it could have been built
against some "3.2.x" version which is not compatible with "3.4.x"
at the binary level! For this reason, I strongly support the inclusion
of "34" in the package name as had been done in the case of
"compat-gcc-34-g77-3.4.6-7". Thanks!
            ^^     ^^^^^

Comment 6 Patrice Dumas 2007-05-13 18:54:41 UTC
You mean you'd like the cernlib package to be named
compat-cernlib-2006-g77-2006-9 ???
There is no specific binary incompatibility between the different 
cernlib versions, and there may be binary incompatibility 
within a version. Moreover the binary incompatibilities are in 
the sonames. This is very unlike a compiler where the version
may be meaningful in term of binary incompatibility. Given 
the nature of the cernlib since it is not actively developed 
anymore, the binary incompatibility could certainly only come 
from the packaging. 

As a side note, in fact the current cernlib-g77 is binary incompatible 
with the previous version -- not only because of the use of 
gfortran -- but also because some code has been removed because
it was already in other libs. I haven't changed the soname 
already because I was waiting for the debian move, seems that it
has happened. So it seems that you are somehow right that I will
need a compat package, and I'll certainly call it
compat-cernlib-2005-g77-2006-9
but it will be in another submission...

Comment 7 Joachim Frieben 2007-05-14 05:45:18 UTC
(In reply to comment #6)
> You mean you'd like the cernlib package to be named
> compat-cernlib-2006-g77-2006-9 ???

No, I meant to name it "compat-cernlib-34-g77-2006-9" which refers to the 
compiler release (3.4.x) against which it is built. Compatibility libraries 
in "Fedora" usually carry labels like "296", "33" or "34" (as in this case) to 
distinguish the underlying "gcc" version unambiguously.

Comment 8 Patrice Dumas 2007-05-14 08:13:50 UTC
It is not really built against gcc-3.4.x, the C compiler used is
the latest C compiler. It is only g77 which comes from gcc-3.4.x.
And (to my knowledge) g77 hasn't have binary incompatibilities for 
a long time. So I can't see a reason to have a reference to the
g77 version, a reference to g77 seems enough to me.

Comment 9 Patrice Dumas 2007-05-15 21:46:42 UTC
Synced with the F7 version:

http://www.environnement.ens.fr/perso/dumas/fc-srpms/compat-cernlib-g77-2006-11.fc7.src.rpm

In this version the soname of libpawlib-lesstif is rightly bumped, so
the compat-cernlib-g77-2006-9.fc7 package provides
libpawlib-lesstif.so.3  
while there was libpawlib-lesstif.so.2 in FC-6. So I will submit a
compat package, named for example compat-cernlib-g77-pawlib-lesstif2
which will consist only of libpawlib-lesstif.so.2 and will be linked
against the compat-cernlib-g77 package. But first this package needs
to be accepted.



Comment 10 Patrice Dumas 2007-05-27 22:31:27 UTC
Since I plan to use the g77 compiled utilities, to solve (temporarily)
Bug 241416, I dropped the compat prefix. In any case it isn't really
needed in my opinion. Otherwise it is synced with devel.

http://www.environnement.ens.fr/perso/dumas/fc-srpms/cernlib-g77-2006-15.fc8.src.rpm
http://www.environnement.ens.fr/perso/dumas/fc-srpms/cernlib-g77.spec

Comment 11 Jason Tibbitts 2007-07-06 22:42:01 UTC
This is an insanely big package with a mess of rpmlint complaints (mostly
unused-direct-shlib-dependency warnings), but if I understand correctly it
should be very close to the already-approved cernlib package.  Is there any
chance you could simply list and explain the difference between this package and
the cernlib package?  I'd be willing to ack it based on that if the differences
are small and reasonable.

Comment 12 Patrice Dumas 2007-07-07 08:23:48 UTC
The spec diff is only:
 %if "%fedora" > "6"
-%bcond_with gfortran
-%else
 %bcond_without gfortran
+%else
+%bcond_with gfortran
 %endif
 
This small diff somehow hides the real changes since the gfortran
conditional changes the compiler used, and also the packages names
and many file names/directory names to allow for parallel install. 
So the differences are minimal but real differences have been done 
in the main spec file by adding the conditional handling. This in
turn has been done first to allow to compile with gfortran or g77, 
and later to have parallel installable packages.


The utilities linked against the cernlib compiled with gfortran 
don't work (Bug 241416) After the package is accepted I plan to 
use the utilities from this package as default (that is without 
compiler string). The default library would still be the gfortran 
compiled library.


The rpmlint warnings all seem not problematic to me, including the
unused-direct-shlib-dependency. They are the same that for the 
gfortran compiled package.

After filtering out the unused-direct-shlib-dependency, remains:

E: cernlib-g77-devel only-non-binary-in-usr-lib

I don't really understand this one, maybe it is because 
the .so symlinks are below a directory.

W: cernlib-g77-utils non-conffile-in-etc /etc/profile.d/cernlib-2006-g77.csh
W: cernlib-g77-utils non-conffile-in-etc /etc/profile.d/cernlib-2006-g77.sh
W: cernlib-g77-static no-documentation
W: patchy-g77 no-documentation

This is right.

W: cernlib-g77-packlib symlink-should-be-relative
/usr/lib/cernlib/2006-g77/bin/dzeX11 /usr/bin/dzeX11-g77
E: cernlib-g77-packlib only-non-binary-in-usr-lib
W: paw-g77 symlink-should-be-relative /usr/lib/cernlib/2006-g77/bin/pawX11
/usr/bin/pawX11-g77
E: paw-g77 only-non-binary-in-usr-lib

This is linked with the way dze and paw wrapper scripts work.

E: geant321-g77 devel-dependency cernlib-g77-devel
E: kuipc-g77 devel-dependency cernlib-g77-devel
E: cernlib-g77-utils devel-dependency cernlib-g77-devel

The cernlib-g77-utils and geant321-g77 packages contains 
link scripts and env setting scripts, kuipc is for code
generation, they are distinct from devel to allow for 
parallel installation of different cernlib version. 
It was common practice before and I would certainly have 
kept the previous version if the differences were big, but 
now that cernlib is almost dead it is unlikely to be usefull, 
but I still keep this possibility open. Also this way, even 
though it isn't in maintained in fedora collection anymore, 
users can take the cernlib-2005-devel package and install it 
in parallel with the cernlib-2006-devel package if they want
to.


Comment 13 Jason Tibbitts 2007-07-29 06:16:17 UTC
Thanks for the explanation.  I guess it would be preferrable for Jose Matos to
ack this since he did the original cernlib review, but he doesn't seem to be
around as much lately, so I'll go ahead and ack this.

APPROVED

Comment 14 Patrice Dumas 2007-08-02 21:03:54 UTC
Thanks for the review.

New Package CVS Request
=======================
Package Name: cernlib-g77
Short Description: General purpose CERN library and associated binaries
Owners: pertusus
Branches: F-7 EL-5


Comment 15 Jason Tibbitts 2007-08-02 22:50:40 UTC
CVS done.


Note You need to log in before you can comment on or make changes to this bug.