Bug 283081

Summary: Review Request: condor - Batch system for High Throughput Computing
Product: [Fedora] Fedora Reporter: Matthew Farrellee <matt>
Component: Package ReviewAssignee: Matthew Farrellee <matt>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: bugs.michael, fedora-package-review, kevin, mjs, ndbecker2, notting, nsantos
Target Milestone: ---Flags: nsantos: fedora-review+
kevin: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-02-11 20:33:42 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matthew Farrellee 2007-09-07 19:53:34 UTC
Spec URL: http://grid.et.redhat.com/files/condor.spec
SRPM URL: http://grid.et.redhat.com/files/condor-6.9.5-0.1.20070907cvs.src.rpm
Description:
Condor is a specialized workload management system for compute-intensive jobs. Like other full-featured batch systems, Condor provides a job queueing mechanism, scheduling policy, priority scheme, resource monitoring, and resource management. Users submit their serial or parallel jobs to Condor, Condor places them into a queue, chooses when and where to run the jobs based upon a policy, carefully monitors their progress, and ultimately informs the user upon completion.

NOTES:
 1) The license is currently unacceptable, but negotiations are nearly complete for a compatible license
 2) I'm not sure what to do about the non-standard-uid error
 3) I don't know how to handle the no-soname warning in -devel
 4) The permissions on /var/lib/condor/execute are intentional

Comment 1 Matthew Farrellee 2007-09-07 20:54:09 UTC
ADDITIONAL NOTE: You will need F7 or RHEL 3 to compile this code. I recommend
compiling with mock and a f7-i386 config. Support for RHEL 4+5 is forthcoming.

Comment 2 Nuno Santos 2007-09-07 22:17:53 UTC
In i386, you should be building with fedora-devel-i386.cfg, as this is what will
go into the next Fedora release (F8).

Comment 3 Matthew Farrellee 2007-09-08 00:31:48 UTC
Please do the review with f7-i386 while I work with upstream to get an F8 port.
The main issues should be in the spec and once they are ironed out rev'ing the
source should be straightforward (and necessary anyway).

Comment 4 Nuno Santos 2007-09-10 15:54:32 UTC
I've done a review of the package as-is, here are my notes:

- tarfile matches upstream with the following md5 sum:

$ md5sum condor-BUILD-V6_9-trunk-2007-9-7.tar.gz 
d6fb0aa4bb1aba0617d09436b6dae8e4  condor-BUILD-V6_9-trunk-2007-9-7.tar.gz

- couldn't build in mock under fedora-devel

- as expected, rpmlint gives warning about license:

$ rpmlint condor-6.9.5-0.1.20070907cvs.src.rpm
W: condor invalid-license Condor Public License

- some lines in the specfile are longer than 80 characters

- license text (LICENSE.TXT) is missing from the package (the %doc line is
commented out)


The last two items can be fixed independently of the other (major) issues of
building under fedora-devel and getting a compatible license.

Nuno


Comment 5 Matthew Farrellee 2007-09-11 03:03:42 UTC
I've uploaded a new SRPM and spec:

 spec: http://grid.et.redhat.com/files/condor.spec
 SRPM: http://grid.et.redhat.com/files/condor-6.9.5-0.2.20070907cvs.src.rpm

This addresses the issue of no documentation, most lines longer than 80
characters have been fixed, and the package builds under fedora-devel-i368.
However, building is tied to the current Rawhide (7.91). I will provide a patch
for 7.92 when it is released.

Comment 6 Nuno Santos 2007-09-11 16:10:26 UTC
Reviewed the revised package/spec:

- confirmed that the missing %doc and the long lines issues have been fixed

- managed to build in mock under fedora-devel-i368:

$ mock -r fedora-devel-i386.cfg condor-6.9.5-0.2.20070907cvs.src.rpm 
init
clean
prep
This may take a while
unpack cache
setup
build
ending
done
Results and/or logs in: /var/lib/mock/fedora-development-i386/result

$ cd /var/lib/mock/fedora-development-i386/result
$ ls -alF
total 37968
drwxr-sr-x 2 nsantos mock     4096 Sep 11 11:53 ./
drwxr-sr-x 5 nsantos mock     4096 Sep 11 11:41 ../
-rw-r--r-- 1 nsantos mock   881599 Sep 11 11:53 build.log
-rw-rw-r-- 1 nsantos mock 22186503 Sep 11 11:53
condor-6.9.5-0.2.20070907cvs.i386.rpm
-rw-rw-r-- 1 nsantos mock 14988562 Sep 11 11:45 condor-6.9.5-0.2.20070907cvs.src.rpm
-rw-rw-r-- 1 nsantos mock     2506 Sep 11 11:53
condor-debuginfo-6.9.5-0.2.20070907cvs.i386.rpm
-rw-rw-r-- 1 nsantos mock   719184 Sep 11 11:53
condor-devel-6.9.5-0.2.20070907cvs.i386.rpm
-rw-r--r-- 1 nsantos mock      165 Sep 11 11:41 mockconfig.log
-rw-r--r-- 1 nsantos mock    17190 Sep 11 11:53 root.log


Confirmation of requires/provides:

$ for i in `ls *.rpm`; do echo; echo $i; echo "Provides:" ; rpm -qp $i
--provides; echo "Requires:"; rpm -qp $i --requires; done

condor-6.9.5-0.2.20070907cvs.i386.rpm
Provides:
config(condor) = 6.9.5-0.2.20070907cvs
perl(Condor)  
perl(Execute) = 1.00
perl(FileLock) = 1.01
condor = 6.9.5-0.2.20070907cvs
Requires:
/bin/bash  
/bin/sh  
/bin/sh  
/sbin/ldconfig  
/sbin/ldconfig  
/usr/bin/env  
/usr/bin/perl  
config(condor) = 6.9.5-0.2.20070907cvs
krb5-libs  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.3)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libcom_err.so.2  
libcrypt.so.1  
libcrypto.so.6  
libdl.so.2  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GLIBC_2.0)  
libk5crypto.so.3  
libk5crypto.so.3(k5crypto_3_MIT)  
libkrb5.so.3  
libkrb5.so.3(krb5_3_MIT)  
libm.so.6  
libm.so.6(GLIBC_2.0)  
libm.so.6(GLIBC_2.1)  
libpcre.so.0  
libpq.so.5  
libresolv.so.2  
libssl.so.6  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
libstdc++.so.6(GLIBCXX_3.4)  
mailx  
openssl  
pcre  
perl >= 0:5.003
perl >= 1:5.0
perl(Carp)  
perl(Cwd)  
perl(English)  
perl(Execute)  
perl(Exporter)  
perl(Fcntl)  
perl(File::Basename)  
perl(File::Copy)  
perl(File::Find)  
perl(File::Path)  
perl(File::Spec)  
perl(File::Spec::Functions)  
perl(File::Temp)  
perl(FileHandle)  
perl(FileLock)  
perl(FindBin)  
perl(Getopt::Long)  
perl(POSIX)  
perl(Socket)  
perl(Sys::Hostname)  
perl(Text::Wrap)  
perl(lib)  
perl(strict)  
perl(warnings)  
postgresql-libs  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  
shadow-utils  

condor-6.9.5-0.2.20070907cvs.src.rpm
Provides:
(none)
Requires:
imake  
flex  
byacc  
tcsh  
pcre-devel  
postgresql-devel  
openssl-devel  
krb5-devel  
bind-utils  
rpmlib(CompressedFileNames) <= 3.0.4-1

condor-debuginfo-6.9.5-0.2.20070907cvs.i386.rpm
Provides:
condor-debuginfo = 6.9.5-0.2.20070907cvs
Requires:
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1

condor-devel-6.9.5-0.2.20070907cvs.i386.rpm
Provides:
libcondorapi.so  
condor-devel = 6.9.5-0.2.20070907cvs
Requires:
condor = 6.9.5-0.2.20070907cvs
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  



Here are the rpmlint results, please fix or justify as appropriate (ignoring the
license-related ones for now):

$ for i in `ls *.rpm`; do echo; echo $i; rpmlint $i; done

condor-6.9.5-0.2.20070907cvs.i386.rpm
E: condor non-standard-uid /var/lib/condor/execute condor
E: condor non-standard-gid /var/lib/condor/execute condor
E: condor non-standard-dir-perm /var/lib/condor/execute 01777
E: condor non-standard-uid /var/lib/condor/log condor
E: condor non-standard-gid /var/lib/condor/log condor
E: condor non-standard-uid /var/lib/condor/spool condor
E: condor non-standard-gid /var/lib/condor/spool condor
W: condor invalid-license Condor Public License

condor-6.9.5-0.2.20070907cvs.src.rpm
W: condor invalid-license Condor Public License

condor-debuginfo-6.9.5-0.2.20070907cvs.i386.rpm
E: condor-debuginfo empty-debuginfo-package
W: condor-debuginfo invalid-license Condor Public License

condor-devel-6.9.5-0.2.20070907cvs.i386.rpm
W: condor-devel invalid-license Condor Public License
W: condor-devel unstripped-binary-or-object /usr/lib/libcondorapi.so
W: condor-devel no-soname /usr/lib/libcondorapi.so




Comment 7 Matthew Farrellee 2007-09-12 01:54:01 UTC
A new SRPM and spec (same url as before) are available:

 SRPM: http://grid.et.redhat.com/files/condor-6.9.5-0.3.20070907cvs.src.rpm

The unstripped-binary-or-object and no-soname warnings have been removed by
removing the libcondorapi.so in favor of the libcondorapi.a, which I've been
told by upstream is what people use anyway. This means the -devel package has
actually been replaced with a -static package.

After looking through the maze of pages about users and groups (including the
user registry) it appears that user creation is acceptable when accompanied by a
good reason. For this case, the condor user owns all the daemons run in the
condor system and the files under /var/lib/condor, which includes files
associated with jobs that are sent to a machine for execution. It is desirable
to have a known owner for all such files.

The permissions on /var/lib/condor/execute are intentional as it is a world
writeable directory and it is desirable to take advantage of restricted deletion
(sticky bit).

Also, the empty debuginfo package has been fixed by using unstripped binaries
for the primary package.

Comment 8 Nuno Santos 2007-09-13 22:04:41 UTC
Rebuilt in mock, here's the rpmlint output:

$ for i in `ls *.rpm`; do echo; echo $i; rpmlint $i; done

condor-6.9.5-0.3.20070907cvs.i386.rpm
E: condor non-standard-uid /var/lib/condor/execute condor
E: condor non-standard-dir-perm /var/lib/condor/execute 01777
E: condor non-standard-uid /var/lib/condor/log condor
E: condor non-standard-uid /var/lib/condor/spool condor
W: condor invalid-license Condor Public License

condor-6.9.5-0.3.20070907cvs.src.rpm
W: condor invalid-license Condor Public License

condor-debuginfo-6.9.5-0.3.20070907cvs.i386.rpm
W: condor-debuginfo invalid-license Condor Public License

condor-static-6.9.5-0.3.20070907cvs.i386.rpm
W: condor-static invalid-license Condor Public License


So everything looks good (your reasoning for the condor userid is valid, same
with the dir permissions), let's just wait for the license issue to be solved.


Comment 9 Matthew Farrellee 2008-01-23 23:08:54 UTC
The license issue has been resolved.

Spec URL: http://grid.et.redhat.com/files/condor.spec
SRPM URL: http://grid.et.redhat.com/files/condor-7.0.0-3.el5.src.rpm



Comment 10 Matthew Farrellee 2008-02-08 21:46:25 UTC
Build issues on F9 (fedora-devel) have been resolved.

Spec URL: http://grid.et.redhat.com/files/condor.spec
SRPM URL: http://grid.et.redhat.com/files/condor-7.0.0-4.el5.src.rpm


Comment 11 Nuno Santos 2008-02-08 22:57:59 UTC
Successfully built on F9:

$mock -r fedora-devel-i386.cfg condor-7.0.0-4.el5.src.rpm
init
clean
prep
This may take a while
unpack cache
setup
build
ending
done
Results and/or logs in: /var/lib/mock/fedora-development-i386/result

$ cd /var/lib/mock/fedora-development-i386/result
$ ls -alF
total 80348
drwxr-sr-x 2 nsantos mock     4096 Feb  8 17:48 ./
drwxr-sr-x 5 nsantos mock     4096 Feb  8 17:35 ../
-rw-r--r-- 1 nsantos mock  2432332 Feb  8 17:48 build.log
-rw-r--r-- 1 nsantos mock 23756936 Feb  8 17:47 condor-7.0.0-4.fc9.i386.rpm
-rw-r--r-- 1 nsantos mock 12415405 Feb  8 17:36 condor-7.0.0-4.fc9.src.rpm
-rw-r--r-- 1 nsantos mock 43146428 Feb  8 17:48
condor-debuginfo-7.0.0-4.fc9.i386.rpm
-rw-r--r-- 1 nsantos mock   342602 Feb  8 17:47 condor-static-7.0.0-4.fc9.i386.rpm
-rw-r--r-- 1 nsantos mock      165 Feb  8 17:35 mockconfig.log
-rw-r--r-- 1 nsantos mock    16530 Feb  8 17:48 root.log


Confirmation of requires/provides:

$ for i in `ls *.rpm`; do echo; echo $i; echo "Provides:" ; rpm -qp $i
--provides; echo "Requires:"; rpm -qp $i --requires; done

condor-7.0.0-4.fc9.i386.rpm
Provides:
config(condor) = 7.0.0-4.fc9
perl(Condor)  
perl(Execute) = 1.00
perl(FileLock) = 1.01
condor = 7.0.0-4.fc9
Requires:
/bin/bash  
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
/bin/sh  
/sbin/chkconfig  
/sbin/chkconfig  
/sbin/service  
/sbin/service  
/usr/bin/env  
/usr/bin/perl  
config(condor) = 7.0.0-4.fc9
gsoap  
krb5-libs  
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.3)  
libc.so.6(GLIBC_2.3.3)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libcom_err.so.2  
libcrypt.so.1  
libcrypto.so.7  
libdl.so.2  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GLIBC_2.0)  
libgsoapssl++.so.0  
libk5crypto.so.3  
libk5crypto.so.3(k5crypto_3_MIT)  
libkrb5.so.3  
libkrb5.so.3(krb5_3_MIT)  
libm.so.6  
libm.so.6(GLIBC_2.0)  
libpcre.so.0  
libpq.so.5  
libresolv.so.2  
libssl.so.7  
libstdc++.so.6  
libstdc++.so.6(CXXABI_1.3)  
libstdc++.so.6(GLIBCXX_3.4)  
mailx  
openssl  
pcre  
perl >= 0:5.006
perl >= 1:5.0
perl(Carp)  
perl(Cwd)  
perl(English)  
perl(Execute)  
perl(Exporter)  
perl(Fcntl)  
perl(File::Basename)  
perl(File::Copy)  
perl(File::Find)  
perl(File::Path)  
perl(File::Spec)  
perl(File::Spec::Functions)  
perl(File::Temp)  
perl(FileHandle)  
perl(FileLock)  
perl(FindBin)  
perl(Getopt::Long)  
perl(POSIX)  
perl(Socket)  
perl(Sys::Hostname)  
perl(Text::Wrap)  
perl(lib)  
perl(strict)  
perl(warnings)  
postgresql-libs  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
rtld(GNU_HASH)  
shadow-utils  

condor-7.0.0-4.fc9.src.rpm
Provides:
(none)Requires:
imake  
flex  
byacc  
tcsh  
pcre-devel  
postgresql-devel  
openssl-devel  
krb5-devel  
gsoap-devel  
bind-utils  
m4  
autoconf  
rpmlib(CompressedFileNames) <= 3.0.4-1

condor-debuginfo-7.0.0-4.fc9.i386.rpm
Provides:
condor-debuginfo = 7.0.0-4.fc9
Requires:
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PartialHardlinkSets) <= 4.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

condor-static-7.0.0-4.fc9.i386.rpm
Provides:
condor-static = 7.0.0-4.fc9
Requires:
condor = 7.0.0-4.fc9
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1


Rpmlint output:

condor-7.0.0-4.fc9.i386.rpm
E: condor non-standard-uid /var/lib/condor condor
E: condor non-standard-gid /var/lib/condor condor
E: condor non-standard-uid /var/lib/condor/execute condor
E: condor non-standard-gid /var/lib/condor/execute condor
E: condor non-standard-dir-perm /var/lib/condor/execute 01777
E: condor non-standard-uid /var/lib/condor/log condor
E: condor non-standard-gid /var/lib/condor/log condor
E: condor non-standard-uid /var/lib/condor/spool condor
E: condor non-standard-gid /var/lib/condor/spool condor
W: condor service-default-enabled /etc/rc.d/init.d/condor
W: condor incoherent-subsys /etc/rc.d/init.d/condor $prog
W: condor service-default-enabled /etc/rc.d/init.d/condor

condor-7.0.0-4.fc9.src.rpm

condor-debuginfo-7.0.0-4.fc9.i386.rpm

condor-static-7.0.0-4.fc9.i386.rpm



Matt: you had addressed the user and perms issues before, the service warnings
are expected, can you look into the "incoherent-subsys" warning?


Comment 12 Matthew Farrellee 2008-02-08 23:04:59 UTC
That warning appears because the condor init script actually controls a program
called "condor_master". I would like to keep the init script's name "condor" as
that is the service that is being controlled.

Comment 13 Nuno Santos 2008-02-08 23:08:42 UTC
Sounds good, thanks for clarifying.

Looks like all issues have been resolved, I'm marking this as fedora-review+

Comment 14 manuel wolfshant 2008-02-09 00:24:47 UTC
First of all. let me say, as a former LSF suer, that I am more then happy to see
this program finally arriving in our land. Kudos!

Second, a couple of comments
- please add a note before the Source0 tag, explaining that upstream explicitly
prohibits direct download, hence the missing full URL in this field.
For verification, one can provide the required personal info data at
http://parrot.cs.wisc.edu/v7.0.license.html and download the sources from
http://www.cs.wisc.edu/condor/cgi-bin/downloads/download.pl/v7.0#7.0.0-source-code
- there is no need to create a "patch" in order to add the init.d script. Just
provide it as Source1 and use it as such (not that what you have done is not
correct; it's just unnecessary complicated)
- the build log says:
checking for javac... no
configure: WARNING: javac not found
checking for jar... no
configure: WARNING: jar not found
Would condor be happier with icedtea / gcj as BR ?
-there is a "checking for zlib... no" line in the build log; would a BR
zlib-devel be nbeneficial ?
- parallel compiling seems to be disabled (and commented in the spec). Is it
still intended ?
- rpmlint says
condor.x86_64: W: service-default-enabled /etc/rc.d/init.d/condor
We usually require services to not be enabled by default


Comment 15 manuel wolfshant 2008-02-09 00:29:43 UTC
s.suer.user. !!!

Comment 16 Matthew Farrellee 2008-02-09 06:18:18 UTC
Re: no source URL, there is no URL because I process the source tarball before
including it in the SRPM. The tarball that UW distributes is 100MB+ and includes
copies of what they call "externals", such as Globus and PVM, that this package
does not use.

Yes, the init script is overly complicated, and will hopefully be part of a
future source release anyway.

Re: java & jar, if you inspect the source, you'll discover that these tests do
not actually change anything.

Re: zlib, you'll notice %configure ... --without-zlib, because the features of
Condor that require zlib are not included in this package.

Re: make -j, yes, dependencies are not setup correctly for parallel make.

Re: enabled by default, if this is a requirement, I can change the init script.

Thank you for your comments. I hope my clarifications are helpful.

Comment 17 Matthew Farrellee 2008-02-11 17:09:15 UTC
New Package CVS Request
=======================
Package Name: condor
Short Description: Batch system for High Throughput Computing
Owners: matt
Branches: 
InitialCC: 
Cvsextras Commits: Yes

Comment 18 Kevin Fenzi 2008-02-11 17:50:15 UTC
In reply to comment #16 and #14. 

Is the source that you remove from upstream Patented or Trademarked such that it
can't be shipped in Fedora? If so, please see: 
http://fedoraproject.org/wiki/Packaging/SourceURL

If it's just a case of it not being needed/used, but not prohibited code, it
would be better to simply just use the upstream source package. 

Comment 19 Kevin Fenzi 2008-02-11 18:16:03 UTC
If you can add a script and note about how you modify the source before checkin,
that would be great. 

cvs done.

Comment 20 Matthew Farrellee 2008-02-11 18:20:14 UTC
There are three issues: 1) there is source that cannot be distributed; 2) there
is about 100MB of source that can be distributed but is never used; 3) there is
no link to the source directly, it is behind a registration page

I'll add instructions for downloading the source and provide a script to strip
out portions we do not want included in the package.

Comment 21 Kevin Fenzi 2008-02-11 20:48:00 UTC
cvs was done here... resetting fedora-cvs flag.

Comment 22 Michael Schwendt 2009-01-16 10:36:54 UTC
> Requires: pcre
> Requires: postgresql-libs
> Requires: openssl
> Requires: krb5-libs
> Requires: gsoap

All these ought to be removed in favour of the automatic dependencies on the library SONAMEs. It's not very obvious, but the review guidelines mention it in the packaging guidelines:

    https://fedoraproject.org/wiki/Packaging/Guidelines#Requires

Comment 23 Matthew Farrellee 2009-02-23 22:31:44 UTC
I've pruned some of the Requires for 7.2.1-1. Doing so assumes that all the dependencies do proper SO versioning, which may be a dangerous assumption.

Please file new bugs instead of commenting on closed ones.

Comment 24 Michael Schwendt 2009-02-24 09:16:58 UTC
Your explicit Requires are version-less. They are no better than the automatic SONAME deps. They are fragile even, since they would break if a library were moved to another package or if a package were renamed.

The point of adding the comment here is to make the reviewer aware of this, too, as this ought to have caught during the review.

> Doing so assumes that all the dependencies do proper SO versioning,
> which may be a dangerous assumption.

It doesn't take much to verify that the SONAMEs include major versions. Multiple libraries using the same SONAME would be a bad conflict in the package collection [unless it's a special-case of alternative installations that is being treated appropriately].