Your message dated Mon, 16 Jun 2014 22:06:24 +0000
with message-id <[email protected]>
and subject line Bug#653402: fixed in pyenchant 1.6.6-1
has caused the Debian Bug report #653402,
regarding python-enchant: find_library should not be used
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
653402: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653402
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
package: python-enchant
severity: important
It was recently discovered that it is not possible to import
python-enchant in python2.6 on armhf unless libenchant-dev is installed.
Loic minor identified the issue as being the use of find_library
Essentially ctypes' "find_library" is very wrong and should not be used
(it tries to emulate ld.so's search behavior but does so with many
scary shortcuts...). find_library breaks on armhf because its ldconfig
output parsing isn't ready for the ",hard-float" suffix on libraries in
the cache.
Not only is find_library poorly implemented, but it also encourages
upstreams to try loading *any* SONAME from a library (in fact the first
one which comes in the ldconfig output), and with *whatever*
architecture ABI. So if you have the 32-bits libenchant12, 32-bits
libenchant13, 64-bits libenchant12 and 64-bits libenchant13, and you
find_library("enchant"), any of these libraries might be loaded
depending on the ldconfig output ordering...
It seems the armhf issue has now been papered over in python2.7 but not in
python2.6. However as I understand it the papering over may well not work
in a multiarch environment as find_library may still find a library of
the wrong
abi (either wrong soversion or wrong architecture) . Therefore packages
should
still stop using it
I asked loic what should be done instead of using find_library and he
had the
following reply
The code using find_library is in
enchant/_enchant.py, _e_path_possibilities() yields some pathnames
where the library should be loaded from:
def _e_path_possibilities():
"""Generator yielding possible locations of the enchant library."""
yield os.environ.get("PYENCHANT_LIBRARY_PATH")
yield find_library("enchant")
yield find_library("libenchant")
yield find_library("libenchant-1")
if sys.platform == 'darwin':
# enchant lib installed by macports
yield "/opt/local/lib/libenchant.dylib"
as you can see, this doesn't encode the SONAME anywhere, so that if the
ABI / SONAME change and the old and new ones are present, a random one
will be chosen. Ideally, the code would gain awareness of the
ABIs / SONAMEs that pyenchant actually works with and do something
like:
for soname in ('libenchant.so.1', 'libenchant.so.0'):
try:
e = cdll.LoadLibrary(soname)
except OSError:
pass
if e:
break
this could be used by default for all unixish systems, but I guess
upstream would still want PYENCHANT_LIBRARY_PATH to be preferred in
some way.
(The above snippet would be used somewhere near line 119 "# Not found
yet, search various standard system locations." in enchant/_enchant.py
and would try libenchant.so.1 and fall back to libenchant.so.0).
For detailed discussions please see the thread on
debian-arm/debian-python at
http://lists.debian.org/debian-arm/2011/12/msg00113.html
--- End Message ---
--- Begin Message ---
Source: pyenchant
Source-Version: 1.6.6-1
We believe that the bug you reported is fixed in the latest version of
pyenchant, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Piotr Ożarowski <[email protected]> (supplier of updated pyenchant package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 1.8
Date: Mon, 16 Jun 2014 23:25:57 +0200
Source: pyenchant
Binary: python-enchant python3-enchant
Architecture: source all
Version: 1.6.6-1
Distribution: unstable
Urgency: medium
Maintainer: Piotr Ożarowski <[email protected]>
Changed-By: Piotr Ożarowski <[email protected]>
Description:
python-enchant - spellchecking library for Python
python3-enchant - spellchecking library for Python 3
Closes: 653402
Changes:
pyenchant (1.6.6-1) unstable; urgency=medium
.
[ Jakub Wilk ]
* Use canonical URIs for Vcs-* fields.
.
[ Piotr Ożarowski ]
* New upstream release
- prioritizes enchant libraries with tested SONAME (closes: 653402)
- disable_ez_setup patch no longer needed (ez_setup is now imported only
if setuptools is missing)
* Add dh-python to Build-Depends
* Homepage updated
* Standards-Version bumped to 3.9.5 (no changes needed)
Checksums-Sha1:
4eb1c37cbc1526217997f4c26943ca9e4549f6bf 2182 pyenchant_1.6.6-1.dsc
353b0b06cb29deef46298337afdd96ec71f01625 64010 pyenchant_1.6.6.orig.tar.gz
a2acdcbd6a898674cf72d91af65edf5a89c75af2 4160 pyenchant_1.6.6-1.debian.tar.xz
0c0268563d59d714b7168615618c0778d661b00e 44806 python-enchant_1.6.6-1_all.deb
07c74672ceb9ac9d67aa8d0e20be55b9024dbc32 43616 python3-enchant_1.6.6-1_all.deb
Checksums-Sha256:
061e7190347d58ca350f53044fadc1fb7cbf3c354bdc8e544d3986833f8a30ac 2182
pyenchant_1.6.6-1.dsc
25c9d2667d512f8fc4410465fdd2e868377ca07eb3d56e2b6e534a86281d64d3 64010
pyenchant_1.6.6.orig.tar.gz
3804a5eb094e8bd88cfc4ad35b7284b51ac5bbc58cd0ef6b7e212b8792617006 4160
pyenchant_1.6.6-1.debian.tar.xz
262fc0381585b77fd60eeda99762111942736a830c0fa08396d50fae48c44292 44806
python-enchant_1.6.6-1_all.deb
2fc78212dd3e4b2c20f3422db58b03cb440dd51fadc194da8453c110fd430f39 43616
python3-enchant_1.6.6-1_all.deb
Files:
1f59a0ad61d837ca2f388eb7c51ed1c3 44806 python optional
python-enchant_1.6.6-1_all.deb
4c213cdb4a68e6754bff67e22e7dfc41 43616 python optional
python3-enchant_1.6.6-1_all.deb
2f4b3eed08bbb22ea17e1f5ef5d20e36 2182 python optional pyenchant_1.6.6-1.dsc
9f5acfd87d04432bf8df5f9710a17358 64010 python optional
pyenchant_1.6.6.orig.tar.gz
809c4748117db9eacfe23b4f29d6055b 4160 python optional
pyenchant_1.6.6-1.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAEBCgAGBQJTn2UtAAoJEK728aKnRXZFiwUQANNtMo3Xem2cvH3XGNJHIZ4W
tX3yHDNlxT06ssva+ouvJHdFlRrExPUooztFjosTS461NihnTXSrCJxeKlmWjQzu
8j6n++m0DgVtmJ7VVeQRUtWqgPIRpGxG4stq4SQF9rQ7HcaLI4/F3Hsu6ilApEAV
VtWxo67nQJ0ctPWSb5+YQ4o08wv4cWV5xPyVhk71dNQSsIBw4MkR3xHDhC1r6AD/
sG0pYP0KQKJdVFqbU1HLFK/ebpSeZ7nfhyMzmC+09BVezQScosB7iyw33oUjxD/+
CUW3t7tG0rypkrE04A1bj12nsVBHKSSSb72PB10kQC/MRx1Q1WhyQ1lwljIH/6hR
YGsPqCp79ek97nGvKvBdlDy0WATAVqAMR/s4kuEni4RbagFkaOI4wxTHNxxmv2bX
xl509pKLdWhfb4cvR45A26d1/gRtV6mnSjZ3xcg89tzUxuLIwB0Gz+3PpS/3bdVZ
hveI4oCkKTjgDhGjs2y07l2SVdc4hzO1x0IOUNUUR7ZszzVGsGAcBayJOMhNXxaj
ShXLh0pdf20Y+Qm8WTUfT8uyK0Q5WgN82C7AXO98sex12VFKTVvLi1JlWRF3VIIz
xgA6sPwA8INqqOcx3MgMywZbTPV92D+fzw3U9NM7Q0lbupRDEUNU+cjO9061mkrE
npvxWjaE5iSbaYGHombA
=VJZ2
-----END PGP SIGNATURE-----
--- End Message ---