Systemd has had a single -dev binary package since ~2014, so these have
not worked for a long time.
Noted in #138 (but not the main thrust of the issue)
Fedora has no python2 package, so drop that.
Similarly, with latest Debian and Opensuse, 'apt-get install
python3-systemd' works, but 'apt-get install python-systemd' doesn't.
(Tested with
podman run -it --rm debian apt-get install python3-systemd
mock -r opensuse-tumbleweed-x86_64 --enable-network -i python3-systemd)
It also seems we never built the package in EPEL, so let's drop
RHEL/CentOS from the list.
If people need to, they can install from sources where the distro
packages are unavailable (and they shouldn't be using python2 anyway
at this point.)
Also add 'apt-get update' into the instructions because w/o that
install does not work in a pristine container.
Fixes#78.
The latest supported version of Fedora is now 24, and python3 is
supported on all current versions, so drop references to old Fedora
from the README.
Fixes#47.
* Only list Fedora 21+. Older releases are no longer supported by upstream, let alone for systemd development.
* Fedora now uses `pip` and `pip3`, not `pip-python` and `pip-python3`. By only documenting Fedora 21+, we can be consistent in the instructions.
* Use HTTPS for git (rather than HTTP).
The license was originally MIT, but when this module became part of systemd,
it was changed to LGPLv2+. All files had correct headers, so only the LICENSE
file needs updating. Take the opportunity to add classifiers to setup.py.
Allow UTF-8, and force encoding as UTF-8 if the payload is known to be
text. Under Python 3, this means that bytes payload is sent as-is, and
strings are encoded to UTF-8. Under Python 2, this means that unicode
payload is encoded to UTF-8, and the rest is sent as-is, because there
we are missing the extra information to distinguish text and binary data.
IOW, under Python 2, it is the responsibility of the called to provide
properly encoded payload, and under Python 3, there is extra hand-holding
which should help catch mistakes.
Fields which are certain to be text (MESSAGE, MESSAGE_ID, CODE_FILE,
CODE_FUNC) are text-only. The names of fields are text-only too. The
payload of other fields can be binary.
journald.send() is renamed to journald.sendv(), and a replacement
journald.send() is added. This new function has a more pythonic API,
where one positional argument is used for the message, and keyword
arguments can be used to specify other fields.
Implementing argument parsing in C would be really painful, for little
gain, so a pure-python module is added, which provides send(), which
in turn calls sendv().