Tâche #35798
Distutils n’est plus disponible en python 3.12. Il faut choisir entre les différentes évolutions possibles pour avoir de nouveau une procédure d’installation fonctionnelle (remplacement des setup.py, utilisation de pip, etc.)
0%
Demandes liées
Historique
#1 Mis à jour par Daniel Dehennin il y a environ 2 mois
Effectivement distutils n’est plus fourni dans python, une option est d’utiliser setuptools comme décrit dans PEP632
Il semble qu’aujourd’hui l’usage soit d’utiliser pyproject.toml, ensuite c’est le choix du backend de construction, encore une fois rien de simple dans le monde python.
Dans eole3 tools nous utilisons hatchling mais le guide lui même propose 4 exemples, hatchling, setuptools, flit et PDM
#2 Mis à jour par Daniel Dehennin il y a environ 2 mois
Notre problème vient de eole.mk
qui execute python setup.py
pour installer les fichiers python qui seront pris en charge par le packaging.
Une option serait de virer cette installation dans le Makefile et laisser dh_python
gérer. Cela signifie en revanche que l’on ne pourra plus faire de make install
depuis un clone.
#3 Mis à jour par Daniel Dehennin il y a environ 21 heures
Il est possible de faire comme dans creole
diff --git a/debian/control b/debian/control
index 32fb301..cfa5bec 100644
--- a/debian/control
+++ b/debian/control
@@ -2,8 +2,9 @@ Source: eole-ad-dc
Section: admin
Priority: optional
Maintainer: Équipe EOLE <eole@ac-dijon.fr>
-Build-Depends: debhelper (>= 9), python3-all
+Build-Depends: debhelper (>= 9), python3-all, dh-python
Standards-Version: 3.9.3
+X-Python3-Version: >= 3.9
Homepage: http://eole.orion.education.fr/diff/
Vcs-Git: http://dev-eole.ac-dijon.fr/git/eole-ad-dc
Vcs-Browser: http://dev-eole.ac-dijon.fr/projects/eole-ad-dc/repository
@@ -17,7 +18,8 @@ Depends: eole-server,
eole-ad-dc-pso,
eole-ntp-server,
acl,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: configuration du service Samba AD-DC
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
@@ -45,7 +47,8 @@ Depends: acl,
smbclient,
winbind,
libldap-common,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: dependency package for Samba AD-DC
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
@@ -56,7 +59,8 @@ Architecture: all
Depends: eole-ad-dc-member-pkg,
bind9,
ntp,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: dependency package for Samba AD-DC
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
@@ -67,14 +71,16 @@ Depends: python3-configobj,
pwgen,
psmisc,
rsync,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: scripts et librairies pour Samba AD-DC
Pour toute information complémentaire, veuillez vous rendre sur le
site du projet EOLE.
Package: eole-ad-dc-bareos
Architecture: all
-Depends: eole-bareos ${misc:Depends}
+Depends: eole-bareos, ${misc:Depends},
+ ${python3:Depends}
Conflicts: eole-ad-dc
Description: configuration bareos pour Samba AD-DC
Pour toute information complémentaire, veuillez vous rendre sur le
@@ -82,7 +88,8 @@ Description: configuration bareos pour Samba AD-DC
Package: eole-ad-dc-scribe
Architecture: all
-Depends: eole-bareos ${misc:Depends}
+Depends: eole-bareos, ${misc:Depends},
+ ${python3:Depends}
Conflicts: eole-ad-dc
Description: Fichier commun entre eole-ad-dc et scribe
Pour toute information complémentaire, veuillez vous rendre sur le
@@ -92,7 +99,8 @@ Package: eole-seth
Depends: eole-dhcp,
eole-ad-dc,
eole-antivirus,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Architecture: all
Description: Module EOLE Seth
Configuration du module EOLE Seth.
@@ -103,7 +111,8 @@ Description: Module EOLE Seth
Package: eole-seth-module
Section: metapackages
Depends: eole-seth,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Provides: eole-module
Conflicts: eole-module
Architecture: all
@@ -121,7 +130,8 @@ Depends: eole-ad-dc-pkg,
eole-exim-pkg,
eole-antivirus-pkg,
eole-seth-module,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Architecture: all
Description: Module EOLE Seth (metapackage)
Tous les paquets pour un module EOLE Seth.
@@ -134,7 +144,8 @@ Section: admin
Architecture: all
Depends: python3,
python-gpo-utils,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: Python command for GPO edition
Package: python-gpo-utils
@@ -142,6 +153,7 @@ Section: admin
Architecture: all
Depends: python3,
python3-samba,
- ${misc:Depends}
+ ${misc:Depends},
+ ${python3:Depends}
Description: Python commands for GPO edition
diff --git a/debian/python-gpo-utils.install b/debian/python-gpo-utils.install
index 0017270..d183701 100644
--- a/debian/python-gpo-utils.install
+++ b/debian/python-gpo-utils.install
@@ -1 +1 @@
-usr/lib/python3/dist-packages
+usr/lib/python*/dist-packages
diff --git a/debian/rules b/debian/rules
index c3cba39..b403d81 100755
--- a/debian/rules
+++ b/debian/rules
@@ -7,11 +7,18 @@
# This special exception was added by Craig Small in version 0.37 of dh-make.
# Uncomment this to turn on verbose mode.
-# export DH_VERBOSE=1
-# export DH_OPTIONS=-v
+export DH_VERBOSE=1
+export DH_OPTIONS=-v
+
+
%:
- dh $@
+ dh $@ --with python3 --buildsystem=pybuild
+
+override_dh_auto_install:
+ DESTDIR=$(CURDIR)/debian/tmp make install
+ dh_auto_install -O--buildsystem=pybuild
+
override_dh_installsystemd:
dh_installsystemd --no-enable --no-start -peole-ad-dc --name=samba_dbcheck
dh_installsystemd --no-enable --no-start -peole-ad-dc-scribe --name=samba_dbcheck
diff --git a/eole.mk b/eole.mk
index 244b599..1750fd4 100644
--- a/eole.mk
+++ b/eole.mk
@@ -110,11 +110,6 @@ logrotate_DATA_DIR := $(DESTDIR)/etc/logrotate.d
# Cron
cron_PROG_DIR := $(DESTDIR)/etc/cron.daily
-# Python modules
-ifneq ($(DESTDIR),)
-PYTHON_OPTS := --root $(DESTDIR)
-endif
-
# Translation
TRANSLATION_SRC := translation
TRANSLATION_DEST := $(DESTDIR)/usr/share/locale
@@ -207,10 +202,4 @@ install-prog-files: $$(patsubst %,%-instprog,$$(installprog_LIST))
install-rec-dirs: $$(patsubst %,%-instrec,$$(installrec_LIST))
-# Installation of python modules
-ifeq ($(shell test -f setup.py && echo 0), 0)
-install-files::
- python3 setup.py install --no-compile --install-layout=deb $(PYTHON_OPTS)
-endif
-
.PHONY: install install-dirs install-files install-data-files install-prog-files install-rec-dirs
Attention: les modifications dans eole.mk
doivent être faites sur une branche de code et non de packaging ;-)
#4 Mis à jour par Daniel Dehennin il y a environ 21 heures
- Statut changé de Nouveau à À valider
- Début mis à 29/04/2024