Project

General

Profile

HowDoWeDoDebianPackages

Pour un backport de paquet qui existe déjà dans Debian, on peut utiliser dgit :

 $ dgit clone django-haystack
 $ cd django-haystack
 $ # si debian/patches/series existe, le retirer, parce que eobuilder va recréer le .orig.tar.gz avec les patchs déjà appliqués
 $ git rm -f debian/patches/series && git commit debian/patches/series
 $ git remote add eo git@git.entrouvert.org:debian/django-haystack
 $ git push -u eo dgit/sid:main

Puis lancer https://jenkins.entrouvert.org/job/debs/.

curl -X POST --user user:token "https://jenkins.entrouvert.org/job/debs/buildWithParameters?GIT_PROJECT=debian/django-haystack&DEBIAN_VERSIONS=buster,bullseye" 

Paquets python

  • utiliser pybuild
  • déclarer le nom de la distribution python
  • désactiver les tests
  • pour les paquets d'applications Django, recopier manage.py du paquet python vers le paquet démon

debian/rules


#!/usr/bin/make -f
# -*- makefile -*-

export PYBUILD_NAME=combo <-- ici nom de la distribution déclaré dans setup.py ou pyproject.ml, ou plutôt suffix qui suivra python(3)- dans le nom du paquet, j'ai un doute ici
export PYBUILD_DISABLE=test

%:
    dh $@ --with python3 --buildsystem=pybuild <-- rajouter python2 si besoin, systemd si brique

override_dh_install: <-- uniquement pour les briques
    dh_install
    mv $(CURDIR)/debian/python3-<project>/usr/bin/manage.py $(CURDIR)/debian/<project>/usr/lib/<project>/manage.py

debian/python(3)-x.install

Inutile.

debian/project.install pour les briques (applications Django)

On ne doit trouver que ces fichiers (.init, .service, .cron, etc.. installé automatiquement)

debian/combo-manage       /usr/bin
debian/settings.py        /etc/combo
debian/uwsgi.ini          /etc/combo
debian/debian_config.py   /usr/lib/combo

Le manage surchargé, le settings de base, le uwsgi de base et le debian_config.py de base.

Mettre à jour un paquet issu d'un projet externe

Exemple :

git clone ssh://git@git.entrouvert.org/debian/factur-x
git remote add github https://github.com/akretion/factur-x.git
... merge et mise à jour éventuelle de trucs dans debian/, etc.
git push

Notes eoday

  • debian-$dist/ dans master
  • pas de job *-deb dans jenkins (un job unique)
  • génération d'un changelog from scratch
  • génération VERSION depuis tag ou prendre 0.0

ex de fichier changelog à générer :

wcs (1.12.12.5.g46a0062-1~eob70+1)

  * (46a0062) tests: check forgotten page where user can set password (#6506)
  * (edbd295) hobos: change command to only deploy one instance, given as arg (#6486)
  * (0a58b8f) hobos: rename command to hobo_deploy, to match others (#6486)
  * (d0e2120) hobos: read json from a file if a filename is given on the command line (#6486)
  * (377911a) email: do starttls if advertised by the server (#6453)

wcs (1.12.12-0) $dist; urgency=low

  * (8df6312) release 1.12.12
  * (c631b0a) ctl: fix display of list of commands
  * (b199f1d) update french translation

 -- eobuilder <eobuilder@entrouvert.com>   Date...

wcs (1.12.11-0) $dist; urgency=low

  * (a563be0) release 1.12.11
  * (e54d2eb) form: fix handling of date in iso format in French-configured sites (#6390)
  * (1505495) use new password entry widget for register page (#5805)
  * (4a91c26) form: turn file type check into a hard check (#6134)
  * ...

 -- eobuilder <eobuilder@entrouvert.com>   Date...

...

Comment modifier la configuration d'un paquet debian d'un de nos projets ?

Dans la dépôt git du projet, les fichiers qui sont "usuellement" édités sont à la racine du dépôt dans le dossier debian/

  • Exemple de fichier debian/control:
Package: publik-base-theme
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, python-xstatic-abrilfatface
Conflicts: python-authentic2 (< 2.1.20.742.gb6ee096-0)
Breaks: combo (< 0.7.1)
Description: Publik Base Theme
  • Exemple de fichier debian/publik-base-theme.dirs:
/etc/combo/settings.d
  • Exemple de fichier debian/publik-base-theme.install:
debian/fonts.py        /etc/combo/settings.d

Comment tester localement l'empaquetage debian ?

Pour ne pas avoir à pousser sur master et attendre de voir la tâche jenkins de notre paquet (par ex. https://jenkins.entrouvert.org/job/publik-base-theme-deb/), on peut localement tester ça sur sa debian avec :

sudo apt install devscripts
cd monprojet
debuild -uc -us -b 

Also available in: PDF HTML TXT