Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PyConZA 2013: "Python in Debian & Ubuntu" by St...

Pycon ZA
October 03, 2013

PyConZA 2013: "Python in Debian & Ubuntu" by Stefano Rivera

This talk is aimed at people who maintain Python libraries and also users of Debian packaged libraries. (Wherever I say Debian in this abstract, it applies to Ubuntu too). The talk should explain a bit about how and why libraries are packaged in Debian, and how to help maintain (or contribute) packages you care about.

We'll cover a bit of history of the Python stacks in Debian and how packaged modules are provided, and who does the work. For context, we'll take a quick detour into Debian packaging in general, and the Debian project's lifecycle.

Debian recently gained a new Python packaging tool, pybuild. This finally makes it easy to package the same library for Python 2, 3, and even PyPy. So, we'll have a look at what it does, and some example packaging.

Pycon ZA

October 03, 2013
Tweet

More Decks by Pycon ZA

Other Decks in Programming

Transcript

  1. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Python in Debian: History, Present, and how to help Stefano Rivera Yola 3 October 2013 Pycon ZA Stefano Rivera Python in Debian: History, Present, and how to help
  2. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Outline 1 Debian 2 Ubuntu 3 CPython in Debian 4 The people 5 Modern Debian Python Packaging Stefano Rivera Python in Debian: History, Present, and how to help
  3. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Debian Headcount Stefano Rivera Python in Debian: History, Present, and how to help
  4. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Debian Packages Stefano Rivera Python in Debian: History, Present, and how to help
  5. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Convenient installation Free Software is written by disparate groups Stefano Rivera Python in Debian: History, Present, and how to help
  6. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Convenient installation Build systems Stefano Rivera Python in Debian: History, Present, and how to help
  7. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Convenient installation Dependencies Stefano Rivera Python in Debian: History, Present, and how to help
  8. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Coherent holistic product FHS Stefano Rivera Python in Debian: History, Present, and how to help
  9. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Coherent holistic product Transition handling Stefano Rivera Python in Debian: History, Present, and how to help
  10. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Debian Maintainers Stefano Rivera Python in Debian: History, Present, and how to help
  11. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Maintainers (Debian specific) Stefano Rivera Python in Debian: History, Present, and how to help
  12. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Maintainers Package Maintainers != DD / DM Stefano Rivera Python in Debian: History, Present, and how to help
  13. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Debian is Feudal but meritocratic Stefano Rivera Python in Debian: History, Present, and how to help
  14. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Maintainers Experts in a particular package Stefano Rivera Python in Debian: History, Present, and how to help
  15. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Maintainers Teams Stefano Rivera Python in Debian: History, Present, and how to help
  16. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Debian Release schedule Stefano Rivera Python in Debian: History, Present, and how to help
  17. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Release schedule every ∼2 years, 3 support Stefano Rivera Python in Debian: History, Present, and how to help
  18. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Outline 1 Debian 2 Ubuntu 3 CPython in Debian 4 The people 5 Modern Debian Python Packaging Stefano Rivera Python in Debian: History, Present, and how to help
  19. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Ubuntu Relationship to Debian Stefano Rivera Python in Debian: History, Present, and how to help
  20. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Relationship to Debian Supported core Stefano Rivera Python in Debian: History, Present, and how to help
  21. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Relationship to Debian 70% entirely unmodified Debian Stefano Rivera Python in Debian: History, Present, and how to help
  22. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Relationship to Debian Few new packages Stefano Rivera Python in Debian: History, Present, and how to help
  23. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Relationship to Debian Smaller team Stefano Rivera Python in Debian: History, Present, and how to help
  24. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Release schedule LTS: 2 year cycle, 5 year support Stefano Rivera Python in Debian: History, Present, and how to help
  25. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Release schedule 6 month releases Stefano Rivera Python in Debian: History, Present, and how to help
  26. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Release schedule Paid archive maintenance Fast transitions Often slightly ahead of Debian Stefano Rivera Python in Debian: History, Present, and how to help
  27. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Outline 1 Debian 2 Ubuntu 3 CPython in Debian 4 The people 5 Modern Debian Python Packaging Stefano Rivera Python in Debian: History, Present, and how to help
  28. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging CPython in Debian Interpreter Stefano Rivera Python in Debian: History, Present, and how to help
  29. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging History Once upon a time, we had one Python in the archive Stefano Rivera Python in Debian: History, Present, and how to help
  30. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging History Since python2 (2.0) transitions required 1 python Stefano Rivera Python in Debian: History, Present, and how to help
  31. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging History Around 2.3, python-defaults Stefano Rivera Python in Debian: History, Present, and how to help
  32. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging CPython in Debian Applications Stefano Rivera Python in Debian: History, Present, and how to help
  33. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Applications Useful to package Stefano Rivera Python in Debian: History, Present, and how to help
  34. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Applications Can be kept out of the import path Stefano Rivera Python in Debian: History, Present, and how to help
  35. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging CPython in Debian Libraries Stefano Rivera Python in Debian: History, Present, and how to help
  36. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Libraries for Applications Stefano Rivera Python in Debian: History, Present, and how to help
  37. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging for Developers crazy build systems Stefano Rivera Python in Debian: History, Present, and how to help
  38. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging for Developers C extensions Stefano Rivera Python in Debian: History, Present, and how to help
  39. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging for Developers convenience Stefano Rivera Python in Debian: History, Present, and how to help
  40. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Libraries Only one version Stefano Rivera Python in Debian: History, Present, and how to help
  41. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging CPython in Debian History Stefano Rivera Python in Debian: History, Present, and how to help
  42. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼2.3, python-central handles common python problems, like byte compilation Stefano Rivera Python in Debian: History, Present, and how to help
  43. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼2.4, python-support technical solution to a social problem Stefano Rivera Python in Debian: History, Present, and how to help
  44. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼2.4, python-support automatic re-byte-compilation Stefano Rivera Python in Debian: History, Present, and how to help
  45. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼2.4, python-support interesting upgrade failures Stefano Rivera Python in Debian: History, Present, and how to help
  46. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼2.5, py3k mostly ignored Stefano Rivera Python in Debian: History, Present, and how to help
  47. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼3.2, dh python2 & 3 PEP3147: pycache Stefano Rivera Python in Debian: History, Present, and how to help
  48. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼3.2, dh python2 & 3 PEP3149: ABI tagging Stefano Rivera Python in Debian: History, Present, and how to help
  49. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼3.2, dh python2 & 3 PEP384: stable ABI Stefano Rivera Python in Debian: History, Present, and how to help
  50. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼3.2, dh python2 & 3 Ubuntu’s py3k push Stefano Rivera Python in Debian: History, Present, and how to help
  51. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging ∼3.3, pybuild, PyPy One ”true” way Stefano Rivera Python in Debian: History, Present, and how to help
  52. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Outline 1 Debian 2 Ubuntu 3 CPython in Debian 4 The people 5 Modern Debian Python Packaging Stefano Rivera Python in Debian: History, Present, and how to help
  53. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging The people DPMT & PAPT Stefano Rivera Python in Debian: History, Present, and how to help
  54. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Everything in SVN Git migration always on the agenda Stefano Rivera Python in Debian: History, Present, and how to help
  55. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging DPMT & PAPT Knowledgeable people and sponsors Stefano Rivera Python in Debian: History, Present, and how to help
  56. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging The people Want to help? Stefano Rivera Python in Debian: History, Present, and how to help
  57. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Want to help? http://deb.li/joindpmt Stefano Rivera Python in Debian: History, Present, and how to help
  58. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Want to help? Fix bugs! Stefano Rivera Python in Debian: History, Present, and how to help
  59. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Want to help? Review things Stefano Rivera Python in Debian: History, Present, and how to help
  60. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Want to help? Build infrastructure Stefano Rivera Python in Debian: History, Present, and how to help
  61. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging The people Upstream maintainers Stefano Rivera Python in Debian: History, Present, and how to help
  62. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Upstream maintainers Engage with your distro maintainers Stefano Rivera Python in Debian: History, Present, and how to help
  63. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Upstream maintainers Join their team Stefano Rivera Python in Debian: History, Present, and how to help
  64. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Upstream maintainers Subscribe to bugs Stefano Rivera Python in Debian: History, Present, and how to help
  65. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Upstream maintainers Stable APIs Stefano Rivera Python in Debian: History, Present, and how to help
  66. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Upstream maintainers Patience Stefano Rivera Python in Debian: History, Present, and how to help
  67. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging The people Inactive Distro maintainers Stefano Rivera Python in Debian: History, Present, and how to help
  68. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Inactive Distro maintainers Help Stefano Rivera Python in Debian: History, Present, and how to help
  69. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Inactive Distro maintainers Take over Stefano Rivera Python in Debian: History, Present, and how to help
  70. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Inactive Distro maintainers Request removal Stefano Rivera Python in Debian: History, Present, and how to help
  71. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Outline 1 Debian 2 Ubuntu 3 CPython in Debian 4 The people 5 Modern Debian Python Packaging Stefano Rivera Python in Debian: History, Present, and how to help
  72. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Modern Debian Python Packaging Fundamentals Stefano Rivera Python in Debian: History, Present, and how to help
  73. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Source Package Upstream source + Patches Stefano Rivera Python in Debian: History, Present, and how to help
  74. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Source Package RFC822-ish text files Stefano Rivera Python in Debian: History, Present, and how to help
  75. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Source Package Except debian/rules: Make debian/changelog Stefano Rivera Python in Debian: History, Present, and how to help
  76. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Build systems source -> binary* Stefano Rivera Python in Debian: History, Present, and how to help
  77. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Build systems historical explicit (complex) Stefano Rivera Python in Debian: History, Present, and how to help
  78. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Build systems dh Smart, Declarative Overrides Stefano Rivera Python in Debian: History, Present, and how to help
  79. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Modern Debian Python Packaging pybuild Stefano Rivera Python in Debian: History, Present, and how to help
  80. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging pybuild setup.py Stefano Rivera Python in Debian: History, Present, and how to help
  81. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging pybuild all 3 python stacks Stefano Rivera Python in Debian: History, Present, and how to help
  82. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging pybuild nose, py.test, unittest Stefano Rivera Python in Debian: History, Present, and how to help
  83. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging pybuild dh plugin Stefano Rivera Python in Debian: History, Present, and how to help
  84. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging examples unidecode Stefano Rivera Python in Debian: History, Present, and how to help
  85. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging examples python-cffi Stefano Rivera Python in Debian: History, Present, and how to help
  86. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Modern Debian Python Packaging We’re hiring Stefano Rivera Python in Debian: History, Present, and how to help
  87. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging We’re hiring http://deb.li/joindpmt Stefano Rivera Python in Debian: History, Present, and how to help
  88. Debian Ubuntu CPython in Debian The people Modern Debian Python

    Packaging Thanks! Questions? Stefano Rivera [email protected] http://tumbleweed.org.za/ Slides: Available at https://github.com/stefanor/talks Built using L ATEX Beamer Layout cribbed from Stefano Zacchiroli Copyright c 2013, Stefano Rivera License CC BY-SA 3.0 — Creative Commons Attribution-ShareAlike 3.0 Stefano Rivera Python in Debian: History, Present, and how to help