Conversation
|
just missed @2xsaiko 's comment on the issue:
sounds like a good idea, I'm not an expert at this but I think we can lock the module changes behind |
|
I would also like to explore whether or not we can use |
|
Ah, nice, I just started doing the same thing. Didn't get very far yet though -- just the by-name change below.
I would just set dovecot to continue being 2.3 for now, or set the module to use 2.3, and have it print a warning when used so people manually update to 2.4. Then in the next release cycle, 2.3 can be removed and hard error. I'm not sure if this is exactly how this is usually done, but take a look at how it was done for Kanidm for example. #357734 Please also move the package to by-name while you're at it (see dblsaiko@push-mputwrznzqyv).
#286184 is a start for that. |
|
by-name change... thanks for reminding me!
we should probably introduce a
ah thanks! The first thing that came to mind for my was the postgres module, but same idea!
completely missed this one... I'll do some experimenting to see what's possible while keeping the module backwards-compatible for 2.3! |
Right, that would be part of that. |
|
pulled in your commit & added 2.4 alongside 2.3... not 100% sold on the commit message but good enough for now both packages build on my machine, haven't checked any functionality (notably the two things mentioned in the original PR description abt the openssl patch and that one hunk) |
|
We'll also have to deal with the plugin packages because they are dovecot version dependent. Here's a proof of concept for pigeonhole: dblsaiko@push-sntmrkppzolr And a (as of right now very non working) change adding the package option back dblsaiko@push-truxwztylsmm |
|
uhhh is it preferable to have no broken commits? i.e. stuff that wouldn't eval? |
|
fixed both fts-xapian & exporter
probably gonna have to rebase all of this later, just wanted to get the code on here in case you or anyone else has a clue wrt that build failure |
f6622ba to
53b2306
Compare
I'd keep them separate, ordered after the commit for dovecot. (also it would eval, just not build, right?)
Huh, does it? Both of them built for me. I'll have to compare your branch to mine. |
Sounds good, and yeah I think you're right - it would still eval.
Had a typo in |
|
dovecot_fts_xapian gave me a build failure on 1.9... upstream released 1.9.1 to fix this, but that tried to install itself to the error in questionI just committed a horrible hack to fix that problem by modifying the Makefile with The problem is that around line 527 in echo " $(MKDIR_P) '$(DESTDIR)$(dovecot_moduledir)'"; \
$(MKDIR_P) "$(DESTDIR)$(dovecot_moduledir)" || exit 1; \
echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(dovecot_moduledir)'"; \
$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(dovecot_moduledir)"; \with
which we (nixpkgs) correctly set to so my guess is that upstream somehow borked this flag and it gets mixed up somewhere with the I want to stress that I am *not* a Make, autotools or m4 expert, this is just my two cents pinging @Julm and @symphorien as maintainers of this package, maybe you guys have a better understanding of what's going on |
Oh, oops. I saw that, didn't say anything because I didn't want to be annoying reviewing every commit you make 2 seconds after you push them if there's something wrong with one, then forgot about it when I replied. (speaking of, please squash that format commit into the parent, I just forgot to format it. my pretty alejandra-style formatting vs evil nixfmt 😔) |
|
doing a diff on |
|
Hi @Jappie3 , |
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
|
@Jappie3 Thanks for this. I'm using this successfully on macOS after fixing a |
|
thanks for testing! You mean and no, currently not ready to merge, need to do the above & fix the release notes merge conflict (26.05 instead of 25.11, the latter of which released) (but besides that I think this is ready, been running Dovecot 2.4 for over half a year) will fix this when I find time, hopefully in one of the next days :) if you're feeling adventurous, you can also try #410912 :p |
Yes.
Nice.
Since I'm using dovecot on macOS, I don't think I qualify as a tester for this. ;) |
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
This patch fixes a permission issue that occurs when saving compiled sieve scripts sourced from the nix store. Instead of reusing the read-only permission bits from the nix store, it explicitly uses `0700` for the directory in which compiled sieve scripts should be saved. Additional context: - NixOS#388463 (comment) - dovecot/pigeonhole#15
|
@Jappie3 What do you think? Are we good to go? |
Prince213
left a comment
There was a problem hiding this comment.
Please rebase against master.
| dovecotConf = | ||
| if versionAtLeast cfg.package.version "2.4" then | ||
| concatStrings [ | ||
|
|
| warnings = warnAboutExtraConfigCollisions; | ||
| warnings = | ||
| warnAboutExtraConfigCollisions | ||
| ++ optional (versionOlder cfg.package.version "2.4") '' |
There was a problem hiding this comment.
Maybe we can add a option to suppress this? Is this necessary in the first place if we already mention 2.4 in release notes?
|
|
||
| <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> | ||
|
|
||
| - `services.dovecot` now supports the Dovecot 2.4 configuration format while maintaining compatibility with Dovecot 2.3. |
There was a problem hiding this comment.
There are Nixpkgs users who use Dovecot on darwin, how about we also add an entry to Nixpkgs release notes?
| dovecotPkg = cfg.package; | ||
| pigeonHolePkg = | ||
| if lib.versionAtLeast cfg.package.version "2.4" then | ||
| pkgs.dovecot_pigeonhole_2_4 |
There was a problem hiding this comment.
Let's not use the explicitly versioned one.
| pkgs.dovecot_pigeonhole_2_4 | |
| pkgs.dovecot_pigeonhole |
| mailDriver = mkOption { | ||
| type = types.str; | ||
| default = "maildir"; | ||
| example = "maildir"; |
There was a problem hiding this comment.
Default value is actually an example so no need to repeat it.
| example = "maildir"; |
| clucene_core_2, | ||
| icu75, | ||
| libexttextcat, | ||
| openldap, |
There was a problem hiding this comment.
There used to be a withLDAP option, why is it removed?
| "--with-ldap" | ||
| "--with-ssl=openssl" | ||
| "--with-zlib" | ||
| "--with-bzlib" | ||
| "--with-lz4" | ||
| "--with-ldap" |
There was a problem hiding this comment.
Why two instances of --with-ldap here?
| maintainers = with lib.maintainers; [ | ||
| fpletz | ||
| ]; | ||
| teams = [ lib.teams.helsinki-systems ]; |
| ]; | ||
| mainProgram = "dovecot"; | ||
| maintainers = with lib.maintainers; [ | ||
| fpletz |
There was a problem hiding this comment.
Do we need this separate package? If not we can put these lines in all-packages.nix, or override dovecot_exporter when needed.
There was a problem hiding this comment.
For problems with this callPackages pattern, please see previous discussions at #449760 (comment).
|
Working on a "port" at https://github.com/Prince213/nixpkgs/tree/push-ulukpzwkptqu in case rebasing is complicated. |
This PR updates the Dovecot version to 2.4. Version 2.3 will be kept around for compatibility, as 2.4 has quite a few breaking changes (https://doc.dovecot.org/2.4.0/installation/upgrade/2.3-to-2.4.html). Updates for all Dovecot plugins present in nixpkgs are also included.
Besides that, the NixOS module for Dovecot is also updated to support the changes to the config format.
Resolves #388262
see #410912 for a followup regarding an RFC42-style
settingsoptionThings done
nix.conf? (See Nix manual)sandbox = relaxedsandbox = truenix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)Add a 👍 reaction to pull requests you find important.