cassandra_3_0, cassandra_3_11: remove due to EOL

Cassandra 3.0 and 3.11 are End of Life.
https://cassandra.apache.org/_/blog/Apache-Cassandra-3.0.x-and-3.11.x-End-of-Life-Announcement.html

Changed files
+16 -34
doc
release-notes
nixos
modules
services
databases
tests
pkgs
servers
nosql
cassandra
top-level
+2
doc/release-notes/rl-2505.section.md
···
Packages wishing to maintain compatibility with Nixpkgs 24.11 must set `useFetchCargoVendor` to `true` explicitly.
`rustPlatform.importCargoLock` may also be appropriate in some circumstances.
+
- `cassandra_3_0` and `cassandra_3_11` have been removed as they have reached end-of-life. Please update to `cassandra_4`. See the [changelog](https://github.com/apache/cassandra/blob/cassandra-4.0.17/NEWS.txt) for more information about the upgrade process.
+
- NetBox was updated to `>= 4.2.0`. Have a look at the breaking changes
of the [4.1 release](https://github.com/netbox-community/netbox/releases/tag/v4.1.0)
and the [4.2 release](https://github.com/netbox-community/netbox/releases/tag/v4.2.0),
+11 -23
nixos/modules/services/databases/cassandra.nix
···
cfg = config.services.cassandra;
-
atLeast3 = versionAtLeast cfg.package.version "3";
-
atLeast3_11 = versionAtLeast cfg.package.version "3.11";
-
atLeast4 = versionAtLeast cfg.package.version "4";
-
defaultUser = "cassandra";
cassandraConfig = flip recursiveUpdate cfg.extraConfig (
···
data_file_directories = [ "${cfg.homeDir}/data" ];
commitlog_directory = "${cfg.homeDir}/commitlog";
saved_caches_directory = "${cfg.homeDir}/saved_caches";
+
hints_directory = "${cfg.homeDir}/hints";
}
// optionalAttrs (cfg.seedAddresses != [ ]) {
seed_provider = [
···
parameters = [ { seeds = concatStringsSep "," cfg.seedAddresses; } ];
}
];
-
}
-
// optionalAttrs atLeast3 {
-
hints_directory = "${cfg.homeDir}/hints";
}
);
···
# Delete default password file
sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh"
-
${lib.optionalString atLeast4 ''
-
cp $package/conf/jvm*.options $out/
-
''}
+
cp $package/conf/jvm*.options $out/
'';
};
···
fullJvmOptions =
cfg.jvmOpts
+
++ [
+
# Historically, we don't use a log dir, whereas the upstream scripts do
+
# expect this. We override those by providing our own -Xlog:gc flag.
+
"-Xlog:gc=warning,heap*=warning,age*=warning,safepoint=warning,promotion*=warning"
+
]
++ optionals (cfg.jmxRoles != [ ]) [
"-Dcom.sun.management.jmxremote.authenticate=true"
"-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}"
]
++ optionals cfg.remoteJmx [
"-Djava.rmi.server.hostname=${cfg.rpcAddress}"
-
]
-
++ optionals atLeast4 [
-
# Historically, we don't use a log dir, whereas the upstream scripts do
-
# expect this. We override those by providing our own -Xlog:gc flag.
-
"-Xlog:gc=warning,heap*=warning,age*=warning,safepoint=warning,promotion*=warning"
];
commonEnv = {
···
};
package = mkPackageOption pkgs "cassandra" {
-
example = "cassandra_3_11";
+
example = "cassandra_4";
};
jvmOpts = mkOption {
···
jmxRolesFile = mkOption {
type = types.nullOr types.path;
-
default = if atLeast3_11 then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile else null;
-
defaultText = literalMD ''generated configuration file if version is at least 3.11, otherwise `null`'';
+
default = pkgs.writeText "jmx-roles-file" defaultJmxRolesFile;
+
defaultText = "generated configuration file";
example = "/var/lib/cassandra/jmx.password";
description = ''
Specify your own jmx roles file.
-
-
Make sure the permissions forbid "others" from reading the file if
-
you're using Cassandra below version 3.11.
'';
};
};
···
assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null;
message = ''
If you want JMX available remotely you need to set a password using
-
<literal>jmxRoles</literal> or <literal>jmxRolesFile</literal> if
-
using Cassandra older than v3.11.
+
<literal>jmxRoles</literal>.
'';
}
];
-2
nixos/tests/all-tests.nix
···
calibre-server = import ./calibre-server.nix { inherit pkgs runTest; };
canaille = handleTest ./canaille.nix { };
castopod = handleTest ./castopod.nix { };
-
cassandra_3_0 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_0; };
-
cassandra_3_11 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_3_11; };
cassandra_4 = handleTest ./cassandra.nix { testPackage = pkgs.cassandra_4; };
centrifugo = runTest ./centrifugo.nix;
ceph-multi-node = handleTestOn [ "aarch64-linux" "x86_64-linux" ] ./ceph-multi-node.nix { };
+1 -1
pkgs/servers/nosql/cassandra/generic.nix
···
which,
jre,
nixosTests,
-
# generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11
+
# generation is the attribute version suffix such as 4 in pkgs.cassandra_4
generation,
version,
sha256,
+2
pkgs/top-level/aliases.nix
···
cargo-information = throw "'cargo-information' has been removed due to being merged upstream into 'cargo'"; # Added 2025-03-09
cargo-inspect = throw "'cargo-inspect' has been removed due to lack of upstream maintenance. Upstream recommends cargo-expand."; # Added 2025-01-26
cargo-web = throw "'cargo-web' has been removed due to lack of upstream maintenance"; # Added 2025-01-26
+
cassandra_3_0 = throw "'cassandra_3_0' has been removed has it reached end-of-life"; # Added 2025-03-23
+
cassandra_3_11 = throw "'cassandra_3_11' has been removed has it reached end-of-life"; # Added 2025-03-23
cawbird = throw "cawbird has been abandoned upstream and is broken anyways due to Twitter closing its API";
centerim = throw "centerim has been removed due to upstream disappearing"; # Added 2025-04-18
certmgr-selfsigned = certmgr; # Added 2023-11-30
-8
pkgs/top-level/all-packages.nix
···
appdaemon = callPackage ../servers/home-assistant/appdaemon.nix { };
-
cassandra_3_0 = callPackage ../servers/nosql/cassandra/3.0.nix {
-
jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-
python = python2;
-
};
-
cassandra_3_11 = callPackage ../servers/nosql/cassandra/3.11.nix {
-
jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
-
python = python2;
-
};
cassandra_4 = callPackage ../servers/nosql/cassandra/4.nix {
# Effective Cassandra 4.0.2 there is full Java 11 support
# -- https://cassandra.apache.org/doc/latest/cassandra/new/java11.html