Projet

Général

Profil

Development #40372

python3: debian packaging

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
03 mars 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Peut-être en profiter pour passer à uwsgi aussi.


Fichiers


Demandes liées

Lié à Authentic 2 - Development #29297: passer à uwsgiFermé20 décembre 2018

Actions
Lié à Authentic 2 - Development #41221: paquet python3-django-sekizaiFermé01 avril 2020

Actions
Lié à ldaptools - Development #41222: paquet python3Fermé01 avril 2020

Actions

Révisions associées

Révision 4e3c28e0 (diff)
Ajouté par Benjamin Dauvergne il y a environ 4 ans

python3: adapt debian packaging (#40372)

Révision ac89d290 (diff)
Ajouté par Paul Marillonnet il y a environ 4 ans

drop deprecated python-raven sentry client config (#40372)

Révision acfe661e (diff)
Ajouté par Benjamin Dauvergne il y a environ 4 ans

Revert "python3: adapt debian packaging (#40372)"

This reverts commit 4e3c28e08e2d76096a3e0f4ecbb0f745acaef0de.

Révision 7ef148e0 (diff)
Ajouté par Benjamin Dauvergne il y a presque 4 ans

python3: adapt debian packaging (#40372)

Historique

#1

Mis à jour par Frédéric Péters il y a environ 4 ans

#2

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Nouveau à En cours
#3

Mis à jour par Paul Marillonnet il y a environ 4 ans

#4

Mis à jour par Paul Marillonnet il y a environ 4 ans

#5

Mis à jour par Paul Marillonnet il y a environ 4 ans

En python3 le fichier de surcharge des dépendances python en paquets debian utilisé par dh-python3 doit se nommer py3dist-overrides.

#6

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Assigné à changé de Benjamin Dauvergne à Paul Marillonnet
#7

Mis à jour par Paul Marillonnet il y a environ 4 ans

La dernière fois que j'avais joué avec cowbuilder pour tester la construction d'un paquet ça s'était mal passé :)
Je vais ré-essayer ici puisque de toute évidence un test s'impose, avec les deux patches joints.

#8

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Paul Marillonnet a écrit :

La dernière fois que j'avais joué avec cowbuilder pour tester la construction d'un paquet ça s'était mal passé :)
Je vais ré-essayer ici puisque de toute évidence un test s'impose, avec les deux patches joints.

Tu peux aussi faire un debuild -uc -us -b dans le cas de la construction du binaire uniquement, sans consutruction du paquet source, on peut se passer d'eobuilder, mais ça ne teste pas dépendances de build il me semble.

#9

Mis à jour par Paul Marillonnet il y a environ 4 ans

Benjamin Dauvergne a écrit :

Tu peux aussi faire un debuild -uc -us -b dans le cas de la construction du binaire uniquement, sans consutruction du paquet source, on peut se passer d'eobuilder, mais ça ne teste pas dépendances de build il me semble.

Nickel merci, après installation des paquets listés dans Build-Depends, la construction des paquets se passe sans encombre. Je vais taper un debootstrap pour tester l'installation sur stretch.

#10

Mis à jour par Paul Marillonnet il y a environ 4 ans

Après quelques modifs (dont l'ajout des dépendances python3-django-ratelimit et python-requests-oauthlib), deux erreurs surviennent encore :
  • on dirait que des trucs on bougé dans les versions récentes de django-import-export. Lors du runserver pour authentic2-multitenant, je me mange cette erreur :
    Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7fdf00129840>
    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/django/utils/autoreload.py", line 228, in wrapper
        fn(*args, **kwargs)
      File "/usr/lib/python3/dist-packages/django/core/management/commands/runserver.py", line 124, in inner_run
        self.check(display_num_errors=True)
      […]
      File "/usr/lib/python3/dist-packages/authentic2/manager/urls.py", line 22, in <module>
        from . import views, role_views, ou_views, user_views, service_views
      File "/usr/lib/python3/dist-packages/authentic2/manager/role_views.py", line 35, in <module>
        from . import tables, views, resources, forms, app_settings
      File "/usr/lib/python3/dist-packages/authentic2/manager/resources.py", line 20, in <module>
        from import_export.resources import ModelResource
      File "/usr/lib/python3/dist-packages/import_export/resources.py", line 10, in <module>
        from diff_match_patch import diff_match_patch
    ModuleNotFoundError: No module named 'diff_match_patch'
    

    Après installation du paquet python3-diff-match-patch ça fonctionne. Sans doute une erreur de packaging de django-import-export.
  • Un setting manquant au paramétrage postinst du paquet authentic2 :
    [....] Updating authentic2: authentic2[info] Applying new migrations ...
    Traceback (most recent call last):
      File "/usr/lib/authentic2/manage.py", line 21, in <module>
        execute_from_command_line(sys.argv[:1] + argv)
      File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
        utility.execute()
      File "/usr/lib/python3/dist-packages/django/core/management/__init__.py", line 308, in execute
        settings.INSTALLED_APPS
      File "/usr/lib/python3/dist-packages/django/conf/__init__.py", line 56, in __getattr__
        self._setup(name)
      File "/usr/lib/python3/dist-packages/django/conf/__init__.py", line 41, in _setup
        self._wrapped = Settings(settings_module)
      File "/usr/lib/python3/dist-packages/django/conf/__init__.py", line 110, in __init__
        mod = importlib.import_module(self.SETTINGS_MODULE)
      File "/usr/lib/python3.7/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
      File "<frozen importlib._bootstrap>", line 983, in _find_and_load
      File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 728, in exec_module
      File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
      File "/usr/lib/python3/dist-packages/authentic2/settings.py", line 349, in <module>
        exec(fd.read())
      File "<string>", line 300, in <module>
    NameError: name 'DEFAULT_FROM_EMAIL' is not defined
    
#11

Mis à jour par Paul Marillonnet il y a environ 4 ans

Pour le premier des deux soucis je taperais bien, dans notre dépôt debian/django-import-export :

diff --git a/debian/control b/debian/control
index d12ce86..8a6c310 100644
--- a/debian/control
+++ b/debian/control
@@ -7,12 +7,12 @@ Standards-Version: 3.9.1

 Package: python-django-import-export
 Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}
+Depends: ${misc:Depends}, ${python:Depends}, python-diff-match-patch
 Description: Django application and library for importing and exporting data
  with included admin integration.

 Package: python3-django-import-export
 Architecture: all
-Depends: ${misc:Depends}, ${python:Depends}
+Depends: ${misc:Depends}, ${python:Depends}, python3-diff-match-patch
 Description: Django application and library for importing and exporting data
  with included admin integration.

#12

Mis à jour par Paul Marillonnet il y a environ 4 ans

  • Statut changé de Solution proposée à Information nécessaire

(Oulà je voulais passer le ticket dans le statut qui lui convient mais c'était sans compter sur le bout de JS qui le met furtivement en “Solution proposée” dès qu'un patch est joint…)

#13

Mis à jour par Thomas Noël il y a environ 4 ans

Paul Marillonnet a écrit :

Pour le premier des deux soucis je taperais bien, dans notre dépôt debian/django-import-export :

C'était

-Depends: ${misc:Depends}, ${python:Depends}
+Depends: ${misc:Depends}, ${python3:Depends}

c'est packagé dans les x-eobuilder et x-testing.

#14

Mis à jour par Paul Marillonnet il y a environ 4 ans

Thomas Noël a écrit :

c'est packagé dans les x-eobuilder et x-testing.

Merci c'était bien ça, bien vu.
Paquets générés avec debuild et apt-installés dans un debootstrap debian/stable, it works.

#15

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution proposée à Résolu (à déployer)

Tu peux virer ça :

    VERSION=`dpkg-query --show --showformat '${Version}' python-django`
    VERSION=`dpkg-query --show --showformat '${Version}' python3-django`
    if dpkg --compare-versions $VERSION lt 1.7; then
      su $USER -p -c "$MANAGE_SCRIPT syncdb --migrate --noinput" 
    else

on risque plus de mettre à jour une version <1.7 avec django-south, on fait la migration normale.

Pour le DEFAULT_FROM_EMAIL ça du se casser avec :

commit 96d6282d56525d0bc444a9cec98c65a7ef493311
Author: Emmanuel Cazenave <ecazenave@entrouvert.com>
Date:   Wed Jun 6 16:45:50 2018 +0200

    dont' import everything from global_settings (#24081)

Tu peux juste remplacer la ligne if·DEFAULT_FROM_EMAIL·==·'webmaster@localhost': par

if not locals().get('DEFAULT_FROM_EMAIL'):

#17

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée
#18

Mis à jour par Paul Marillonnet il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ac89d290cefa11cca42c54cdccd7ace84714cdc3
Author: Paul Marillonnet <pmarillonnet@entrouvert.com>
Date:   Wed Apr 1 11:09:05 2020 +0200

    drop deprecated python-raven sentry client config (#40372)

commit 4e3c28e08e2d76096a3e0f4ecbb0f745acaef0de
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Sun Mar 1 12:11:17 2020 +0100

    python3: adapt debian packaging (#40372)
#20

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée
#21

Mis à jour par Paul Marillonnet il y a presque 4 ans

  • Statut changé de Solution déployée à En cours

Benj, quelles sont les dépendances pas à jour dont il était question sur jabber ?

#22

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

Je notais ça ailleurs, c'était à propos de la branche wip/py3-packaging,

-       mv $(CURDIR)/debian/python-authentic2/usr/bin/authentic2-ctl $(CURDIR)/debian/python-authentic2/usr/lib/authentic2/manage.py
+       mv $(CURDIR)/debian/python3-authentic2/usr/bin/authentic2-ctl $(CURDIR)/debian/python3-authentic2/usr/lib/authentic2/manage.py

sans conflicts/replaces de python3-authentic2 sur python-authentic2, ça va amener à avoir les deux installés et ça va râler sur le fait que le /usr/lib/authentic2/manage.py est déjà distribué par python-authentic2.

Dans combo ça a été géré indépendamment de la migration (#36508) mais il n'y a pas de problème particulier à mêler les deux. (ça peut même être plus simple, et terminer sur un système où le paquet python-authentic2 n'est plus installé).

#23

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

Frédéric Péters a écrit :

sans conflicts/replaces de python3-authentic2 sur python-authentic2, ça va amener à avoir les deux installés et ça va râler sur le fait que le /usr/lib/authentic2/manage.py est déjà distribué par python-authentic2.

Ok j'ai ajouté ça sur la branche dans un commit temporaire, peux-tu me dire si c'est ok ?

diff --git a/debian/control b/debian/control
index a5d3c2a1..26fdf096 100644
--- a/debian/control
+++ b/debian/control
@@ -40,6 +40,8 @@ Depends: ${misc:Depends}, ${python3:Depends},
     python3-attr (>=17),
     python3-pycryptodome,
     python3-atomicwrites
+Conflicts: python-authentic2
+Replaces: python-authentic2
 Description: Versatile identity server
  Authentic is a versatile identity provider aiming to address a broad
  range of needs, from simple to complex setups; it has support for many

Bon à part ça je viens de tester le paquet sur un systemd-nspawn/buster à part le paquet python3-ldaptools qui n'était pas dans notre dépôt buster de prod, ça s'est installé sans souci, je pense que je vais pousser et tester ensuite le paquet eobuilder sur la dév, qu'elle serve un peu, pour voir en mise à jour ce que ça donne.

#24

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

Ok j'ai ajouté ça sur la branche dans un commit temporaire, peux-tu me dire si c'est ok ?

C'est brutal mais ça doit marcher mais ailleurs on a plutôt déplacé le manage.py dans le paquet de l'application. (mais sans doute ce n'est pas possible dans authentic qui crée deux paquets applicatifs).

#25

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

  • Assigné à changé de Paul Marillonnet à Benjamin Dauvergne
#26

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

  • Statut changé de En cours à Résolu (à déployer)
commit 7ef148e0c56631eae8fda050c17c5a11545f5037
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Sun Mar 1 12:11:17 2020 +0100

    python3: adapt debian packaging (#40372)
#27

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

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF