Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 702328 - dev-python/numpy[lapack]: error: second element of each tuple in 'libraries' must be a dictionary (build info)
Summary: dev-python/numpy[lapack]: error: second element of each tuple in 'libraries' ...
Status: RESOLVED DUPLICATE of bug 700848
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Science Related Packages
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-12-09 10:03 UTC by gerion
Modified: 2019-12-30 17:26 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
environment (environment,137.58 KB, text/plain)
2019-12-09 10:06 UTC, gerion
Details

Note You need to log in before you can comment on or make changes to this bug.
Description gerion 2019-12-09 10:03:37 UTC
Numpy fails to build on prefix.

Build output:
```
>>> Emerging (1 of 1) dev-python/numpy-1.17.4::gentoo
 * numpy-1.17.4.zip BLAKE2B SHA512 size ;-) ...                                                                                                         [ ok ]
 * Using following Fortran compiler:
 *   F77: x86_64-pc-linux-gnu-gfortran
 *   FC:  x86_64-pc-linux-gnu-gfortran
>>> Unpacking source...
>>> Unpacking numpy-1.17.4.zip to /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work
>>> Source unpacked in /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work
>>> Preparing source in /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4 ...
 * Applying numpy-1.17.4-no-hardcode-blas.patch ...
patching file numpy/distutils/system_info.py                                                                                                            [ ok ]
>>> Source prepared.
>>> Configuring source in /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4 ...
>>> Source configured.
>>> Compiling source in /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4 ...
 * python3_6: running distutils-r1_run_phase python_compile
python3.6 setup.py build -j 1 config_fc --noopt --noarch --fcompiler=gnu95
blas_opt_info:
system_info:
  NOT AVAILABLE

accelerate_info:
  NOT AVAILABLE

blas_info:
customize UnixCCompiler
customize UnixCCompiler
C compiler: x86_64-pc-linux-gnu-gcc -O2 -pipe -O2 -pipe -fomit-frame-pointer -O2 -pipe -O2 -pipe -fomit-frame-pointer -fno-strict-aliasing -fPIC

creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp
creating /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y
compile options: '-I -I/srv/scratch/entrup/gentoo/usr/include -c'
x86_64-pc-linux-gnu-gcc: /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/source.c
x86_64-pc-linux-gnu-gcc -O2 -pipe -O2 -pipe -fomit-frame-pointer /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/source.o -L/srv/scratch/entrup/gentoo/usr/lib64 -lblas -lcblas -o /srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/tmp34092y0y/a.out
  FOUND:
    libraries = [['blas', 'cblas']]
    library_dirs = ['/srv/scratch/entrup/gentoo/usr/lib64']
    include_dirs = ['', '/srv/scratch/entrup/gentoo/usr/include']
    language = c
    define_macros = [('HAVE_CBLAS', None)]

  FOUND:
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    libraries = [['blas', 'cblas']]
    library_dirs = ['/srv/scratch/entrup/gentoo/usr/lib64']
    include_dirs = ['', '/srv/scratch/entrup/gentoo/usr/include']
    language = c

lapack_opt_info:
flame_info:
customize UnixCCompiler
  libraries flame not found in ['/srv/scratch/entrup/gentoo/usr/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/']
  NOT AVAILABLE

lapack_info:
customize UnixCCompiler
  FOUND:
    libraries = ['lapack']
    library_dirs = ['/srv/scratch/entrup/gentoo/usr/lib64']
    language = f77

  FOUND:
    libraries = ['lapack', ['blas', 'cblas']]
    library_dirs = ['/srv/scratch/entrup/gentoo/usr/lib64']
    language = c
    define_macros = [('NO_ATLAS_INFO', 1), ('HAVE_CBLAS', None)]
    include_dirs = ['', '/srv/scratch/entrup/gentoo/usr/include']

running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
Running from numpy source directory.
/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4/numpy/distutils/system_info.py:669: UserWarning: 
    Optimized (vendor) Blas libraries are not found.
    Falls back to netlib Blas library which has worse performance.
    A better performance should be easily gained by switching
    Blas library.
  self.calc_info()
/srv/scratch/entrup/gentoo/usr/lib64/python3.6/distutils/dist.py:261: UserWarning: Unknown distribution option: 'define_macros'
  warnings.warn(msg)
error: second element of each tuple in 'libraries' must be a dictionary (build info)
 * ERROR: dev-python/numpy-1.17.4::gentoo failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  125:  Called src_compile
 *   environment, line 3502:  Called distutils-r1_src_compile
 *   environment, line 1227:  Called _distutils-r1_run_foreach_impl 'python_compile'
 *   environment, line  456:  Called python_foreach_impl 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2917:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2223:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2221:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_compile'
 *   environment, line  850:  Called distutils-r1_run_phase 'python_compile'
 *   environment, line 1220:  Called python_compile
 *   environment, line 2522:  Called distutils-r1_python_compile 'config_fc' '--noopt' '--noarch' '--fcompiler=gnu95'
 *   environment, line 1088:  Called esetup.py 'build' '-j' '1' 'config_fc' '--noopt' '--noarch' '--fcompiler=gnu95'
 *   environment, line 1626:  Called die
 * The specific snippet of code:
 *       "${@}" || die "${die_args[@]}";
 * 
 * If you need support, post the output of `emerge --info '=dev-python/numpy-1.17.4::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/numpy-1.17.4::gentoo'`.
 * The complete build log is located at '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/build.log'.
 * The ebuild environment file is located at '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/environment'.
 * Working directory: '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4'
 * S: '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4'

>>> Failed to emerge dev-python/numpy-1.17.4, Log file:

>>>  '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/build.log'

 * Messages for package dev-python/numpy-1.17.4:

 * ERROR: dev-python/numpy-1.17.4::gentoo failed (compile phase):
 *   (no error message)
 * 
 * Call stack:
 *     ebuild.sh, line  125:  Called src_compile
 *   environment, line 3502:  Called distutils-r1_src_compile
 *   environment, line 1227:  Called _distutils-r1_run_foreach_impl 'python_compile'
 *   environment, line  456:  Called python_foreach_impl 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2917:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2223:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_compile'
 *   environment, line 2221:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_compile'
 *   environment, line  850:  Called distutils-r1_run_phase 'python_compile'
 *   environment, line 1220:  Called python_compile
 *   environment, line 2522:  Called distutils-r1_python_compile 'config_fc' '--noopt' '--noarch' '--fcompiler=gnu95'
 *   environment, line 1088:  Called esetup.py 'build' '-j' '1' 'config_fc' '--noopt' '--noarch' '--fcompiler=gnu95'
 *   environment, line 1626:  Called die
 * The specific snippet of code:
 *       "${@}" || die "${die_args[@]}";
 * 
 * If you need support, post the output of `emerge --info '=dev-python/numpy-1.17.4::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-python/numpy-1.17.4::gentoo'`.
 * The complete build log is located at '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/build.log'.
 * The ebuild environment file is located at '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/temp/environment'.
 * Working directory: '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4'
 * S: '/srv/scratch/entrup/gentoo/var/tmp/portage/dev-python/numpy-1.17.4/work/numpy-1.17.4'
```

Reproducible: Always

Steps to Reproduce:
1. emerge numpy[lapack]
Comment 1 gerion 2019-12-09 10:06:08 UTC
Created attachment 598932 [details]
environment
Comment 2 gerion 2019-12-09 15:45:52 UTC
Is not a problem of prefix. I have the same error on a local gentoo machine.
Comment 3 Livid 2019-12-14 13:08:47 UTC
Also experiencing this.

Note that numpy-1.16.5 builds fine, but numpy-1.17.4 does not.
Comment 4 Roman Beránek 2019-12-16 22:26:19 UTC
Not sure how it affects other configurations but reverting a hunk from numpy-1.17.4-no-hardcode-blas.patch by this patch worked for me.

diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py
index 09db18e..c6370be 100644
--- a/numpy/distutils/system_info.py
+++ b/numpy/distutils/system_info.py
@@ -1818,7 +1818,7 @@ class blas_info(system_info):
             lib = self.get_cblas_libs(info)
             if lib is not None:
                 info['language'] = 'c'
-                info['libraries'] = [lib]
+                info['libraries'] = lib
                 info['define_macros'] = [('HAVE_CBLAS', None)]
         self.set_info(**info)
Comment 5 dave knippers 2019-12-20 01:25:24 UTC
+1, also experiencing this.
Comment 6 Boris Bigott 2019-12-26 16:31:25 UTC
Same problem here and I need the lapack use flag to install scipy.
Comment 7 jon R-B 2019-12-27 23:33:12 UTC
Same problem here.   

I edited the file numpy-1.17.4-no-hardcode-blas.patch and just deleted the last entry:

@@ -1842,7 +1818,7 @@ class blas_info(system_info):
             lib = self.get_cblas_libs(info)
             if lib is not None:
                 info['language'] = 'c'
-                info['libraries'] = lib
+                info['libraries'] = [lib]
                 info['define_macros'] = [('HAVE_CBLAS', None)]
         self.set_info(**info)



as this is essentially what https://bugs.gentoo.org/702328#c4 was undoing.
Comment 8 jon R-B 2019-12-30 17:10:19 UTC
fixed via https://bugs.gentoo.org/700848 (same issue)
Comment 9 David Seifert gentoo-dev 2019-12-30 17:26:00 UTC

*** This bug has been marked as a duplicate of bug 700848 ***