We already had python3Packages.mailman, but that's only really usable
as a library. The only other option was to create a whole Python
environment, which was undesirable to install as a system-wide
package.
This replaces all Mailman secrets with ones that are generated the
first time the service is run. This replaces the hyperkittyApiKey
option, which would lead to a secret in the world-readable store.
Even worse were the secrets hard-coded into mailman-web, which are not
just world-readable, but identical for all users!
services.mailman.hyperkittyApiKey has been removed, and so can no
longer be used to determine whether to enable Hyperkitty. In its
place, there is a new option, services.mailman.hyperkitty.enable. For
consistency, services.mailman.hyperkittyBaseUrl has been renamed to
services.mailman.hyperkitty.baseUrl.
Using a custom path in the Nix store meant that users of the module
couldn't add their own config files, which is a desirable feature. I
don't think avoiding /etc buys us anything.
The previously propagated build inputs are optional, and so are
included in checkInputs so the tests can run, but not propagated so
they aren't included if unneeded.
This fixes some two-digit year rounding bugs that started triggering
because 2020 is closer to 2070 than 1970. Apparently two digits years
are still a thing.
highlight's Perl bindings are currently disabled on Darwin, but I
didn't make the dependency here conditional so that if that is ever
fixed, this function won't need to be updated. p-i is smart enough to
disable the test for highlight if it can't find the Perl module.
Update to latest version & updated the patch file to match with the
lastest verison.
Fixes the following security issue:
* CVE-2019-19722: Mails with group addresses in From or To fields
caused crash in push notification drivers.
Communication between spamc and spamd would fail with messages about
addresses being too long:
error: Bad arg length for Socket::unpack_sockaddr_in, length is 28,
should be 16
By adding Socket6 as a buildInput, spamd is now able to process emails
without choking on IPv6 addresses.
The substitition in smtpd/parse.y isn't necessary anymore.
The hardcoded /usr/libexec/ has been replaced by a PATH_LIBEXEC #define,
which will be set properly by the build system.
There ver very many conflicts, basically all due to
name -> pname+version. Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job. There might be some fallback to these
conflicts, but I believe it should be minimal.
Hydra nixpkgs: ?compare=1538299
gnupg is gnupg 2.2. gnupg1 is also gnupg 2.2, just with a few extra
symlinks in the bin directory. None of these packages need those
symlinks, and it's confusing for them to say they're depending on
"gnupg1", so switch their dep to plain "gnupg".
Whenever we create scripts that are installed to $out, we must use runtimeShell
in order to get the shell that can be executed on the machine we create the
package for. This is relevant for cross-compiling. The only use case for
stdenv.shell are scripts that are executed as part of the build system.
Usages in checkPhase are borderline however to decrease the likelyhood
of people copying the wrong examples, I decided to use runtimeShell as well.
Rationale
---------
Currently, tests are hard to discover. For instance, someone updating
`dovecot` might not notice that the interaction of `dovecot` with
`opensmtpd` is handled in the `opensmtpd.nix` test.
And even for someone updating `opensmtpd`, it requires manual work to go
check in `nixos/tests` whether there is actually a test, especially
given not so many packages in `nixpkgs` have tests and this is thus most
of the time useless.
Finally, for the reviewer, it is much easier to check that the “Tested
via one or more NixOS test(s)” has been checked if the file modified
already includes the list of relevant tests.
Implementation
--------------
Currently, this commit only adds the metadata in the package. Each
element of the `meta.tests` attribute is a derivation that, when it
builds successfully, means the test has passed (ie. following the same
convention as NixOS tests).
Future Work
-----------
In the future, the tools could be made aware of this `meta.tests`
attribute, and for instance a `--with-tests` could be added to
`nix-build` so that it also builds all the tests. Or a `--without-tests`
to build without all the tests. @Profpatsch described in his NixCon talk
such systems.
Another thing that would help in the future would be the possibility to
reasonably easily have cross-derivation nix tests without the whole
NixOS VM stack. @7c6f434c already proposed such a system.
This RFC currently handles none of these concerns. Only the addition of
`meta.tests` as metadata to be used by maintainers to remember to run
relevant tests.
Ldap authentication is fairly common in any reasonable sized mail setup.
Our dovecot also comes with ldap support.
Other distributions like debian, archlinux, ubuntu and fedora also
provide ldap support along with there postfix server.
It might be also useful to have database support, but this is a different pull request.
Dovecot has its own SASL implementation,
but needs Cyrus SASL's headers to bind to an LDAP server using SASL.
This is useful to avoid the need to manage a dnpass= in dovecot-ldap.conf
by using the Unix socket to authenticate.
This is done with sasl_mech=EXTERNAL in dovecot-ldap.conf, and some olcAccess: with
by dn="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
in the slapd's cn=config for the LDAP database queried by dovecot/auth (which runs as root).
Since years I'm not maintaining anything of the list below other
than some updates when I needed them for some reason. Other people
is doing that maintenance on my behalf so I better take me out but
for very few packages. Finally!
* treewide: http -> https sources
This updates the source urls of all top-level packages from http to
https where possible.
* buildtorrent: fix url and tab -> spaces
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/exim/versions.
These checks were done:
- built on NixOS
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exipick --help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exiqsumm -h’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exiqsumm --help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exiqsumm help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exigrep -h’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exigrep --help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exigrep help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exiqgrep -h’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exiqgrep help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exinext -h’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exinext --help’ got 0 exit code
- ran ‘/nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91/bin/exinext help’ got 0 exit code
- found 4.91 with grep in /nix/store/8dn8r8szcjvgkaanp35ml2ms31r92jrd-exim-4.91
- directory tree listing: https://gist.github.com/a7b6b20ca1752c6525abd8e6d0cef9cc
Semi-automatic update generated by https://github.com/ryantm/nix-update tools.
This update was made based on information from https://repology.org/metapackage/dovecot/versions.
These checks were done:
- built on NixOS
- ran `/nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1/bin/dovecot --help` got 0 exit code
- ran `/nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1/bin/dovecot --version` and found version 2.3.1
- found 2.3.1 with grep in /nix/store/c20ip7wyymd39l7zisx38ky3bxp1sybv-dovecot-2.3.1
- directory tree listing: https://gist.github.com/6d90467ee7649d7efc0a48eeacfc42c8
Semi-automatic update. These checks were done:
- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 3.3.0 with grep in /nix/store/8h882s0l773xiwgwf6flkig4yskagi3b-postfix-3.3.0
- found 3.3.0 in filename of file in /nix/store/8h882s0l773xiwgwf6flkig4yskagi3b-postfix-3.3.0
Semi-automatic update. These checks were performed:
- built on NixOS
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd -h` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd --help` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd -v` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd --version` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd -h` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamd --help` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamc --help` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamc help` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamc --help` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm -h` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm --help` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm help` got 0 exit code
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm -v` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm --version` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm -h` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm --help` and found version 1.6.6
- ran `/nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6/bin/rspamadm help` and found version 1.6.6
- found 1.6.6 with grep in /nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6
- found 1.6.6 in filename of file in /nix/store/9amnrkqxnjyf4fj463dglp0cvkf5wh52-rspamd-1.6.6
cc "@avnik @fpletz"
Semi-automatic update. These checks were performed:
- built on NixOS
- ran `/nix/store/axvpmnbhi27rca2476cj66mv1xk92w2f-postgrey-1.37/bin/postgrey --version` and found version 1.37
- found 1.37 with grep in /nix/store/axvpmnbhi27rca2476cj66mv1xk92w2f-postgrey-1.37
- found 1.37 in filename of file in /nix/store/axvpmnbhi27rca2476cj66mv1xk92w2f-postgrey-1.37
Semi-automatic update. These checks were performed:
- built on NixOS
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-send -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-send --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-send -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-send -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-send --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-receive -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-receive --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-receive -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-receive -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-receive --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-process -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-process --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-process -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-process -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-process --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-sub -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-sub --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-sub -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-sub -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-sub --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-unsub -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-unsub --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-unsub -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-unsub -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-unsub --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-bounce -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-bounce --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-bounce -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-bounce -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-bounce --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-maintd -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-maintd --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-maintd -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-maintd -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-maintd --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-list -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-list --help` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-list -V` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-list -h` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-list --help` and found version 1.3.0
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-make-ml -h` got 0 exit code
- ran `/nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0/bin/mlmmj-make-ml -h` and found version 1.3.0
- found 1.3.0 with grep in /nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0
- found 1.3.0 in filename of file in /nix/store/a9ndyb3f81ssfkxhiyls76nqcba3rlnn-mlmmj-1.3.0
cc "@edwtjo"