Projet

Général

Profil

Development #64605

debian : fonctionner avec le changement d'emplacement des modules en python 3.10 / unstable

Ajouté par Benjamin Dauvergne il y a presque 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
27 avril 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cf. https://lists.debian.org/debian-python/2022/03/msg00039.html

Le nouveau paquet python en sid rétablit /usr/local/python3.x/dist-packages/ comme destination par défaut de l'installation des librairies python, c'est géré par dh_python3 mais comme on ne l'utilise pas car on utilise par plus distutils/setuptools il faut du code un peu spécifique dans debian/rules.


Fichiers

Historique

#1

Mis à jour par Frédéric Péters il y a presque 2 ans

(je préférerais prendre, pas sûr que le packaging dans le dépôt soit synchro avec la dernière version officielle dans debian, déjà).

#2

Mis à jour par Benjamin Dauvergne il y a presque 2 ans

#3

Mis à jour par Frédéric Péters il y a presque 2 ans

Je note ça parce qu'on a lasso 2.8.0-1, construit le 15 mars, avec 3.10.2-7 (i.e. après l'annonce que tu pointes).

https://buildd.debian.org/status/package.php?p=lasso&suite=sid

Et je n'y vois pas de problème. (le seul problème étant le petit diff de changelog de 2.8.0-1, pour lequel je n'ai pas fait de ticket d'intégration, mais les changements majeus avaient déjà été incorporés dans #62756).

#4

Mis à jour par Benjamin Dauvergne il y a presque 2 ans

  • Statut changé de Solution proposée à Rejeté

Ok, en fait j'ai voulu virer le code "custom" dans configure.ac à cause de warning de dépréciation sur distutils1 que je trouvais un peu aggressif (et distutils.sysconfig). J'ai vu qu'automake intégrait déjà tout le nécessaire, sauf qu'automake utilise le bon chemin délivré par le système, ça m'a amené à découvrir que celui-ci avait changé récemment, ainsi de suite sans voir qu'un paquet fonctionnait déjà dans ce cas (il ne s'était pas installé pas tout seul...). Le code actuel entre configure.ac et debian.rules fonctionne un peu par chance, j'avais envie de commencer à y voir plus clair.

En attendant je ferme (j'ai aussi revert mon début de modification de ce code puisque tout fonctionne déjà), rien d'important.

Mais dans le futur il faudra penser à utiliser un code plus clair que ça2 et ne dépendant pas de distutils si possible, les 2/3 des variables définies ne servant à rien en plus, AM_PYTHON_PATH donne en gros tout ce qu'il faut. Ça passera peut-être par l'ajout d'un vrai setup.py on verra.

1

<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
<string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
checking for Python development files... <string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
<string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
<string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
<string>:1: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
<string>:1: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
yes

2

+AC_MSG_CHECKING(for Python development files)
+dnl Check if we were be able to extract a good version number.
+if test "X$PYTHON_VERSION" != "X"; then
+    changequote(<<, >>)dnl
+    PYTHON_INC=`$PYTHON -c 'from distutils import sysconfig ; print(sysconfig.get_python_inc())'`
+    PYTHON_LIB=`$PYTHON -c 'from distutils import sysconfig ; print(sysconfig.get_python_lib(1))'`
+    changequote([, ])dnl
+    PYTHON_H=$PYTHON_INC/Python.h
+    if test -f $PYTHON_H; then
+            PY_CFLAGS="-I$PYTHON_INC" 
+            PY_MAKEFILE=`$PYTHON -c 'from distutils import sysconfig ; print(sysconfig.get_makefile_filename())'`
+            PY_OTHER_LIBS=`$SED -n -e 's/^LIBS=\(.*\)/\1/p' $PY_MAKEFILE`
+            PY_EXTRA_LIBS="$PY_LOCALMODLIBS $PY_BASEMODLIBS $PY_OTHER_LIBS" 
+            dnl this extracts the $libdir out of python lib directory,
+            dnl replacing it by our own.
+            PY_SUFFIX_LIB=`echo $PYTHON_LIB | $SED -e 's/.*python/python/'`
+            PY_SITE_PACKAGES="\${libdir}/$PY_SUFFIX_LIB" 
+            AC_SUBST(PYTHON)
+            AC_SUBST(PY_LIB_LOC)
+            AC_SUBST(PY_CFLAGS)
+            AC_SUBST(PY_EXTRA_LIBS)
+            AC_SUBST(PY_DYNLOAD)
+            AC_SUBST(PY_LIB_A)
+            AC_SUBST(PY_SITE_PACKAGES)
+            languages_available="$languages_available python($PYTHON_VERSION)" 
+    else
+            enable_python=no
+    fi
+else
+       enable_python=no
+fi

Formats disponibles : Atom PDF