Beruflich Dokumente
Kultur Dokumente
Softwarearchitekt bei der T-Systems Multimedia Solutions GmbH in Dresden Debian Developer CAcert.org Infrastrukturadministrator Spezialgebiete: freie Software, Kryptograe,
Maintainer von sqlalchemy-migrate Maintainer des Python-Bindings fr cracklib2 Entwicklung und Hosting des Debian Member Portfolio Service (Pylons-Anwendung): http://portfolio.debian.net/ Maintainer diverser Debian-Pakete fr Python-Module und Mitglied in den Debian Python Module und Application Packaging-Teams Entwicklung diverser interner Python-Tools fr Projekte
eine der umfangreichsten Distributionen freier Software 1993 gegrndet hoher Anspruch an technische Qualitt und Freiheit, festgeschrieben im Social Contract [1] inklusive DFSG (Debian Free Software Guidelines) reines Community-Projekt mit demokratischer Wahl des Projektleiters und Doocracy mehr als 800 Projektmitglieder (Debian Developers), viele weitere Beitragende
Portierungen fr 12 ozielle (10 mit Linux-Kernel, 2 mit FreeBSD-Kernel) und weitere inozielle Architekturen mehr als 28000 Software-Pakete fr AMD64/x86_64- und i386-Architekturen Basis fr viele weitere Distributionen (populrster Vertreter: Ubuntu)
mehrere Python-Versionen in den Repositories /usr/bin/python == Python 2.x, /usr/bin/python3 == Python 3.x Team-Maintenance fr Python-Module (DPMT [2]) und Python-Anwendungen (PAPT [3]) IRC-Channel: #debian-python (OFTC, irc.debian.org) Mailingliste: debian-python@lists.debian.org Kooperation mit Upstreams, Debian-Derivaten und anderen Distributionen ist erwnscht!
Einleitung .. .. .
interessante Software gefunden Suche in WNPP, ob schon jemand daran arbeitet RFP (Request for Packaging) oder ITP (Intent to Package) im Bugtracking-System Ermittlung von Lizenzinformationen und anderen fr die Paketierung notwendigen Daten Paketierungsarbeit durch Debian-Developer oder interessierten Maintainer Upload durch Debian-Developer bei erstem Upload Freigabe oder Ablehnung durch einen FTP-Master (vor allem wegen Lizenzprfung)
Einleitung .. .. .
eine anerkannte DFSG-kompatible Lizenz (korrekt) nutzen, die Nutzung dokumentieren und Lizenztext mitliefern alle zum Bauen bentigten Dateien mitliefern saubere Versionierung nach PEP-0386 [4] und PEP-396 [5], eine Version pro Source-Archiv Metadaten in setup.py (siehe PEP-314 [6]) oder besser setup.cfg (siehe PEP-390 [7]) Hinweise aus http://wiki.debian.org/UpstreamGuide beachten
Einleitung .. .. .
stabile, versionierte ohne JavaScript aundbare Download-URLs paketierte Versionen von Abhngigkeiten verwenden oder bei deren Aktualisierung mitwirken API- und ABI-Interfaces mglichst stabil halten (besonders bei Modulen wichtig) keine fest eingebauten Dateipfade verwenden Standardtools verwenden (z.B. distutils, distribute) Tests im Source-Archiv
Einleitung .. .. .
nichts von what to do if you dont want your module in Debian? [8] tun
Einleitung .. .. . Fr Eilige
Tools fr Eilige
stdeb Python to Debian source package conversion utility https://github.com/astraw/stdeb.git, auch per aptitude install stdeb installierbar pypi2deb GSoC-Projekt 2012 von Natalia Frydrych zum Erzeugen von lokalen Debian-Repositories aus PyPI-Paketen https://gitorious.org/pypi2deb
Quellpakete
Upstream-Archiv (mglicherweise befreit von unfreien Bestandteilen) .diff.gz oder .debian.tar.gz mit Debian-Anpassungen (je nach Version des Formats) aus einem Quellpaket knnen mehrere Binrpakete erzeugt werden
copyright Lizenz- und Copyrightinformationen control Metadaten wie Maintainer, Abhngigkeiten, Beschreibungen, Denition der Binrpakete changelog dokumentiert nderungen am Paket, deniert Versionsnummer rules Script mit Regeln zum Bauen der Binrpakete
Binrpakete bauen
Binrpakete - Aufbau
Dateiendung .deb Unix-ar-Archiv, mit 2 .tar.{gz,bz2,xz}-Dateien control.tar.gz fr Metadaten und Maintainer-Skripte data.tar.{gz,bz2,xz} mit den zu installierenden Dateien *_all.deb fr architekturunabhngige Dateien (Daten, Python-Module, Skripte ...) *_<arch>.deb fr architekturabhngige Dateien (kompilierter native Code wie Python-Extensions)
Einleitung .. .. . Tools
http://bugs.debian.org Interaktion per E-Mail oder mit reportbug [9] sowie mit bts aus dem Paket devscripts [10] WNPP Work needing and prospective packages [11]
RFP Pakete die sich jemand wnscht RFH Pakete fr die Hilfe bentigt wird ITP Pakete die jemand erstellen will
Einleitung .. .. . Tools
dch Bearbeiten von debian/changelog debcommit Arbeiten mit Versionskontrollsystemen mit Informationen aus debian/changelog und debian/control svn-buildpackage Bauen von Paketen mit Untersttzung von Subversion (gibt es auch fr andere VCS, z.B. git-buildpackage) lintian Prft Pakete auf Policy-Verletzungen uscan halbautomatischer Download von Upstream-Archiven
Einleitung .. .. . Tools
debhelper
Sammlung von Skripten fr debian/rules Command-Sequencer dh fr Automatisierung von Paketbuilds mit gngigen Buildsystemen
dh_python{2,3}
dh_sphinxdoc
rumt generierte Sphinx-Dokumentation auf automatische Verlinkung mit paketierten Versionen der ntigen JavaScript-Dateien
Pakete werden fr Debian unstable gebaut (wandern spter automatisch nach testing und ggf. stable) Verwenden von pbuilder [12], cowbuilder [13] oder einem aktuellen unstable-chroot zum Bauen Verwenden eines Versionskontrollsystems (DPMT und PAPT verwenden Subversion)
Vorbereitung
Basissetup
Upstream-Sourcen besorgen, richtig verlinken, auspacken, ggf. Verzeichnis umbenennen Struktur in debian/ anlegen debian/control, debian/copyright, debian/watch hndisch anlegen debian/changelog mit
% dch --create --fromdirname
Erster Buildversuch
Ergebnis:
Einleitung .. .. .
Paketierung Multi-Binary-Package
Sphinx-Dokumentation hinzufgen
debian/control
neues Binrpaket python-errorhandler-doc eintragen python-sphinx in Build-Depends eintragen python-errorhandler-doc als Recommends fr python-errorhandler eintragen sphinxdoc bei dh --with hinzufgen override_dh_{auto_install, python2, sphinxdoc, compress}-Regeln denieren
debian/rules
Einleitung .. .. .
Paketierung Multi-Binary-Package
Ergebnis:
Lintian: fehlende doc-base-Registrierung debian/python-errorhandler-doc.doc-base Lintian: doppelte Lizenz Patch fr docs/index.txt, docs/license.txt entfernen
Einleitung .. .. .
Paketierung Multi-Binary-Package
Fehlschlag: dpkg-source: info: local changes detected errorhandler.egg-info in debian/rules in override_dh_auto_clean entfernen
% pdebuild --buildresult ../build-area -- --twice
Einleitung .. .. .
Python3-Untersttzung hinzufgen
neues Binrpaket python3-errorhandler python3 und python3-setuptools zu Build-Depends hinzufgen python3 bei dh --with hinzufgen python3-errorhandler bauen
debian/rules
Einleitung .. .. .
Binrpakete testen
installieren mit
% sudo dpkg -i ../ python * errorhandler *. deb
Einleitung .. .. .
Binrpakete testen
Einleitung .. .. . Finale
% cd ../ build -area % svn - inject -o python - errorhandler_1 .1.1 -1. dsc svn+ssh :// svn. debian .org/svn/python - modules / packages / % cd python - errorhandler % dch -r "" % svn - buildpackage % cd .. % dput python - errorhandler_1 .1.1 -1 _amd64 . changes % cd python - errorhandler % debcommit -r
Fragen
Zeit fr Fragen
Kontakt
Literatur
Kontakt
Literatur
Debian Social Contract. url: http://www.debian.org/social_contract. Debian Python Modules Team. url: http://wiki.debian.org/Teams/PythonModulesTeam. Python Applications Packaging Team. url: http: //wiki.debian.org/Teams/PythonAppsPackagingTeam. Tarek Ziad. PEP-386: Changing the version comparison module in Distutils. 2009. url: http://www.python.org/dev/peps/pep-0386/. Barry Warsaw. PEP-396: Module Version Numbers. 2011. url: http://www.python.org/dev/peps/pep-0396/.
[5]
Kontakt
Literatur
[6]
A.M. Kuchling und Richard Jones. PEP-314: Metadata for Python Software Packages v1.1. 2003. url: http://www.python.org/dev/peps/pep-0314/. Tarek Ziad. PEP-390: Static metadata for Distutils. 2009. url: http://www.python.org/dev/peps/pep-0390/. Piotr Oarowski. what to do if you dont want your module in Debian. 2010. url: http://mail.python.org/pipermail/pythondev/2010-April/099729.html. Wie werden Fehler in Debian mit Reportbug berichtet? url: http://www.debian.org/Bugs/Reporting.
[7] [8]
[9]
Kontakt
Literatur
[10] devscripts source package. url: http://packages.qa.debian.org/d/devscripts.html. [11] Debian Bug Tracking System: Work needing and prospective packages. url: http://bugs.debian.org/wnpp. [12] pbuilder source package. url: http://packages.debian.org/p/pbuilder.html. [13] cowbuilder source package. url: http://packages.debian.org/c/cowbuilder.html.