From: Debian Rust Maintainers <pkg-rust-maintainers@alioth-lists.debian.net>
Date: Mon, 6 May 2024 10:25:32 +0200
Subject: d-0020-remove-windows-dependencies

use something like

 find src compiler library -iname Cargo.toml -exec grep -H -n -e 'windows-sys' -e 'winapi' -e 'ntapi' -e 'wincon' -e 'winreg' -e 'windows' {} \;

to find and eliminate dependencies on windows-only crates when rebasing.

windows-bindgen and windows-metadata should not be removed, they are needed for
the build and don't pull in windows-sys and friends.

Forwarded: not-needed

===================================================================
---
 compiler/rustc_codegen_ssa/Cargo.toml              |  4 ----
 compiler/rustc_data_structures/Cargo.toml          | 10 ---------
 compiler/rustc_driver_impl/Cargo.toml              |  6 -----
 compiler/rustc_errors/Cargo.toml                   |  8 -------
 compiler/rustc_session/Cargo.toml                  |  7 ------
 library/backtrace/Cargo.toml                       |  3 ---
 library/backtrace/crates/as-if-std/Cargo.toml      |  3 ---
 src/bootstrap/Cargo.toml                           | 15 -------------
 src/tools/cargo/Cargo.toml                         | 26 ++++------------------
 .../cargo/crates/cargo-test-support/Cargo.toml     |  3 ---
 src/tools/cargo/crates/cargo-util/Cargo.toml       |  7 ------
 src/tools/cargo/crates/home/Cargo.toml             |  3 ---
 .../cargo/credential/cargo-credential/Cargo.toml   |  3 ---
 src/tools/cargo/src/cargo/util/auth/mod.rs         |  4 ----
 src/tools/compiletest/Cargo.toml                   | 10 ---------
 src/tools/rust-analyzer/crates/profile/Cargo.toml  |  6 -----
 .../rust-analyzer/crates/rust-analyzer/Cargo.toml  |  6 -----
 src/tools/rust-analyzer/crates/stdx/Cargo.toml     |  4 ----
 src/tools/rustc-perf/collector/Cargo.toml          |  4 ----
 .../native-tls-0.1.5/Cargo.toml                    |  4 +---
 20 files changed, 5 insertions(+), 131 deletions(-)

diff --git a/compiler/rustc_codegen_ssa/Cargo.toml b/compiler/rustc_codegen_ssa/Cargo.toml
index 30956fd..bb989c4 100644
--- a/compiler/rustc_codegen_ssa/Cargo.toml
+++ b/compiler/rustc_codegen_ssa/Cargo.toml
@@ -54,7 +54,3 @@ libc = "0.2.50"
 version = "0.37.0"
 default-features = false
 features = ["read_core", "elf", "macho", "pe", "xcoff", "unaligned", "archive", "write", "wasm"]
-
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = ["Win32_Globalization"]
diff --git a/compiler/rustc_data_structures/Cargo.toml b/compiler/rustc_data_structures/Cargo.toml
index 1720488..fa7380d 100644
--- a/compiler/rustc_data_structures/Cargo.toml
+++ b/compiler/rustc_data_structures/Cargo.toml
@@ -37,16 +37,6 @@ features = ["nightly"] # for may_dangle
 [dependencies.parking_lot]
 version = "0.12"
 
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = [
-    "Win32_Foundation",
-    "Win32_Storage_FileSystem",
-    "Win32_System_IO",
-    "Win32_System_ProcessStatus",
-    "Win32_System_Threading",
-]
-
 [target.'cfg(unix)'.dependencies]
 # tidy-alphabetical-start
 libc = "0.2"
diff --git a/compiler/rustc_driver_impl/Cargo.toml b/compiler/rustc_driver_impl/Cargo.toml
index ae1dbd2..c764853 100644
--- a/compiler/rustc_driver_impl/Cargo.toml
+++ b/compiler/rustc_driver_impl/Cargo.toml
@@ -59,12 +59,6 @@ tracing = { version = "0.1.35" }
 libc = "0.2"
 # tidy-alphabetical-end
 
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = [
-    "Win32_System_Diagnostics_Debug",
-]
-
 [target.'cfg(not(target_family = "wasm"))'.dependencies]
 # tidy-alphabetical-start
 ctrlc = "3.4.4"
diff --git a/compiler/rustc_errors/Cargo.toml b/compiler/rustc_errors/Cargo.toml
index 3e8cf62..cde6e5f 100644
--- a/compiler/rustc_errors/Cargo.toml
+++ b/compiler/rustc_errors/Cargo.toml
@@ -30,11 +30,3 @@ termcolor = "1.2.0"
 termize = "0.2"
 tracing = "0.1"
 # tidy-alphabetical-end
-
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = [
-    "Win32_Foundation",
-    "Win32_Security",
-    "Win32_System_Threading",
-]
diff --git a/compiler/rustc_session/Cargo.toml b/compiler/rustc_session/Cargo.toml
index 0516982..e40594e 100644
--- a/compiler/rustc_session/Cargo.toml
+++ b/compiler/rustc_session/Cargo.toml
@@ -30,10 +30,3 @@ tracing = "0.1"
 # tidy-alphabetical-start
 libc = "0.2"
 # tidy-alphabetical-end
-
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = [
-    "Win32_Foundation",
-    "Win32_System_LibraryLoader",
-]
diff --git a/library/backtrace/Cargo.toml b/library/backtrace/Cargo.toml
index 7e1233c..c6e28db 100644
--- a/library/backtrace/Cargo.toml
+++ b/library/backtrace/Cargo.toml
@@ -38,9 +38,6 @@ cpp_demangle = { default-features = false, version = "0.4.0", optional = true, f
   "alloc",
 ] }
 
-[target.'cfg(any(windows, target_os = "cygwin"))'.dependencies]
-windows-targets = "0.52.6"
-
 [target.'cfg(not(all(windows, target_env = "msvc", not(target_vendor = "uwp"))))'.dependencies]
 miniz_oxide = { version = "0.8", default-features = false }
 ruzstd = { version = "0.8.1", default-features = false, optional = true }
diff --git a/library/backtrace/crates/as-if-std/Cargo.toml b/library/backtrace/crates/as-if-std/Cargo.toml
index 8d6d681..69b0409 100644
--- a/library/backtrace/crates/as-if-std/Cargo.toml
+++ b/library/backtrace/crates/as-if-std/Cargo.toml
@@ -27,9 +27,6 @@ default-features = false
 optional = true
 features = ['read_core', 'elf', 'macho', 'pe', 'xcoff', 'unaligned', 'archive']
 
-[target.'cfg(any(windows, target_os = "cygwin"))'.dependencies]
-windows-targets = "0.52.6"
-
 [features]
 default = ['backtrace']
 backtrace = ['addr2line', 'miniz_oxide', 'object', 'ruzstd']
diff --git a/src/bootstrap/Cargo.toml b/src/bootstrap/Cargo.toml
index 8dc41d1..62c57ce 100644
--- a/src/bootstrap/Cargo.toml
+++ b/src/bootstrap/Cargo.toml
@@ -66,21 +66,6 @@ tracing-chrome = { version = "0.7", optional = true }
 tracing-subscriber = { version = "0.3", optional = true, features = ["env-filter", "fmt", "registry", "std"] }
 tracing-forest = { version = "0.1.6", optional = true, default-features =  false, features = ["smallvec", "ansi", "env-filter"] }
 
-[target.'cfg(windows)'.dependencies.junction]
-version = "1.0.0"
-
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61"
-features = [
-    "Win32_Foundation",
-    "Win32_Security",
-    "Win32_System_Diagnostics_Debug",
-    "Win32_System_JobObjects",
-    "Win32_System_ProcessStatus",
-    "Win32_System_Threading",
-    "Win32_System_Time",
-]
-
 [dev-dependencies]
 pretty_assertions = "1.4"
 tempfile = "3.15.0"
diff --git a/src/tools/cargo/Cargo.toml b/src/tools/cargo/Cargo.toml
index ef3543b..105a0b7 100644
--- a/src/tools/cargo/Cargo.toml
+++ b/src/tools/cargo/Cargo.toml
@@ -2,7 +2,9 @@
 resolver = "2"
 members = [
   "crates/*",
-  "credential/*",
+  "credential/cargo-credential",
+  "credential/cargo-credential-1password",
+  "credential/cargo-credential-libsecret",
   "benches/benchsuite",
   "benches/capture",
 ]
@@ -28,8 +30,6 @@ build-rs = { version = "0.3.1", path = "crates/build-rs" }
 cargo = { path = "" }
 cargo-credential = { version = "0.4.2", path = "credential/cargo-credential" }
 cargo-credential-libsecret = { version = "0.5.0", path = "credential/cargo-credential-libsecret" }
-cargo-credential-macos-keychain = { version = "0.4.15", path = "credential/cargo-credential-macos-keychain" }
-cargo-credential-wincred = { version = "0.4.15", path = "credential/cargo-credential-wincred" }
 cargo-platform = { path = "crates/cargo-platform", version = "0.3.0" }
 cargo-test-macro = { version = "0.4.4", path = "crates/cargo-test-macro" }
 cargo-test-support = { version = "0.8.0", path = "crates/cargo-test-support" }
@@ -117,7 +117,6 @@ unicode-xid = "0.2.6"
 url = "2.5.4"
 varisat = "0.2.2"
 walkdir = "2.5.0"
-windows-sys = "0.60"
 
 [workspace.lints.rust]
 rust_2018_idioms = "warn" # TODO: could this be removed?
@@ -159,6 +158,7 @@ anyhow.workspace = true
 base64.workspace = true
 blake3.workspace = true
 cargo-credential.workspace = true
+cargo-credential-libsecret.workspace = true
 cargo-platform.workspace = true
 cargo-util-schemas.workspace = true
 cargo-util.workspace = true
@@ -230,27 +230,9 @@ libc.workspace = true
 [target.'cfg(target_os = "linux")'.dependencies]
 cargo-credential-libsecret.workspace = true
 
-[target.'cfg(target_os = "macos")'.dependencies]
-cargo-credential-macos-keychain.workspace = true
-
 [target.'cfg(not(windows))'.dependencies]
 openssl = { workspace = true, optional = true }
 
-[target.'cfg(windows)'.dependencies]
-cargo-credential-wincred.workspace = true
-
-[target.'cfg(windows)'.dependencies.windows-sys]
-workspace = true
-features = [
-  "Win32_Foundation",
-  "Win32_Security",
-  "Win32_Storage_FileSystem",
-  "Win32_System_IO",
-  "Win32_System_Console",
-  "Win32_System_JobObjects",
-  "Win32_System_Threading",
-]
-
 [dev-dependencies]
 annotate-snippets = { workspace = true, features = ["testing-colors"] }
 cargo-test-support.workspace = true
diff --git a/src/tools/cargo/crates/cargo-test-support/Cargo.toml b/src/tools/cargo/crates/cargo-test-support/Cargo.toml
index 41a8f31..84dc49f 100644
--- a/src/tools/cargo/crates/cargo-test-support/Cargo.toml
+++ b/src/tools/cargo/crates/cargo-test-support/Cargo.toml
@@ -31,8 +31,5 @@ toml = { workspace = true, features = ["display", "serde"] }
 url.workspace = true
 walkdir.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-windows-sys = { workspace = true, features = ["Win32_Storage_FileSystem"] }
-
 [lints]
 workspace = true
diff --git a/src/tools/cargo/crates/cargo-util/Cargo.toml b/src/tools/cargo/crates/cargo-util/Cargo.toml
index a11f709..05194d8 100644
--- a/src/tools/cargo/crates/cargo-util/Cargo.toml
+++ b/src/tools/cargo/crates/cargo-util/Cargo.toml
@@ -21,15 +21,8 @@ tempfile.workspace = true
 tracing.workspace = true
 walkdir.workspace = true
 
-[target.'cfg(target_os = "macos")'.dependencies]
-core-foundation.workspace = true
-
 [target.'cfg(unix)'.dependencies]
 libc.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-miow.workspace = true
-windows-sys = { workspace = true, features = ["Win32_Storage_FileSystem", "Win32_Foundation", "Win32_System_Console"] }
-
 [lints]
 workspace = true
diff --git a/src/tools/cargo/crates/home/Cargo.toml b/src/tools/cargo/crates/home/Cargo.toml
index 747316f..5a313a9 100644
--- a/src/tools/cargo/crates/home/Cargo.toml
+++ b/src/tools/cargo/crates/home/Cargo.toml
@@ -17,8 +17,5 @@ homepage.workspace = true
 repository.workspace = true
 description = "Shared definitions of home directories."
 
-[target.'cfg(windows)'.dependencies]
-windows-sys = { workspace = true, features = ["Win32_Foundation", "Win32_UI_Shell", "Win32_System_Com"] }
-
 [lints]
 workspace = true
diff --git a/src/tools/cargo/credential/cargo-credential/Cargo.toml b/src/tools/cargo/credential/cargo-credential/Cargo.toml
index 585a7a5..1f4d360 100644
--- a/src/tools/cargo/credential/cargo-credential/Cargo.toml
+++ b/src/tools/cargo/credential/cargo-credential/Cargo.toml
@@ -18,9 +18,6 @@ time.workspace = true
 [target.'cfg(unix)'.dependencies]
 libc.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-windows-sys = { workspace = true, features = ["Win32_System_Console", "Win32_Foundation"] }
-
 [dev-dependencies]
 snapbox = { workspace = true, features = ["examples"] }
 
diff --git a/src/tools/cargo/src/cargo/util/auth/mod.rs b/src/tools/cargo/src/cargo/util/auth/mod.rs
index fa4b4e1..103ca5c 100644
--- a/src/tools/cargo/src/cargo/util/auth/mod.rs
+++ b/src/tools/cargo/src/cargo/util/auth/mod.rs
@@ -564,10 +564,6 @@ fn credential_action(
             }
             "cargo:paseto" => bail!("cargo:paseto requires -Zasymmetric-token"),
             "cargo:token-from-stdout" => Box::new(BasicProcessCredential {}),
-            #[cfg(windows)]
-            "cargo:wincred" => Box::new(cargo_credential_wincred::WindowsCredential {}),
-            #[cfg(target_os = "macos")]
-            "cargo:macos-keychain" => Box::new(cargo_credential_macos_keychain::MacKeychain {}),
             #[cfg(target_os = "linux")]
             "cargo:libsecret" => Box::new(get_credential_libsecret()?),
             name if BUILT_IN_PROVIDERS.contains(&name) => {
diff --git a/src/tools/compiletest/Cargo.toml b/src/tools/compiletest/Cargo.toml
index cdada5a..f24ffa1 100644
--- a/src/tools/compiletest/Cargo.toml
+++ b/src/tools/compiletest/Cargo.toml
@@ -36,13 +36,3 @@ walkdir = "2"
 
 [target.'cfg(unix)'.dependencies]
 libc = "0.2"
-
-[target.'cfg(windows)'.dependencies]
-miow = "0.6"
-
-[target.'cfg(windows)'.dependencies.windows]
-version = "0.61.0"
-features = [
-    "Win32_Foundation",
-    "Win32_System_Diagnostics_Debug",
-]
diff --git a/src/tools/rust-analyzer/crates/profile/Cargo.toml b/src/tools/rust-analyzer/crates/profile/Cargo.toml
index f60282f..67fe97e 100644
--- a/src/tools/rust-analyzer/crates/profile/Cargo.toml
+++ b/src/tools/rust-analyzer/crates/profile/Cargo.toml
@@ -21,12 +21,6 @@ perf-event = "=0.4.7"
 [target.'cfg(all(target_os = "linux", target_env = "gnu"))'.dependencies]
 libc.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-windows-sys = { version = "0.60", features = [
-    "Win32_System_Threading",
-    "Win32_System_ProcessStatus",
-] }
-
 [features]
 cpu_profiler = []
 
diff --git a/src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml b/src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml
index 4fa3c89..9cc6de6 100644
--- a/src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml
+++ b/src/tools/rust-analyzer/crates/rust-analyzer/Cargo.toml
@@ -74,12 +74,6 @@ vfs-notify.workspace = true
 vfs.workspace = true
 paths.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-windows-sys = { version = "0.60", features = [
-  "Win32_System_Diagnostics_Debug",
-  "Win32_System_Threading",
-] }
-
 [dev-dependencies]
 expect-test = "1.5.1"
 xshell.workspace = true
diff --git a/src/tools/rust-analyzer/crates/stdx/Cargo.toml b/src/tools/rust-analyzer/crates/stdx/Cargo.toml
index 2c19f00..8468f3c 100644
--- a/src/tools/rust-analyzer/crates/stdx/Cargo.toml
+++ b/src/tools/rust-analyzer/crates/stdx/Cargo.toml
@@ -24,10 +24,6 @@ crossbeam-utils = "0.8.21"
 [target.'cfg(unix)'.dependencies]
 libc.workspace = true
 
-[target.'cfg(windows)'.dependencies]
-miow = "0.6.0"
-windows-sys = { version = "0.60", features = ["Win32_Foundation"] }
-
 [features]
 # Uncomment to enable for the whole crate graph
 # default = [ "backtrace" ]
diff --git a/src/tools/rustc-perf/collector/Cargo.toml b/src/tools/rustc-perf/collector/Cargo.toml
index f43a71e..82b8ccc 100644
--- a/src/tools/rustc-perf/collector/Cargo.toml
+++ b/src/tools/rustc-perf/collector/Cargo.toml
@@ -45,10 +45,6 @@ ratatui = "0.29"
 benchlib = { path = "benchlib" }
 database = { path = "../database" }
 
-[target.'cfg(windows)'.dependencies]
-miow = "0.3"
-windows-sys = { version = "0.48.0", features = ["Win32_Foundation"] }
-
 [features]
 # Enable more precise Cachegrind profiles for runtime benchmarks.
 # Requires a recent Valgrind to be installed.
diff --git a/src/tools/rustc-perf/collector/compile-benchmarks/tokio-webpush-simple/native-tls-0.1.5/Cargo.toml b/src/tools/rustc-perf/collector/compile-benchmarks/tokio-webpush-simple/native-tls-0.1.5/Cargo.toml
index 38bd630e..6abd17c 100644
--- a/src/tools/rustc-perf/collector/compile-benchmarks/tokio-webpush-simple/native-tls-0.1.5/Cargo.toml
+++ b/src/tools/rustc-perf/collector/compile-benchmarks/tokio-webpush-simple/native-tls-0.1.5/Cargo.toml
@@ -33,7 +33,5 @@ version = "0.1.15"
 
 [target."cfg(any(target_os = \"macos\", target_os = \"ios\"))".dependencies.tempdir]
 version = "0.3"
-[target."cfg(target_os = \"windows\")".dependencies.schannel]
-version = "0.1.7"
 
-[workspace]
\ No newline at end of file
+[workspace]
