ankisyncd: remove

This commit is contained in:
Dominique Martinet 2024-08-10 14:21:00 +09:00 committed by aleksana
parent cda49c202f
commit 2b5ca0f433
12 changed files with 7 additions and 4144 deletions

View File

@ -120,7 +120,7 @@ In addition to 1119 new, 118 updated, and 476 removed options; 61 new modules we
- Services:
- [services.ankisyncd.enable](options.html#opt-services.ankisyncd.enable) Anki sync server
- `services.ankisyncd.enable` Anki sync server
- [services.bazarr.enable](options.html#opt-services.bazarr.enable) Subtitle manager for Sonarr and Radarr

View File

@ -661,8 +661,7 @@ Make sure to also check the many updates in the [Nixpkgs library](#sec-release-2
Cheese as the default camera application, and Photos will no longer be
installed.
- The module [services.ankisyncd](#opt-services.ankisyncd.package) has been
switched to
- The module `services.ankisyncd` has been switched to
[anki-sync-server-rs](https://github.com/ankicommunity/anki-sync-server-rs).
The former version written in Python was difficult to update, did not receive
updates in a while, and did not support recent versions of Anki.

View File

@ -62,7 +62,7 @@ In addition to numerous new and upgraded packages, this release has the followin
<!-- Please keep entries alphabetically sorted. -->
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the ankisyncd software.
The pre-existing `services.ankisyncd` has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the ankisyncd software.
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable).

View File

@ -274,6 +274,8 @@
- Android NDK version 26 and SDK version 33 are now the default versions used for cross compilation to android.
- the `ankisyncd` package and its `services.ankisyncd` have been removed, use [`services.anki-sync-server`](#opt-services.anki-sync-server.enable) instead.
- `nodePackages.vscode-css-languageserver-bin`, `nodePackages.vscode-html-languageserver-bin`,
and `nodePackages.vscode-json-languageserver-bin` were dropped due to an unmaintained upstream.
The `vscode-langservers-extracted` package is a maintained drop-in replacement.

View File

@ -712,7 +712,6 @@
./services/misc/airsonic.nix
./services/misc/amazon-ssm-agent.nix
./services/misc/ananicy.nix
./services/misc/ankisyncd.nix
./services/misc/anki-sync-server.nix
./services/misc/apache-kafka.nix
./services/misc/atuin.nix

View File

@ -52,6 +52,7 @@ in
is broken when using cgroups-v2.
'')
(mkRemovedOptionModule [ "services" "antennas" ] "The antennas package and the corresponding module have been removed as they only work with tvheadend, which nobody was willing to maintain and was stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version.")
(mkRemovedOptionModule [ "services" "ankisyncd" ] "`services.ankisyncd` has been replaced by `services.anki-sync-server`.")
(mkRemovedOptionModule [ "services" "baget" "enable" ] "The baget module was removed due to the upstream package being unmaintained.")
(mkRemovedOptionModule [ "services" "beegfs" ] "The BeeGFS module has been removed")
(mkRemovedOptionModule [ "services" "beegfsEnable" ] "The BeeGFS module has been removed")

View File

@ -56,13 +56,3 @@ following options:
services.anki-sync-server.openFirewall = true;
}
```
## Alternatives {#module-services-anki-sync-server-alternatives}
The [`ankisyncd` NixOS
module](https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/ankisyncd.nix)
provides similar functionality, but using a third-party implementation,
[`anki-sync-server-rs`](https://github.com/ankicommunity/anki-sync-server-rs/).
According to that project's README, it is "no longer maintained", and not
recommended for Anki 2.1.64+.

View File

@ -1,69 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.ankisyncd;
name = "ankisyncd";
stateDir = "/var/lib/${name}";
toml = pkgs.formats.toml {};
configFile = toml.generate "ankisyncd.conf" {
listen = {
host = cfg.host;
port = cfg.port;
};
paths.root_dir = stateDir;
# encryption.ssl_enable / cert_file / key_file
};
in
{
options.services.ankisyncd = {
enable = lib.mkEnableOption "ankisyncd, a standalone unofficial anky sync server";
package = lib.mkPackageOption pkgs "ankisyncd" { };
host = lib.mkOption {
type = lib.types.str;
default = "localhost";
description = "ankisyncd host";
};
port = lib.mkOption {
type = lib.types.port;
default = 27701;
description = "ankisyncd port";
};
openFirewall = lib.mkOption {
default = false;
type = lib.types.bool;
description = "Whether to open the firewall for the specified port.";
};
};
config = lib.mkIf cfg.enable {
warnings = [
''
`services.ankisyncd` has been replaced by `services.anki-sync-server` and will be removed after
24.05 because anki-sync-server(-rs and python) are not maintained.
''
];
networking.firewall.allowedTCPPorts = lib.mkIf cfg.openFirewall [ cfg.port ];
systemd.services.ankisyncd = {
description = "ankisyncd - Anki sync server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = [ cfg.package ];
serviceConfig = {
Type = "simple";
DynamicUser = true;
StateDirectory = name;
ExecStart = "${cfg.package}/bin/ankisyncd --config ${configFile}";
Restart = "always";
};
};
};
}

File diff suppressed because it is too large Load Diff

View File

@ -1,53 +0,0 @@
{ lib, runCommand, fetchFromGitHub, rustPlatform, protobuf }:
let
pname = "ankisyncd";
version = "1.1.4";
# anki-sync-server-rs expects anki sources in the 'anki' folder
# of its own source tree, with a patch applied (mostly to make
# some modules public): prepare our own 'src' manually
src = runCommand "anki-sync-server-rs-src" {
src = fetchFromGitHub {
owner = "ankicommunity";
repo = "anki-sync-server-rs";
rev = version;
hash = "sha256-iL4lJJAV4SrNeRX3s0ZpJ//lrwoKjLsltlX4d2wP6O0=";
};
} ''
cp -r "$src/." "$out"
chmod +w "$out"
cp -r "${ankiSrc}" "$out/anki"
chmod -R +w "$out/anki"
patch -d "$out/anki" -Np1 < "$src/anki_patch/d9d36078f17a2b4b8b44fcb802eb274911ebabe7_anki_rslib.patch"
'';
# Note we do not use anki.src because the patch in ankisyncd's
# sources expect a fixed version, so we pin it here.
ankiSrc = fetchFromGitHub {
owner = "ankitects";
repo = "anki";
rev = "2.1.60";
hash = "sha256-hNrf6asxF7r7QK2XO150yiRjyHAYKN8OFCFYX0SAiwA=";
fetchSubmodules = true;
};
in rustPlatform.buildRustPackage {
inherit pname version src;
cargoLock = {
lockFile = ./Cargo.lock;
outputHashes = {
"csv-1.1.6" = "sha256-w728ffOVkI+IfK6FbmkGhr0CjuyqgJnPB1kutMJIUYg=";
};
};
nativeBuildInputs = [ protobuf ];
meta = with lib; {
description = "Standalone unofficial anki sync server";
homepage = "https://github.com/ankicommunity/anki-sync-server-rs";
license = with licenses; [ agpl3Only ];
maintainers = with maintainers; [ martinetd ];
mainProgram = "ankisyncd";
};
}

View File

@ -112,6 +112,7 @@ mapAliases ({
ansible_2_14 = throw "Ansible 2.14 goes end of life in 2024/05 and can't be supported throughout the 24.05 release cycle"; # Added 2024-04-11
antennas = throw "antennas has been removed as it only works with tvheadend, which nobody was willing to maintain and was stuck on an unmaintained version that required FFmpeg 4; please see https://github.com/NixOS/nixpkgs/pull/332259 if you are interested in maintaining a newer version"; # Added 2024-08-21
androidndkPkgs_23b = lib.warn "The package set `androidndkPkgs_23b` has been renamed to `androidndkPkgs_23`." androidndkPkgs_23; # Added 2024-07-21
ankisyncd = throw "ankisyncd is dead, use anki-sync-server instead"; # Added 2024-08-10
apacheAnt_1_9 = throw "Ant 1.9 has been removed since it's not used in nixpkgs anymore"; # Added 2023-11-12
apacheKafka_2_8 = throw "apacheKafka_2_8 through _3_5 have been removed from nixpkgs as outdated"; # Added 2024-02-12
apacheKafka_3_0 = throw "apacheKafka_2_8 through _3_5 have been removed from nixpkgs as outdated"; # Added 2024-02-12

View File

@ -243,8 +243,6 @@ with pkgs;
anders = callPackage ../applications/science/logic/anders { };
ankisyncd = callPackage ../servers/ankisyncd { };
ariang = callPackage ../servers/ariang { };
ani-cli = callPackage ../applications/video/ani-cli { };