[Numpy-discussion] Debian/Ubuntu patch help (was: ANN: NumPy 1.6.2 release candidate 1)

Ondřej Čertík ondrej.certik@gmail....
Thu Aug 30 20:03:12 CDT 2012


On Tue, May 15, 2012 at 11:52 AM, Ralf Gommers
<ralf.gommers@googlemail.com> wrote:
>
>
> On Sat, May 12, 2012 at 9:17 PM, Ralf Gommers <ralf.gommers@googlemail.com>
> wrote:
>>
>>
>>
>> On Sat, May 12, 2012 at 6:22 PM, Sandro Tosi <matrixhasu@gmail.com> wrote:
>>>
>>> Hello,
>>>
>>> On Sat, May 5, 2012 at 8:15 PM, Ralf Gommers
>>> <ralf.gommers@googlemail.com> wrote:
>>> > Hi,
>>> >
>>> > I'm pleased to announce the availability of the first release candidate
>>> > of
>>> > NumPy 1.6.2.  This is a maintenance release. Due to the delay of the
>>> > NumPy
>>> > 1.7.0, this release contains far more fixes than a regular NumPy bugfix
>>> > release.  It also includes a number of documentation and build
>>> > improvements.
>>> >
>>> > Sources and binary installers can be found at
>>> > https://sourceforge.net/projects/numpy/files/NumPy/1.6.2rc1/
>>> >
>>> > Please test this release and report any issues on the numpy-discussion
>>> > mailing list.
>>> ...
>>> > BLD:   add support for the new X11 directory structure on Ubuntu & co.
>>>
>>> We've just discovered that this fix is not enough. Actually the new
>>> directories are due to the "multi-arch" feature of Debian systems,
>>> that allows to install libraries from other (foreign) architectures
>>> than the one the machine is (the classic example, i386 libraries on a
>>> amd64 host).
>>>
>>> the fix included to look up in additional directories is currently
>>> only for X11, while for example Debian has fftw3 that's
>>> multi-arch-ified and thus will fail to be detected.
>>>
>>> Could this fix be extended to include all other things that are
>>> checked? for reference the bug in Debian is [1]; there was also a
>>> patch[2] in previous versions, that was using gcc to get the
>>> multi-arch paths - you might use as a reference, or to implement
>>> something debian-systems-specific.
>>>
>>> [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=640940
>>> [2]
>>> http://anonscm.debian.org/viewvc/python-modules/packages/numpy/trunk/debian/patches/50_search-multiarch-paths.patch?view=markup&pathrev=21168
>>>
>>> It would be awesome is such support would end up in 1.6.2 .
>>
>>
>> Hardcoding some more paths to check in distutils/system_info.py should be
>> OK, also for 1.6.2 (will require a new RC).
>>
>> The --print-multiarch thing looks very questionable. As far as I can tell,
>> it's a Debian specific gcc patch, only available in gcc 4.6 and up. Ubuntu
>> before 11.10 release also doesn't have it. Therefore I don't think use of
>> --print-multiarch is appropriate for numpy for now, and certainly not a
>> change I'd like to make to distutils right before a release.
>>
>> If anyone with access to a Debian/Ubuntu system could come up with a patch
>> which adds the right paths to system_info.py, that would be great.
>
>
> Hi, if there's anyone wants to have a look at the above issue this week,
> that would be great.
>
> If there's a patch by this weekend I can create a second RC, so we can still
> have the final release before the end of this month (needed for Debian
> freeze). Otherwise a second RC won't be needed.

For NumPy 1.7.0, the issue is fixed for X11 by the following lines:

    if os.path.exists('/usr/lib/X11'):
        globbed_x11_dir = glob('/usr/lib/*/libX11.so')
        if globbed_x11_dir:
            x11_so_dir = os.path.split(globbed_x11_dir[0])[0]
            default_x11_lib_dirs.extend([x11_so_dir, '/usr/lib/X11'])
            default_x11_include_dirs.extend(['/usr/lib/X11/include',
                                             '/usr/include/X11'])


in numpy/distutils/system_info.py, there is still an issue of
supporting Debian multi-arch fully:

http://projects.scipy.org/numpy/ticket/2150

However, I don't understand what exactly it means. Ralf, would would
be a canonical example to fix?
If I use for example x11, I get:


In [1]: from numpy.distutils.system_info import get_info

In [2]: get_info("x11", 2)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11R6/lib64 is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11R6/lib is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11/lib64 is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11/lib is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/lib64 is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11R6/include is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/X11/include is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
/home/ondrej/repos/numpy/py27/lib/python2.7/site-packages/numpy/distutils/system_info.py:551:
UserWarning: Specified path /usr/lib/X11/include is invalid.
  warnings.warn('Specified path %s is invalid.' % d)
Out[2]:
{'include_dirs': ['/usr/include'],
 'libraries': ['X11'],
 'library_dirs': ['/usr/lib/x86_64-linux-gnu']}



I am using Ubuntu 12.04. Is the task to remove the warnings, or is the
task to fix it for some other package from the get_info() list (which
one)?

Thanks,
Ondrej


More information about the NumPy-Discussion mailing list