Bug#920337: python3-igraph: ships header in /usr/include/python3.7

2019-01-28 Thread Hugo Lefeuvre
Hi,

I had a look into this issue. It does _not_ look like a bug in the
python-igraph packaging to me.

Nicolas suggested to patch debian/patches/3.7/distutils-install-layout.diff
from python3-stdlib-extensions.

It does in fact look like the actual issue:

+'unix_local': {
+'purelib': '$base/local/lib/python$py_version_short/dist-packages',
+'platlib': '$platbase/local/lib/python$py_version_short/dist-packages',
+'headers': '$base/local/include/python$py_version_short/$dist_name',
+'scripts': '$base/local/bin',
+'data'   : '$base/local',
+},
+'deb_system': {
+'purelib': '$base/lib/python3/dist-packages',
+'platlib': '$platbase/lib/python3/dist-packages',
+'headers': '$base/include/python$py_version_short/$dist_name',
+'scripts': '$base/bin',
+'data'   : '$base',
+},

These headers entries seem wrong to me, $abiflags is missing.

should be respectively

'$base/local/include/python$py_version_short$abiflags/$dist_name'

and

'$base/include/python$py_version_short$abiflags/$dist_name'

Matthias: should we open a python3-stdlib-extensions bug ? Do you think
this issue can be fixed in time for Buster or should we upload a temporary
fix for python-igraph ?

cheers,
Hugo

-- 
Hugo Lefeuvre (hle)|www.owl.eu.com
RSA4096_ 360B 03B3 BF27 4F4D 7A3F D5E8 14AA 1EB8 A247 3DFD
ed25519_ 37B2 6D38 0B25 B8A2 6B9F 3A65 A36F 5357 5F2D DC4C


signature.asc
Description: PGP signature


Bug#920337: python3-igraph: ships header in /usr/include/python3.7

2019-01-27 Thread Nicolas Boulenguez
Hello.

The attached patch works around this bug in python-igraph.

The issue should probably be fixed globally by adding 'm'
in package python3-stdlib-extensions
in filedebian/patches/3.7/distutils-install-layout.diff
in line'headers': '$base/include/python$py_version_short/$dist_name'
but I am not an expert in Python packaging, so I would like your
opinion before opening a bug against
python3-stdlib-extensions.

Ideally, the bug number would be added to a comment in debian/rules so
that we know when the work-around can be removed.
--- a/debian/compat
+++ /dev/null
@@ -1,1 +0,0 @@
-11
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@
 Maintainer: Debian Python Modules Team 
 Uploaders: TANIGUCHI Takaki ,
Hugo Lefeuvre 
-Build-Depends: debhelper (>= 11),
+Build-Depends: debhelper-compat (= 12),
dh-python,
libigraph-dev,
pkg-config,
@@ -17,6 +17,7 @@ Build-Depends: debhelper (>= 11),
python3-setuptools,
python3-texttable
 Standards-Version: 4.3.0
+Rules-Requires-Root: no
 Testsuite: autopkgtest-pkg-python
 Homepage: http://igraph.org/python/
 Vcs-Git: https://salsa.debian.org/python-team/modules/python-igraph.git
--- a/debian/rules
+++ b/debian/rules
@@ -3,11 +3,19 @@
 export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 export PYBUILD_NAME=igraph
 
+# Work around #920337. The proper fix probably adds 'm'
+# in package python3-stdlib-extensions
+# in filedebian/patches/3.7/distutils-install-layout.diff
+# in line'headers': '$base/include/python$py_version_short/$dist_name'
+export PYBUILD_INSTALL_ARGS_python3 := \
+  --install-headers=/usr/include/python{version}m
+
 %:
 # Ensure that the embedded copy is never used.
 	rm -f vendor/texttable.py
 	dh $@  --with python2,python3 --buildsystem=pybuild
 
+# Disable the scripts= option in setup.cfg. See #664443.
 override_dh_auto_install:
 	dh_auto_install
 	rm -f $(CURDIR)/debian/python-igraph/usr/bin/igraph
--- a/debian/watch
+++ b/debian/watch
@@ -1,3 +1,2 @@
-version=3
-https://pypi.debian.net/python-igraph/python-igraph-(.*)\.tar\.gz
-
+version=4
+https://pypi.debian.net/@PACKAGE@/@PACKAGE@@ANY_VERSION@@ARCHIVE_EXT@


Bug#920337: python3-igraph: ships header in /usr/include/python3.7/

2019-01-24 Thread Andreas Beckmann
Package: python3-igraph
Version: 0.7.1.post6-6
Severity: serious

Hi,

your package ships the header file(s):

  /usr/include/python3.7/python-igraph/igraphmodule_api.h

but /usr/include/python3.7 is a symlink to python3.7m in
libpython3.7-dev. This may result in silent file overwrites or depending
on the unpacking order /usr/include/python3.7 being a directory in some
cases, separating the headers into two independent trees.

These header files must be shipped in /usr/include/python3.7m/ instead.
Please talk to the python maintainers to find a proper solution for
handling the packaging of python header files in a future-proof way.


Cheers,

Andreas