Bug 508565 - atlas-sse*-devel and atlas-devel multilib conflict
Summary: atlas-sse*-devel and atlas-devel multilib conflict
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: atlas
Version: 11
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Deji Akingunola
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 530176 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-06-28 16:12 UTC by Philippe Troin
Modified: 2010-02-13 23:35 UTC (History)
4 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2010-02-13 23:35:59 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
create atlas-headers subpackage (4.89 KB, patch)
2009-10-21 13:09 UTC, Petr Lautrbach
no flags Details | Diff
create -headers subpackage and handle /usr/include/atlas by alternatives (7.92 KB, patch)
2009-10-22 16:51 UTC, Petr Lautrbach
no flags Details | Diff
use alternatives in -devel packages for headers (6.96 KB, patch)
2009-10-23 15:15 UTC, Petr Lautrbach
no flags Details | Diff

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.


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