Commit feddb6a2 authored by Patrick Steinhardt's avatar Patrick Steinhardt
Browse files

opensmtpd-extras: drop in favor of standalone tables

Upstream has archived the OpenSMTPD-extras repository with 82c49af (add
deprecation notice, 2024-10-22). Instead, it has created a set of
repositories, each containing one of the tables. The old tables aren't
compatible anymore with recent OpenSMTPD versions due to changed
protocols. Other extras, like the queues, don't have an alternative to
the best of my knowledge.

Furthermore, opensmtpd-extras doesn't even build anymore, furthermore
indicating that there aren't any users of this package. Remove the
"opensmtpd-extras" package and raise errors pointing to the new
standalone tables.

Add a release note.
parent 132c73dd
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,10 @@
  The hook can be disabled by providing `dontCheckForBrokenSymlinks = true;` as an argument to `mkDerivation`.
  For more information, [check the docs](https://nixos.org/manual/nixpkgs/unstable/#no-broken-symlinks.sh) or [see this PR](https://github.com/NixOS/nixpkgs/pull/370750).

- `opensmtpd-extras` has been deprecated by upstream and is not compatible with
  OpenSMTPD 7.6.0 or later. The package has been removed in favor of a set of new
  `opensmtpd-table-*` packages.

- The hand written `perlPackages.SearchXapian` bindings have been dropped in favor of the (mostly compatible)
  `perlPackages.Xapian`.

+2 −2
Original line number Diff line number Diff line
@@ -76,8 +76,8 @@ in
        description = ''
          Packages to search for filters, tables, queues, and schedulers.

          Add OpenSMTPD-extras here if you want to use the filters, etc. from
          that package.
          Add packages here if you want to use them as as such, for example
          from the opensmtpd-table-* packages.
        '';
      };
    };
+0 −113
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  openssl,
  libevent,
  libasr,
  ncurses,
  pkg-config,
  lua5,
  perl,
  libmysqlclient,
  libpq,
  sqlite,
  hiredis,
  enableLua ? true,
  enablePerl ? true,
  enableMysql ? true,
  enablePostgres ? true,
  enableSqlite ? true,
  enableRedis ? true,
}:

stdenv.mkDerivation rec {
  pname = "opensmtpd-extras";
  version = "6.7.1";

  src = fetchurl {
    url = "https://www.opensmtpd.org/archives/${pname}-${version}.tar.gz";
    sha256 = "1b1mx71bvmv92lbm08wr2p60g3qhikvv3n15zsr6dcwbk9aqahzq";
  };

  nativeBuildInputs = [ pkg-config ];
  buildInputs = [
    openssl
    libevent
    libasr
    lua5
    perl
    libmysqlclient
    libpq
    sqlite
    hiredis
  ];

  configureFlags =
    [
      "--sysconfdir=/etc"
      "--localstatedir=/var"
      "--with-privsep-user=smtpd"
      "--with-libevent-dir=${libevent.dev}"

      "--with-filter-clamav"
      "--with-filter-dkim-signer"
      "--with-filter-dnsbl"
      "--with-filter-monkey"
      "--with-filter-pause"
      "--with-filter-regex"
      "--with-filter-spamassassin"
      "--with-filter-stub"
      "--with-filter-trace"
      "--with-filter-void"
      "--with-queue-null"
      "--with-queue-ram"
      "--with-queue-stub"
      "--with-table-ldap"
      "--with-table-socketmap"
      "--with-table-passwd"
      "--with-table-stub"
      "--with-scheduler-ram"
      "--with-scheduler-stub"

    ]
    ++ lib.optionals enableLua [
      "--with-lua=${pkg-config}"
      "--with-filter-lua"

    ]
    ++ lib.optionals enablePerl [
      "--with-perl=${perl}"
      "--with-filter-perl"

    ]
    ++ lib.optionals enableMysql [
      "--with-table-mysql"

    ]
    ++ lib.optionals enablePostgres [
      "--with-table-postgres"

    ]
    ++ lib.optionals enableSqlite [
      "--with-table-sqlite"

    ]
    ++ lib.optionals enableRedis [
      "--with-table-redis"
    ];

  env.NIX_CFLAGS_COMPILE =
    lib.optionalString enableRedis "-I${hiredis}/include/hiredis -lhiredis"
    + lib.optionalString enableMysql " -L${libmysqlclient}/lib/mysql";

  meta = with lib; {
    homepage = "https://www.opensmtpd.org/";
    description = "Extra plugins for the OpenSMTPD mail server";
    license = licenses.isc;
    platforms = platforms.linux;
    maintainers = with maintainers; [
      ekleog
    ];
  };
}
+1 −0
Original line number Diff line number Diff line
@@ -1349,6 +1349,7 @@ mapAliases {
  openlens = throw "Lens Closed its source code, package obsolete/stale - consider lens as replacement"; # Added 2024-09-04
  openlp = throw "openlp has been removed for now because the outdated version depended on insecure and removed packages and it needs help to upgrade and maintain it; see https://github.com/NixOS/nixpkgs/pull/314882"; # Added 2024-07-29
  openmpt123 = throw "'openmpt123' has been renamed to/replaced by 'libopenmpt'"; # Converted to throw 2024-10-17
  opensmtpd-extras = throw "opensmtpd-extras has been removed in favor of separate opensmtpd-table-* packages"; # Added 2025-01-26
  openssl_3_0 = openssl_3; # Added 2022-06-27
  opensycl = lib.warnOnInstantiate "'opensycl' has been renamed to 'adaptivecpp'" adaptivecpp; # Added 2024-12-04
  opensyclWithRocm = lib.warnOnInstantiate "'opensyclWithRocm' has been renamed to 'adaptivecppWithRocm'" adaptivecppWithRocm; # Added 2024-12-04
+0 −1
Original line number Diff line number Diff line
@@ -12101,7 +12101,6 @@ with pkgs;
  };
  opensmtpd = callPackage ../servers/mail/opensmtpd { };
  opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { };
  opensmtpd-filter-rspamd = callPackage ../servers/mail/opensmtpd/filter-rspamd.nix { };
  system-sendmail = lowPrio (callPackage ../servers/mail/system-sendmail { });