lol

Merge pull request #241462 from SuperSandro2000/remove-ddclient

authored by

Ryan Lahfa and committed by
GitHub
0d2f526d 4571ed03

+6 -284
+2
nixos/doc/manual/release-notes/rl-2311.section.md
··· 52 52 53 53 - `util-linux` is now supported on Darwin and is no longer an alias to `unixtools`. Use the `unixtools.util-linux` package for access to the Apple variants of the utilities. 54 54 55 + - `services.ddclient` has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`. 56 + 55 57 - The `vlock` program from the `kbd` package has been moved into its own package output and should now be referenced explicitly as `kbd.vlock` or replaced with an alternative such as the standalone `vlock` package or `physlock`. 56 58 57 59 - `fileSystems.<name>.autoFormat` now uses `systemd-makefs`, which does not accept formatting options. Therefore, `fileSystems.<name>.formatOptions` has been removed.
+2 -2
nixos/modules/misc/ids.nix
··· 69 69 #dialout = 27; # unused 70 70 polkituser = 28; 71 71 #utmp = 29; # unused 72 - # ddclient = 30; # converted to DynamicUser = true 72 + # ddclient = 30; # software removed 73 73 davfs2 = 31; 74 74 disnix = 33; 75 75 osgi = 34; ··· 394 394 dialout = 27; 395 395 #polkituser = 28; # currently unused, polkitd doesn't need a group 396 396 utmp = 29; 397 - # ddclient = 30; # converted to DynamicUser = true 397 + # ddclient = 30; # software removed 398 398 davfs2 = 31; 399 399 disnix = 33; 400 400 osgi = 34;
-1
nixos/modules/module-list.nix
··· 852 852 ./services/networking/create_ap.nix 853 853 ./services/networking/croc.nix 854 854 ./services/networking/dante.nix 855 - ./services/networking/ddclient.nix 856 855 ./services/networking/dhcpcd.nix 857 856 ./services/networking/dhcpd.nix 858 857 ./services/networking/dnscache.nix
+1
nixos/modules/rename.nix
··· 54 54 (mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.") 55 55 (mkRemovedOptionModule [ "services" "couchpotato" ] "The corresponding package was removed from nixpkgs.") 56 56 (mkRemovedOptionModule [ "services" "dd-agent" ] "dd-agent was removed from nixpkgs in favor of the newer datadog-agent.") 57 + (mkRemovedOptionModule [ "services" "ddclient" ] "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`.") # Added 2023-07-04 57 58 (mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead") 58 59 (mkRemovedOptionModule [ "services" "exhibitor" ] "The corresponding package was removed from nixpkgs.") 59 60 (mkRemovedOptionModule [ "services" "firefox" "syncserver" ] "The corresponding package was removed from nixpkgs.")
-234
nixos/modules/services/networking/ddclient.nix
··· 1 - { config, pkgs, lib, ... }: 2 - 3 - let 4 - cfg = config.services.ddclient; 5 - boolToStr = bool: if bool then "yes" else "no"; 6 - dataDir = "/var/lib/ddclient"; 7 - StateDirectory = builtins.baseNameOf dataDir; 8 - RuntimeDirectory = StateDirectory; 9 - 10 - configFile' = pkgs.writeText "ddclient.conf" '' 11 - # This file can be used as a template for configFile or is automatically generated by Nix options. 12 - cache=${dataDir}/ddclient.cache 13 - foreground=YES 14 - use=${cfg.use} 15 - login=${cfg.username} 16 - password=${if cfg.protocol == "nsupdate" then "/run/${RuntimeDirectory}/ddclient.key" else "@password_placeholder@"} 17 - protocol=${cfg.protocol} 18 - ${lib.optionalString (cfg.script != "") "script=${cfg.script}"} 19 - ${lib.optionalString (cfg.server != "") "server=${cfg.server}"} 20 - ${lib.optionalString (cfg.zone != "") "zone=${cfg.zone}"} 21 - ssl=${boolToStr cfg.ssl} 22 - wildcard=YES 23 - quiet=${boolToStr cfg.quiet} 24 - verbose=${boolToStr cfg.verbose} 25 - ${cfg.extraConfig} 26 - ${lib.concatStringsSep "," cfg.domains} 27 - ''; 28 - configFile = if (cfg.configFile != null) then cfg.configFile else configFile'; 29 - 30 - preStart = '' 31 - install --mode=600 --owner=$USER ${configFile} /run/${RuntimeDirectory}/ddclient.conf 32 - ${lib.optionalString (cfg.configFile == null) (if (cfg.protocol == "nsupdate") then '' 33 - install --mode=600 --owner=$USER ${cfg.passwordFile} /run/${RuntimeDirectory}/ddclient.key 34 - '' else if (cfg.passwordFile != null) then '' 35 - "${pkgs.replace-secret}/bin/replace-secret" "@password_placeholder@" "${cfg.passwordFile}" "/run/${RuntimeDirectory}/ddclient.conf" 36 - '' else '' 37 - sed -i '/^password=@password_placeholder@$/d' /run/${RuntimeDirectory}/ddclient.conf 38 - '')} 39 - ''; 40 - 41 - in 42 - 43 - with lib; 44 - 45 - { 46 - 47 - imports = [ 48 - (mkChangedOptionModule [ "services" "ddclient" "domain" ] [ "services" "ddclient" "domains" ] 49 - (config: 50 - let value = getAttrFromPath [ "services" "ddclient" "domain" ] config; 51 - in optional (value != "") value)) 52 - (mkRemovedOptionModule [ "services" "ddclient" "homeDir" ] "") 53 - (mkRemovedOptionModule [ "services" "ddclient" "password" ] "Use services.ddclient.passwordFile instead.") 54 - (mkRemovedOptionModule [ "services" "ddclient" "ipv6" ] "") 55 - ]; 56 - 57 - ###### interface 58 - 59 - options = { 60 - 61 - services.ddclient = with lib.types; { 62 - 63 - enable = mkOption { 64 - default = false; 65 - type = bool; 66 - description = lib.mdDoc '' 67 - Whether to synchronise your machine's IP address with a dynamic DNS provider (e.g. dyndns.org). 68 - ''; 69 - }; 70 - 71 - package = mkOption { 72 - type = package; 73 - default = pkgs.ddclient; 74 - defaultText = lib.literalExpression "pkgs.ddclient"; 75 - description = lib.mdDoc '' 76 - The ddclient executable package run by the service. 77 - ''; 78 - }; 79 - 80 - domains = mkOption { 81 - default = [ "" ]; 82 - type = listOf str; 83 - description = lib.mdDoc '' 84 - Domain name(s) to synchronize. 85 - ''; 86 - }; 87 - 88 - username = mkOption { 89 - # For `nsupdate` username contains the path to the nsupdate executable 90 - default = lib.optionalString (config.services.ddclient.protocol == "nsupdate") "${pkgs.bind.dnsutils}/bin/nsupdate"; 91 - defaultText = ""; 92 - type = str; 93 - description = lib.mdDoc '' 94 - User name. 95 - ''; 96 - }; 97 - 98 - passwordFile = mkOption { 99 - default = null; 100 - type = nullOr str; 101 - description = lib.mdDoc '' 102 - A file containing the password or a TSIG key in named format when using the nsupdate protocol. 103 - ''; 104 - }; 105 - 106 - interval = mkOption { 107 - default = "10min"; 108 - type = str; 109 - description = lib.mdDoc '' 110 - The interval at which to run the check and update. 111 - See {command}`man 7 systemd.time` for the format. 112 - ''; 113 - }; 114 - 115 - configFile = mkOption { 116 - default = null; 117 - type = nullOr path; 118 - description = lib.mdDoc '' 119 - Path to configuration file. 120 - When set this overrides the generated configuration from module options. 121 - ''; 122 - example = "/root/nixos/secrets/ddclient.conf"; 123 - }; 124 - 125 - protocol = mkOption { 126 - default = "dyndns2"; 127 - type = str; 128 - description = lib.mdDoc '' 129 - Protocol to use with dynamic DNS provider (see https://sourceforge.net/p/ddclient/wiki/protocols). 130 - ''; 131 - }; 132 - 133 - server = mkOption { 134 - default = ""; 135 - type = str; 136 - description = lib.mdDoc '' 137 - Server address. 138 - ''; 139 - }; 140 - 141 - ssl = mkOption { 142 - default = true; 143 - type = bool; 144 - description = lib.mdDoc '' 145 - Whether to use SSL/TLS to connect to dynamic DNS provider. 146 - ''; 147 - }; 148 - 149 - quiet = mkOption { 150 - default = false; 151 - type = bool; 152 - description = lib.mdDoc '' 153 - Print no messages for unnecessary updates. 154 - ''; 155 - }; 156 - 157 - script = mkOption { 158 - default = ""; 159 - type = str; 160 - description = lib.mdDoc '' 161 - script as required by some providers. 162 - ''; 163 - }; 164 - 165 - use = mkOption { 166 - default = "web, web=checkip.dyndns.com/, web-skip='Current IP Address: '"; 167 - type = str; 168 - description = lib.mdDoc '' 169 - Method to determine the IP address to send to the dynamic DNS provider. 170 - ''; 171 - }; 172 - 173 - verbose = mkOption { 174 - default = false; 175 - type = bool; 176 - description = lib.mdDoc '' 177 - Print verbose information. 178 - ''; 179 - }; 180 - 181 - zone = mkOption { 182 - default = ""; 183 - type = str; 184 - description = lib.mdDoc '' 185 - zone as required by some providers. 186 - ''; 187 - }; 188 - 189 - extraConfig = mkOption { 190 - default = ""; 191 - type = lines; 192 - description = lib.mdDoc '' 193 - Extra configuration. Contents will be added verbatim to the configuration file. 194 - 195 - ::: {.note} 196 - `daemon` should not be added here because it does not work great with the systemd-timer approach the service uses. 197 - ::: 198 - ''; 199 - }; 200 - }; 201 - }; 202 - 203 - 204 - ###### implementation 205 - 206 - config = mkIf config.services.ddclient.enable { 207 - systemd.services.ddclient = { 208 - description = "Dynamic DNS Client"; 209 - wantedBy = [ "multi-user.target" ]; 210 - after = [ "network.target" ]; 211 - restartTriggers = optional (cfg.configFile != null) cfg.configFile; 212 - path = lib.optional (lib.hasPrefix "if," cfg.use) pkgs.iproute2; 213 - 214 - serviceConfig = { 215 - DynamicUser = true; 216 - RuntimeDirectoryMode = "0700"; 217 - inherit RuntimeDirectory; 218 - inherit StateDirectory; 219 - Type = "oneshot"; 220 - ExecStartPre = "!${pkgs.writeShellScript "ddclient-prestart" preStart}"; 221 - ExecStart = "${lib.getBin cfg.package}/bin/ddclient -file /run/${RuntimeDirectory}/ddclient.conf"; 222 - }; 223 - }; 224 - 225 - systemd.timers.ddclient = { 226 - description = "Run ddclient"; 227 - wantedBy = [ "timers.target" ]; 228 - timerConfig = { 229 - OnBootSec = cfg.interval; 230 - OnUnitInactiveSec = cfg.interval; 231 - }; 232 - }; 233 - }; 234 - }
-45
pkgs/tools/networking/ddclient/default.nix
··· 1 - { lib, fetchFromGitHub, perlPackages, autoreconfHook, iproute2, perl }: 2 - 3 - perlPackages.buildPerlPackage rec { 4 - pname = "ddclient"; 5 - version = "3.10.0"; 6 - 7 - outputs = [ "out" ]; 8 - 9 - src = fetchFromGitHub { 10 - owner = "ddclient"; 11 - repo = "ddclient"; 12 - rev = "v${version}"; 13 - sha256 = "sha256-wWUkjXwVNZRJR1rXPn3IkDRi9is9vsRuNC/zq8RpB1E="; 14 - }; 15 - 16 - postPatch = '' 17 - touch Makefile.PL 18 - ''; 19 - 20 - nativeBuildInputs = [ autoreconfHook ]; 21 - 22 - buildInputs = with perlPackages; [ IOSocketINET6 IOSocketSSL JSONPP ]; 23 - 24 - installPhase = '' 25 - runHook preInstall 26 - 27 - # patch sheebang ddclient script which only exists after buildPhase 28 - preConfigure 29 - install -Dm755 ddclient $out/bin/ddclient 30 - install -Dm644 -t $out/share/doc/ddclient COP* README.* ChangeLog.md 31 - 32 - runHook postInstall 33 - ''; 34 - 35 - # TODO: run upstream tests 36 - doCheck = false; 37 - 38 - meta = with lib; { 39 - description = "Client for updating dynamic DNS service entries"; 40 - homepage = "https://ddclient.net/"; 41 - license = licenses.gpl2Plus; 42 - platforms = platforms.linux; 43 - maintainers = with maintainers; [ SuperSandro2000 ]; 44 - }; 45 - }
+1
pkgs/top-level/aliases.nix
··· 146 146 bitcoind-classic = throw "bitcoind-classic has been removed: the Bitcoin Classic project has closed down, https://bitcoinclassic.com/news/closing.html"; # Added 2022-11-24 147 147 bitcoin-gold = throw "bitcoin-gold has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24 148 148 bitcoind-gold = throw "bitcoin-gold has been removed since it's unnmaintained: https://github.com/BTCGPU/BTCGPU/graphs/code-frequency"; # Added 2022-11-24 149 + ddclient = throw "ddclient has been removed on the request of the upstream maintainer because it is unmaintained and has bugs. Please switch to a different software like `inadyn` or `knsupdate`."; # Added 2023-07-04 149 150 digibyte = throw "digibyte has been removed since it's unnmaintained and will stop building with Qt > 5.14"; # Added 2022-11-24 150 151 digibyted = throw "digibyted has been removed since it's unnmaintained: https://github.com/digibyte/digibyte/graphs/code-frequency"; # Added 2022-11-24 151 152 bitsnbots = throw "bitsnbots has been removed because it was broken and upstream missing"; # Added 2021-08-22
-2
pkgs/top-level/all-packages.nix
··· 6993 6993 6994 6994 ddcutil = callPackage ../tools/misc/ddcutil { }; 6995 6995 6996 - ddclient = callPackage ../tools/networking/ddclient { }; 6997 - 6998 6996 dd_rescue = callPackage ../tools/system/dd_rescue { }; 6999 6997 7000 6998 ddh = callPackage ../tools/system/ddh { };