From b205effddc3b00f60148193a1be4d71332c7d5ca Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Mon, 9 Feb 2026 16:12:17 +0800 Subject: [PATCH 1/8] dovecot_2_4: init at 2.4.2 Co-authored-by: Jappie3 --- pkgs/by-name/do/dovecot/2.3.nix | 18 +++++ pkgs/by-name/do/dovecot/2.4.nix | 8 +++ .../do/dovecot/{package.nix => generic.nix} | 66 +++++++++++-------- pkgs/top-level/all-packages.nix | 4 ++ 4 files changed, 70 insertions(+), 26 deletions(-) create mode 100644 pkgs/by-name/do/dovecot/2.3.nix create mode 100644 pkgs/by-name/do/dovecot/2.4.nix rename pkgs/by-name/do/dovecot/{package.nix => generic.nix} (81%) diff --git a/pkgs/by-name/do/dovecot/2.3.nix b/pkgs/by-name/do/dovecot/2.3.nix new file mode 100644 index 000000000000..3b8ad371034e --- /dev/null +++ b/pkgs/by-name/do/dovecot/2.3.nix @@ -0,0 +1,18 @@ +import ./generic.nix { + version = "2.3.21.1"; + hash = "sha256-1THBB401r6AnZbnHGhIq+o+nR8v94O0mIX68Pv0miiE="; + patches = fetchpatch: [ + # Fix loading extended modules. + ./load-extended-modules.patch + # fix openssl 3.0 compatibility + (fetchpatch { + url = "https://salsa.debian.org/debian/dovecot/-/raw/debian/1%252.3.19.1+dfsg1-2/debian/patches/Support-openssl-3.0.patch"; + hash = "sha256-PbBB1jIY3jIC8Js1NY93zkV0gISGUq7Nc67Ul5tN7sw="; + }) + (fetchpatch { + name = "dovecot-test-data-stack-drop-bogus-assertion.patch"; + url = "https://github.com/dovecot/core/commit/9f642dd868db6e7401f24e4fb4031b5bdca8aae7.patch"; + hash = "sha256-dAX80dRqOba9Fkzl11ChYJ6vqcgfkaw/o+TOQKCnnns="; + }) + ]; +} diff --git a/pkgs/by-name/do/dovecot/2.4.nix b/pkgs/by-name/do/dovecot/2.4.nix new file mode 100644 index 000000000000..388cb6101cc4 --- /dev/null +++ b/pkgs/by-name/do/dovecot/2.4.nix @@ -0,0 +1,8 @@ +import ./generic.nix { + version = "2.4.2"; + hash = "sha256-uOW0gOernPRb+3fkupTISiQ34An0HEMFrdH0mjmFLKQ="; + patches = _: [ + # Fix loading extended modules. + ./load-extended-modules.patch + ]; +} diff --git a/pkgs/by-name/do/dovecot/package.nix b/pkgs/by-name/do/dovecot/generic.nix similarity index 81% rename from pkgs/by-name/do/dovecot/package.nix rename to pkgs/by-name/do/dovecot/generic.nix index de811df59304..f57ed92c4f0c 100644 --- a/pkgs/by-name/do/dovecot/package.nix +++ b/pkgs/by-name/do/dovecot/generic.nix @@ -1,7 +1,12 @@ +{ + version, + hash, + patches, +}: { stdenv, lib, - fetchurl, + fetchzip, flex, bison, perl, @@ -32,6 +37,8 @@ libapparmor, withLDAP ? true, openldap, + withPCRE2 ? lib.strings.versionAtLeast version "2.4", + pcre2, withUnwind ? false, libunwind, # Auth modules @@ -47,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "dovecot"; - version = "2.3.21.1"; + inherit version; nativeBuildInputs = [ flex @@ -81,19 +88,26 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional (stdenv.hostPlatform.isLinux && !stdenv.hostPlatform.isDarwin) libtirpc ++ lib.optional withApparmor libapparmor ++ lib.optional withLDAP openldap + ++ lib.optional withPCRE2 pcre2 ++ lib.optional withUnwind libunwind ++ lib.optional withMySQL libmysqlclient ++ lib.optional withPgSQL libpq ++ lib.optional withSQLite sqlite ++ lib.optional withLua lua5_3; - src = fetchurl { + src = fetchzip { url = "https://dovecot.org/releases/${lib.versions.majorMinor finalAttrs.version}/dovecot-${finalAttrs.version}.tar.gz"; - hash = "sha256-LZCheMQpdhEIi/farlSSo7w9WrYyjDoDLrQl0sJJCX4="; + inherit hash; }; enableParallelBuilding = true; + postConfigure = lib.optionalString (lib.strings.versionAtLeast version "2.4") '' + substituteInPlace src/lib-regex/Makefile --replace-fail \ + "test_regex_DEPENDENCIES = libdregex.la \$(LIBPCRE_LIBS)" \ + "test_regex_DEPENDENCIES = libdregex.la" + ''; + postPatch = '' sed -i -E \ -e 's!/bin/sh\b!${stdenv.shell}!g' \ @@ -105,10 +119,20 @@ stdenv.mkDerivation (finalAttrs: { sed -i -s -E 's!\bcat\b!${coreutils}/bin/cat!g' src/lib-smtp/test-bin/*.sh patchShebangs src/config/settings-get.pl - - # DES-encrypted passwords are not supported by NixPkgs anymore - sed '/test_password_scheme("CRYPT"/d' -i src/auth/test-libpassword.c '' + + ( + let + filePath = + if lib.strings.versionAtLeast version "2.4" then + "src/lib-auth/test-password-scheme.c" + else + "src/auth/test-libpassword.c"; + in + '' + # DES-encrypted passwords are not supported by Nixpkgs anymore + sed '/test_password_scheme("CRYPT"/d' -i ${filePath} + '' + ) + lib.optionalString stdenv.hostPlatform.isLinux '' export systemdsystemunitdir=$out/etc/systemd/system ''; @@ -121,25 +145,12 @@ stdenv.mkDerivation (finalAttrs: { rm -rf $out/$(echo "$out" | cut -d "/" -f2) ''; - patches = [ - # Fix loading extended modules. - ./load-extended-modules.patch - # fix openssl 3.0 compatibility - (fetchpatch { - url = "https://salsa.debian.org/debian/dovecot/-/raw/debian/1%252.3.19.1+dfsg1-2/debian/patches/Support-openssl-3.0.patch"; - hash = "sha256-PbBB1jIY3jIC8Js1NY93zkV0gISGUq7Nc67Ul5tN7sw="; - }) - # Fix build with gcc15 - (fetchpatch { - name = "dovecot-test-data-stack-drop-bogus-assertion.patch"; - url = "https://github.com/dovecot/core/commit/9f642dd868db6e7401f24e4fb4031b5bdca8aae7.patch"; - hash = "sha256-dAX80dRqOba9Fkzl11ChYJ6vqcgfkaw/o+TOQKCnnns="; - }) - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - # fix timespec calls - ./timespec.patch - ]; + patches = + (patches fetchpatch) + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + # fix timespec calls + ./timespec.patch + ]; configureFlags = [ # It will hardcode this for /var/lib/dovecot. @@ -175,6 +186,7 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optional stdenv.hostPlatform.isLinux "--with-systemd" ++ lib.optional stdenv.hostPlatform.isDarwin "--enable-static" ++ lib.optional withLDAP "--with-ldap" + ++ lib.optional withPCRE2 "--with-pcre2" ++ lib.optional withLua "--with-lua" ++ lib.optional withMySQL "--with-mysql" ++ lib.optional withPgSQL "--with-pgsql" @@ -199,6 +211,8 @@ stdenv.mkDerivation (finalAttrs: { das_j fpletz helsinki-Jo + jappie3 + prince213 ]; platforms = lib.platforms.unix; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 32ff1d1662c4..1d82bd0084a5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8098,6 +8098,10 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; + dovecot_2_3 = callPackage ../by-name/do/dovecot/2.3.nix { }; + dovecot_2_4 = callPackage ../by-name/do/dovecot/2.4.nix { }; + dovecot = dovecot_2_4; + inherit (callPackages ../servers/firebird { }) firebird_4 firebird_3 From 12884494da12b3786ffb42d29ec074fc4631ba8a Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Mon, 9 Feb 2026 17:18:23 +0800 Subject: [PATCH 2/8] dovecot_pigeonhole_2_4: init at 2.4.2 Co-authored-by: Jappie3 --- pkgs/by-name/do/dovecot/generic.nix | 10 +++++--- pkgs/by-name/do/dovecot_pigeonhole/0.5.nix | 10 ++++++++ pkgs/by-name/do/dovecot_pigeonhole/2.4.nix | 17 +++++++++++++ .../{package.nix => generic.nix} | 24 +++++++++++++++---- pkgs/top-level/all-packages.nix | 10 +++++++- 5 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 pkgs/by-name/do/dovecot_pigeonhole/0.5.nix create mode 100644 pkgs/by-name/do/dovecot_pigeonhole/2.4.nix rename pkgs/by-name/do/dovecot_pigeonhole/{package.nix => generic.nix} (79%) diff --git a/pkgs/by-name/do/dovecot/generic.nix b/pkgs/by-name/do/dovecot/generic.nix index f57ed92c4f0c..505e9e893de2 100644 --- a/pkgs/by-name/do/dovecot/generic.nix +++ b/pkgs/by-name/do/dovecot/generic.nix @@ -33,6 +33,7 @@ fetchpatch, rpcsvc-proto, libtirpc, + dovecot_pigeonhole, withApparmor ? false, libapparmor, withLDAP ? true, @@ -216,8 +217,11 @@ stdenv.mkDerivation (finalAttrs: { ]; platforms = lib.platforms.unix; }; - passthru.tests = { - opensmtpd-interaction = nixosTests.opensmtpd; - inherit (nixosTests) dovecot; + passthru = { + inherit dovecot_pigeonhole; + tests = { + opensmtpd-interaction = nixosTests.opensmtpd; + inherit (nixosTests) dovecot; + }; }; }) diff --git a/pkgs/by-name/do/dovecot_pigeonhole/0.5.nix b/pkgs/by-name/do/dovecot_pigeonhole/0.5.nix new file mode 100644 index 000000000000..4de2e7419269 --- /dev/null +++ b/pkgs/by-name/do/dovecot_pigeonhole/0.5.nix @@ -0,0 +1,10 @@ +import ./generic.nix { + version = "0.5.21.1"; + url = + { + version, + dovecotMajorMinor, + }: + "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-${dovecotMajorMinor}-pigeonhole-${version}.tar.gz"; + hash = "sha256-andOWZmgWYIPATEk0V+mHmReL+quG81azwPkBMoo9OE="; +} diff --git a/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix b/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix new file mode 100644 index 000000000000..76e88ca921f7 --- /dev/null +++ b/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix @@ -0,0 +1,17 @@ +import ./generic.nix { + version = "2.4.2"; + url = + { + version, + dovecotMajorMinor, + }: + "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-pigeonhole-${version}.tar.gz"; + hash = "sha256-nXiBii9LGe6VkGKkUBpvlntuvkQbqhAOqeSwwJb/ghE="; + patches = fetchpatch: [ + # https://github.com/NixOS/nixpkgs/pull/388463#issuecomment-3066016707 + (fetchpatch { + url = "https://github.com/dovecot/pigeonhole/commit/517d74aa1d98b853b72608ce722bc58009c0f4a9.patch"; + hash = "sha256-BLBz9ZhOGEIIitnXG0uM6bZBRNnQBy4K2IJlh1+Un50="; + }) + ]; +} diff --git a/pkgs/by-name/do/dovecot_pigeonhole/package.nix b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix similarity index 79% rename from pkgs/by-name/do/dovecot_pigeonhole/package.nix rename to pkgs/by-name/do/dovecot_pigeonhole/generic.nix index 90d50c6d5d20..430e5ba477fd 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/package.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix @@ -1,7 +1,14 @@ +{ + version, + url, + hash, + patches ? _: [ ], +}: { lib, stdenv, - fetchurl, + fetchpatch, + fetchzip, dovecot, openssl, }: @@ -10,13 +17,18 @@ let in stdenv.mkDerivation (finalAttrs: { pname = "dovecot-pigeonhole"; - version = "0.5.21.1"; + inherit version; - src = fetchurl { - url = "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-${dovecotMajorMinor}-pigeonhole-${finalAttrs.version}.tar.gz"; - hash = "sha256-A3fbKEtiByPeBgQxEV+y53keHfQyFBGvcYIB1pJcRpI="; + src = fetchzip { + url = url { + inherit (finalAttrs) version; + inherit dovecotMajorMinor; + }; + inherit hash; }; + patches = patches fetchpatch; + buildInputs = [ dovecot openssl @@ -46,6 +58,8 @@ stdenv.mkDerivation (finalAttrs: { maintainers = with lib.maintainers; [ das_j helsinki-Jo + jappie3 + prince213 ]; platforms = lib.platforms.unix; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d82bd0084a5..c8372b619dde 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8098,10 +8098,18 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; - dovecot_2_3 = callPackage ../by-name/do/dovecot/2.3.nix { }; + dovecot_2_3 = callPackage ../by-name/do/dovecot/2.3.nix { + dovecot_pigeonhole = dovecot_pigeonhole_0_5; + }; dovecot_2_4 = callPackage ../by-name/do/dovecot/2.4.nix { }; dovecot = dovecot_2_4; + dovecot_pigeonhole_0_5 = callPackage ../by-name/do/dovecot_pigeonhole/0.5.nix { + dovecot = dovecot_2_3; + }; + dovecot_pigeonhole_2_4 = callPackage ../by-name/do/dovecot_pigeonhole/2.4.nix { }; + dovecot_pigeonhole = dovecot_pigeonhole_2_4; + inherit (callPackages ../servers/firebird { }) firebird_4 firebird_3 From 2ac22603fb5935cdbed162feae564c46ad7a1b01 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Mon, 9 Feb 2026 17:47:22 +0800 Subject: [PATCH 3/8] dovecot_pigeonhole: enable LDAP by default Co-authored-by: Jappie3 --- pkgs/by-name/do/dovecot_pigeonhole/generic.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix index 430e5ba477fd..c49aa382b0b1 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix @@ -11,6 +11,9 @@ fetchzip, dovecot, openssl, + withLDAP ? true, + cyrus_sasl, + openldap, }: let dovecotMajorMinor = lib.versions.majorMinor dovecot.version; @@ -32,6 +35,10 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ dovecot openssl + ] + ++ lib.optionals withLDAP [ + cyrus_sasl + openldap ]; preConfigure = '' @@ -47,7 +54,8 @@ stdenv.mkDerivation (finalAttrs: { "--with-dovecot=${dovecot}/lib/dovecot" "--with-moduledir=${placeholder "out"}/lib/dovecot/modules" "--without-dovecot-install-dirs" - ]; + ] + ++ lib.optional withLDAP "--with-ldap"; enableParallelBuilding = true; From 5cf87fa23676462d01a07ec88fe285a78c08817c Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Mon, 9 Feb 2026 17:55:11 +0800 Subject: [PATCH 4/8] dovecot-fts-flatcurve: only build for dovecot 2.3 Co-authored-by: Jappie3 --- pkgs/by-name/do/dovecot-fts-flatcurve/package.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/do/dovecot-fts-flatcurve/package.nix b/pkgs/by-name/do/dovecot-fts-flatcurve/package.nix index 7cceb60a6fc5..857bdea41bae 100644 --- a/pkgs/by-name/do/dovecot-fts-flatcurve/package.nix +++ b/pkgs/by-name/do/dovecot-fts-flatcurve/package.nix @@ -4,7 +4,8 @@ fetchFromGitHub, autoreconfHook, pkg-config, - dovecot, + # only build for dovecot 2.3 as the package is part of dovecot since 2.4 + dovecot_2_3, xapian, }: @@ -29,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { ]; configureFlags = [ - "--with-dovecot=${dovecot}/lib/dovecot" + "--with-dovecot=${lib.getLib dovecot_2_3}/lib/dovecot" "--with-moduledir=${placeholder "out"}/lib/dovecot/modules" ]; From 7dd7ed5088f66fdc77678a5f870de478df6e1469 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Tue, 10 Feb 2026 00:26:01 +0800 Subject: [PATCH 5/8] dovecot: fix build on darwin --- pkgs/by-name/do/dovecot/generic.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/by-name/do/dovecot/generic.nix b/pkgs/by-name/do/dovecot/generic.nix index 505e9e893de2..c9fc80dc6b47 100644 --- a/pkgs/by-name/do/dovecot/generic.nix +++ b/pkgs/by-name/do/dovecot/generic.nix @@ -103,6 +103,8 @@ stdenv.mkDerivation (finalAttrs: { enableParallelBuilding = true; + env.NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin "-liconv"; + postConfigure = lib.optionalString (lib.strings.versionAtLeast version "2.4") '' substituteInPlace src/lib-regex/Makefile --replace-fail \ "test_regex_DEPENDENCIES = libdregex.la \$(LIBPCRE_LIBS)" \ @@ -138,6 +140,10 @@ stdenv.mkDerivation (finalAttrs: { export systemdsystemunitdir=$out/etc/systemd/system ''; + preBuild = lib.optionalString (lib.strings.versionOlder version "2.4" && stdenv.isDarwin) '' + export NIX_LDFLAGS="$NIX_LDFLAGS -undefined dynamic_lookup" + ''; + # We need this for sysconfdir, see remark below. installFlags = [ "DESTDIR=$(out)" ]; From 40446eb2fab734d7a0a8523b647e242694bff728 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Tue, 10 Feb 2026 01:20:23 +0800 Subject: [PATCH 6/8] dovecot_pigeonhole: fix build on darwin --- pkgs/by-name/do/dovecot_pigeonhole/generic.nix | 16 +++++++++++++++- .../do/dovecot_pigeonhole/max_lookup_size.patch | 11 +++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 pkgs/by-name/do/dovecot_pigeonhole/max_lookup_size.patch diff --git a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix index c49aa382b0b1..f3e643bf4188 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix @@ -11,12 +11,15 @@ fetchzip, dovecot, openssl, + libstemmer, + perl, withLDAP ? true, cyrus_sasl, openldap, }: let dovecotMajorMinor = lib.versions.majorMinor dovecot.version; + isCurrentOnDarwin = lib.strings.versionAtLeast version "2.4" && stdenv.hostPlatform.isDarwin; in stdenv.mkDerivation (finalAttrs: { pname = "dovecot-pigeonhole"; @@ -30,12 +33,19 @@ stdenv.mkDerivation (finalAttrs: { inherit hash; }; - patches = patches fetchpatch; + patches = patches fetchpatch ++ lib.optional isCurrentOnDarwin ./max_lookup_size.patch; + + postPatch = lib.optionalString isCurrentOnDarwin '' + patchShebangs src/plugins/settings/settings-get.pl + ''; + + nativeBuildInputs = lib.optional isCurrentOnDarwin perl; buildInputs = [ dovecot openssl ] + ++ lib.optional isCurrentOnDarwin libstemmer ++ lib.optionals withLDAP [ cyrus_sasl openldap @@ -57,6 +67,10 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optional withLDAP "--with-ldap"; + preBuild = lib.optionalString (lib.strings.versionOlder version "2.4" && stdenv.isDarwin) '' + export NIX_LDFLAGS="$NIX_LDFLAGS -undefined dynamic_lookup" + ''; + enableParallelBuilding = true; meta = { diff --git a/pkgs/by-name/do/dovecot_pigeonhole/max_lookup_size.patch b/pkgs/by-name/do/dovecot_pigeonhole/max_lookup_size.patch new file mode 100644 index 000000000000..e1168a8f400c --- /dev/null +++ b/pkgs/by-name/do/dovecot_pigeonhole/max_lookup_size.patch @@ -0,0 +1,11 @@ +--- a/src/lib-sieve/plugins/extlists/ext-extlists-settings.h ++++ b/src/lib-sieve/plugins/extlists/ext-extlists-settings.h +@@ -12,7 +12,7 @@ + + const char *name; + /* Maximum size of lookup value */ +- size_t max_lookup_size; ++ uoff_t max_lookup_size; + + struct { + const char *name; From 42cc3e0d54a21f7e183e9fe556291c237b0df774 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Wed, 18 Mar 2026 13:18:42 +0800 Subject: [PATCH 7/8] dovecot{,_pigeonhole}_2_3: rename to package.nix --- pkgs/by-name/do/dovecot/generic.nix | 3 ++- pkgs/by-name/do/dovecot/{2.3.nix => package.nix} | 0 pkgs/by-name/do/dovecot_pigeonhole/generic.nix | 3 ++- .../do/dovecot_pigeonhole/{0.5.nix => package.nix} | 0 pkgs/top-level/all-packages.nix | 14 ++++++-------- 5 files changed, 10 insertions(+), 10 deletions(-) rename pkgs/by-name/do/dovecot/{2.3.nix => package.nix} (100%) rename pkgs/by-name/do/dovecot_pigeonhole/{0.5.nix => package.nix} (100%) diff --git a/pkgs/by-name/do/dovecot/generic.nix b/pkgs/by-name/do/dovecot/generic.nix index c9fc80dc6b47..6bdba0038bc6 100644 --- a/pkgs/by-name/do/dovecot/generic.nix +++ b/pkgs/by-name/do/dovecot/generic.nix @@ -33,7 +33,8 @@ fetchpatch, rpcsvc-proto, libtirpc, - dovecot_pigeonhole, + dovecot_pigeonhole_0_5, + dovecot_pigeonhole ? dovecot_pigeonhole_0_5, withApparmor ? false, libapparmor, withLDAP ? true, diff --git a/pkgs/by-name/do/dovecot/2.3.nix b/pkgs/by-name/do/dovecot/package.nix similarity index 100% rename from pkgs/by-name/do/dovecot/2.3.nix rename to pkgs/by-name/do/dovecot/package.nix diff --git a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix index f3e643bf4188..4a50465af72e 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix @@ -9,7 +9,8 @@ stdenv, fetchpatch, fetchzip, - dovecot, + dovecot_2_3, + dovecot ? dovecot_2_3, openssl, libstemmer, perl, diff --git a/pkgs/by-name/do/dovecot_pigeonhole/0.5.nix b/pkgs/by-name/do/dovecot_pigeonhole/package.nix similarity index 100% rename from pkgs/by-name/do/dovecot_pigeonhole/0.5.nix rename to pkgs/by-name/do/dovecot_pigeonhole/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c8372b619dde..2e5bc8786d6e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8098,17 +8098,15 @@ with pkgs; dodgy = with python3Packages; toPythonApplication dodgy; - dovecot_2_3 = callPackage ../by-name/do/dovecot/2.3.nix { - dovecot_pigeonhole = dovecot_pigeonhole_0_5; + dovecot_2_3 = dovecot; + dovecot_2_4 = callPackage ../by-name/do/dovecot/2.4.nix { + dovecot_pigeonhole = dovecot_pigeonhole_2_4; }; - dovecot_2_4 = callPackage ../by-name/do/dovecot/2.4.nix { }; - dovecot = dovecot_2_4; - dovecot_pigeonhole_0_5 = callPackage ../by-name/do/dovecot_pigeonhole/0.5.nix { - dovecot = dovecot_2_3; + dovecot_pigeonhole_0_5 = dovecot_pigeonhole; + dovecot_pigeonhole_2_4 = callPackage ../by-name/do/dovecot_pigeonhole/2.4.nix { + dovecot = dovecot_2_4; }; - dovecot_pigeonhole_2_4 = callPackage ../by-name/do/dovecot_pigeonhole/2.4.nix { }; - dovecot_pigeonhole = dovecot_pigeonhole_2_4; inherit (callPackages ../servers/firebird { }) firebird_4 From 94a9e769731a4c7a379a49c7332282e6d2940655 Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Mon, 23 Mar 2026 21:02:08 +0800 Subject: [PATCH 8/8] dovecot_pigeonhole_2_4: fix max_lookup_size for linux and darwin --- pkgs/by-name/do/dovecot_pigeonhole/2.4.nix | 1 + pkgs/by-name/do/dovecot_pigeonhole/generic.nix | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix b/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix index 76e88ca921f7..5c33ad27e677 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/2.4.nix @@ -8,6 +8,7 @@ import ./generic.nix { "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-pigeonhole-${version}.tar.gz"; hash = "sha256-nXiBii9LGe6VkGKkUBpvlntuvkQbqhAOqeSwwJb/ghE="; patches = fetchpatch: [ + ./max_lookup_size.patch # https://github.com/NixOS/nixpkgs/pull/388463#issuecomment-3066016707 (fetchpatch { url = "https://github.com/dovecot/pigeonhole/commit/517d74aa1d98b853b72608ce722bc58009c0f4a9.patch"; diff --git a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix index 4a50465af72e..5ae28acac1ce 100644 --- a/pkgs/by-name/do/dovecot_pigeonhole/generic.nix +++ b/pkgs/by-name/do/dovecot_pigeonhole/generic.nix @@ -20,7 +20,7 @@ }: let dovecotMajorMinor = lib.versions.majorMinor dovecot.version; - isCurrentOnDarwin = lib.strings.versionAtLeast version "2.4" && stdenv.hostPlatform.isDarwin; + isCurrent = lib.strings.versionAtLeast version "2.4"; in stdenv.mkDerivation (finalAttrs: { pname = "dovecot-pigeonhole"; @@ -34,19 +34,19 @@ stdenv.mkDerivation (finalAttrs: { inherit hash; }; - patches = patches fetchpatch ++ lib.optional isCurrentOnDarwin ./max_lookup_size.patch; + patches = patches fetchpatch; - postPatch = lib.optionalString isCurrentOnDarwin '' + postPatch = lib.optionalString isCurrent '' patchShebangs src/plugins/settings/settings-get.pl ''; - nativeBuildInputs = lib.optional isCurrentOnDarwin perl; + nativeBuildInputs = lib.optional isCurrent perl; buildInputs = [ dovecot openssl ] - ++ lib.optional isCurrentOnDarwin libstemmer + ++ lib.optional (isCurrent && stdenv.hostPlatform.isDarwin) libstemmer ++ lib.optionals withLDAP [ cyrus_sasl openldap