Bug 1019719

Summary: numpy.distutils.system_info.get_info broken due to new ATLAS library layout
Product: [Fedora] Fedora Reporter: Sergio Pascual <sergio.pasra>
Component: numpyAssignee: Orion Poplawski <orion>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 22CC: charlesr.harris, gwync, jspaleta, orion, rdieter, sochotni, tomspur, ttomecek
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://github.com/numpy/numpy/issues/3774
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-07-19 10:29:43 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Sergio Pascual 2013-10-16 09:39:04 UTC
ATLAS has changed the number and names of libraries it provides in its last version. 

https://lists.fedoraproject.org/pipermail/devel/2013-September/189467.html

It this new layout, numpy.distutils.system_info.get_info does not detect ATLAS anymore.


In Rawhide VM

$ rpm -q atlas-devel
atlas-devel-3.10.1-6.fc21.x86_64
$ python
Python 2.7.5 (default, Oct  8 2013, 12:16:00) 
[GCC 4.8.1 20130920 (Red Hat 4.8.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information. 
>>> from numpy.distutils.system_info import get_info
>>> get_info('atlas', 0)
{}

In my F19 system
$ rpm -q atlas-devel
atlas-devel-3.8.4-8.fc19.x86_64
$ python
Python 2.7.5 (default, Oct  8 2013, 12:16:00) 
[GCC 4.8.1 20130920 (Red Hat 4.8.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information. 
>>> from numpy.distutils.system_info import get_info
>>> get_info('atlas', 0)
Found executable /usr/bin/gfortran
ATLAS version 3.8.4 built by mockbuild on Sun Jan 27 19:59:13 UTC 2013:
   UNAME    : Linux buildvm-18.phx2.fedoraproject.org 2.6.32-279.19.1.el6.x86_64 #1 SMP Sat Nov 24 14:35:28 EST 2012 x86_64 x86_64 x86_64 GNU/Linux
   INSTFLG  : -1 0 -a 1
   ARCHDEFS : -DATL_OS_Linux -DATL_ARCH_PM -DATL_CPUMHZ=2533 -DATL_SSE2 -DATL_SSE1 -DATL_USE64BITS -DATL_GAS_x8664
   F2CDEFS  : -DAdd_ -DF77_INTEGER=int -DStringSunStyle
   CACHEEDGE: 4194304
   F77      : gfortran, version GNU Fortran (GCC) 4.8.0 20130124 (Red Hat 4.8.0-0.6)
   F77FLAGS : -O -g -Wa,--noexecstack -fPIC -m64
   SMC      : gcc, version gcc (GCC) 4.8.0 20130124 (Red Hat 4.8.0-0.6)
   SMCFLAGS : -O -fomit-frame-pointer -g -Wa,--noexecstack -fPIC -m64
   SKC      : gcc, version gcc (GCC) 4.8.0 20130124 (Red Hat 4.8.0-0.6)
   SKCFLAGS : -O -fomit-frame-pointer -g -Wa,--noexecstack -fPIC -m64
{'libraries': ['lapack', 'f77blas', 'cblas', 'atlas'], 'library_dirs': ['/usr/lib64/atlas'], 'define_macros': [('ATLAS_INFO', '"\\"3.8.4\\""')], 'language': 'f77', 'include_dirs': ['/usr/include']}
>>> 

There is some debate about the packaging of ATLAS in this ticket in the FPC site

https://fedorahosted.org/fpc/ticket/352

so perhaps is better to wait until there's an "official decision" to fix this.

Comment 1 Orion Poplawski 2013-10-16 15:26:57 UTC
I'm now getting:

Python 2.7.5 (default, Oct  8 2013, 12:16:00)
[GCC 4.8.1 20130920 (Red Hat 4.8.1-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from numpy.distutils.system_info import get_info
>>> get_info('atlas', 0)
/usr/lib64/python2.7/site-packages/numpy/distutils/system_info.py:1062: UserWarning:
*********************************************************************
    Could not find lapack library within the ATLAS installation.
*********************************************************************

  warnings.warn(message)
{'libraries': ['satlas'], 'library_dirs': ['/usr/lib64/atlas'], 'define_macros': [('ATLAS_WITHOUT_LAPACK', None)], 'language': 'c', 'include_dirs': ['/usr/include']}

I've made a note in the upstream bug report.

Comment 2 charles harris 2014-12-10 20:50:42 UTC
You can use site.cfg to work around that.

[DEFAULT]
library_dirs = /usr/lib64
include_dirs = /usr/include

# Atlas
# -----
# Atlas is an open source optimized implementation of the BLAS and Lapack
# routines. Numpy will try to build against Atlas by default when available in
# the system library dirs. To build numpy against a custom installation of
# Atlas you can add an explicit section such as the following. Here we assume
# that Atlas was configured with ``prefix=/opt/atlas``.
#
[atlas]
library_dirs = /usr/lib64/atlas
include_dirs = /usr/include
atlas_libs = tatlas
lapack_libs = tatlas

Comment 3 charles harris 2014-12-10 20:51:39 UTC
This bug report should probably be directed to numpy.

Comment 4 Jaroslav Reznik 2015-03-03 16:56:13 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle.
Changing version to '22'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22

Comment 5 Fedora End Of Life 2016-07-19 10:29:43 UTC
Fedora 22 changed to end-of-life (EOL) status on 2016-07-19. Fedora 22 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.