Bug 508565 - atlas-sse*-devel and atlas-devel multilib conflict
atlas-sse*-devel and atlas-devel multilib conflict
Status: CLOSED CURRENTRELEASE
Product: Fedora
Classification: Fedora
Component: atlas (Show other bugs)
11
All Linux
low Severity medium
: ---
: ---
Assigned To: Deji Akingunola
Fedora Extras Quality Assurance
:
: 530176 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2009-06-28 12:12 EDT by Philippe Troin
Modified: 2010-02-13 18:35 EST (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-02-13 18:35:59 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


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

  None (edit)
Description Philippe Troin 2009-06-28 12:12:12 EDT
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 10:26:21 EDT
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 00:56:21 EDT
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 11:55:16 EDT
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 16:28:27 EDT
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 09:09:17 EDT
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 10:08:48 EDT
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 11:27:40 EDT
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 12:41:56 EDT
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 17:30:30 EDT
*** Bug 530176 has been marked as a duplicate of this bug. ***
Comment 10 Petr Lautrbach 2009-10-22 12:51:45 EDT
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 13:22:49 EDT
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 13:25:43 EDT
> 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 11:04:34 EDT
> 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 11:15:58 EDT
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-25 20:27:30 EDT
Fixed in rawhide and F-12 by using alternatives. Will push to F-11 later.
Comment 16 Philippe Troin 2010-02-13 18:35:59 EST
Works in F12.

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