mirror of
https://github.com/weewx/weewx.git
synced 2026-04-18 16:46:56 -04:00
These are notes regarding packaging of weewx for debian systems. mwall 22feb2020 For the transition from python2 to python3, we introduce a new package python3-weewx. This contains the python3-compatible weewx4 implementation. Those who need python2 can continue with the weewx packages for as long as weewx supports python2. We must use one control file for python2 and another control file for python3, since a python2 installation differs from a python3 installation only in the shebang line of the weewx entry points. We do our own packaging, using relatively low-level debian packaging tools instead of the high level python sdist tools. Why? - WeeWX does some very non-standard things in its setup.py. It modifies the configuration file and attempts to do other things to facilitate upgrades. - WeeWX is not just another python package that is plopped into the python library tree. WeeWX prefers instead to live on its own as a standalone application, with everything in a single directory tree (or in system-specific trees such as /var/lib, /etc). WeeWX was traditionally packaged in a single deb file with this naming: weewx_x.y.z-n_all.deb As of 2020, the packaging files now generate two different deb files: weewx_x.y.z-n_all.deb python3-weewx_x.y.z-n_all.deb To work "the python way", weewx would have to be modified as follows: - setup.py would not import any weewx code - the setup.cfg behavior must be fixed - weewx library code would live in a python2 or python3 directory References: debian python policy: https://www.debian.org/doc/packaging-manuals/python-policy/ debian library style guide: https://wiki.debian.org/Python/LibraryStyleGuide?action=show&redirect=Python%2FPackaging debian pybuild: https://wiki.debian.org/Python/Pybuild