Bug 508565

Summary: atlas-sse*-devel and atlas-devel multilib conflict
Product: [Fedora] Fedora Reporter: Philippe Troin <phil>
Component: atlasAssignee: Deji Akingunola <dakingun>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: dakingun, orion, plautrba, radford
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-02-13 23:35:59 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:
Attachments:
Description Flags
create atlas-headers subpackage
none
create -headers subpackage and handle /usr/include/atlas by alternatives
none
use alternatives in -devel packages for headers none

Description Philippe Troin 2009-06-28 16:12:12 UTC
Description of problem:

There are nultilib conflict between atlas-devel.x86_64 and atlas-sse*-devel.

yum install atlas-devel atlas-sse-devel

yields


Transaction Check Error:
  file /usr/include/atlas/atlas_buildinfo.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cNCmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cacheedge.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cmv.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cmvS.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cmvT.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_cr1.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_csysinfo.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dNCmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dmv.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dmvN.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dmvS.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dmvT.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dr1.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dsysinfo.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_dtrsmXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_pthreads.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_sNCmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_smv.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_smvS.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_smvT.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_sr1.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_ssysinfo.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_strsmXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_trsmNB.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zNCmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zmv.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zmvN.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zmvS.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zmvT.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zr1.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/atlas_zsysinfo.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/cXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/cmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/dXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/dmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/sXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/smm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/zXover.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64
  file /usr/include/atlas/zmm.h from install of atlas-sse-devel-3.8.3-4.fc11.i586 conflicts with file from package atlas-devel-3.8.3-4.fc11.x86_64

Similar for atlas-devel and atlas-sse{2,3}-devel

Version-Release number of selected component (if applicable):
atlas-sse-devel-3.8.3-4.fc11

Comment 1 Fedora Update System 2009-08-05 14:26:21 UTC
atlas-3.8.3-7.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/atlas-3.8.3-7.fc11

Comment 2 Fedora Update System 2009-08-07 04:56:21 UTC
atlas-3.8.3-7.fc11 has been pushed to the Fedora 11 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update atlas'.  You can provide feedback for this update here: http://admin.fedoraproject.org/updates/F11/FEDORA-2009-8318

Comment 3 Orion Poplawski 2009-09-29 15:55:16 UTC
Error: Transaction Check Error:
  file /usr/include/atlas/atlas_buildinfo.h from install of atlas-sse2-devel-3.8.3-8.fc11.i586 conflicts with file from package atlas-header-3.8.3-7.fc11.noarch
  file /usr/include/atlas/atlas_cNCmm.h from install of atlas-sse2-devel-3.8.3-8.fc11.i586 conflicts with file from 
....

Comment 4 Deji Akingunola 2009-09-29 20:28:27 UTC
atlas*-3.8.3-7 (which never left the testing repo) and the atlas-header subpackage is a failed attempt at resolving the multi-lib conflict. Unfortunately I didn't take care of the Obsoletes properly in atlas*-3.8.3-8; will create atlas*-3.8.3-9 to correct that.

Comment 5 Petr Lautrbach 2009-10-21 13:09:17 UTC
Created attachment 365503 [details]
create atlas-headers subpackage

this patch re creates atlas-headers subpackage to avoid multilib conflict on /usr/include/atlas directory

all -devel packages require atlas-headers in same version.
atlas-headers conflicts with all atlas packages < %{version}-%{release} to force update all packages with -headers

Comment 6 Deji Akingunola 2009-10-21 14:08:48 UTC
the header files under /usr/include/atlas are very arch dependent; that atlas-headers subpackage wont work as is. I'm thinking of other ways to get around the muli-lib conflict.

Comment 7 Petr Lautrbach 2009-10-21 15:27:40 UTC
Are header files in /usr/include/atlas/* used for anything else than for build libraries? 

It seems that only /usr/include/cblas.h and /usr/include/clapack.h are needed for development. Then these two can stay in atlas-headers.noarch and other could be dropped.

Comment 8 Deji Akingunola 2009-10-21 16:41:56 UTC
Of course cblas.h and clapack.h are the mostly used atlas headers, but how do you know someone out there is not needing or using the headers in /usr/include/atlas/ . Upstream has been supplying those headers as part of the installation process for a long time, I don't think it is a good idea to drop them now.

Comment 9 Deji Akingunola 2009-10-21 21:30:30 UTC
*** Bug 530176 has been marked as a duplicate of this bug. ***

Comment 10 Petr Lautrbach 2009-10-22 16:51:45 UTC
Created attachment 365756 [details]
create -headers subpackage and handle /usr/include/atlas by alternatives

what about using alternatives?

atlas-headers.noarch contains only /usr/include/cblas.h and /usr/include/clapack.h

other /usr/include/atlas/* files are located in /usr/include/atlas{-base,-3dnow,-sse,-sse2,-sse3} directories in atlas{-,-3dnow,-sse,-sse2,-sse3}-devel packages

/usr/include/atlas in handled by alternatives "atlas-header"

$ alternatives --display atlas-headers
atlas-headers - status is manual.
link currently points to /usr/include/atlas-i386-sse3/
/usr/include/atlas-x86_64-base/ - priority 10
/usr/include/atlas-i386-sse/ - priority 10
/usr/include/atlas-i386-3dnow/ - priority 10
/usr/include/atlas-i386-base/ - priority 10
/usr/include/atlas-i386-sse2/ - priority 10
/usr/include/atlas-i386-sse3/ - priority 10
Current `best' version is /usr/include/atlas-x86_64-base/.


link can be switched by command:
$ alternatives --set atlas-headers /usr/include/atlas-x86_64-base/

or

$ alternatives --config atlas-headers


this change need to be mentioned in README.fedora, this patch doesn't contain it

Comment 11 Jim Radford 2009-10-22 17:22:49 UTC
I think alternatives is a great way to go.  It allows me to be able to go directly to the appropriate include directory so I can cross compile, but makes the default sane.

It might be nice to have non-equal priorities, so that x86_64 gets selected by default when you are on x86_64.

I think you can just put /usr/include/cblas.h into all the -devel rpms.  Because it will have the same md5 (and modification time) there should be no conflicts.

Because of the separate directories you could then put all the i386 (now i586?) headers in a single -devel.i586 rpm right?

Comment 12 Jim Radford 2009-10-22 17:25:43 UTC
> Because of the separate directories you could then put all the i386 (now i586?)
> headers in a single -devel.i586 rpm right?

Putting them all in the same -devel.i586 rpm would also allow the decision about which to use to be a ./configure decision rather than an admin/rpm one which I think it where it should be (letting alternatives choose a default).

Comment 13 Petr Lautrbach 2009-10-23 15:04:34 UTC
> I think you can just put /usr/include/cblas.h into all the -devel rpms. 
> Because it will have the same md5 (and modification time) there should be no
> conflicts.

You're right, there's no need to have -headers package.

(In reply to comment #12)
> > Because of the separate directories you could then put all the i386 (now i586?)
> > headers in a single -devel.i586 rpm right?
> 
> Putting them all in the same -devel.i586 rpm would also allow the decision
> about which to use to be a ./configure decision rather than an admin/rpm one
> which I think it where it should be (letting alternatives choose a default).  

If you need that you can have all atlas-\*-devel installed. I don't see much advantage of using optimized headers without optimized libraries and on other hand you won't have installed all that optimized headers if you need only one optimization.

Comment 14 Petr Lautrbach 2009-10-23 15:15:58 UTC
Created attachment 365859 [details]
use alternatives in -devel packages for headers

%{_includedir}/*.h are back in -devel packages

no -headers package

/usr/include/atlas-x86_64-base has priority 30
/usr/include/atlas-i386-base has 20 as it's able to run on all processors

I'm not sure about this system of priorities, comments are welcomed.

Comment 15 Deji Akingunola 2009-10-26 00:27:30 UTC
Fixed in rawhide and F-12 by using alternatives. Will push to F-11 later.

Comment 16 Philippe Troin 2010-02-13 23:35:59 UTC
Works in F12.