New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
exim: add DMARC support #93357
exim: add DMARC support #93357
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, running this in production right now
{ stdenv, fetchFromGitHub, autoreconfHook, libmilter }: | ||
|
||
stdenv.mkDerivation rec { | ||
pname = "libopendmarc"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not just a library, but also contains useful standalone programs. So, it is probably better to call this derivation opendmarc
. I propose to move it to pkgs/tools/networking/mail/opendmarc
. Then you could also add
outputs = [ "bin" "dev" "out" ];
After the src
attribute, so that e.g. exim doesn't get the headers or binaries in its closure. Or that if someone installs the binary output that they don't get the headers.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Splitting leads to a dependency cycle, because something in share/doc
in out
references stuff in bin
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's only in the documentation. So, the references could be removed, or you could make documentation a separate output:
outputs = [ "bin" "dev" "out" "doc" ];
In this case that would be the most elegant solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done. I think this will mainly be used as a library, which is why I chose development/libraries
instead of tools
. Lots of "libraries", e.g. openssl, ship tools and example binaries, but they're still in this folder.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ack on the directory. But upstream calls the project opendmarc
and not libopendmarc
, so to me opendmarc
is more appropriate as pname
and the directory name (thus development/libraries/opendmarc
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 I also changed the name of the attribute in all-packages.nix
.
74741c8
to
236116c
Compare
Thanks for making all the changes. Looks almost good to go, I just noticed that some of the opendmarc utilities need shebang patching (and possibly wrapping, I didn't check if the modules are included in the Perl distribution):
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Very nice additional feature to have in Exim 👍 .
Result of nixpkgs-review pr 93357
1
2 packages built:
- exim
- opendmarc
Motivation for this change
We're running this.
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)