From 05a2dfd6744cdc6ab0b57f8ab866cc686b05f519 Mon Sep 17 00:00:00 2001 From: Artturin Date: Mon, 12 Dec 2022 03:36:03 +0200 Subject: [PATCH] lib.replaceChars: warn about being a deprecated alias replaceStrings has been in nix since 2015(nix 1.10) so it is safe to remove the fallback https://github.com/nixos/nix/commit/d6d5885c1567454754a0d260521bafa0bd5e7fdb --- lib/strings.nix | 23 +++++-------------- nixos/lib/systemd-lib.nix | 6 ++--- nixos/lib/utils.nix | 6 ++--- nixos/modules/config/swap.nix | 2 +- nixos/modules/programs/xfs_quota.nix | 2 +- nixos/modules/services/mail/listmonk.nix | 2 +- .../services/networking/supplicant.nix | 6 ++--- .../modules/services/networking/wireguard.nix | 2 +- .../modules/system/boot/loader/grub/grub.nix | 2 +- nixos/modules/tasks/network-interfaces.nix | 6 ++--- nixos/tests/installer.nix | 2 +- nixos/tests/prometheus-exporters.nix | 4 ++-- pkgs/applications/audio/munt/libmt32emu.nix | 2 +- pkgs/applications/audio/munt/mt32emu-qt.nix | 2 +- .../audio/munt/mt32emu-smf2wav.nix | 2 +- pkgs/applications/audio/qjackctl/default.nix | 2 +- .../audio/roomeqwizard/default.nix | 2 +- pkgs/applications/editors/jetbrains/linux.nix | 2 +- .../emulators/atari800/default.nix | 2 +- .../emulators/desmume/default.nix | 2 +- .../emulators/retroarch/mkLibretroCore.nix | 2 +- .../applications/misc/sweethome3d/default.nix | 2 +- .../applications/misc/sweethome3d/editors.nix | 2 +- .../science/math/weka/default.nix | 2 +- .../misc/openmodelica/omlibrary/fakegit.nix | 2 +- .../fetchmavenartifact/default.nix | 6 ++--- .../rust/build-rust-crate/configure-crate.nix | 2 +- pkgs/development/compilers/elm/makeDotElm.nix | 2 +- .../interpreters/gauche/default.nix | 2 +- pkgs/development/libraries/icu/base.nix | 2 +- .../libraries/java/hsqldb/default.nix | 2 +- .../libraries/muparser/default.nix | 2 +- .../libraries/opendkim/default.nix | 2 +- .../libraries/opensubdiv/default.nix | 2 +- .../mobile/androidenv/build-app.nix | 2 +- .../mobile/titaniumenv/build-app.nix | 2 +- .../development/mobile/xcodeenv/build-app.nix | 2 +- .../mobile/xcodeenv/simulate-app.nix | 2 +- .../python-modules/scikit-learn/default.nix | 2 +- .../tools/haskell/lambdabot/default.nix | 4 ++-- .../tools/misc/segger-ozone/default.nix | 2 +- pkgs/development/web/kcgi/default.nix | 2 +- pkgs/games/nexuiz/default.nix | 2 +- pkgs/games/terraria-server/default.nix | 2 +- pkgs/servers/invidious/default.nix | 2 +- .../typesetting/tex/pgf-tikz/pgf-1.x.nix | 2 +- pkgs/top-level/haxe-packages.nix | 2 +- 47 files changed, 64 insertions(+), 75 deletions(-) diff --git a/lib/strings.nix b/lib/strings.nix index 376c537287e9..64bf5bbafd3d 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -328,7 +328,7 @@ rec { escape ["(" ")"] "(foo)" => "\\(foo\\)" */ - escape = list: replaceChars list (map (c: "\\${c}") list); + escape = list: replaceStrings list (map (c: "\\${c}") list); /* Escape occurence of the element of `list` in `string` by converting to its ASCII value and prefixing it with \\x. @@ -341,7 +341,7 @@ rec { => "foo\\x20bar" */ - escapeC = list: replaceChars list (map (c: "\\x${ toLower (lib.toHexString (charToInt c))}") list); + escapeC = list: replaceStrings list (map (c: "\\x${ toLower (lib.toHexString (charToInt c))}") list); /* Quote string to be used safely within the Bourne shell. @@ -471,19 +471,8 @@ rec { ["\"" "'" "<" ">" "&"] [""" "'" "<" ">" "&"]; - # Obsolete - use replaceStrings instead. - replaceChars = builtins.replaceStrings or ( - del: new: s: - let - substList = lib.zipLists del new; - subst = c: - let found = lib.findFirst (sub: sub.fst == c) null substList; in - if found == null then - c - else - found.snd; - in - stringAsChars subst s); + # warning added 12-12-2022 + replaceChars = lib.warn "replaceChars is a deprecated alias of replaceStrings, replace usages of it with replaceStrings." builtins.replaceStrings; # Case conversion utilities. lowerChars = stringToCharacters "abcdefghijklmnopqrstuvwxyz"; @@ -497,7 +486,7 @@ rec { toLower "HOME" => "home" */ - toLower = replaceChars upperChars lowerChars; + toLower = replaceStrings upperChars lowerChars; /* Converts an ASCII string to upper-case. @@ -507,7 +496,7 @@ rec { toUpper "home" => "HOME" */ - toUpper = replaceChars lowerChars upperChars; + toUpper = replaceStrings lowerChars upperChars; /* Appends string context from another string. This is an implementation detail of Nix and should be used carefully. diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index 4c52643446ed..c6c8753d5325 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -8,9 +8,9 @@ let systemd = cfg.package; in rec { - shellEscape = s: (replaceChars [ "\\" ] [ "\\\\" ] s); + shellEscape = s: (replaceStrings [ "\\" ] [ "\\\\" ] s); - mkPathSafeName = lib.replaceChars ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""]; + mkPathSafeName = lib.replaceStrings ["@" ":" "\\" "[" "]"] ["-" "-" "-" "" ""]; # a type for options that take a unit name unitNameType = types.strMatching "[a-zA-Z0-9@%:_.\\-]+[.](service|socket|device|mount|automount|swap|target|path|timer|scope|slice)"; @@ -258,7 +258,7 @@ in rec { makeJobScript = name: text: let - scriptName = replaceChars [ "\\" "@" ] [ "-" "_" ] (shellEscape name); + scriptName = replaceStrings [ "\\" "@" ] [ "-" "_" ] (shellEscape name); out = (pkgs.writeShellScriptBin scriptName '' set -e ${text} diff --git a/nixos/lib/utils.nix b/nixos/lib/utils.nix index 9eefa80d1c8b..def3aa13f320 100644 --- a/nixos/lib/utils.nix +++ b/nixos/lib/utils.nix @@ -48,7 +48,7 @@ rec { trim = s: removeSuffix "/" (removePrefix "/" s); normalizedPath = strings.normalizePath s; in - replaceChars ["/"] ["-"] + replaceStrings ["/"] ["-"] (replacePrefix "." (strings.escapeC ["."] ".") (strings.escapeC (stringToCharacters " !\"#$%&'()*+,;<=>=@[\\]^`{|}~-") (if normalizedPath == "/" then normalizedPath else trim normalizedPath))); @@ -67,7 +67,7 @@ rec { else if builtins.isInt arg || builtins.isFloat arg then toString arg else throw "escapeSystemdExecArg only allows strings, paths and numbers"; in - replaceChars [ "%" "$" ] [ "%%" "$$" ] (builtins.toJSON s); + replaceStrings [ "%" "$" ] [ "%%" "$$" ] (builtins.toJSON s); # Quotes a list of arguments into a single string for use in a Exec* # line. @@ -112,7 +112,7 @@ rec { else if isAttrs item then map (name: let - escapedName = ''"${replaceChars [''"'' "\\"] [''\"'' "\\\\"] name}"''; + escapedName = ''"${replaceStrings [''"'' "\\"] [''\"'' "\\\\"] name}"''; in recurse (prefix + "." + escapedName) item.${name}) (attrNames item) else if isList item then diff --git a/nixos/modules/config/swap.nix b/nixos/modules/config/swap.nix index 10d52ade288b..76a054b100eb 100644 --- a/nixos/modules/config/swap.nix +++ b/nixos/modules/config/swap.nix @@ -160,7 +160,7 @@ let config = rec { device = mkIf options.label.isDefined "/dev/disk/by-label/${config.label}"; - deviceName = lib.replaceChars ["\\"] [""] (escapeSystemdPath config.device); + deviceName = lib.replaceStrings ["\\"] [""] (escapeSystemdPath config.device); realDevice = if config.randomEncryption.enable then "/dev/mapper/${deviceName}" else config.device; }; diff --git a/nixos/modules/programs/xfs_quota.nix b/nixos/modules/programs/xfs_quota.nix index a1e9ff941c6b..0fc2958b3f38 100644 --- a/nixos/modules/programs/xfs_quota.nix +++ b/nixos/modules/programs/xfs_quota.nix @@ -94,7 +94,7 @@ in ''; wantedBy = [ "multi-user.target" ]; - after = [ ((replaceChars [ "/" ] [ "-" ] opts.fileSystem) + ".mount") ]; + after = [ ((replaceStrings [ "/" ] [ "-" ] opts.fileSystem) + ".mount") ]; restartTriggers = [ config.environment.etc.projects.source ]; diff --git a/nixos/modules/services/mail/listmonk.nix b/nixos/modules/services/mail/listmonk.nix index c4ea6747196c..8b636bd5b1ff 100644 --- a/nixos/modules/services/mail/listmonk.nix +++ b/nixos/modules/services/mail/listmonk.nix @@ -8,7 +8,7 @@ let # Escaping is done according to https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS setDatabaseOption = key: value: "UPDATE settings SET value = '${ - lib.replaceChars [ "'" ] [ "''" ] (builtins.toJSON value) + lib.replaceStrings [ "'" ] [ "''" ] (builtins.toJSON value) }' WHERE key = '${key}';"; updateDatabaseConfigSQL = pkgs.writeText "update-database-config.sql" (concatStringsSep "\n" (mapAttrsToList setDatabaseOption diff --git a/nixos/modules/services/networking/supplicant.nix b/nixos/modules/services/networking/supplicant.nix index 0a48e73932e8..13d84736e2c2 100644 --- a/nixos/modules/services/networking/supplicant.nix +++ b/nixos/modules/services/networking/supplicant.nix @@ -13,7 +13,7 @@ let serviceName = iface: "supplicant-${if (iface=="WLAN") then "wlan@" else ( if (iface=="LAN") then "lan@" else ( if (iface=="DBUS") then "dbus" - else (replaceChars [" "] ["-"] iface)))}"; + else (replaceStrings [" "] ["-"] iface)))}"; # TODO: Use proper privilege separation for wpa_supplicant supplicantService = iface: suppl: @@ -27,7 +27,7 @@ let driverArg = optionalString (suppl.driver != null) "-D${suppl.driver}"; bridgeArg = optionalString (suppl.bridge!="") "-b${suppl.bridge}"; confFileArg = optionalString (suppl.configFile.path!=null) "-c${suppl.configFile.path}"; - extraConfFile = pkgs.writeText "supplicant-extra-conf-${replaceChars [" "] ["-"] iface}" '' + extraConfFile = pkgs.writeText "supplicant-extra-conf-${replaceStrings [" "] ["-"] iface}" '' ${optionalString suppl.userControlled.enable "ctrl_interface=DIR=${suppl.userControlled.socketDir} GROUP=${suppl.userControlled.group}"} ${optionalString suppl.configFile.writable "update_config=1"} ${suppl.extraConf} @@ -223,7 +223,7 @@ in text = '' ${flip (concatMapStringsSep "\n") (filter (n: n!="WLAN" && n!="LAN" && n!="DBUS") (attrNames cfg)) (iface: flip (concatMapStringsSep "\n") (splitString " " iface) (i: '' - ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="${i}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="supplicant-${replaceChars [" "] ["-"] iface}.service", TAG+="SUPPLICANT_ASSIGNED"''))} + ACTION=="add", SUBSYSTEM=="net", ENV{INTERFACE}=="${i}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="supplicant-${replaceStrings [" "] ["-"] iface}.service", TAG+="SUPPLICANT_ASSIGNED"''))} ${optionalString (hasAttr "WLAN" cfg) '' ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", TAG!="SUPPLICANT_ASSIGNED", TAG+="systemd", PROGRAM="/run/current-system/systemd/bin/systemd-escape -p %E{INTERFACE}", ENV{SYSTEMD_WANTS}+="supplicant-wlan@$result.service" diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix index ce5616672c16..9c13f8b847d1 100644 --- a/nixos/modules/services/networking/wireguard.nix +++ b/nixos/modules/services/networking/wireguard.nix @@ -315,7 +315,7 @@ let peerUnitServiceName = interfaceName: publicKey: dynamicRefreshEnabled: let - keyToUnitName = replaceChars + keyToUnitName = replaceStrings [ "/" "-" " " "+" "=" ] [ "-" "\\x2d" "\\x20" "\\x2b" "\\x3d" ]; unitName = keyToUnitName publicKey; diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index a67b10608aa7..1d266b5a37d5 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -38,7 +38,7 @@ let grubConfig = args: let efiSysMountPoint = if args.efiSysMountPoint == null then args.path else args.efiSysMountPoint; - efiSysMountPoint' = replaceChars [ "/" ] [ "-" ] efiSysMountPoint; + efiSysMountPoint' = replaceStrings [ "/" ] [ "-" ] efiSysMountPoint; in pkgs.writeText "grub-config.xml" (builtins.toXML { splashImage = f cfg.splashImage; diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix index 4c211b747614..4d47a56ccca3 100644 --- a/nixos/modules/tasks/network-interfaces.nix +++ b/nixos/modules/tasks/network-interfaces.nix @@ -1377,12 +1377,12 @@ in # networkmanager falls back to "/proc/sys/net/ipv6/conf/default/use_tempaddr" "net.ipv6.conf.default.use_tempaddr" = tempaddrValues.${cfg.tempAddresses}.sysctl; } // listToAttrs (forEach interfaces - (i: nameValuePair "net.ipv4.conf.${replaceChars ["."] ["/"] i.name}.proxy_arp" i.proxyARP)) + (i: nameValuePair "net.ipv4.conf.${replaceStrings ["."] ["/"] i.name}.proxy_arp" i.proxyARP)) // listToAttrs (forEach interfaces (i: let opt = i.tempAddress; val = tempaddrValues.${opt}.sysctl; - in nameValuePair "net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr" val)); + in nameValuePair "net.ipv6.conf.${replaceStrings ["."] ["/"] i.name}.use_tempaddr" val)); security.wrappers = { ping = { @@ -1495,7 +1495,7 @@ in in '' # override to ${msg} for ${i.name} - ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceChars ["."] ["/"] i.name}.use_tempaddr=${val}" + ACTION=="add", SUBSYSTEM=="net", RUN+="${pkgs.procps}/bin/sysctl net.ipv6.conf.${replaceStrings ["."] ["/"] i.name}.use_tempaddr=${val}" '') (filter (i: i.tempAddress != cfg.tempAddresses) interfaces); }) ] ++ lib.optional (cfg.wlanInterfaces != {}) diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 9b3c8a762991..398ad8de19cf 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -57,7 +57,7 @@ let hardware.enableAllFirmware = lib.mkForce false; - ${replaceChars ["\n"] ["\n "] extraConfig} + ${replaceStrings ["\n"] ["\n "] extraConfig} } ''; diff --git a/nixos/tests/prometheus-exporters.nix b/nixos/tests/prometheus-exporters.nix index 8b40d7e41c00..fa8c59170bf5 100644 --- a/nixos/tests/prometheus-exporters.nix +++ b/nixos/tests/prometheus-exporters.nix @@ -6,7 +6,7 @@ let inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest; inherit (pkgs.lib) concatStringsSep maintainers mapAttrs mkMerge - removeSuffix replaceChars singleton splitString; + removeSuffix replaceStrings singleton splitString; /* * The attrset `exporterTests` contains one attribute @@ -182,7 +182,7 @@ let enable = true; extraFlags = [ "--web.collectd-push-path /collectd" ]; }; - exporterTest = let postData = replaceChars [ "\n" ] [ "" ] '' + exporterTest = let postData = replaceStrings [ "\n" ] [ "" ] '' [{ "values":[23], "dstypes":["gauge"], diff --git a/pkgs/applications/audio/munt/libmt32emu.nix b/pkgs/applications/audio/munt/libmt32emu.nix index d8b2ae1510cc..571cd16e2aa8 100644 --- a/pkgs/applications/audio/munt/libmt32emu.nix +++ b/pkgs/applications/audio/munt/libmt32emu.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "munt"; repo = "munt"; - rev = "${pname}_${lib.replaceChars [ "." ] [ "_" ] version}"; + rev = "${pname}_${lib.replaceStrings [ "." ] [ "_" ] version}"; sha256 = "sha256-XGds9lDfSiY0D8RhYG4TGyjYEVvVYuAfNSv9+VxiJEs="; }; diff --git a/pkgs/applications/audio/munt/mt32emu-qt.nix b/pkgs/applications/audio/munt/mt32emu-qt.nix index 207fbc3717f7..92488ac587b6 100644 --- a/pkgs/applications/audio/munt/mt32emu-qt.nix +++ b/pkgs/applications/audio/munt/mt32emu-qt.nix @@ -14,7 +14,7 @@ }: let - char2underscore = char: str: lib.replaceChars [ char ] [ "_" ] str; + char2underscore = char: str: lib.replaceStrings [ char ] [ "_" ] str; in mkDerivation rec { pname = "mt32emu-qt"; diff --git a/pkgs/applications/audio/munt/mt32emu-smf2wav.nix b/pkgs/applications/audio/munt/mt32emu-smf2wav.nix index 86b5dcee4a65..b9e87a305303 100644 --- a/pkgs/applications/audio/munt/mt32emu-smf2wav.nix +++ b/pkgs/applications/audio/munt/mt32emu-smf2wav.nix @@ -8,7 +8,7 @@ }: let - char2underscore = char: str: lib.replaceChars [ char ] [ "_" ] str; + char2underscore = char: str: lib.replaceStrings [ char ] [ "_" ] str; in stdenv.mkDerivation rec { pname = "mt32emu-smf2wav"; diff --git a/pkgs/applications/audio/qjackctl/default.nix b/pkgs/applications/audio/qjackctl/default.nix index 434be82f6fb3..2406ba24a8c9 100644 --- a/pkgs/applications/audio/qjackctl/default.nix +++ b/pkgs/applications/audio/qjackctl/default.nix @@ -13,7 +13,7 @@ mkDerivation rec { src = fetchFromGitHub { owner = "rncbc"; repo = "qjackctl"; - rev = "${pname}_${lib.replaceChars ["."] ["_"] version}"; + rev = "${pname}_${lib.replaceStrings ["."] ["_"] version}"; sha256 = "sha256-PchW9cM5qEP51G9RXUZ3j/AvKqTkgNiw3esqSQqsy0M="; }; diff --git a/pkgs/applications/audio/roomeqwizard/default.nix b/pkgs/applications/audio/roomeqwizard/default.nix index b02ab65cd87c..acb7ae6e43a1 100644 --- a/pkgs/applications/audio/roomeqwizard/default.nix +++ b/pkgs/applications/audio/roomeqwizard/default.nix @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { version = "5.20.5"; src = fetchurl { - url = "https://www.roomeqwizard.com/installers/REW_linux_${lib.replaceChars [ "." ] [ "_" ] version}.sh"; + url = "https://www.roomeqwizard.com/installers/REW_linux_${lib.replaceStrings [ "." ] [ "_" ] version}.sh"; sha256 = "NYTRiOZmwkni4k+jI2SV84z5umO7+l+eKpwPCdlDD3U="; }; diff --git a/pkgs/applications/editors/jetbrains/linux.nix b/pkgs/applications/editors/jetbrains/linux.nix index a28029888bb0..dec117def52a 100644 --- a/pkgs/applications/editors/jetbrains/linux.nix +++ b/pkgs/applications/editors/jetbrains/linux.nix @@ -21,7 +21,7 @@ with stdenv; lib.makeOverridable mkDerivation (rec { desktopItem = makeDesktopItem { name = pname; exec = pname; - comment = lib.replaceChars ["\n"] [" "] meta.longDescription; + comment = lib.replaceStrings ["\n"] [" "] meta.longDescription; desktopName = product; genericName = meta.description; categories = [ "Development" ]; diff --git a/pkgs/applications/emulators/atari800/default.nix b/pkgs/applications/emulators/atari800/default.nix index c1f685827047..0f1d4a47582e 100644 --- a/pkgs/applications/emulators/atari800/default.nix +++ b/pkgs/applications/emulators/atari800/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "atari800"; repo = "atari800"; - rev = "ATARI800_${replaceChars ["."] ["_"] version}"; + rev = "ATARI800_${replaceStrings ["."] ["_"] version}"; sha256 = "sha256-+eJXhqPyU0GhmzF7DbteTXzEnn5klCor9Io/UgXQfQg="; }; diff --git a/pkgs/applications/emulators/desmume/default.nix b/pkgs/applications/emulators/desmume/default.nix index 74f179324675..2b3deaba653b 100644 --- a/pkgs/applications/emulators/desmume/default.nix +++ b/pkgs/applications/emulators/desmume/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "TASVideos"; repo = "desmume"; - rev = "release_${lib.replaceChars ["."] ["_"] finalAttrs.version}"; + rev = "release_${lib.replaceStrings ["."] ["_"] finalAttrs.version}"; hash = "sha256-vmjKXa/iXLTwtqnG+ZUvOnOQPZROeMpfM5J3Jh/Ynfo="; }; diff --git a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix b/pkgs/applications/emulators/retroarch/mkLibretroCore.nix index 6ab652127009..829b96387f11 100644 --- a/pkgs/applications/emulators/retroarch/mkLibretroCore.nix +++ b/pkgs/applications/emulators/retroarch/mkLibretroCore.nix @@ -16,7 +16,7 @@ }@args: let - d2u = if normalizeCore then (lib.replaceChars [ "-" ] [ "_" ]) else (x: x); + d2u = if normalizeCore then (lib.replaceStrings [ "-" ] [ "_" ]) else (x: x); coreDir = placeholder "out" + libretroCore; coreFilename = "${d2u core}_libretro${stdenv.hostPlatform.extensions.sharedLibrary}"; mainProgram = "retroarch-${core}"; diff --git a/pkgs/applications/misc/sweethome3d/default.nix b/pkgs/applications/misc/sweethome3d/default.nix index 6450dca82d0a..d505761f8076 100644 --- a/pkgs/applications/misc/sweethome3d/default.nix +++ b/pkgs/applications/misc/sweethome3d/default.nix @@ -105,7 +105,7 @@ let }; }; - d2u = lib.replaceChars ["."] ["_"]; + d2u = lib.replaceStrings ["."] ["_"]; in { diff --git a/pkgs/applications/misc/sweethome3d/editors.nix b/pkgs/applications/misc/sweethome3d/editors.nix index 9ef9fd0f7f44..6c737f469c67 100644 --- a/pkgs/applications/misc/sweethome3d/editors.nix +++ b/pkgs/applications/misc/sweethome3d/editors.nix @@ -81,7 +81,7 @@ let }; - d2u = lib.replaceChars ["."] ["_"]; + d2u = lib.replaceStrings ["."] ["_"]; in { diff --git a/pkgs/applications/science/math/weka/default.nix b/pkgs/applications/science/math/weka/default.nix index 6a9eeff3b57c..c29015402a39 100644 --- a/pkgs/applications/science/math/weka/default.nix +++ b/pkgs/applications/science/math/weka/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "3.9.6"; src = fetchurl { - url = "mirror://sourceforge/weka/${lib.replaceChars ["."]["-"] "${pname}-${version}"}.zip"; + url = "mirror://sourceforge/weka/${lib.replaceStrings ["."]["-"] "${pname}-${version}"}.zip"; sha256 = "sha256-8fVN4MXYqXNEmyVtXh1IrauHTBZWgWG8AvsGI5Y9Aj0="; }; diff --git a/pkgs/applications/science/misc/openmodelica/omlibrary/fakegit.nix b/pkgs/applications/science/misc/openmodelica/omlibrary/fakegit.nix index fdbc79aae599..cad21c2a6e44 100644 --- a/pkgs/applications/science/misc/openmodelica/omlibrary/fakegit.nix +++ b/pkgs/applications/science/misc/openmodelica/omlibrary/fakegit.nix @@ -13,7 +13,7 @@ let hashname = r: let - rpl = lib.replaceChars [ ":" "/" ] [ "_" "_" ]; + rpl = lib.replaceStrings [ ":" "/" ] [ "_" "_" ]; in (rpl r.url) + "-" + (rpl r.rev); diff --git a/pkgs/build-support/fetchmavenartifact/default.nix b/pkgs/build-support/fetchmavenartifact/default.nix index 4274b4b52bfa..efdbd0decf95 100644 --- a/pkgs/build-support/fetchmavenartifact/default.nix +++ b/pkgs/build-support/fetchmavenartifact/default.nix @@ -39,14 +39,14 @@ assert (repos != []) || (url != "") || (urls != []); let name_ = lib.concatStrings [ - (lib.replaceChars ["."] ["_"] groupId) "_" - (lib.replaceChars ["."] ["_"] artifactId) "-" + (lib.replaceStrings ["."] ["_"] groupId) "_" + (lib.replaceStrings ["."] ["_"] artifactId) "-" version ]; mkJarUrl = repoUrl: lib.concatStringsSep "/" [ (lib.removeSuffix "/" repoUrl) - (lib.replaceChars ["."] ["/"] groupId) + (lib.replaceStrings ["."] ["/"] groupId) artifactId version "${artifactId}-${version}${lib.optionalString (!isNull classifier) "-${classifier}"}.jar" diff --git a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix index ea150c2fe85d..1c946764c758 100644 --- a/pkgs/build-support/rust/build-rust-crate/configure-crate.nix +++ b/pkgs/build-support/rust/build-rust-crate/configure-crate.nix @@ -32,7 +32,7 @@ let version_ = lib.splitString "-" crateVersion; completeDepsDir = lib.concatStringsSep " " completeDeps; completeBuildDepsDir = lib.concatStringsSep " " completeBuildDeps; envFeatures = lib.concatStringsSep " " ( - map (f: lib.replaceChars ["-"] ["_"] (lib.toUpper f)) crateFeatures + map (f: lib.replaceStrings ["-"] ["_"] (lib.toUpper f)) crateFeatures ); in '' ${echo_colored colors} diff --git a/pkgs/development/compilers/elm/makeDotElm.nix b/pkgs/development/compilers/elm/makeDotElm.nix index b8076d72e481..43252747c3a3 100644 --- a/pkgs/development/compilers/elm/makeDotElm.nix +++ b/pkgs/development/compilers/elm/makeDotElm.nix @@ -3,7 +3,7 @@ ver: deps: let cmds = lib.mapAttrsToList (name: info: let pkg = stdenv.mkDerivation { - name = lib.replaceChars ["/"] ["-"] name + "-${info.version}"; + name = lib.replaceStrings ["/"] ["-"] name + "-${info.version}"; src = fetchurl { url = "https://github.com/${name}/archive/${info.version}.tar.gz"; diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix index 86dc7d666d2b..31492620cb9f 100644 --- a/pkgs/development/interpreters/gauche/default.nix +++ b/pkgs/development/interpreters/gauche/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "shirok"; repo = pname; - rev = "release${lib.replaceChars [ "." ] [ "_" ] version}"; + rev = "release${lib.replaceStrings [ "." ] [ "_" ] version}"; sha256 = "0ki1w7sa10ivmg51sqjskby0gsznb0d3738nz80x589033km5hmb"; }; diff --git a/pkgs/development/libraries/icu/base.nix b/pkgs/development/libraries/icu/base.nix index e1b2ccda3552..a714e758bd88 100644 --- a/pkgs/development/libraries/icu/base.nix +++ b/pkgs/development/libraries/icu/base.nix @@ -9,7 +9,7 @@ let baseAttrs = { src = fetchurl { - url = "https://github.com/unicode-org/icu/releases/download/release-${lib.replaceChars [ "." ] [ "-" ] version}/icu4c-${lib.replaceChars [ "." ] [ "_" ] version}-src.tgz"; + url = "https://github.com/unicode-org/icu/releases/download/release-${lib.replaceStrings [ "." ] [ "-" ] version}/icu4c-${lib.replaceStrings [ "." ] [ "_" ] version}-src.tgz"; inherit sha256; }; diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix index b5d93069cf8f..deb895da7d9c 100644 --- a/pkgs/development/libraries/java/hsqldb/default.nix +++ b/pkgs/development/libraries/java/hsqldb/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "hsqldb"; version = "2.7.1"; - underscoreMajMin = lib.strings.replaceChars ["."] ["_"] (lib.versions.majorMinor version); + underscoreMajMin = lib.replaceStrings ["."] ["_"] (lib.versions.majorMinor version); src = fetchurl { url = "mirror://sourceforge/project/hsqldb/hsqldb/hsqldb_${underscoreMajMin}/hsqldb-${version}.zip"; diff --git a/pkgs/development/libraries/muparser/default.nix b/pkgs/development/libraries/muparser/default.nix index f213f39c06d3..910a25134989 100644 --- a/pkgs/development/libraries/muparser/default.nix +++ b/pkgs/development/libraries/muparser/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "muparser"; version = "2.2.3"; - url-version = lib.replaceChars ["."] ["_"] version; + url-version = lib.replaceStrings ["."] ["_"] version; src = fetchurl { url = "mirror://sourceforge/muparser/muparser_v${url-version}.zip"; diff --git a/pkgs/development/libraries/opendkim/default.nix b/pkgs/development/libraries/opendkim/default.nix index 22c5fca76a48..00b5d624153a 100644 --- a/pkgs/development/libraries/opendkim/default.nix +++ b/pkgs/development/libraries/opendkim/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "trusteddomainproject"; repo = "OpenDKIM"; - rev = "rel-opendkim-${lib.replaceChars ["."] ["-"] version}"; + rev = "rel-opendkim-${lib.replaceStrings ["."] ["-"] version}"; sha256 = "0nx3in8sa6xna4vfacj8g60hfzk61jpj2ldag80xzxip9c3rd2pw"; }; diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix index 026465c97ae8..46bbc079aeb8 100644 --- a/pkgs/development/libraries/opensubdiv/default.nix +++ b/pkgs/development/libraries/opensubdiv/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { src = fetchFromGitHub { owner = "PixarAnimationStudios"; repo = "OpenSubdiv"; - rev = "v${lib.replaceChars ["."] ["_"] version}"; + rev = "v${lib.replaceStrings ["."] ["_"] version}"; sha256 = "sha256-ejxQ5mGIIrEa/rAfkTrRbIRerrAvEPoWn7e0lIqS1JQ="; }; diff --git a/pkgs/development/mobile/androidenv/build-app.nix b/pkgs/development/mobile/androidenv/build-app.nix index 6f4b32b486ba..7e34c34607eb 100644 --- a/pkgs/development/mobile/androidenv/build-app.nix +++ b/pkgs/development/mobile/androidenv/build-app.nix @@ -16,7 +16,7 @@ let extraArgs = removeAttrs args ([ "name" ] ++ builtins.attrNames androidSdkFormalArgs); in stdenv.mkDerivation ({ - name = lib.replaceChars [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot + name = lib.replaceStrings [" "] [""] name; # Android APKs may contain white spaces in their names, but Nix store paths cannot ANDROID_HOME = "${androidsdk}/libexec/android-sdk"; buildInputs = [ jdk ant ]; buildPhase = '' diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix index 82a264e702de..e4c3062cf531 100644 --- a/pkgs/development/mobile/titaniumenv/build-app.nix +++ b/pkgs/development/mobile/titaniumenv/build-app.nix @@ -34,7 +34,7 @@ let extraArgs = removeAttrs args [ "name" "preRebuild" "androidsdkArgs" "xcodewrapperArgs" ]; in stdenv.mkDerivation ({ - name = lib.replaceChars [" "] [""] name; + name = lib.replaceStrings [" "] [""] name; buildInputs = [ nodejs titanium alloy python which file jdk ]; diff --git a/pkgs/development/mobile/xcodeenv/build-app.nix b/pkgs/development/mobile/xcodeenv/build-app.nix index ae8416c8d769..4bef0ba2db0e 100644 --- a/pkgs/development/mobile/xcodeenv/build-app.nix +++ b/pkgs/development/mobile/xcodeenv/build-app.nix @@ -53,7 +53,7 @@ let extraArgs = removeAttrs args ([ "name" "scheme" "xcodeFlags" "release" "certificateFile" "certificatePassword" "provisioningProfile" "signMethod" "generateIPA" "generateXCArchive" "enableWirelessDistribution" "installURL" "bundleId" "version" ] ++ builtins.attrNames xcodewrapperFormalArgs); in stdenv.mkDerivation ({ - name = lib.replaceChars [" "] [""] name; # iOS app names can contain spaces, but in the Nix store this is not allowed + name = lib.replaceStrings [" "] [""] name; # iOS app names can contain spaces, but in the Nix store this is not allowed buildPhase = '' # Be sure that the Xcode wrapper has priority over everything else. # When using buildInputs this does not seem to be the case. diff --git a/pkgs/development/mobile/xcodeenv/simulate-app.nix b/pkgs/development/mobile/xcodeenv/simulate-app.nix index ea0502eb9818..ca6806d43b99 100644 --- a/pkgs/development/mobile/xcodeenv/simulate-app.nix +++ b/pkgs/development/mobile/xcodeenv/simulate-app.nix @@ -9,7 +9,7 @@ let xcodewrapper = composeXcodeWrapper xcodewrapperArgs; in stdenv.mkDerivation { - name = lib.replaceChars [" "] [""] name; + name = lib.replaceStrings [" "] [""] name; buildCommand = '' mkdir -p $out/bin cat > $out/bin/run-test-simulator << "EOF" diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix index 9739163cea50..ca5bc74c0105 100644 --- a/pkgs/development/python-modules/scikit-learn/default.nix +++ b/pkgs/development/python-modules/scikit-learn/default.nix @@ -95,7 +95,7 @@ buildPythonPackage rec { changelog = let major = versions.major version; minor = versions.minor version; - dashVer = replaceChars ["."] ["-"] version; + dashVer = replaceStrings ["."] ["-"] version; in "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}"; homepage = "https://scikit-learn.org"; diff --git a/pkgs/development/tools/haskell/lambdabot/default.nix b/pkgs/development/tools/haskell/lambdabot/default.nix index 0b0a9778c361..b563fa4b7a75 100644 --- a/pkgs/development/tools/haskell/lambdabot/default.nix +++ b/pkgs/development/tools/haskell/lambdabot/default.nix @@ -20,8 +20,8 @@ let allPkgs = pkgs: mueval.defaultPkgs pkgs ++ [ pkgs.lambdabot-trusted ] ++ pac ++ lib.optional withDjinn haskellPackages.djinn ++ lib.optional (aspell != null) aspell ); - modulesStr = lib.replaceChars ["\n"] [" "] modules; - configStr = lib.replaceChars ["\n"] [" "] configuration; + modulesStr = lib.replaceStrings ["\n"] [" "] modules; + configStr = lib.replaceStrings ["\n"] [" "] configuration; in haskellLib.overrideCabal (self: { patches = (self.patches or []) ++ [ ./custom-config.patch ]; diff --git a/pkgs/development/tools/misc/segger-ozone/default.nix b/pkgs/development/tools/misc/segger-ozone/default.nix index 7f68d3e7fc66..e5d3ec0ff3f3 100644 --- a/pkgs/development/tools/misc/segger-ozone/default.nix +++ b/pkgs/development/tools/misc/segger-ozone/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { version = "3.22a"; src = fetchurl { - url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${(lib.replaceChars ["."] [""] version)}_x86_64.tgz"; + url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${(lib.replaceStrings ["."] [""] version)}_x86_64.tgz"; sha256 = "0v1r8qvp1w2f3yip9fys004pa0smlmq69p7w77lfvghs1rmg1649"; }; diff --git a/pkgs/development/web/kcgi/default.nix b/pkgs/development/web/kcgi/default.nix index 8845924d886a..84bfc654c773 100644 --- a/pkgs/development/web/kcgi/default.nix +++ b/pkgs/development/web/kcgi/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "kcgi"; version = "0.10.8"; - underscoreVersion = lib.replaceChars ["."] ["_"] version; + underscoreVersion = lib.replaceStrings ["."] ["_"] version; src = fetchFromGitHub { owner = "kristapsdz"; diff --git a/pkgs/games/nexuiz/default.nix b/pkgs/games/nexuiz/default.nix index 4082e853aa30..fe3081109e9b 100644 --- a/pkgs/games/nexuiz/default.nix +++ b/pkgs/games/nexuiz/default.nix @@ -11,7 +11,7 @@ let version = "2.5.2"; - version_short = lib.replaceChars [ "." ] [ "" ] version; + version_short = lib.replaceStrings [ "." ] [ "" ] version; in stdenv.mkDerivation { pname = "nexuiz"; inherit version; diff --git a/pkgs/games/terraria-server/default.nix b/pkgs/games/terraria-server/default.nix index 2b63fcca45fc..104633198995 100644 --- a/pkgs/games/terraria-server/default.nix +++ b/pkgs/games/terraria-server/default.nix @@ -3,7 +3,7 @@ stdenv.mkDerivation rec { pname = "terraria-server"; version = "1.4.4.9"; - urlVersion = lib.replaceChars [ "." ] [ "" ] version; + urlVersion = lib.replaceStrings [ "." ] [ "" ] version; src = fetchurl { url = "https://terraria.org/api/download/pc-dedicated-server/terraria-server-${urlVersion}.zip"; diff --git a/pkgs/servers/invidious/default.nix b/pkgs/servers/invidious/default.nix index 0b426f13e67e..8b9138e0a4cb 100644 --- a/pkgs/servers/invidious/default.nix +++ b/pkgs/servers/invidious/default.nix @@ -44,7 +44,7 @@ crystal.buildCrystalPackage rec { substituteInPlace src/invidious.cr \ --replace ${lib.escapeShellArg branchTemplate} '"master"' \ --replace ${lib.escapeShellArg commitTemplate} '"${lib.substring 0 7 versions.invidious.rev}"' \ - --replace ${lib.escapeShellArg versionTemplate} '"${lib.replaceChars ["-"] ["."] (lib.substring 9 10 version)}"' \ + --replace ${lib.escapeShellArg versionTemplate} '"${lib.replaceStrings ["-"] ["."] (lib.substring 9 10 version)}"' \ --replace ${lib.escapeShellArg assetCommitTemplate} '"${lib.substring 0 7 versions.invidious.rev}"' # Patch the assets and locales paths to be absolute diff --git a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix index 6f5dddf7b5df..25c65d081911 100644 --- a/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix +++ b/pkgs/tools/typesetting/tex/pgf-tikz/pgf-1.x.nix @@ -10,7 +10,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { src = fetchFromGitHub { owner = "pgf-tikz"; repo = "pgf"; - rev = "refs/tags/version-${lib.replaceChars ["."] ["-"] finalAttrs.version}"; + rev = "refs/tags/version-${lib.replaceStrings ["."] ["-"] finalAttrs.version}"; hash = "sha256-WZ/191iEDd5VK1bnV9JZx2BZfACUeAUhAqrlyx+ZvA4="; }; diff --git a/pkgs/top-level/haxe-packages.nix b/pkgs/top-level/haxe-packages.nix index bda390e255d8..82ad280380c4 100644 --- a/pkgs/top-level/haxe-packages.nix +++ b/pkgs/top-level/haxe-packages.nix @@ -4,7 +4,7 @@ let self = haxePackages; haxePackages = with self; { - withCommas = lib.replaceChars ["."] [","]; + withCommas = lib.replaceStrings ["."] [","]; # simulate "haxelib dev $libname ." simulateHaxelibDev = libname: ''