aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/password-utils.scm
Commit message (Collapse)AuthorAge
* gnu: python-bcrypt: Update to 3.1.4.Tobias Geerinckx-Rice2018-03-17
| | | | * gnu/packages/password-utils.scm (python-bcrypt): Update to 3.1.4.
* gnu: yapet: Update to 1.1.Tobias Geerinckx-Rice2018-03-08
| | | | * gnu/packages/password-utils.scm (yapet): Update to 1.1.
* gnu: keepassxc: Update to 2.3.1.Tobias Geerinckx-Rice2018-03-08
| | | | * gnu/packages/password-utils.scm (keepassxc): Update to 2.3.1.
* gnu: Add sala.Konrad Hinsen2018-02-28
| | | | | | * gnu/packages/password-utils.scm (sala): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: keepassxc: Enable various plugins.Efraim Flashner2018-02-28
| | | | | | * gnu/packages/password-utils.scm (keepassxc)[arguments]: Add configure-flags to enable favicons, browser integration and ssh-agent. [inputs]: Add curl, libsodium.
* gnu: keepassxc: Update to 2.3.0.Efraim Flashner2018-02-28
| | | | * gnu/packages/password-utils.scm (keepassxc): Update to 2.3.0.
* gnu: assword: Update to 0.11.Tobias Geerinckx-Rice2018-02-26
| | | | * gnu/packages/password-utils.scm (assword): Update to 0.11.
* gnu: password-store: Fix compatibility with GnuPG 2.2.5.Clément Lassieur2018-02-24
| | | | | | * gnu/packages/patches/password-store-gnupg-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/password-utils.scm (password-store)[source]: Use it.
* gnu: argon2: Update to 20171227.Marius Bakke2018-02-18
| | | | | | | * gnu/packages/password-utils.scm (argon2): Update to 20171227. [arguments]: Add OPTTEST=1 to #:make-flags to prevent "-march=native". Remove custom install phase. Add 'patch-Makefile' phase. [license]: Add ASL2.0.
* Merge branch 'master' into core-updatesMark H Weaver2018-02-09
|\
| * gnu: pwgen: Update to 2.08.Kei Kebreau2018-02-08
| | | | | | | | * gnu/packages/password-utils.scm (pwgen): Update to 2.08.
* | Merge branch 'master' into core-updatesLeo Famulari2017-12-21
|\|
| * gnu: keepassxc: Update to 2.2.4.Leo Famulari2017-12-19
| | | | | | | | * gnu/packages/password-utils.scm (keepassxc): Update to 2.2.4.
* | gnu: Remove redundant cmake libdir configure flags.Efraim Flashner2017-12-19
|/ | | | | | | | | | | | | | | | * gnu/packages/bioinformatics.scm (imp)[arguments]: Remove CMAKE_INSTALL_LIBDIR flag. * gnu/packages/calendar.scm (libical): Same. * gnu/packages/engineering.scm (kicad): Same. * gnu/packages/games.scm (openrct2, mgba): Same. * gnu/packages/gl.scm (virtualgl): Same. * gnu/packages/image-processing.scm (mia): Same. * gnu/packages/linux.scm (rdma-core): Same. * gnu/packages/machine-learning.scm (dlib): Same. * gnu/packages/maths.scm (lapack, superlu, z3): Same. * gnu/packages/password-utils.scm (keepassxc): Same. * gnu/packages/photo.scm (darktable): Same. * gnu/packages/rdesktop.scm (freerdp): Same.
* gnu: keepassxc: Always install libraries to /lib.Rutger Helling2017-12-08
| | | | | | | * gnu/packages/password-utils.scm (keepassxc)[arguments]: Add #:configure-flags argument to force installing libraries to /lib. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: keepassxc: Update to 2.2.2.Manolis Ragkousis2017-12-02
| | | | * password-utils.scm (keepassxc): Update to 2.2.2.
* gnu: Move testing packages from python.scm to check.scm.Ricardo Wurmus2017-11-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/packages/python.scm (python-behave-web-api, python2-behave-web-api, python-mock, python2-mock, python-mock-2, python-nose, python2-nose, python-nose2, python2-nose2, python-unittest2, python2-unittest2, python-pytest, python2-pytest, python-pytest-3.0, python2-pytest-3.0, python-pytest-cov, python2-pytest-cov, python-pytest-runner, python2-pytest-runner, python-pytest-mock, python2-pytest-mock, python-pytest-xdist, python2-pytest-xdist, python-scripttest, python2-scripttest, python-testtools, python2-testtools, python-testscenarios, python2-testscenarios, python-testresources, python2-testresources, python-subunit, python2-subunit, python-fixtures, python2-fixtures, python-testrepository, python2-testrepository, python-coverage, python2-coverage, python-cov-core, python2-cov-core, python-testpath, python2-testpath, python-testlib, python2-testlib, python-pytest-cache, python2-pytest-cache, python-pytest-localserver, python-pytest-xprocess, python-pytest-subtesthack, python2-pytest-subtesthack, python-hypothesis, python2-hypothesis, python-lit, python2-lit, python-pytest-pep8, python2-pytest-pep8, python-pytest-flakes, python2-pytest-flakes, python2-coverage-test-runner, python-pylint, python2-pylint, python-paramunittest, python2-python-paramunittest, python-pytest-warnings, python2-pytest-warnings, python-pytest-capturelog, python2-pytest-capturelog, python-pytest-catchlog, python2-pytest-catchlog, python-nosexcover, python2-nosexcover, python-discover, python2-discover, behave, python-rednose, python2-rednose, python-nose-randomly, python2-nose-randomly, python-nose-timer, python2-nose-timer): Move from here... * gnu/packages/check.scm: ...to here. * gnu/packages/admin.scm, gnu/packages/android.scm, gnu/packages/backup.scm, gnu/packages/bioinformatics.scm, gnu/packages/calendar.scm, gnu/packages/dav.scm, gnu/packages/django.scm, gnu/packages/freedesktop.scm, gnu/packages/haskell.scm, gnu/packages/image.scm, gnu/packages/irc.scm, gnu/packages/jrnl.scm, gnu/packages/ldc.scm, gnu/packages/libffi.scm, gnu/packages/mail.scm, gnu/packages/mpd.scm, gnu/packages/openstack.scm, gnu/packages/package-management.scm, gnu/packages/password-utils.scm, gnu/packages/python-crypto.scm, gnu/packages/python-web.scm, gnu/packages/rdf.scm, gnu/packages/statistics.scm, gnu/packages/storage.scm, gnu/packages/time.scm, gnu/packages/tls.scm, gnu/packages/tor.scm, gnu/packages/tryton.scm: Adjust accordingly.
* gnu: password-store: Install passmenu script.Jelle Licht2017-11-10
| | | | | | | * gnu/packages/password-utils (password-store) [inputs]: Add dmenu and xdotool. [arguments]<#:phases>['patch-passmenu-path']: New phase. [arguments]<#:phases>['install-passmenu']: New phase.
* gnu: keepassxc: Update to 2.2.1.Nicolas Goaziou2017-10-22
| | | | * gnu/packages/password-utils.scm (keepassxc): Update to 2.2.1.
* gnu: python-cffi: Move to libffi.scmEfraim Flashner2017-10-15
| | | | | | | * gnu/packages/python.scm (python-cffi): Move from here ... * gnu/packages/libffi.scm: ... to here. * gnu/packages/crypto.scm, gnu/packages/password-utils.scm: Adjust module imports.
* gnu: Add John the Ripper.Eric Bavier2017-09-13
| | | | * gnu/packages/password-utils.scm (john-the-ripper-jumbo): New variable.
* gnu: keepassx: Superseded by keepassxc.Efraim Flashner2017-08-06
| | | | * gnu/packages/password-utils.scm (keepassx)[properties]: New field.
* gnu: Add keepassxc.Efraim Flashner2017-08-06
| | | | * gnu/packages/password-utils.scm (keepassxc): New variable.
* gnu: Add pass-git-helper.Jelle Licht2017-06-26
| | | | | | * gnu/packages/password-utils.scm (pass-git-helper): New variable. Signed-off-by: Arun Isaac <arunisaac@systemreboot.net>
* gnu: cracklib: Fix up description.Tobias Geerinckx-Rice2017-06-21
| | | | | * gnu/packages/password-utils.scm (cracklib)[description]: Fix typos, add mark-up, and drop unclear reference to the ancient ‘Crack 5’ tool.
* gnu: libpwquality: Update to 1.4.0.Tobias Geerinckx-Rice2017-06-21
| | | | * gnu/packages/password-utils.scm (libpwquality): Update to 1.4.0.
* gnu: libpwquality: Update source and home-page URLs.Ethan R. Jones2017-05-10
| | | | | | | * gnu/packages/password-utils.scm (libpwquality)[source]: Update URL. [home-page]: Update URL. Signed-off-by: Leo Famulari <leo@famulari.name>
* gnu: password-store: Update to 1.7.1.Arun Isaac2017-04-14
| | | | | | | * gnu/packages/password-utils.scm (password-store): Update to 1.7.1. [source]: Remove "password-store-gnupg-compat.patch". * gnu/packages/patches/password-store-gnupg-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Remove it.
* gnu: shroud: Use HTTPS source URL.Leo Famulari2017-03-28
| | | | * gnu/packages/password-utils.scm (shroud)[source]: Use HTTPS URL.
* gnu: shroud: Fix home page URL.Arun Isaac2017-03-28
| | | | | | * gnu/packages/password-utils.scm (shroud)[home-page]: Update URL. Signed-off-by: Leo Famulari <leo@famulari.name>
* gnu: password-store: Fix compatibility with GnuPG 2.1.19.Clément Lassieur2017-03-16
| | | | | | | | * gnu/packages/patches/password-store-gnupg-compat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/password-utils.scm (password-store)[source]: Use it. Signed-off-by: Clément Lassieur <clement@lassieur.org>
* gnu: password-store: Update to 1.7.Marius Bakke2017-03-02
| | | | | | * gnu/packages/password-utils.scm (password-store): Update to 1.7. [inputs]: Drop PWGEN. Add QRENCODE. [arguments]: Adjust wrapper accordingly.
* gnu: assword: Wrap with the GObject typelib of GTK+.宋文武2017-01-28
| | | | | | | Fixes <https://debbugs.gnu.org/25457>. * gnu/packages/password-utils.scm (assword)[inputs]: Add 'gtk+'. [arguments]: Add 'wrap-assword' phase.
* gnu: password-store: Install bash completions.Marius Bakke2017-01-17
| | | | | * gnu/packages/password-utils.scm (password-store)[arguments]: Add 'install-shell-completions' phase.
* gnu: cracklib: Fix buffer overflow.Leo Famulari2017-01-10
| | | | | | * gnu/packages/patches/cracklib-fix-buffer-overflow.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/password-utils.scm (cracklib)[source]: Use it.
* gnu: assword: Update to 0.10.Leo Famulari2017-01-03
| | | | | | | | | * gnu/packages/password-utils.scm (assword): Update to 0.10. [arguments]: Use Python 3 instead of Python 2. [inputs]: Use Python 3 variants of inputs. Replace python2-pygpgme with python-gpg. Remove python2-pygtk. Add python-pygobject. [native-inputs]: Replace help2man with txt2man. [arguments]: Remove PYTHONPATH from 'Makefile' in the 'manpage' phase.
* gnu: argon2: Update to 20161029.Tobias Geerinckx-Rice2016-12-20
| | | | * gnu/packages/password-utils.scm (argon2): Update to 20161029.
* gnu: password-store: Don't run tests in parallel.Christopher Baines2016-12-10
| | | | | | | * gnu/packages/password-utils.scm (password-store): Don't run tests in parallel, as it causes them to hang and the build to timeout. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* gnu: password-store: Delete build phaseChristopher Baines2016-12-10
| | | | | | | * gnu/packages/password-utils.scm (password-store): Remove the build phase, as it is unused. Signed-off-by: Marius Bakke <mbakke@fastmail.com>
* gnu: Fix python inputs, part 1: all inputs become propagated-inputs.Hartmut Goebel2016-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the changes where all [inputs] are changed to [propagated-inputs] * gnu/packages/python.scm (python-passlib, python-paramiko, python-ccm, python-babel, python-keyring python-pandas, python-tzlocal, python-parse-type, python-nose2, python-pytest, python-pytest-mock, python-pytest-xdist, python-scripttest, python-testtools, python-pytest-cov, python-testscenarios, python-pbr-0.11, python-oauthlib, python-jinja2, python-sphinx, python-tzlocal, python-bugz, python2-pytest-mock, behave, pelican, sqlalchemy-utils, python-pygridtools, python-urwidtrees, python-tornado, python2-tornado, python-debian, python-execnet, python-pytest-cache, pytest-localserver, python-clint, python-rply, python-hy, python-rauth, python-rsa, python-celery, python-vobject, s3cmd, python-prompt-toolkit, ptpython, python-requests-oauthlib, python-stem, python-binaryornot, python2-binaryornot, python-nltk, python-pymongo, python-schematics, python-url, python2-url, python-freezegun, python-glances, python-graphql-core, python-graphql-relay, python-graphene, python-nautilus, python-s3transfer): All [inputs] become [propagated-inputs]. * gnu/packages/bioinformatics.scm (python-biopython): Likewise. * gnu/packages/django.scm (pytest-django): Likewise. * gnu/packages/mail.scm (python-mailmanclient): Likewise. * gnu/packages/password-utils.scm (python-bcrypt): Likewise. * gnu/packages/propbuf.scm (python-protobuf): Likewise. * gnu/packages/rdf.scm (python-rdflib): Likewise. SQACH all become propagated
* gnu: Remove python-setuptools and python2-setuptools from inputs (part 4a)Hartmut Goebel2016-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the changes for all modules beside python.scm where setuptools are used in an inherited package and removing this input also removes the need for inheriting the package. This is the case if adding setuptools in the inherited package was the only change. Change this to not inherit and remove the new needless call to "strip-python2-variant (if applicable). * gnu/packages/bioinformatics.scm (python-biopython, python2-biopython, python-twobitreader, python2-twobitreader, python-plastid, python2-plastid, python2-pybigwig, python2-screed, sra-tools): No longer "inherit" Python 2 packages inheriting from a Python 3 package if the sole reason for inheriting was adding python-setuptools respective python2-setuptools to [inputs], [native-inputs] or [propagated-inputs]. Remove now needless [properties] "python2-variant" where applicable. * gnu/packages/django.scm (python-pytest-django, python2-pytest-django, python-django-filter, python2-django-filter): Likewise. * gnu/packages/gnupg.scm (python2-pygpgme): Likewise. * gnu/packages/mail.scm (python-mailmanclient, python2-mailmanclient): Likewise. * gnu/packages/mpd.scm (python-msp, python2-mpd2): Likewise. * gnu/packages/music.scm (python-pylast, python2-pylast): Likewise. * gnu/packages/openstack.scm (python-requests-mock, python2-requests-mock, python2-git-review): Likewise. * gnu/packages/password-utils.scm (python2-bcrypt): Likewise. * gnu/packages/protobuf.scm (python-protobuf, python2-protobuf): Likewise. * gnu/packages/statistics.scm (python-patsy, python2-patsy): Likewise. * gnu/packages/web.scm (python2-feedparser): Likewise.
* gnu: Remove python-setuptools and python2-setuptools from inputs (part 2)Hartmut Goebel2016-11-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch contains the changes where removing setuptools from the inputs affected some code-lines beside. * gnu/packages/admin.scm (ansible): Remove all [inputs], [native-inputs] and [propagated-inputs] where python-setuptools or python2-setuptools are the sole entries. Remove python-setuptools and python2-setuptools listed on a line by its own from [inputs], [native-inputs] and [propagated-inputs]. * gnu/packages/backup.scm (duplicity): Likewise. * gnu/packages/bioinformatics.scm (bamm, python2-pybedtools, python2-bx-python, python2-dendropy, python-pysam, python2-pysam, clipper, crossmap, cutadapt, deeptools, grit, idr, python2-warpedlmm, pbtranscript-tofu, seqmagick): Likewise. * gnu/packages/docbook.scm (dblatex): Likewise. * gnu/packages/freedesktop.scm (python-pyxdg, python2-pyxdg): Likewise. * gnu/packages/lirc.scm (python2-lirc): Likewise. * gnu/packages/mp3.scm (eyed3): Likewise. * gnu/packages/nutrition.scm (gourmet): Likewise. * gnu/packages/openstack.scm (python-hacking, python2-hacking, python-os-testr, python2-os-testr, python-stevedore, python2-stevedore, python-tempest-lib, python2-tempest-lib, python-oslo.log, python2-oslo.log, python-keystoneclient, python2-keystoneclient): Likewise. * gnu/packages/password-utils.scm (assword): Likewise. * gnu/packages/python.scm (python-passlib, python2-passlib, python-babel, python2-babel, python-parse-type, python-pytest, python2-pytest, python-scripttest, python2-scripttest, python-testtools, python2-testtools, python-testscenarios, python2-testscenarios, python-subunit, python2-subunit, python-pbr-0.11, python-pbr, python2-pbr, python-testrepository, python2-testrepository, behave, python-wheel, python2-wheel, python-requests, python2-requests, python-jsonschema, python2-jsonschema, python-pyjwt, python2-pyjwt, python-virtualenv, python2-virtualenv, python-jinja2, python2-jinja2, python-joblib, python2-joblib, python-sphinx, python2-sphinx, python-feedgenerator, python2-feedgenerator, python-scikit-image, python2-scikit-image, python-redis, python2-redis, python2-fastlmm, python-numpydoc, python2-numpydoc, python-matplotlib, python2-matplotlib, python2-pysnptools, python-rpy2, python2-rpy2, python-pillow, python2-pillow, python-pycparser, python2-pycparser, python-cffi, python2-cffi, python-cairocffi, python2-cairocffi, python-drmaa, python2-drmaa, python-pathpy, python2-pathpy, python-simplegeneric, python2-simplegeneric, python-ipython, python2-ipython, python-apsw, python2-apsw, python-lxml, python2-lxml, python-networkx, python2-networkx, python-pyzmq, python2-pyzmq, python-mccabe, python2-mccabe, python-mccabe-0.2.1, python-flake8, python2-flake8, python-flake8-2.2.4, python-mistune, python2-mistune, python-ptyprocess, python2-ptyprocess, python-llfuse, python2-llfuse, python-webob, python2-webob, python-xlrd, python2-xlrd, python-tables, python2-tables, python-pip, python2-pip, python-libarchive-c, python2-libarchive-c, python-docopt, python2-docopt, python-pyrfc3339, python2-pyrfc3339, python-configobj, python2-configobj, python-clint, python2-clint, python-rply, python2-rply, python2-rpython, python-widgetsnbextension, python2-widgetsnbextension jupyter, python-jupyter-console, python2-jupyter-console, python-hy, python2-hy, python-urllib3, python2-urllib3, python-rsa, python2-rsa, python-tox, python2-tox, python2-hypothesis, python-paste, python2-paste, python-pastescript, python2-pastescript, python2-unicodecsv, python-pkgconfig, python2-pkgconfig, python2-rope, python-sqlparse, python2-sqlparse, python-gevent, python2-gevent, python-tabulate, python2-tabulate, python-arrow, python2-arrow, python-cleo, python2-cleo, python-fake-factory, python2-fake-factory, ptpython): Likewise. * gnu/packages/rdf.scm (python-rdflib, python2-rdflib): Likewise. * gnu/packages/terminals.scm (asciinema): Likewise. * gnu/packages/version-control.scm (git-annex-remote-hubic): Likewise. * gnu/packages/xdisorg.scm (arandr): Likewise.
* gnu: keepassx: Update to 2.0.3.Efraim Flashner2016-11-07
| | | | | * gnu/packages/password-utils.scm (keepassx): Update to 2.0.3. [inputs]: Add libxi.
* gnu: shroud: Wrap 'shroud' with 'GUILE_LOAD_COMPILED_PATH'.宋文武2016-10-01
| | | | * gnu/packages/password-utils.scm (shroud)[arguments]: New field.
* gnu: Add python-bcrypt.Efraim Flashner2016-09-18
| | | | * gnu/packages/password-utils.scm (python-bcrypt): New variable.
* gnu: cracklib: Fix CVE-2016-6318.Leo Famulari2016-08-17
| | | | | | * gnu/packages/patches/cracklib-CVE-2016-6318.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/password-utils.scm (cracklib)[source]: Use the patch.
* gnu: password-store: Wrap PATH.Alex Griffin2016-07-29
| | | | | | | | | * gnu/packages/password-utils.scm (password-store) [arguments]: Wrap PATH more thoroughly. [native-inputs]: Move getopt to inputs. [inputs]: Add sed. Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
* gnu: Update URLs for sourceforge.net.Leo Famulari2016-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gnu/packages/admin.scm: Update URLs pointing to sourceforge.net. * gnu/packages/audacity.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/bioinformatics.scm: Likewise. * gnu/packages/boost.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/code.scm: Likewise. * gnu/packages/compression.scm: Likewise. * gnu/packages/cups.scm: Likewise. * gnu/packages/djvu.scm: Likewise. * gnu/packages/docbook.scm: Likewise. * gnu/packages/documentation.scm: Likewise. * gnu/packages/flashing-tools.scm: Likewise. * gnu/packages/fonts.scm: Likewise. * gnu/packages/fontutils.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/ghostscript.scm: Likewise. * gnu/packages/gl.scm: Likewise. * gnu/packages/gnucash.scm: Likewise. * gnu/packages/graphviz.scm: Likewise. * gnu/packages/image.scm: Likewise. * gnu/packages/libreoffice.scm: Likewise. * gnu/packages/libusb.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/lirc.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mcrypt.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/networking.scm: Likewise. * gnu/packages/onc-rpc.scm: Likewise. * gnu/packages/password-utils.scm: Likewise. * gnu/packages/pdf.scm: Likewise. * gnu/packages/perl.scm: Likewise. * gnu/packages/photo.scm: Likewise. * gnu/packages/popt.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/rdesktop.scm: Likewise. * gnu/packages/screen.scm: Likewise. * gnu/packages/swig.scm: Likewise. * gnu/packages/tcl.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/web.scm: Likewise. * gnu/packages/wm.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xml.scm: Likewise.
* gnu: Add argon2.Lukas Gradl2016-06-20
| | | | | | * gnu/packages/password-utils.scm (argon2): New variable. Signed-off-by: Leo Famulari <leo@famulari.name>
* gnu: Add password-store.Jessica Tallon2016-03-02
| | | | | | | * gnu/packages/password-utils.scm (password-store): New variable. Co-authored-by: Andreas Enge <andreas@enge.fr> Co-authored-by: Leo Famulari <leo@famulari.name>