Python packaging in openSUSE
Advantages against other distributions
The author installed his first Linux distribution in 2000 and his life has change drastically. He started to package for Debian, but eventually left his original career, started to work for Red Hat, switch distros, and was working with SPEC files ever since then. After 11 years with Red Hat, he switched to SUSE in 2018, and he has been the leading maintainer of Python packages for SUSE since then.
No video of the event yet, sorry!
There is a difference between the packaging Python packages for openSUSE and for other Linux distributions (the author has large experience with packaging for Fedora and some very old experience packaging for Debian). openSUSE has (primarily in /usr/lib/rpm/macros.d/macros.python_all) over 1600 lines of mainly Lua code worth of macros for simplifying the packaging process (compare with some 150 lines for Fedora).
Not only it allows our SPEC files be much more simple and unified, it also allows things which I cannot would be possible otherwise:
- building multiple binary packages from one SPEC file (currently python38, python39, and python310 in Factory, but nothing stops us from building pypy3-foo or jython-foo packages, if desired, and if anybody makes those interpreters working in Factory).
- unified testing environment for all packages (for a lot of them, it is just one line
%pyunittest discover -vor
- elimination of most platform-/interpreter-specific constructs from SPEC files makes them much more portable to new (or old) platforms.
The presentation should include detailed going through some Python SPEC file and/or diagnosing a packaging problem in vivo.