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
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
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
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 ....
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.
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
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.
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.
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.
*** Bug 530176 has been marked as a duplicate of this bug. ***
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
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?
> 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).
> 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.
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.
Fixed in rawhide and F-12 by using alternatives. Will push to F-11 later.
Works in F12.