Compare commits

..

No commits in common. "main" and "binstalk-manifests-v0.15.28" have entirely different histories.

45 changed files with 792 additions and 993 deletions

View file

@ -53,7 +53,7 @@ jobs:
- name: Get changed files - name: Get changed files
id: changed-files id: changed-files
uses: tj-actions/changed-files@115870536a85eaf050e369291c7895748ff12aea uses: tj-actions/changed-files@0b975f61488402a699abcebd6a1e25924cf85218
with: with:
dir_names: true dir_names: true
dir_names_exclude_current_dir: true dir_names_exclude_current_dir: true
@ -275,23 +275,7 @@ jobs:
--mount src="$PWD/.github/scripts/test-detect-targets-musl.sh",dst=/usr/local/bin/test.sh,type=bind \ --mount src="$PWD/.github/scripts/test-detect-targets-musl.sh",dst=/usr/local/bin/test.sh,type=bind \
alpine /bin/ash -c "apk update && apk add bash && test.sh x86_64-unknown-linux-musl" alpine /bin/ash -c "apk update && apk add bash && test.sh x86_64-unknown-linux-musl"
detect-targets-ubuntu-arm-test: detect-targets-ubuntu-test:
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
with:
cache-all-crates: true
- name: Build and run detect-targets tests
run: |
set -euxo pipefail
output="$(cargo run --features cli-logging --bin detect-targets)"
[ "$output" = "$(printf 'aarch64-unknown-linux-gnu\naarch64-unknown-linux-musl')" ]
# Set working directory here, otherwise `cargo` would download
# and build quite a few unused dependencies.
working-directory: crates/detect-targets
detect-targets-ubuntu-x86_64-test:
needs: needs:
- detect-targets-build - detect-targets-build
- changed-files - changed-files
@ -300,7 +284,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
os: os:
- ubuntu-22.04 - ubuntu-20.04
- ubuntu-latest - ubuntu-latest
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
@ -401,8 +385,7 @@ jobs:
- release-dry-run - release-dry-run
- detect-targets-build - detect-targets-build
- detect-targets-alpine-test - detect-targets-alpine-test
- detect-targets-ubuntu-arm-test - detect-targets-ubuntu-test
- detect-targets-ubuntu-x86_64-test
- detect-targets-more-glibc-test - detect-targets-more-glibc-test
- detect-targets-nix-test - detect-targets-nix-test
- detect-targets-android-check - detect-targets-android-check

View file

@ -59,6 +59,7 @@ jobs:
GLIBC_VERSION: ${{ matrix.g }} GLIBC_VERSION: ${{ matrix.g }}
JUST_USE_CARGO_ZIGBUILD: ${{ matrix.c }} JUST_USE_CARGO_ZIGBUILD: ${{ matrix.c }}
JUST_FOR_RELEASE: true JUST_FOR_RELEASE: true
JUST_USE_AUDITABLE: true
JUST_ENABLE_H3: true JUST_ENABLE_H3: true
steps: steps:
@ -76,7 +77,7 @@ jobs:
- uses: ./.github/actions/just-setup - uses: ./.github/actions/just-setup
with: with:
tools: rsign2,rage tools: cargo-auditable,rsign2,rage
env: env:
# just-setup use binstall to install sccache, # just-setup use binstall to install sccache,
# which works better when we provide it with GITHUB_TOKEN. # which works better when we provide it with GITHUB_TOKEN.

1228
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -7,9 +7,7 @@ runs:
- name: Install cargo-binstall - name: Install cargo-binstall
if: runner.os != 'Windows' if: runner.os != 'Windows'
shell: sh shell: sh
run: | run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
set -eu
(curl --retry 10 -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh || echo 'exit 1') | bash
- name: Install cargo-binstall - name: Install cargo-binstall
if: runner.os == 'Windows' if: runner.os == 'Windows'
run: Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr "https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.ps1").Content run: Set-ExecutionPolicy Unrestricted -Scope Process; iex (iwr "https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.ps1").Content

View file

@ -3,7 +3,7 @@ name = "cargo-binstall"
description = "Binary installation for rust projects" description = "Binary installation for rust projects"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/cargo-binstall" documentation = "https://docs.rs/cargo-binstall"
version = "1.12.7" version = "1.12.2"
rust-version = "1.79.0" rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"] authors = ["ryan <ryan@kurte.nz>"]
edition = "2021" edition = "2021"
@ -23,13 +23,13 @@ pkg-fmt = "zip"
[dependencies] [dependencies]
atomic-file-install = { version = "1.0.11", path = "../atomic-file-install" } atomic-file-install = { version = "1.0.11", path = "../atomic-file-install" }
binstalk = { path = "../binstalk", version = "0.28.35", default-features = false } binstalk = { path = "../binstalk", version = "0.28.31", default-features = false }
binstalk-manifests = { path = "../binstalk-manifests", version = "0.16.0" } binstalk-manifests = { path = "../binstalk-manifests", version = "0.15.28" }
clap = { version = "4.5.3", features = ["derive", "env", "wrap_help"] } clap = { version = "4.5.3", features = ["derive", "env", "wrap_help"] }
clap-cargo = "0.15.2" clap-cargo = "0.15.2"
compact_str = "0.9.0" compact_str = "0.9.0"
dirs = "6.0.0" dirs = "6.0.0"
file-format = { version = "0.27.0", default-features = false } file-format = { version = "0.26.0", default-features = false }
home = "0.5.9" home = "0.5.9"
log = { version = "0.4.22", features = ["std"] } log = { version = "0.4.22", features = ["std"] }
miette = "7.0.0" miette = "7.0.0"

View file

@ -11,7 +11,17 @@ fn succeeds(res: io::Result<Child>) -> bool {
.unwrap_or(false) .unwrap_or(false)
} }
fn emit_vergen_info() { fn main() {
let handle = thread::spawn(|| {
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=manifest.rc");
println!("cargo:rerun-if-changed=windows.manifest");
embed_resource::compile("manifest.rc", embed_resource::NONE)
.manifest_required()
.unwrap();
});
let git = Command::new("git").arg("--version").spawn(); let git = Command::new("git").arg("--version").spawn();
// .git is usually a dir, but it also can be a file containing // .git is usually a dir, but it also can be a file containing
@ -31,22 +41,6 @@ fn emit_vergen_info() {
} }
builder.emit().unwrap(); builder.emit().unwrap();
}
handle.join().unwrap();
fn main() {
thread::scope(|s| {
let handle = s.spawn(|| {
println!("cargo:rerun-if-changed=build.rs");
println!("cargo:rerun-if-changed=manifest.rc");
println!("cargo:rerun-if-changed=windows.manifest");
embed_resource::compile("manifest.rc", embed_resource::NONE)
.manifest_required()
.unwrap();
});
emit_vergen_info();
handle.join().unwrap();
});
} }

View file

@ -527,7 +527,7 @@ fn do_install_fetches(
if no_cleanup { if no_cleanup {
// Consume temp_dir without removing it from fs. // Consume temp_dir without removing it from fs.
let _ = temp_dir.keep(); let _ = temp_dir.into_path();
} else { } else {
temp_dir.close().unwrap_or_else(|err| { temp_dir.close().unwrap_or_else(|err| {
warn!("Failed to clean up some resources: {err}"); warn!("Failed to clean up some resources: {err}");
@ -577,7 +577,7 @@ fn do_install_fetches_continue_on_failure(
if no_cleanup { if no_cleanup {
// Consume temp_dir without removing it from fs. // Consume temp_dir without removing it from fs.
let _ = temp_dir.keep(); let _ = temp_dir.into_path();
} else { } else {
temp_dir.close().unwrap_or_else(|err| { temp_dir.close().unwrap_or_else(|err| {
warn!("Failed to clean up some resources: {err}"); warn!("Failed to clean up some resources: {err}");

View file

@ -27,7 +27,12 @@ pub(super) async fn get() -> io::Result<Zeroizing<Box<str>>> {
.strip_prefix("password=") .strip_prefix("password=")
.map(|token| Zeroizing::new(token.into())) .map(|token| Zeroizing::new(token.into()))
}) })
.ok_or_else(|| io::Error::other("Password not found in `git credential fill` output")) .ok_or_else(|| {
io::Error::new(
io::ErrorKind::Other,
"Password not found in `git credential fill` output",
)
})
} }
trait CommandExt { trait CommandExt {
@ -81,10 +86,10 @@ impl CommandExt for Command {
} else { } else {
zeroize_and_drop(stdout); zeroize_and_drop(stdout);
Err(io::Error::other(format!( Err(io::Error::new(
"`{:?}` process exited with `{status}`", io::ErrorKind::Other,
self.as_std() format!("`{:?}` process exited with `{status}`", self.as_std()),
))) ))
} }
} }
} }

View file

@ -3,7 +3,7 @@
<assemblyIdentity <assemblyIdentity
type="win32" type="win32"
name="Binstall.Cli.binstall" name="Binstall.Cli.binstall"
version="1.12.7.0" version="1.12.2.0"
/> />
<trustInfo> <trustInfo>

View file

@ -6,12 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.6.14](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-bins-v0.6.13...binstalk-bins-v0.6.14) - 2025-06-06
### Other
- updated the following local packages: binstalk-types
## [0.6.13](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-bins-v0.6.12...binstalk-bins-v0.6.13) - 2025-03-19 ## [0.6.13](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-bins-v0.6.12...binstalk-bins-v0.6.13) - 2025-03-19
### Other ### Other

View file

@ -1,6 +1,6 @@
[package] [package]
name = "binstalk-bins" name = "binstalk-bins"
version = "0.6.14" version = "0.6.13"
edition = "2021" edition = "2021"
description = "The binstall binaries discovery and installation crate." description = "The binstall binaries discovery and installation crate."
@ -12,7 +12,7 @@ license = "GPL-3.0-only"
[dependencies] [dependencies]
atomic-file-install = { version = "1.0.11", path = "../atomic-file-install" } atomic-file-install = { version = "1.0.11", path = "../atomic-file-install" }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
compact_str = { version = "0.9.0", features = ["serde"] } compact_str = { version = "0.9.0", features = ["serde"] }
leon = "3.0.0" leon = "3.0.0"
miette = "7.0.0" miette = "7.0.0"

View file

@ -6,24 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.13.20](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-downloader-v0.13.19...binstalk-downloader-v0.13.20) - 2025-06-06
### Other
- updated the following local packages: binstalk-types
## [0.13.19](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-downloader-v0.13.18...binstalk-downloader-v0.13.19) - 2025-05-30
### Other
- Upgrade reqwest to 0.12.17 ([#2168](https://github.com/cargo-bins/cargo-binstall/pull/2168))
## [0.13.18](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-downloader-v0.13.17...binstalk-downloader-v0.13.18) - 2025-05-16
### Other
- Upgrade transitive dependencies ([#2154](https://github.com/cargo-bins/cargo-binstall/pull/2154))
## [0.13.17](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-downloader-v0.13.16...binstalk-downloader-v0.13.17) - 2025-04-05 ## [0.13.17](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-downloader-v0.13.16...binstalk-downloader-v0.13.17) - 2025-04-05
### Other ### Other

View file

@ -3,7 +3,7 @@ name = "binstalk-downloader"
description = "The binstall toolkit for downloading and extracting file" description = "The binstall toolkit for downloading and extracting file"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk-downloader" documentation = "https://docs.rs/binstalk-downloader"
version = "0.13.20" version = "0.13.17"
rust-version = "1.79.0" rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"] authors = ["ryan <ryan@kurte.nz>"]
edition = "2021" edition = "2021"
@ -18,7 +18,7 @@ async-compression = { version = "0.4.4", features = [
"bzip2", "bzip2",
"tokio", "tokio",
] } ] }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
bytes = "1.4.0" bytes = "1.4.0"
bzip2 = { version = "0.5.2", default-features = false, features = [ bzip2 = { version = "0.5.2", default-features = false, features = [
"libbz2-rs-sys", "libbz2-rs-sys",
@ -36,7 +36,7 @@ rc-zip-sync = { version = "4.2.6", features = [
"lzma", "lzma",
"zstd", "zstd",
] } ] }
reqwest = { version = "0.12.17", features = [ reqwest = { version = "0.12.5", features = [
"http2", "http2",
"stream", "stream",
"zstd", "zstd",
@ -136,6 +136,3 @@ ipconfig = { version = "0.3.2", optional = true, default-features = false }
[package.metadata.docs.rs] [package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"] rustdoc-args = ["--cfg", "docsrs"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(reqwest_unstable)'] }

View file

@ -53,7 +53,7 @@ impl From<DownloadError> for io::Error {
fn from(e: DownloadError) -> io::Error { fn from(e: DownloadError) -> io::Error {
match e { match e {
DownloadError::Io(io_error) => io_error, DownloadError::Io(io_error) => io_error,
e => io::Error::other(e), e => io::Error::new(io::ErrorKind::Other, e),
} }
} }
} }

View file

@ -144,11 +144,6 @@ impl Client {
} }
} }
#[cfg(all(reqwest_unstable, feature = "http3"))]
{
builder = builder.http3_congestion_bbr().tls_early_data(true);
}
builder builder
} }

View file

@ -100,7 +100,10 @@ where
async fn inner<T: Send + 'static>(handle: task::JoinHandle<io::Result<T>>) -> io::Result<T> { async fn inner<T: Send + 'static>(handle: task::JoinHandle<io::Result<T>>) -> io::Result<T> {
match handle.await { match handle.await {
Ok(res) => res, Ok(res) => res,
Err(err) => Err(io::Error::other(format!("background task failed: {err}"))), Err(err) => Err(io::Error::new(
io::ErrorKind::Other,
format!("background task failed: {err}"),
)),
} }
} }

View file

@ -6,24 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.10.21](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-fetchers-v0.10.20...binstalk-fetchers-v0.10.21) - 2025-06-06
### Other
- updated the following local packages: binstalk-types, binstalk-downloader, binstalk-downloader, binstalk-git-repo-api
## [0.10.20](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-fetchers-v0.10.19...binstalk-fetchers-v0.10.20) - 2025-05-30
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader, binstalk-git-repo-api
## [0.10.19](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-fetchers-v0.10.18...binstalk-fetchers-v0.10.19) - 2025-05-16
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader, binstalk-git-repo-api
## [0.10.18](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-fetchers-v0.10.17...binstalk-fetchers-v0.10.18) - 2025-04-05 ## [0.10.18](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-fetchers-v0.10.17...binstalk-fetchers-v0.10.18) - 2025-04-05
### Other ### Other

View file

@ -1,6 +1,6 @@
[package] [package]
name = "binstalk-fetchers" name = "binstalk-fetchers"
version = "0.10.21" version = "0.10.18"
edition = "2021" edition = "2021"
description = "The binstall fetchers" description = "The binstall fetchers"
@ -12,9 +12,9 @@ license = "GPL-3.0-only"
[dependencies] [dependencies]
async-trait = "0.1.88" async-trait = "0.1.88"
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader", default-features = false } binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader", default-features = false }
binstalk-git-repo-api = { version = "0.5.22", path = "../binstalk-git-repo-api" } binstalk-git-repo-api = { version = "0.5.19", path = "../binstalk-git-repo-api" }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
bytes = "1.4.0" bytes = "1.4.0"
compact_str = { version = "0.9.0" } compact_str = { version = "0.9.0" }
either = "1.11.0" either = "1.11.0"
@ -34,7 +34,7 @@ tracing = "0.1.39"
url = "2.5.4" url = "2.5.4"
[dev-dependencies] [dev-dependencies]
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader" } binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader" }
[features] [features]
quickinstall = [] quickinstall = []

View file

@ -6,24 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.5.22](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-git-repo-api-v0.5.21...binstalk-git-repo-api-v0.5.22) - 2025-06-06
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader
## [0.5.21](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-git-repo-api-v0.5.20...binstalk-git-repo-api-v0.5.21) - 2025-05-30
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader
## [0.5.20](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-git-repo-api-v0.5.19...binstalk-git-repo-api-v0.5.20) - 2025-05-16
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader
## [0.5.19](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-git-repo-api-v0.5.18...binstalk-git-repo-api-v0.5.19) - 2025-04-05 ## [0.5.19](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-git-repo-api-v0.5.18...binstalk-git-repo-api-v0.5.19) - 2025-04-05
### Other ### Other

View file

@ -3,14 +3,14 @@ name = "binstalk-git-repo-api"
description = "The binstall toolkit for accessing API for git repository" description = "The binstall toolkit for accessing API for git repository"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk-git-repo-api" documentation = "https://docs.rs/binstalk-git-repo-api"
version = "0.5.22" version = "0.5.19"
rust-version = "1.70.0" rust-version = "1.70.0"
authors = ["Jiahao XU <Jiahao_XU@outlook.com>"] authors = ["Jiahao XU <Jiahao_XU@outlook.com>"]
edition = "2021" edition = "2021"
license = "Apache-2.0 OR MIT" license = "Apache-2.0 OR MIT"
[dependencies] [dependencies]
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader", default-features = false, features = [ binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader", default-features = false, features = [
"json", "json",
] } ] }
compact_str = "0.9.0" compact_str = "0.9.0"
@ -25,6 +25,6 @@ url = "2.5.4"
zeroize = "1.8.1" zeroize = "1.8.1"
[dev-dependencies] [dev-dependencies]
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader" } binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader" }
tracing-subscriber = "0.3" tracing-subscriber = "0.3"
once_cell = "1" once_cell = "1"

View file

@ -6,34 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.16.0](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.31...binstalk-manifests-v0.16.0) - 2025-06-06
### Fixed
- fix updating of installed crates manifest on custom sparse registry ([#2178](https://github.com/cargo-bins/cargo-binstall/pull/2178))
### Other
- Optimize CratesToml ([#2186](https://github.com/cargo-bins/cargo-binstall/pull/2186))
## [0.15.31](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.30...binstalk-manifests-v0.15.31) - 2025-05-30
### Other
- updated the following local packages: detect-targets
## [0.15.30](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.29...binstalk-manifests-v0.15.30) - 2025-05-16
### Other
- updated the following local packages: detect-targets
## [0.15.29](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.28...binstalk-manifests-v0.15.29) - 2025-05-07
### Other
- updated the following local packages: detect-targets
## [0.15.28](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.27...binstalk-manifests-v0.15.28) - 2025-04-05 ## [0.15.28](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-manifests-v0.15.27...binstalk-manifests-v0.15.28) - 2025-04-05
### Other ### Other

View file

@ -3,7 +3,7 @@ name = "binstalk-manifests"
description = "The binstall toolkit for manipulating with manifest" description = "The binstall toolkit for manipulating with manifest"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk-manifests" documentation = "https://docs.rs/binstalk-manifests"
version = "0.16.0" version = "0.15.28"
rust-version = "1.61.0" rust-version = "1.61.0"
authors = ["ryan <ryan@kurte.nz>"] authors = ["ryan <ryan@kurte.nz>"]
edition = "2021" edition = "2021"
@ -11,7 +11,7 @@ license = "Apache-2.0 OR MIT"
[dependencies] [dependencies]
beef = { version = "0.5.2", features = ["impl_serde"] } beef = { version = "0.5.2", features = ["impl_serde"] }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
compact_str = { version = "0.9.0", features = ["serde"] } compact_str = { version = "0.9.0", features = ["serde"] }
fs-lock = { version = "0.1.10", path = "../fs-lock", features = ["tracing"] } fs-lock = { version = "0.1.10", path = "../fs-lock", features = ["tracing"] }
home = "0.5.9" home = "0.5.9"
@ -25,5 +25,5 @@ toml_edit = { version = "0.22.12", features = ["serde"] }
url = { version = "2.5.4", features = ["serde"] } url = { version = "2.5.4", features = ["serde"] }
[dev-dependencies] [dev-dependencies]
detect-targets = { version = "0.1.51", path = "../detect-targets" } detect-targets = { version = "0.1.47", path = "../detect-targets" }
tempfile = "3.5.0" tempfile = "3.5.0"

View file

@ -34,10 +34,10 @@ use crate_version_source::*;
#[derive(Clone, Debug, Default, Deserialize, Serialize)] #[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CratesToml<'a> { pub struct CratesToml<'a> {
#[serde(with = "tuple_vec_map")] #[serde(with = "tuple_vec_map")]
v1: Vec<(Box<str>, Cow<'a, [CompactString]>)>, v1: Vec<(String, Cow<'a, [CompactString]>)>,
} }
impl<'v1> CratesToml<'v1> { impl CratesToml<'_> {
pub fn default_path() -> Result<PathBuf, CratesTomlParseError> { pub fn default_path() -> Result<PathBuf, CratesTomlParseError> {
Ok(cargo_home()?.join(".crates.toml")) Ok(cargo_home()?.join(".crates.toml"))
} }
@ -68,14 +68,9 @@ impl<'v1> CratesToml<'v1> {
} }
pub fn remove(&mut self, name: &str) { pub fn remove(&mut self, name: &str) {
self.remove_all(&[name]);
}
/// * `sorted_names` - must be sorted
pub fn remove_all(&mut self, sorted_names: &[&str]) {
self.v1.retain(|(s, _bin)| { self.v1.retain(|(s, _bin)| {
s.split_once(' ') s.split_once(' ')
.map(|(crate_name, _rest)| sorted_names.binary_search(&crate_name).is_err()) .map(|(crate_name, _rest)| crate_name != name)
.unwrap_or_default() .unwrap_or_default()
}); });
} }
@ -111,54 +106,53 @@ impl<'v1> CratesToml<'v1> {
self.write_to_file(&mut file) self.write_to_file(&mut file)
} }
pub fn add_crate(&mut self, metadata: &'v1 CrateInfo) { pub fn append_to_file<'a, Iter>(file: &mut File, iter: Iter) -> Result<(), CratesTomlParseError>
let name = &metadata.name; where
let version = &metadata.current_version; Iter: IntoIterator<Item = &'a CrateInfo>,
let source = Source::from(&metadata.source); {
fn inner(
file: &mut File,
iter: &mut dyn Iterator<Item = &CrateInfo>,
) -> Result<(), CratesTomlParseError> {
let mut c1 = CratesToml::load_from_reader(&mut *file)?;
self.v1.push(( for metadata in iter {
format!("{name} {version} ({source})").into(), let name = &metadata.name;
Cow::borrowed(&metadata.bins), let version = &metadata.current_version;
)); let source = Source::from(&metadata.source);
}
pub fn append_to_file( c1.remove(name);
file: &mut File, c1.v1.push((
crates: &[CrateInfo], format!("{name} {version} ({source})"),
) -> Result<(), CratesTomlParseError> { Cow::borrowed(&metadata.bins),
let mut c1 = CratesToml::load_from_reader(&mut *file)?; ));
}
c1.remove_all(&{ file.rewind()?;
let mut crate_names: Vec<_> = crates c1.write_to_file(file)?;
.iter()
.map(|metadata| metadata.name.as_str())
.collect();
crate_names.sort_unstable();
crate_names
});
c1.v1.reserve_exact(crates.len()); Ok(())
for metadata in crates {
c1.add_crate(metadata);
} }
file.rewind()?; inner(file, &mut iter.into_iter())
c1.write_to_file(file)?;
Ok(())
} }
pub fn append_to_path( pub fn append_to_path<'a, Iter>(
path: impl AsRef<Path>, path: impl AsRef<Path>,
crates: &[CrateInfo], iter: Iter,
) -> Result<(), CratesTomlParseError> { ) -> Result<(), CratesTomlParseError>
where
Iter: IntoIterator<Item = &'a CrateInfo>,
{
let mut file = create_if_not_exist(path.as_ref())?; let mut file = create_if_not_exist(path.as_ref())?;
Self::append_to_file(&mut file, crates) Self::append_to_file(&mut file, iter)
} }
pub fn append(crates: &[CrateInfo]) -> Result<(), CratesTomlParseError> { pub fn append<'a, Iter>(iter: Iter) -> Result<(), CratesTomlParseError>
Self::append_to_path(Self::default_path()?, crates) where
Iter: IntoIterator<Item = &'a CrateInfo>,
{
Self::append_to_path(Self::default_path()?, iter)
} }
/// Return BTreeMap with crate name as key and its corresponding version /// Return BTreeMap with crate name as key and its corresponding version

View file

@ -1,8 +1,4 @@
use std::{ use std::{borrow::Cow, fmt, str::FromStr};
borrow::Cow,
fmt::{self, Write as _},
str::FromStr,
};
use binstalk_types::maybe_owned::MaybeOwned; use binstalk_types::maybe_owned::MaybeOwned;
use compact_str::CompactString; use compact_str::CompactString;
@ -34,7 +30,6 @@ impl From<&CrateInfo> for CrateVersionSource {
Git => Source::Git(url), Git => Source::Git(url),
Path => Source::Path(url), Path => Source::Path(url),
Registry => Source::Registry(url), Registry => Source::Registry(url),
Sparse => Source::Sparse(url),
}, },
} }
} }
@ -45,7 +40,6 @@ pub enum Source<'a> {
Git(MaybeOwned<'a, Url>), Git(MaybeOwned<'a, Url>),
Path(MaybeOwned<'a, Url>), Path(MaybeOwned<'a, Url>),
Registry(MaybeOwned<'a, Url>), Registry(MaybeOwned<'a, Url>),
Sparse(MaybeOwned<'a, Url>),
} }
impl<'a> From<&'a CrateSource> for Source<'a> { impl<'a> From<&'a CrateSource> for Source<'a> {
@ -58,7 +52,6 @@ impl<'a> From<&'a CrateSource> for Source<'a> {
Git => Self::Git(url), Git => Self::Git(url),
Path => Self::Path(url), Path => Self::Path(url),
Registry => Self::Registry(url), Registry => Self::Registry(url),
Sparse => Self::Sparse(url),
} }
} }
} }
@ -132,15 +125,6 @@ impl fmt::Display for Source<'_> {
Source::Git(url) => write!(f, "git+{url}"), Source::Git(url) => write!(f, "git+{url}"),
Source::Path(url) => write!(f, "path+{url}"), Source::Path(url) => write!(f, "path+{url}"),
Source::Registry(url) => write!(f, "registry+{url}"), Source::Registry(url) => write!(f, "registry+{url}"),
Source::Sparse(url) => {
let url = url.as_str();
write!(f, "sparse+{url}")?;
if url.ends_with("/") {
Ok(())
} else {
f.write_char('/')
}
}
} }
} }
} }

View file

@ -6,24 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.11.21](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-registry-v0.11.20...binstalk-registry-v0.11.21) - 2025-06-06
### Fixed
- fix updating of installed crates manifest on custom sparse registry ([#2178](https://github.com/cargo-bins/cargo-binstall/pull/2178))
## [0.11.20](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-registry-v0.11.19...binstalk-registry-v0.11.20) - 2025-05-30
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader
## [0.11.19](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-registry-v0.11.18...binstalk-registry-v0.11.19) - 2025-05-16
### Other
- updated the following local packages: binstalk-downloader, binstalk-downloader
## [0.11.18](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-registry-v0.11.17...binstalk-registry-v0.11.18) - 2025-04-05 ## [0.11.18](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-registry-v0.11.17...binstalk-registry-v0.11.18) - 2025-04-05
### Other ### Other

View file

@ -1,6 +1,6 @@
[package] [package]
name = "binstalk-registry" name = "binstalk-registry"
version = "0.11.21" version = "0.11.18"
edition = "2021" edition = "2021"
rust-version = "1.65.0" rust-version = "1.65.0"
@ -13,10 +13,10 @@ license = "Apache-2.0 OR MIT"
[dependencies] [dependencies]
async-trait = "0.1.88" async-trait = "0.1.88"
base16 = "0.2.1" base16 = "0.2.1"
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader", default-features = false, features = [ binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader", default-features = false, features = [
"json", "json",
] } ] }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
cargo-toml-workspace = { version = "7.0.6", path = "../cargo-toml-workspace" } cargo-toml-workspace = { version = "7.0.6", path = "../cargo-toml-workspace" }
compact_str = { version = "0.9.0", features = ["serde"] } compact_str = { version = "0.9.0", features = ["serde"] }
leon = "3.0.0" leon = "3.0.0"
@ -40,7 +40,7 @@ url = "2.5.4"
[dev-dependencies] [dev-dependencies]
tokio = { version = "1", features = ["rt-multi-thread", "macros"] } tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
toml_edit = { version = "0.22.12", features = ["serde"] } toml_edit = { version = "0.22.12", features = ["serde"] }
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader", default-features = false, features = [ binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader", default-features = false, features = [
"rustls", "rustls",
] } ] }

View file

@ -1,4 +1,4 @@
use std::{io, path::PathBuf, sync::Arc}; use std::{fmt::Display, io, path::PathBuf, sync::Arc};
use binstalk_downloader::remote::Client; use binstalk_downloader::remote::Client;
use binstalk_types::cargo_toml_binstall::Meta; use binstalk_types::cargo_toml_binstall::Meta;
@ -73,7 +73,7 @@ impl GitRegistry {
})) }))
} }
pub fn url(&self) -> &GitUrl { pub fn url(&self) -> impl Display + '_ {
&self.0.url &self.0.url
} }

View file

@ -7,11 +7,7 @@ use binstalk_downloader::{
download::DownloadError, download::DownloadError,
remote::{Client, Error as RemoteError}, remote::{Client, Error as RemoteError},
}; };
use binstalk_types::{ use binstalk_types::cargo_toml_binstall::Meta;
cargo_toml_binstall::Meta,
crate_info::{CrateSource, SourceType},
maybe_owned::MaybeOwned,
};
use cargo_toml_workspace::cargo_toml::{Error as CargoTomlError, Manifest}; use cargo_toml_workspace::cargo_toml::{Error as CargoTomlError, Manifest};
use compact_str::CompactString; use compact_str::CompactString;
use leon::{ParseError, RenderError}; use leon::{ParseError, RenderError};
@ -84,7 +80,7 @@ pub enum RegistryError {
CargoManifest(#[from] Box<CargoTomlError>), CargoManifest(#[from] Box<CargoTomlError>),
#[error("Failed to parse url: {0}")] #[error("Failed to parse url: {0}")]
UrlParse(#[from] UrlParseError), UrlParse(#[from] url::ParseError),
#[error(transparent)] #[error(transparent)]
Download(#[from] DownloadError), Download(#[from] DownloadError),
@ -199,38 +195,6 @@ impl Registry {
} }
} }
} }
/// Get url of the regsitry
pub fn url(&self) -> Result<MaybeOwned<'_, Url>, UrlParseError> {
match self {
#[cfg(feature = "git")]
Registry::Git(registry) => {
Url::parse(&registry.url().to_string()).map(MaybeOwned::Owned)
}
Registry::Sparse(registry) => Ok(MaybeOwned::Borrowed(registry.url())),
}
}
/// Get crate source of this registry
pub fn crate_source(&self) -> Result<CrateSource, UrlParseError> {
let registry = self.url()?;
let source_type = match self {
#[cfg(feature = "git")]
Registry::Git(_) => SourceType::Git,
Registry::Sparse(_) => SourceType::Sparse,
};
Ok(match (registry.as_str(), source_type) {
("https://index.crates.io/", SourceType::Sparse)
| ("https://github.com/rust-lang/crates.io-index", SourceType::Git) => {
CrateSource::cratesio_registry()
}
_ => CrateSource {
source_type,
url: MaybeOwned::Owned(registry.into_owned()),
},
})
}
} }
impl fmt::Display for Registry { impl fmt::Display for Registry {

View file

@ -1,3 +1,5 @@
use std::fmt::Display;
use binstalk_downloader::remote::{Client, Error as RemoteError}; use binstalk_downloader::remote::{Client, Error as RemoteError};
use binstalk_types::cargo_toml_binstall::Meta; use binstalk_types::cargo_toml_binstall::Meta;
use cargo_toml_workspace::cargo_toml::Manifest; use cargo_toml_workspace::cargo_toml::Manifest;
@ -28,7 +30,7 @@ impl SparseRegistry {
} }
} }
pub fn url(&self) -> &Url { pub fn url(&self) -> impl Display + '_ {
&self.url &self.url
} }

View file

@ -6,12 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.10.0](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-types-v0.9.4...binstalk-types-v0.10.0) - 2025-06-06
### Fixed
- fix updating of installed crates manifest on custom sparse registry ([#2178](https://github.com/cargo-bins/cargo-binstall/pull/2178))
## [0.9.4](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-types-v0.9.3...binstalk-types-v0.9.4) - 2025-03-07 ## [0.9.4](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-types-v0.9.3...binstalk-types-v0.9.4) - 2025-03-07
### Other ### Other

View file

@ -3,7 +3,7 @@ name = "binstalk-types"
description = "The binstall toolkit that contains basic types for binstalk crates" description = "The binstall toolkit that contains basic types for binstalk crates"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk-types" documentation = "https://docs.rs/binstalk-types"
version = "0.10.0" version = "0.9.4"
rust-version = "1.61.0" rust-version = "1.61.0"
authors = ["ryan <ryan@kurte.nz>"] authors = ["ryan <ryan@kurte.nz>"]
edition = "2021" edition = "2021"

View file

@ -65,7 +65,6 @@ pub enum SourceType {
Git, Git,
Path, Path,
Registry, Registry,
Sparse,
} }
#[derive(Clone, Debug, Serialize, Deserialize)] #[derive(Clone, Debug, Serialize, Deserialize)]

View file

@ -6,30 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.28.35](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.34...binstalk-v0.28.35) - 2025-06-06
### Fixed
- fix updating of installed crates manifest on custom sparse registry ([#2178](https://github.com/cargo-bins/cargo-binstall/pull/2178))
## [0.28.34](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.33...binstalk-v0.28.34) - 2025-05-30
### Other
- updated the following local packages: binstalk-downloader, detect-targets, binstalk-git-repo-api, binstalk-fetchers, binstalk-registry
## [0.28.33](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.32...binstalk-v0.28.33) - 2025-05-16
### Other
- Upgrade transitive dependencies ([#2154](https://github.com/cargo-bins/cargo-binstall/pull/2154))
## [0.28.32](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.31...binstalk-v0.28.32) - 2025-05-07
### Other
- updated the following local packages: detect-targets
## [0.28.31](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.30...binstalk-v0.28.31) - 2025-04-05 ## [0.28.31](https://github.com/cargo-bins/cargo-binstall/compare/binstalk-v0.28.30...binstalk-v0.28.31) - 2025-04-05
### Other ### Other

View file

@ -3,25 +3,25 @@ name = "binstalk"
description = "The binstall toolkit (library interface)" description = "The binstall toolkit (library interface)"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/binstalk" documentation = "https://docs.rs/binstalk"
version = "0.28.35" version = "0.28.31"
rust-version = "1.79.0" rust-version = "1.79.0"
authors = ["ryan <ryan@kurte.nz>"] authors = ["ryan <ryan@kurte.nz>"]
edition = "2021" edition = "2021"
license = "GPL-3.0-only" license = "GPL-3.0-only"
[dependencies] [dependencies]
binstalk-bins = { version = "0.6.14", path = "../binstalk-bins" } binstalk-bins = { version = "0.6.13", path = "../binstalk-bins" }
binstalk-downloader = { version = "0.13.20", path = "../binstalk-downloader", default-features = false } binstalk-downloader = { version = "0.13.17", path = "../binstalk-downloader", default-features = false }
binstalk-git-repo-api = { version = "0.5.22", path = "../binstalk-git-repo-api" } binstalk-git-repo-api = { version = "0.5.19", path = "../binstalk-git-repo-api" }
binstalk-fetchers = { version = "0.10.21", path = "../binstalk-fetchers", features = [ binstalk-fetchers = { version = "0.10.18", path = "../binstalk-fetchers", features = [
"quickinstall", "quickinstall",
] } ] }
binstalk-registry = { version = "0.11.21", path = "../binstalk-registry" } binstalk-registry = { version = "0.11.18", path = "../binstalk-registry" }
binstalk-types = { version = "0.10.0", path = "../binstalk-types" } binstalk-types = { version = "0.9.4", path = "../binstalk-types" }
cargo-toml-workspace = { version = "7.0.6", path = "../cargo-toml-workspace" } cargo-toml-workspace = { version = "7.0.6", path = "../cargo-toml-workspace" }
command-group = { version = "5.0.1", features = ["with-tokio"] } command-group = { version = "5.0.1", features = ["with-tokio"] }
compact_str = { version = "0.9.0", features = ["serde"] } compact_str = { version = "0.9.0", features = ["serde"] }
detect-targets = { version = "0.1.51", path = "../detect-targets", features = [ detect-targets = { version = "0.1.47", path = "../detect-targets", features = [
"tracing", "tracing",
] } ] }
either = "1.11.0" either = "1.11.0"

View file

@ -539,7 +539,7 @@ impl From<BinstallError> for io::Error {
fn from(e: BinstallError) -> io::Error { fn from(e: BinstallError) -> io::Error {
match e { match e {
BinstallError::Io(io_error) => io_error, BinstallError::Io(io_error) => io_error,
e => io::Error::other(e), e => io::Error::new(io::ErrorKind::Other, e),
} }
} }
} }

View file

@ -496,7 +496,17 @@ impl PackageInfo {
.fetch_crate_matched(client, &name, version_req), .fetch_crate_matched(client, &name, version_req),
) )
.await?, .await?,
opts.registry.crate_source()?, {
let registry = format!("{}", opts.registry);
if registry == "https://index.crates.io/" {
CrateSource::cratesio_registry()
} else {
CrateSource {
source_type: SourceType::Registry,
url: MaybeOwned::Owned(Url::parse(&registry)?),
}
}
},
), ),
}; };

View file

@ -6,30 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [0.1.51](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.50...detect-targets-v0.1.51) - 2025-06-06
### Other
- update Cargo.lock dependencies
## [0.1.50](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.49...detect-targets-v0.1.50) - 2025-05-30
### Other
- update Cargo.lock dependencies
## [0.1.49](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.48...detect-targets-v0.1.49) - 2025-05-16
### Other
- update Cargo.lock dependencies
## [0.1.48](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.47...detect-targets-v0.1.48) - 2025-05-07
### Other
- Fix glibc detection on ubuntu 24.02 ([#2143](https://github.com/cargo-bins/cargo-binstall/pull/2143))
## [0.1.47](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.46...detect-targets-v0.1.47) - 2025-04-05 ## [0.1.47](https://github.com/cargo-bins/cargo-binstall/compare/detect-targets-v0.1.46...detect-targets-v0.1.47) - 2025-04-05
### Other ### Other

View file

@ -3,7 +3,7 @@ name = "detect-targets"
description = "Detect the target of the env at runtime" description = "Detect the target of the env at runtime"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/detect-targets" documentation = "https://docs.rs/detect-targets"
version = "0.1.51" version = "0.1.47"
rust-version = "1.62.0" rust-version = "1.62.0"
authors = ["Jiahao XU <Jiahao_XU@outlook.com>"] authors = ["Jiahao XU <Jiahao_XU@outlook.com>"]
edition = "2021" edition = "2021"

View file

@ -52,10 +52,6 @@ pub(super) async fn detect_targets(target: String) -> Vec<String> {
format!("/lib64/{dirname}/{filename}"), format!("/lib64/{dirname}/{filename}"),
format!("/usr/lib/{dirname}/{filename}"), format!("/usr/lib/{dirname}/{filename}"),
format!("/usr/lib64/{dirname}/{filename}"), format!("/usr/lib64/{dirname}/{filename}"),
format!("/usr/lib/{dirname}/libc.so.6"),
format!("/usr/lib64/{dirname}/libc.so.6"),
format!("/usr/lib/{dirname}/libc.so"),
format!("/usr/lib64/{dirname}/libc.so"),
] ]
.into_iter() .into_iter()
.map(|p| AutoAbortHandle(tokio::spawn(is_gnu_ld(p)))) .map(|p| AutoAbortHandle(tokio::spawn(is_gnu_ld(p))))

View file

@ -6,18 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] ## [Unreleased]
## [1.0.30](https://github.com/cargo-bins/cargo-binstall/compare/detect-wasi-v1.0.29...detect-wasi-v1.0.30) - 2025-05-16
### Other
- update Cargo.lock dependencies
## [1.0.29](https://github.com/cargo-bins/cargo-binstall/compare/detect-wasi-v1.0.28...detect-wasi-v1.0.29) - 2025-05-07
### Other
- update Cargo.lock dependencies
## [1.0.28](https://github.com/cargo-bins/cargo-binstall/compare/detect-wasi-v1.0.27...detect-wasi-v1.0.28) - 2025-04-05 ## [1.0.28](https://github.com/cargo-bins/cargo-binstall/compare/detect-wasi-v1.0.27...detect-wasi-v1.0.28) - 2025-04-05
### Other ### Other

View file

@ -3,7 +3,7 @@ name = "detect-wasi"
description = "Detect if WASI can be run" description = "Detect if WASI can be run"
repository = "https://github.com/cargo-bins/cargo-binstall" repository = "https://github.com/cargo-bins/cargo-binstall"
documentation = "https://docs.rs/detect-wasi" documentation = "https://docs.rs/detect-wasi"
version = "1.0.30" version = "1.0.28"
rust-version = "1.61.0" rust-version = "1.61.0"
authors = ["Félix Saparelli <felix@passcod.name>"] authors = ["Félix Saparelli <felix@passcod.name>"]
edition = "2021" edition = "2021"

View file

@ -16,22 +16,21 @@ export PATH="$CARGO_HOME/bin:$PATH"
# --disable-strategies compile \ # --disable-strategies compile \
# cargo-binstall # cargo-binstall
# temporarily disable bitbucket testing as bitbucket is down # Test default BitBucket pkg-url templates
## Test default BitBucket pkg-url templates "./$1" binstall \
#"./$1" binstall \ --force \
# --force \ --manifest-path "manifests/bitbucket-test-Cargo.toml" \
# --manifest-path "manifests/bitbucket-test-Cargo.toml" \ --no-confirm \
# --no-confirm \ --disable-strategies compile \
# --disable-strategies compile \ cargo-binstall
# cargo-binstall
# # Test that the installed binaries can be run
## Test that the installed binaries can be run cargo binstall --help >/dev/null
#cargo binstall --help >/dev/null
# cargo_binstall_version="$(cargo binstall -V)"
#cargo_binstall_version="$(cargo binstall -V)" echo "$cargo_binstall_version"
#echo "$cargo_binstall_version"
# [ "$cargo_binstall_version" = "cargo-binstall 0.12.0" ]
#[ "$cargo_binstall_version" = "cargo-binstall 0.12.0" ]
# Test default Github pkg-url templates, # Test default Github pkg-url templates,
# with bin-dir provided # with bin-dir provided

View file

@ -2,10 +2,6 @@
set -eux set -eux
do_curl() {
curl --retry 10 -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" -L --proto '=https' --tlsv1.2 -sSf "$@"
}
# Set pipefail if it works in a subshell, disregard if unsupported # Set pipefail if it works in a subshell, disregard if unsupported
# shellcheck disable=SC3040 # shellcheck disable=SC3040
(set -o pipefail 2> /dev/null) && set -o pipefail (set -o pipefail 2> /dev/null) && set -o pipefail
@ -30,7 +26,7 @@ fi
os="$(uname -s)" os="$(uname -s)"
if [ "$os" = "Darwin" ]; then if [ "$os" = "Darwin" ]; then
url="${base_url}universal-apple-darwin.zip" url="${base_url}universal-apple-darwin.zip"
do_curl -O "$url" curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" -LO --proto '=https' --tlsv1.2 -sSf "$url"
unzip cargo-binstall-universal-apple-darwin.zip unzip cargo-binstall-universal-apple-darwin.zip
elif [ "$os" = "Linux" ]; then elif [ "$os" = "Linux" ]; then
machine="$(uname -m)" machine="$(uname -m)"
@ -43,12 +39,12 @@ elif [ "$os" = "Linux" ]; then
fi fi
url="${base_url}${target}.tgz" url="${base_url}${target}.tgz"
do_curl "$url" | tar -xvzf - curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" -L --proto '=https' --tlsv1.2 -sSf "$url" | tar -xvzf -
elif [ "${OS-}" = "Windows_NT" ]; then elif [ "${OS-}" = "Windows_NT" ]; then
machine="$(uname -m)" machine="$(uname -m)"
target="${machine}-pc-windows-msvc" target="${machine}-pc-windows-msvc"
url="${base_url}${target}.zip" url="${base_url}${target}.zip"
do_curl -O "$url" curl -A "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/81.0" -LO --proto '=https' --tlsv1.2 -sSf "$url"
unzip "cargo-binstall-${target}.zip" unzip "cargo-binstall-${target}.zip"
else else
echo "Unsupported OS ${os}" echo "Unsupported OS ${os}"

View file

@ -115,12 +115,13 @@ rust-lld := "" #if use-cargo-zigbuild != "" {
# ICF: link-time identical code folding # ICF: link-time identical code folding
# #
# On windows it works out of the box. # On windows it works out of the box and on linux it uses
# rust-lld.
rustc-icf := if for-release != "" { rustc-icf := if for-release != "" {
if target-os == "windows" { if target-os == "windows" {
" -C link-arg=-Wl,--icf=safe" " -C link-arg=-Wl,--icf=safe"
} else if target-os == "linux" { } else if target-os == "linux" {
"" " -C link-arg=-Wl,--icf=safe"
} else { } else {
"" ""
} }

View file

@ -2,4 +2,4 @@
cargo-zigbuild cargo-zigbuild
###### Requirements with Version Specifiers ###### ###### Requirements with Version Specifiers ######
ziglang ziglang < 0.11 # zig 0.11 causes link failure in our CI