From a8aa632e94bbb94a04904a7ec86bf46bc700e7cb Mon Sep 17 00:00:00 2001 From: mise-en-dev Date: Fri, 19 Sep 2025 09:06:51 +0000 Subject: [PATCH 01/32] chore: release 2025.9.13 --- CHANGELOG.md | 54 +++++++++++++-- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- completions/_mise | 6 +- completions/mise.bash | 6 +- completions/mise.fish | 8 +-- .../pkgs/Songmu/maltmill/registry.yaml | 2 +- .../pkgs/alebeck/boring/registry.yaml | 14 ++++ .../pkgs/asciinema/asciinema/registry.yaml | 29 +++++++++ .../pkgs/cnosuke/kushi/registry.yaml | 2 +- .../pkgs/goark/depm/registry.yaml | 2 +- .../pkgs/ipld/go-car/registry.yaml | 2 +- .../pkgs/kudobuilder/kuttl/registry.yaml | 2 +- .../pkgs/muquit/mailsend-go/registry.yaml | 65 +++++++++++++++++++ .../pkgs/relusc/hclconv/registry.yaml | 18 +++++ .../rm-version-switcher/registry.yaml | 15 +++++ .../pkgs/tldr-pages/tlrc/registry.yaml | 19 ++++++ default.nix | 2 +- mise.lock | 13 ++-- packaging/rpm/mise.spec | 2 +- 21 files changed, 232 insertions(+), 35 deletions(-) create mode 100644 crates/aqua-registry/aqua-registry/pkgs/alebeck/boring/registry.yaml create mode 100644 crates/aqua-registry/aqua-registry/pkgs/asciinema/asciinema/registry.yaml create mode 100644 crates/aqua-registry/aqua-registry/pkgs/muquit/mailsend-go/registry.yaml create mode 100644 crates/aqua-registry/aqua-registry/pkgs/relusc/hclconv/registry.yaml create mode 100644 crates/aqua-registry/aqua-registry/pkgs/rmitchellscott/rm-version-switcher/registry.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index 591759699a..8e8f08a140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,47 @@ # Changelog +## [2025.9.13](https://github.com/jdx/mise/compare/v2025.9.12..v2025.9.13) - 2025-09-19 + +### 📦 Registry + +- remove deprecated virtualos by @jdx in [166379f](https://github.com/jdx/mise/commit/166379f71c79fccacfc980dd14d4e18642c7d1e5) +- add trufflehog ([aqua:trufflesecurity/trufflehog](https://github.com/trufflesecurity/trufflehog)) by @risu729 in [#6316](https://github.com/jdx/mise/pull/6316) + +### 🚀 Features + +- **(aqua)** integrate native sigstore-verification for security verification by @jdx in [#6332](https://github.com/jdx/mise/pull/6332) +- **(docs)** improve search result readability with lighter teal background by @jdx in [#6328](https://github.com/jdx/mise/pull/6328) +- **(ui)** update logo as favicon and fix hover transitions by @jdx in [#6325](https://github.com/jdx/mise/pull/6325) +- **(vfox)** add file.read lua function by @malept in [#6333](https://github.com/jdx/mise/pull/6333) +- add documentation for "Environment in tasks" #5134 #5638 by @Its-Just-Nans in [#6329](https://github.com/jdx/mise/pull/6329) + +### 🐛 Bug Fixes + +- **(github)** correctly paginate releases/tags for private repos by @malept in [#6318](https://github.com/jdx/mise/pull/6318) +- **(hk)** exclude aqua-registry from prettier linting by @jdx in [#6327](https://github.com/jdx/mise/pull/6327) +- **(ui)** improve GitHub star badge layout and alignment by @jdx in [#6326](https://github.com/jdx/mise/pull/6326) + +### 📚 Documentation + +- change 'hello.py' to 'main.py' in python.md by @my1e5 in [#6319](https://github.com/jdx/mise/pull/6319) +- customize VitePress theme with unique branding by @jdx in [#6324](https://github.com/jdx/mise/pull/6324) + +### 📦️ Dependency Updates + +- update taiki-e/install-action digest to 0aa4f22 by @renovate[bot] in [#6334](https://github.com/jdx/mise/pull/6334) +- update rust crate comfy-table to v7.2.1 by @renovate[bot] in [#6335](https://github.com/jdx/mise/pull/6335) +- update rust crate console to v0.16.1 by @renovate[bot] in [#6336](https://github.com/jdx/mise/pull/6336) +- update rust crate indexmap to v2.11.4 by @renovate[bot] in [#6337](https://github.com/jdx/mise/pull/6337) + +### Chore + +- fixing typos by @Its-Just-Nans in [#6331](https://github.com/jdx/mise/pull/6331) + +### New Contributors + +- @Its-Just-Nans made their first contribution in [#6331](https://github.com/jdx/mise/pull/6331) +- @my1e5 made their first contribution in [#6319](https://github.com/jdx/mise/pull/6319) + ## [2025.9.12](https://github.com/jdx/mise/compare/v2025.9.11..v2025.9.12) - 2025-09-16 ### 🐛 Bug Fixes @@ -251,10 +293,10 @@ ### 🐛 Bug Fixes - **(aqua)** respect order of asset_strs by @risu729 in [#6143](https://github.com/jdx/mise/pull/6143) -- **(java)** treat freebsd as linux (assuming linux compatibility) by @roele in [#6161](https://github.com/jdx/mise/pull/6161) +- **(java)** treat freebsd as linux (assuming linux compatability) by @roele in [#6161](https://github.com/jdx/mise/pull/6161) - **(nushell/windows)** Fix $env.PATH getting converted to a string by @zackyancey in [#6157](https://github.com/jdx/mise/pull/6157) - **(sync)** create uv_versions_path dir if it doesn't exist by @risu729 in [#6142](https://github.com/jdx/mise/pull/6142) -- **(ubi)** show relevant error messages for v-prefixed tags by @risu729 in [#6183](https://github.com/jdx/mise/pull/6183) +- **(ubi)** show relevent error messages for v-prefixed tags by @risu729 in [#6183](https://github.com/jdx/mise/pull/6183) - remove nodejs/golang alias migrate code by @risu729 in [#6141](https://github.com/jdx/mise/pull/6141) - mise activate not working on powershell v5 by @L0RD-ZER0 in [#6168](https://github.com/jdx/mise/pull/6168) @@ -2122,7 +2164,7 @@ ### 🐛 Bug Fixes -- **(ubi)** API URL for GitHub should not have /repos segment by @roele in [#4848](https://github.com/jdx/mise/pull/4848) +- **(ubi)** API URL for GitHub should not have /repos segement by @roele in [#4848](https://github.com/jdx/mise/pull/4848) - **(ubi)** URL syntax fails by @roele in [#4859](https://github.com/jdx/mise/pull/4859) - allow to install non-numeric elixir versions by @roele in [#4850](https://github.com/jdx/mise/pull/4850) - removed possible single-point-of-failure while running `mise upgrade` by @hitblast in [#4847](https://github.com/jdx/mise/pull/4847) @@ -2771,7 +2813,7 @@ ### Chore - make self_update optional by @jdx in [#4230](https://github.com/jdx/mise/pull/4230) -- added some default reqwest features by @jdx in [#4232](https://github.com/jdx/mise/pull/4232) +- added some defaul reqwest features by @jdx in [#4232](https://github.com/jdx/mise/pull/4232) ### New Contributors @@ -3701,9 +3743,9 @@ ### 🚀 Features - add the users PATH to `mise doctor` by @syhol in [#3474](https://github.com/jdx/mise/pull/3474) -- feat : Add superfile with aqua backend to registry by @yodatak in [#3479](https://github.com/jdx/mise/pull/3479) +- feat : Add superfile with aqua backend to registery by @yodatak in [#3479](https://github.com/jdx/mise/pull/3479) - added `task_auto_install` setting by @jdx in [#3481](https://github.com/jdx/mise/pull/3481) -- Add yazi with aqua backend to registry by @yodatak in [#3485](https://github.com/jdx/mise/pull/3485) +- Add yazi with aqua backend to registery by @yodatak in [#3485](https://github.com/jdx/mise/pull/3485) - Migrating Terragrunt asdf plugin over to gruntwork-io by @yhakbar in [#3486](https://github.com/jdx/mise/pull/3486) - add settings for python venv creation by @jdx in [#3489](https://github.com/jdx/mise/pull/3489) - added MISE_ARCH setting by @jdx in [#3490](https://github.com/jdx/mise/pull/3490) diff --git a/Cargo.lock b/Cargo.lock index ecc229e66c..5d853b8528 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4502,7 +4502,7 @@ dependencies = [ [[package]] name = "mise" -version = "2025.9.12" +version = "2025.9.13" dependencies = [ "aqua-registry", "async-backtrace", diff --git a/Cargo.toml b/Cargo.toml index 69d3b2c8d2..020b05370d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/vfox", "crates/aqua-registry"] [package] name = "mise" -version = "2025.9.12" +version = "2025.9.13" edition = "2024" description = "The front-end to your dev env" authors = ["Jeff Dickey (@jdx)"] diff --git a/README.md b/README.md index ef8c06ed30..7d5f6be3d4 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ See [Getting started](https://mise.jdx.dev/getting-started.html) for more option ```sh-session $ curl https://mise.run | sh $ ~/.local/bin/mise --version -2025.9.12 macos-arm64 (a1b2d3e 2025-09-16) +2025.9.13 macos-arm64 (a1b2d3e 2025-09-19) ``` Hook mise into your shell (pick the right one for your shell): diff --git a/completions/_mise b/completions/_mise index f23a513b54..b25c8d6744 100644 --- a/completions/_mise +++ b/completions/_mise @@ -27,11 +27,11 @@ _mise() { zstyle ":completion:${curcontext}:" cache-policy _usage_mise_cache_policy fi - if ( [[ -z "${_usage_spec_mise_2025_9_12:-}" ]] || _cache_invalid _usage_spec_mise_2025_9_12 ) \ - && ! _retrieve_cache _usage_spec_mise_2025_9_12; + if ( [[ -z "${_usage_spec_mise_2025_9_13:-}" ]] || _cache_invalid _usage_spec_mise_2025_9_13 ) \ + && ! _retrieve_cache _usage_spec_mise_2025_9_13; then spec="$(mise usage)" - _store_cache _usage_spec_mise_2025_9_12 spec + _store_cache _usage_spec_mise_2025_9_13 spec fi _arguments "*: :(($(usage complete-word --shell zsh -s "$spec" -- "${words[@]}" )))" diff --git a/completions/mise.bash b/completions/mise.bash index b55244a17b..3e9481799f 100644 --- a/completions/mise.bash +++ b/completions/mise.bash @@ -6,14 +6,14 @@ _mise() { return 1 fi - if [[ -z ${_usage_spec_mise_2025_9_12:-} ]]; then - _usage_spec_mise_2025_9_12="$(mise usage)" + if [[ -z ${_usage_spec_mise_2025_9_13:-} ]]; then + _usage_spec_mise_2025_9_13="$(mise usage)" fi local cur prev words cword was_split comp_args _comp_initialize -n : -- "$@" || return # shellcheck disable=SC2207 - _comp_compgen -- -W "$(usage complete-word --shell bash -s "${_usage_spec_mise_2025_9_12}" --cword="$cword" -- "${words[@]}")" + _comp_compgen -- -W "$(usage complete-word --shell bash -s "${_usage_spec_mise_2025_9_13}" --cword="$cword" -- "${words[@]}")" _comp_ltrim_colon_completions "$cur" # shellcheck disable=SC2181 if [[ $? -ne 0 ]]; then diff --git a/completions/mise.fish b/completions/mise.fish index d7c75150e4..28491d39cc 100644 --- a/completions/mise.fish +++ b/completions/mise.fish @@ -6,12 +6,12 @@ if ! command -v usage &> /dev/null return 1 end -if ! set -q _usage_spec_mise_2025_9_12 - set -g _usage_spec_mise_2025_9_12 (mise usage | string collect) +if ! set -q _usage_spec_mise_2025_9_13 + set -g _usage_spec_mise_2025_9_13 (mise usage | string collect) end set -l tokens if commandline -x >/dev/null 2>&1 - complete -xc mise -a '(usage complete-word --shell fish -s "$_usage_spec_mise_2025_9_12" -- (commandline -xpc) (commandline -t))' + complete -xc mise -a '(usage complete-word --shell fish -s "$_usage_spec_mise_2025_9_13" -- (commandline -xpc) (commandline -t))' else - complete -xc mise -a '(usage complete-word --shell fish -s "$_usage_spec_mise_2025_9_12" -- (commandline -opc) (commandline -t))' + complete -xc mise -a '(usage complete-word --shell fish -s "$_usage_spec_mise_2025_9_13" -- (commandline -opc) (commandline -t))' end diff --git a/crates/aqua-registry/aqua-registry/pkgs/Songmu/maltmill/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/Songmu/maltmill/registry.yaml index bebc25d321..a7cc2e88bd 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/Songmu/maltmill/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/Songmu/maltmill/registry.yaml @@ -5,7 +5,7 @@ packages: repo_name: maltmill asset: maltmill_{{.Version}}_{{.OS}}_{{.Arch}}.{{.Format}} format: zip - description: create and update Homebrew third party Formulae + description: create and update Homebrew thrid party Formulae overrides: - goos: linux format: tar.gz diff --git a/crates/aqua-registry/aqua-registry/pkgs/alebeck/boring/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/alebeck/boring/registry.yaml new file mode 100644 index 0000000000..e874a622ce --- /dev/null +++ b/crates/aqua-registry/aqua-registry/pkgs/alebeck/boring/registry.yaml @@ -0,0 +1,14 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json +packages: + - type: github_release + repo_owner: alebeck + repo_name: boring + description: The `boring` SSH tunnel manager + version_constraint: "false" + version_overrides: + - version_constraint: "true" + asset: boring-{{.Version}}-{{.OS}}-{{.Arch}}.{{.Format}} + format: tar.gz + supported_envs: + - linux + - darwin diff --git a/crates/aqua-registry/aqua-registry/pkgs/asciinema/asciinema/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/asciinema/asciinema/registry.yaml new file mode 100644 index 0000000000..0ec558c726 --- /dev/null +++ b/crates/aqua-registry/aqua-registry/pkgs/asciinema/asciinema/registry.yaml @@ -0,0 +1,29 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json +packages: + - type: github_release + repo_owner: asciinema + repo_name: asciinema + description: Terminal session recorder, streamer and player + version_constraint: "false" + version_overrides: + - version_constraint: semver("< 3.0.0") + error_message: "asciinema v3.0.0 or later is required" + - version_constraint: "true" + asset: asciinema-{{.Arch}}-{{.OS}} + format: raw + overrides: + - goos: linux + goarch: amd64 + replacements: + linux: unknown-linux-musl + - goos: linux + goarch: arm64 + replacements: + linux: unknown-linux-gnu + replacements: + amd64: x86_64 + arm64: aarch64 + darwin: apple-darwin + supported_envs: + - linux + - darwin diff --git a/crates/aqua-registry/aqua-registry/pkgs/cnosuke/kushi/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/cnosuke/kushi/registry.yaml index 3a7da71460..a46a79e507 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/cnosuke/kushi/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/cnosuke/kushi/registry.yaml @@ -3,7 +3,7 @@ packages: - type: github_release repo_owner: cnosuke repo_name: kushi - description: Auto SSH port-forwarding agent which gets forwarding configs from URL + description: Auto SSH port-fowarding agent which gets forwarding configs from URL version_constraint: "false" version_overrides: - version_constraint: semver("<= 0.6.1") diff --git a/crates/aqua-registry/aqua-registry/pkgs/goark/depm/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/goark/depm/registry.yaml index 61d3ab8bf9..15698d672a 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/goark/depm/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/goark/depm/registry.yaml @@ -3,7 +3,7 @@ packages: - type: github_release repo_owner: goark repo_name: depm - description: Visualize dependency packages and modules + description: Visualize depndency packages and modules version_constraint: "false" version_overrides: - version_constraint: semver("<= 0.3.1") diff --git a/crates/aqua-registry/aqua-registry/pkgs/ipld/go-car/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/ipld/go-car/registry.yaml index f9788fdc62..29be1e892b 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/ipld/go-car/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/ipld/go-car/registry.yaml @@ -3,7 +3,7 @@ packages: - type: github_release repo_owner: ipld repo_name: go-car - description: A content addressable archive utility + description: A content addressible archive utility asset: go-car_{{trimV .Version}}_{{.OS}}_{{.Arch}}.{{.Format}} format: zip files: diff --git a/crates/aqua-registry/aqua-registry/pkgs/kudobuilder/kuttl/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/kudobuilder/kuttl/registry.yaml index 664d7eb682..1964909c5d 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/kudobuilder/kuttl/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/kudobuilder/kuttl/registry.yaml @@ -3,7 +3,7 @@ packages: - type: github_release repo_owner: kudobuilder repo_name: kuttl - description: Kubernetes Test TooL (kuttl) + description: KUbernetes Test TooL (kuttl) supported_envs: - darwin - linux diff --git a/crates/aqua-registry/aqua-registry/pkgs/muquit/mailsend-go/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/muquit/mailsend-go/registry.yaml new file mode 100644 index 0000000000..2bf00a3bf0 --- /dev/null +++ b/crates/aqua-registry/aqua-registry/pkgs/muquit/mailsend-go/registry.yaml @@ -0,0 +1,65 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json +packages: + - type: github_release + repo_owner: muquit + repo_name: mailsend-go + description: mailsend-go is a multi-platform command line tool to send mail via SMTP protocol + version_constraint: "false" + version_overrides: + - version_constraint: semver("<= 1.0.3") + asset: mailsend-go_{{trimV .Version}}_{{.OS}}_{{.Arch}}.{{.Format}} + format: tar.gz + rosetta2: true + windows_arm_emulation: true + replacements: + amd64: 64-bit + darwin: mac + checksum: + type: github_release + asset: mailsend-go_{{trimV .Version}}_checksums.txt + algorithm: sha256 + overrides: + - goos: windows + format: zip + supported_envs: + - darwin + - windows + - amd64 + files: + - name: mailsend-go + src: mailsend-go-dir/mailsend-go + - version_constraint: semver("<= 1.0.10") + asset: mailsend-go_{{trimV .Version}}_{{.OS}}-{{.Arch}}.{{.Format}} + format: tar.gz + rosetta2: true + windows_arm_emulation: true + replacements: + amd64: 64bit + darwin: mac + checksum: + type: github_release + asset: mailsend-go_{{trimV .Version}}_checksums.txt + algorithm: sha256 + overrides: + - goos: linux + replacements: + arm64: ARM + - goos: windows + format: zip + files: + - name: mailsend-go + src: mailsend-go-dir/mailsend-go + - version_constraint: "true" + asset: mailsend-go-{{.Version}}-{{.OS}}-{{.Arch}}.d.{{.Format}} + format: tar.gz + windows_arm_emulation: true + checksum: + type: github_release + asset: mailsend-go-{{.Version}}-checksums.txt + algorithm: sha256 + overrides: + - goos: windows + format: zip + files: + - name: mailsend-go + src: "{{.AssetWithoutExt}}/mailsend-go-{{.Version}}-{{.OS}}-{{.Arch}}" diff --git a/crates/aqua-registry/aqua-registry/pkgs/relusc/hclconv/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/relusc/hclconv/registry.yaml new file mode 100644 index 0000000000..6fa75e1a04 --- /dev/null +++ b/crates/aqua-registry/aqua-registry/pkgs/relusc/hclconv/registry.yaml @@ -0,0 +1,18 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json +packages: + - type: github_release + repo_owner: relusc + repo_name: hclconv + description: Simple tool to convert JSON files to HCL2 files and vice versa + version_constraint: "false" + version_overrides: + - version_constraint: Version == "v0.1.0" + asset: hclconv_{{.OS}}_{{.Arch}}_{{.Version}}.{{.Format}} + format: tar.gz + - version_constraint: "true" + asset: hclconv_{{.OS}}_{{.Arch}}_{{.Version}}.{{.Format}} + format: tar.gz + checksum: + type: github_release + asset: hclconv_{{trimV .Version}}_checksums.txt + algorithm: sha256 diff --git a/crates/aqua-registry/aqua-registry/pkgs/rmitchellscott/rm-version-switcher/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/rmitchellscott/rm-version-switcher/registry.yaml new file mode 100644 index 0000000000..b28779fa19 --- /dev/null +++ b/crates/aqua-registry/aqua-registry/pkgs/rmitchellscott/rm-version-switcher/registry.yaml @@ -0,0 +1,15 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/aquaproj/aqua/main/json-schema/registry.json +packages: + - type: github_release + repo_owner: rmitchellscott + repo_name: rm-version-switcher + description: A beginner-friendly application for switching between installed reMarkable OS versions with an interactive interface + version_constraint: "false" + version_overrides: + - version_constraint: "true" + asset: rm-version-switcher-aarch64.tar.gz + files: + - name: rm-version-switcher + src: rm-version-switcher-aarch64 + supported_envs: + - linux/arm64 diff --git a/crates/aqua-registry/aqua-registry/pkgs/tldr-pages/tlrc/registry.yaml b/crates/aqua-registry/aqua-registry/pkgs/tldr-pages/tlrc/registry.yaml index 542d746310..cf0022f463 100644 --- a/crates/aqua-registry/aqua-registry/pkgs/tldr-pages/tlrc/registry.yaml +++ b/crates/aqua-registry/aqua-registry/pkgs/tldr-pages/tlrc/registry.yaml @@ -8,6 +8,23 @@ packages: - name: tldr version_constraint: "false" version_overrides: + - version_constraint: semver("< 1.9.3") + asset: tlrc-{{.Version}}-{{.Arch}}-{{.OS}}.{{.Format}} + format: tar.gz + rosetta2: true + windows_arm_emulation: true + replacements: + amd64: x86_64 + darwin: apple-darwin + linux: unknown-linux-musl + windows: pc-windows-msvc + overrides: + - goos: windows + format: zip + supported_envs: + - darwin + - windows + - amd64 - version_constraint: "true" asset: tlrc-{{.Version}}-{{.Arch}}-{{.OS}}.{{.Format}} format: tar.gz @@ -25,3 +42,5 @@ packages: - darwin - windows - amd64 + github_artifact_attestations: + signer_workflow: tldr-pages/tlrc/.github/workflows/build-release.yml diff --git a/default.nix b/default.nix index ea36bd7a22..98ffc364b1 100644 --- a/default.nix +++ b/default.nix @@ -2,7 +2,7 @@ rustPlatform.buildRustPackage { pname = "mise"; - version = "2025.9.12"; + version = "2025.9.13"; src = lib.cleanSource ./.; diff --git a/mise.lock b/mise.lock index bcf9ca8dea..5a5ea6872a 100644 --- a/mise.lock +++ b/mise.lock @@ -105,18 +105,13 @@ size = 12793347 url = "https://github.com/cli/cli/releases/download/v2.62.0/gh_2.62.0_macOS_arm64.zip" [[tools.hk]] -version = "1.12.1" +version = "1.14.0" backend = "aqua:jdx/hk" [tools.hk.platforms.linux-x64] -checksum = "blake3:2e8d3a27beabb40355f7deb89aa02599769a31513af1df88b6f2509f23274f2d" -size = 6751013 -url = "https://github.com/jdx/hk/releases/download/v1.12.1/hk-x86_64-unknown-linux-gnu.tar.gz" - -[tools.hk.platforms.macos-arm64] -checksum = "blake3:1d4153f34bc93216980171a07b0e5441d4e99776506f95ca9c3d63603a9d044c" -size = 5854360 -url = "https://github.com/jdx/hk/releases/download/v1.12.1/hk-aarch64-apple-darwin.tar.gz" +checksum = "blake3:a02f574ee03c0004869167cc69441b3373dab6aca36140a894808d2133a74fc3" +size = 6950380 +url = "https://github.com/jdx/hk/releases/download/v1.14.0/hk-x86_64-unknown-linux-gnu.tar.gz" [[tools.jq]] version = "1.8.1" diff --git a/packaging/rpm/mise.spec b/packaging/rpm/mise.spec index ab126100ce..d620385161 100644 --- a/packaging/rpm/mise.spec +++ b/packaging/rpm/mise.spec @@ -1,6 +1,6 @@ Summary: The front-end to your dev env Name: mise -Version: 2025.9.12 +Version: 2025.9.13 Release: 1 URL: https://github.com/jdx/mise/ Group: System From fc1b6da7a9b98f853e16dc66fc9163344d8f448e Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:15:19 +0000 Subject: [PATCH 02/32] fix: remove openssl/vendored feature from ARM builds The openssl/vendored feature was conflicting with rustls-native-roots, causing ARM builds to fail with error code 101. Since we're using rustls for TLS functionality, we don't need OpenSSL vendored builds. This fixes the build failures for: - linux-arm64 - linux-armv7 - linux-armv7-musl --- scripts/build-tarball.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index 037661c23f..1709b28d2c 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -71,11 +71,11 @@ linux-arm*) esac if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots,openssl/vendored + cross build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots,openssl/vendored + cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots else - cargo build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots,openssl/vendored + cargo build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots fi mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 From 427cc2b9e93d4cbf5c73fd13ec1adde8be7c14af Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:24:30 +0000 Subject: [PATCH 03/32] fix: disable default features for sigstore-verification The sigstore-verification crate had default features enabled which pulled in native-tls and OpenSSL dependencies even when trying to use rustls. This was causing build failures on Linux ARM targets. By disabling default features and explicitly enabling the TLS backend through feature flags, we can use rustls-native-roots for all builds without OpenSSL dependencies. --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 020b05370d..7fd49b9dcb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -81,7 +81,7 @@ homedir = "0.3" eyre = "0.6" filetime = "0.2" flate2 = "1" -sigstore-verification = "0.1" +sigstore-verification = { version = "0.1", default-features = false } fslock = "0.2.1" fuzzy-matcher = "0.3" gix = { version = "<1", features = ["worktree-mutation"] } From 5527a15d0d9b2e9e089832bc3f7c05cd34bb2570 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:36:14 +0000 Subject: [PATCH 04/32] fix: disable default features to avoid native-tls The default features included native-tls which was pulling in OpenSSL dependencies. By explicitly disabling default features and only enabling rustls-native-roots along with necessary features (self_update, vfox/vendored-lua), we avoid OpenSSL dependencies in the build. This should fix the Linux ARM build failures. --- scripts/build-tarball.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index 1709b28d2c..c34b746cf7 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -71,11 +71,11 @@ linux-arm*) esac if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots + cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots + cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua else - cargo build --profile=serious --target "$RUST_TRIPLE" --features rustls-native-roots + cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua fi mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 From c6f4f599796db8e73100799a3431dad4b9a312fb Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:40:26 +0000 Subject: [PATCH 05/32] fix: use default features with openssl/vendored for ARM builds The rustls-native-roots feature was pulling in aws-lc-sys which fails to build on ARM due to bindgen requirements. Going back to using default features (native-tls) with openssl/vendored to ensure cross-compilation works properly on all architectures. The vendored OpenSSL ensures we don't need system OpenSSL libraries and can build consistently across different platforms. --- scripts/build-tarball.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index c34b746cf7..569d533c74 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -71,11 +71,11 @@ linux-arm*) esac if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cross build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored else - cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cargo build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored fi mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 From 2a504f8d325afd1d6ed27e189d9ae74399990adb Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:41:12 +0000 Subject: [PATCH 06/32] Revert "fix: use default features with openssl/vendored for ARM builds" This reverts commit c6f4f599796db8e73100799a3431dad4b9a312fb. --- scripts/build-tarball.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index 569d533c74..c34b746cf7 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -71,11 +71,11 @@ linux-arm*) esac if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored + cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored + cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua else - cargo build --profile=serious --target "$RUST_TRIPLE" --features openssl/vendored + cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua fi mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 From 71b432a61ad6bb83dab9d3920513950ad6e5224e Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:44:55 +0000 Subject: [PATCH 07/32] fix: add aws-lc-rs with bindgen feature for rustls builds The rustls v0.23+ uses aws-lc-rs for cryptography instead of ring. When cross-compiling for ARM, aws-lc-sys needs bindgen to generate bindings. By explicitly adding aws-lc-rs with the bindgen feature, we ensure the bindings can be generated during cross-compilation. This allows us to use the latest rustls without OpenSSL dependencies. --- Cargo.lock | 1 + Cargo.toml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 5d853b8528..5b97e83ed2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4507,6 +4507,7 @@ dependencies = [ "aqua-registry", "async-backtrace", "async-trait", + "aws-lc-rs", "base64 0.22.1", "blake3", "built", diff --git a/Cargo.toml b/Cargo.toml index 7fd49b9dcb..5c372a0d24 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,6 +54,7 @@ opt-level = 3 [dependencies] async-backtrace = "0.2" async-trait = "0.1" +aws-lc-rs = { version = "1", optional = true, features = ["bindgen"] } base64 = "0.22" bzip2 = "0.6" calm_io = "0.1" @@ -220,6 +221,7 @@ rustls-native-roots = [ "ubi/rustls-tls-native-roots", "vfox/rustls-native-roots", "sigstore-verification/rustls-native-roots", + "aws-lc-rs", ] [package.metadata.binstall] From 32d8e3417423a84eccfe9c0704ad2182f3465d2b Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 11:52:55 +0000 Subject: [PATCH 08/32] fix: install bindgen-cli in cross Docker images for rustls builds Added custom Dockerfiles for cross-compilation that install libclang-dev and bindgen-cli. This allows aws-lc-sys to generate bindings during cross-compilation for ARM targets, enabling the use of rustls without OpenSSL dependencies. The custom Dockerfiles extend the official cross-rs images with the necessary build dependencies. --- Cargo.lock | 13 ++++++------- Cargo.toml | 2 -- Cross.toml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5b97e83ed2..e3c4ee37a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1832,7 +1832,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -4192,7 +4192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.53.3", ] [[package]] @@ -4507,7 +4507,6 @@ dependencies = [ "aqua-registry", "async-backtrace", "async-trait", - "aws-lc-rs", "base64 0.22.1", "blake3", "built", @@ -5780,7 +5779,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -6226,7 +6225,7 @@ dependencies = [ "errno 0.3.13", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -7258,7 +7257,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.0.8", - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] @@ -8325,7 +8324,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.60.2", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 5c372a0d24..7fd49b9dcb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -54,7 +54,6 @@ opt-level = 3 [dependencies] async-backtrace = "0.2" async-trait = "0.1" -aws-lc-rs = { version = "1", optional = true, features = ["bindgen"] } base64 = "0.22" bzip2 = "0.6" calm_io = "0.1" @@ -221,7 +220,6 @@ rustls-native-roots = [ "ubi/rustls-tls-native-roots", "vfox/rustls-native-roots", "sigstore-verification/rustls-native-roots", - "aws-lc-rs", ] [package.metadata.binstall] diff --git a/Cross.toml b/Cross.toml index 089fdce526..38abd95653 100644 --- a/Cross.toml +++ b/Cross.toml @@ -1,2 +1,48 @@ [build.env] passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] + +[target.armv7-unknown-linux-gnueabi] +image = "ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge" +dockerfile = """ +FROM ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" + +[target.armv7-unknown-linux-musleabi] +image = "ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:edge" +dockerfile = """ +FROM ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" + +[target.aarch64-unknown-linux-gnu] +image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge" +dockerfile = """ +FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" + +[target.aarch64-unknown-linux-musl] +image = "ghcr.io/cross-rs/aarch64-unknown-linux-musl:edge" +dockerfile = """ +FROM ghcr.io/cross-rs/aarch64-unknown-linux-musl:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" + +[target.x86_64-unknown-linux-gnu] +dockerfile = """ +FROM ghcr.io/cross-rs/x86_64-unknown-linux-gnu:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" + +[target.x86_64-unknown-linux-musl] +dockerfile = """ +FROM ghcr.io/cross-rs/x86_64-unknown-linux-musl:edge +RUN apt-get update && apt-get install -y libclang-dev +RUN cargo install --force --locked bindgen-cli +""" From d5007179f298692a2be08e1d27b9e73f15093086 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:01:29 +0000 Subject: [PATCH 09/32] fix(build): add bindgen to cross pre-build for ARM targets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Install libclang-dev and bindgen-cli in cross containers before building to fix aws-lc-sys compilation on ARM architectures. This resolves the "external bindgen command failed" error when building with rustls. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Cross.toml | 58 ++++++++++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 34 deletions(-) diff --git a/Cross.toml b/Cross.toml index 38abd95653..90345b36e3 100644 --- a/Cross.toml +++ b/Cross.toml @@ -2,47 +2,37 @@ passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] [target.armv7-unknown-linux-gnueabi] -image = "ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge" -dockerfile = """ -FROM ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] [target.armv7-unknown-linux-musleabi] -image = "ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:edge" -dockerfile = """ -FROM ghcr.io/cross-rs/armv7-unknown-linux-musleabihf:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] [target.aarch64-unknown-linux-gnu] -image = "ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge" -dockerfile = """ -FROM ghcr.io/cross-rs/aarch64-unknown-linux-gnu:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] [target.aarch64-unknown-linux-musl] -image = "ghcr.io/cross-rs/aarch64-unknown-linux-musl:edge" -dockerfile = """ -FROM ghcr.io/cross-rs/aarch64-unknown-linux-musl:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] [target.x86_64-unknown-linux-gnu] -dockerfile = """ -FROM ghcr.io/cross-rs/x86_64-unknown-linux-gnu:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] [target.x86_64-unknown-linux-musl] -dockerfile = """ -FROM ghcr.io/cross-rs/x86_64-unknown-linux-musl:edge -RUN apt-get update && apt-get install -y libclang-dev -RUN cargo install --force --locked bindgen-cli -""" +pre-build = [ + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli" +] From 35a294cd5ff4c6c6df28eb99f5be7d1759b8a281 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:04:58 +0000 Subject: [PATCH 10/32] [autofix.ci] apply automated fixes --- Cross.toml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Cross.toml b/Cross.toml index 90345b36e3..b080dd0471 100644 --- a/Cross.toml +++ b/Cross.toml @@ -3,36 +3,36 @@ passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] [target.armv7-unknown-linux-gnueabi] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] [target.armv7-unknown-linux-musleabi] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] [target.aarch64-unknown-linux-gnu] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] [target.aarch64-unknown-linux-musl] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] [target.x86_64-unknown-linux-gnu] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] [target.x86_64-unknown-linux-musl] pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli" + "apt-get update && apt-get --assume-yes install libclang-dev", + "cargo install --force --locked bindgen-cli", ] From ec73c7018a740b34c5273faceab6952b3a875e88 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:10:21 +0000 Subject: [PATCH 11/32] fix(build): use $CARGO variable in cross pre-build commands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The cargo command needs to use the $CARGO environment variable in cross containers to properly reference the cargo binary. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Cross.toml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cross.toml b/Cross.toml index b080dd0471..8bd1283718 100644 --- a/Cross.toml +++ b/Cross.toml @@ -4,35 +4,35 @@ passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] [target.armv7-unknown-linux-gnueabi] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] [target.armv7-unknown-linux-musleabi] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] [target.aarch64-unknown-linux-gnu] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] [target.aarch64-unknown-linux-musl] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] [target.x86_64-unknown-linux-gnu] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] [target.x86_64-unknown-linux-musl] pre-build = [ "apt-get update && apt-get --assume-yes install libclang-dev", - "cargo install --force --locked bindgen-cli", + "$CARGO install --force --locked bindgen-cli", ] From b4dec1891b0e2f1080b9c26c575e32b535fb21eb Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:15:24 +0000 Subject: [PATCH 12/32] fix(build): install bindgen-cli on CI hosts for ARM builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Instead of trying to install bindgen in cross containers during pre-build, install it on the GitHub Actions runner where it's needed. This resolves the issue where cargo isn't available during Docker image build phase. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .github/workflows/release.yml | 2 ++ Cross.toml | 36 ----------------------------------- 2 files changed, 2 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7435d930ca..13883af2d2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -80,6 +80,8 @@ jobs: - if: matrix.runs-on == 'ubuntu-latest' uses: taiki-e/install-action@0aa4f22591557b744fe31e55dbfcdfea74a073f7 # v2 with: { tool: cross } + - if: matrix.runs-on == 'ubuntu-latest' && (contains(matrix.target, 'arm') || contains(matrix.target, 'aarch64')) + run: cargo install --force --locked bindgen-cli - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: diff --git a/Cross.toml b/Cross.toml index 8bd1283718..089fdce526 100644 --- a/Cross.toml +++ b/Cross.toml @@ -1,38 +1,2 @@ [build.env] passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] - -[target.armv7-unknown-linux-gnueabi] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] - -[target.armv7-unknown-linux-musleabi] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] - -[target.aarch64-unknown-linux-gnu] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] - -[target.aarch64-unknown-linux-musl] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] - -[target.x86_64-unknown-linux-gnu] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] - -[target.x86_64-unknown-linux-musl] -pre-build = [ - "apt-get update && apt-get --assume-yes install libclang-dev", - "$CARGO install --force --locked bindgen-cli", -] From a6bdce4ff27285afec5fac4a979cb8911aadca76 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:16:24 +0000 Subject: [PATCH 13/32] Revert "fix(build): install bindgen-cli on CI hosts for ARM builds" This reverts commit b4dec1891b0e2f1080b9c26c575e32b535fb21eb. --- .github/workflows/release.yml | 2 -- Cross.toml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 13883af2d2..7435d930ca 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -80,8 +80,6 @@ jobs: - if: matrix.runs-on == 'ubuntu-latest' uses: taiki-e/install-action@0aa4f22591557b744fe31e55dbfcdfea74a073f7 # v2 with: { tool: cross } - - if: matrix.runs-on == 'ubuntu-latest' && (contains(matrix.target, 'arm') || contains(matrix.target, 'aarch64')) - run: cargo install --force --locked bindgen-cli - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: diff --git a/Cross.toml b/Cross.toml index 089fdce526..22b48a8890 100644 --- a/Cross.toml +++ b/Cross.toml @@ -1,2 +1,32 @@ [build.env] passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] + +[target.armv7-unknown-linux-gnueabi] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] + +[target.armv7-unknown-linux-musleabi] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] + +[target.aarch64-unknown-linux-gnu] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] + +[target.aarch64-unknown-linux-musl] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] + +[target.x86_64-unknown-linux-gnu] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] + +[target.x86_64-unknown-linux-musl] +pre-build = [ + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", +] From 04ff7dd32c740fd4a2464560dd0f4e872a5f8d90 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 12:33:27 +0000 Subject: [PATCH 14/32] fix(build): configure TLS backends to use rustls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add rustls feature to self_update crate to avoid native-tls - Configure reqwest to use rustls-tls-native-roots - Use local sigstore-verification path for testing - Update Cross.toml to install clang for bindgen This is a work in progress to eliminate OpenSSL dependency for ARM builds. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- Cargo.lock | 292 +++++++++++++++++++++++---------------- Cargo.toml | 5 +- Cross.toml | 6 +- scripts/build-tarball.sh | 6 +- src/task/mod.rs | 33 ----- 5 files changed, 183 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3c4ee37a6..b25332ae0b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -501,7 +501,7 @@ dependencies = [ "bitflags", "cexpr", "clang-sys", - "itertools 0.10.5", + "itertools 0.12.1", "lazy_static", "lazycell", "log", @@ -643,9 +643,9 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytesize" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c8f83209414aacf0eeae3cf730b18d6981697fba62f200fcfb92b9f082acba" +checksum = "f5c434ae3cf0089ca203e9019ebe529c47ff45cefe8af7c85ecb734ef541822f" [[package]] name = "bzip2" @@ -705,9 +705,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.35" +version = "1.2.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "590f9024a68a8c40351881787f1934dc11afd69090f5edb6831464694d836ea3" +checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" dependencies = [ "find-msvc-tools", "jobserver", @@ -1210,7 +1210,7 @@ dependencies = [ "crossterm_winapi", "document-features", "parking_lot", - "rustix 1.0.8", + "rustix 1.1.2", "winapi", ] @@ -1719,9 +1719,6 @@ name = "either" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" -dependencies = [ - "serde", -] [[package]] name = "elliptic-curve" @@ -1806,11 +1803,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "erased-serde" -version = "0.4.6" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +checksum = "259d404d09818dec19332e31d94558aeb442fea04c817006456c24b5460bbd4b" dependencies = [ "serde", + "serde_core", "typeid", ] @@ -1827,12 +1825,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -1947,9 +1945,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e178e4fba8a2726903f6ba98a6d221e76f9c12c650d5dc0e6afdc50677b49650" +checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" [[package]] name = "fixedbitset" @@ -2224,7 +2222,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "wasi 0.14.7+wasi-0.2.4", "wasm-bindgen", ] @@ -2659,7 +2657,7 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix 1.0.8", + "rustix 1.1.2", "smallvec", "thiserror 2.0.16", ] @@ -2828,7 +2826,7 @@ dependencies = [ "gix-command", "gix-config-value", "parking_lot", - "rustix 1.0.8", + "rustix 1.1.2", "thiserror 2.0.16", ] @@ -3244,6 +3242,12 @@ dependencies = [ "foldhash", ] +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" + [[package]] name = "heapless" version = "0.8.0" @@ -3440,9 +3444,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.16" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" +checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" dependencies = [ "base64 0.22.1", "bytes", @@ -3532,9 +3536,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.63" +version = "0.1.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -3542,7 +3546,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core", + "windows-core 0.62.0", ] [[package]] @@ -3740,7 +3744,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.15.5", + "hashbrown 0.16.0", "serde", "serde_core", ] @@ -3878,6 +3882,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.13.0" @@ -3977,9 +3990,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.78" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738" +checksum = "852f13bec5eba4ba9afbeb93fd7c13fe56147f055939ae21c43a29a0ecb2702e" dependencies = [ "once_cell", "wasm-bindgen", @@ -4043,13 +4056,12 @@ dependencies = [ [[package]] name = "kdl" -version = "6.3.4" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12661358400b02cbbf1fbd05f0a483335490e8a6bd1867620f2eeb78f304a22f" +checksum = "81a29e7b50079ff44549f68c0becb1c73d7f6de2a4ea952da77966daf3d4761e" dependencies = [ "miette", "num", - "thiserror 1.0.69", "winnow 0.6.24", ] @@ -4203,9 +4215,9 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" +checksum = "416f7e718bdb06000964960ffa43b4335ad4012ae8b99060261aa4a8088d5ccb" dependencies = [ "bitflags", "libc", @@ -4229,9 +4241,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" @@ -4529,7 +4541,6 @@ dependencies = [ "digest", "dotenvy", "duct 0.13.7", - "either", "exec", "eyre", "filetime", @@ -5267,9 +5278,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "21e0a3a33733faeaf8651dfee72dd0f388f0c8e5ad496a3478fa5a922f49cfa8" dependencies = [ "memchr", "thiserror 2.0.16", @@ -5278,9 +5289,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb056d9e8ea77922845ec74a1c4e8fb17e7c218cc4fc11a15c5d25e189aa40bc" +checksum = "bc58706f770acb1dbd0973e6530a3cff4746fb721207feb3a8a6064cd0b6c663" dependencies = [ "pest", "pest_generator", @@ -5288,9 +5299,9 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87e404e638f781eb3202dc82db6760c8ae8a1eeef7fb3fa8264b2ef280504966" +checksum = "6d4f36811dfe07f7b8573462465d5cb8965fffc2e71ae377a33aecf14c2c9a2f" dependencies = [ "pest", "pest_meta", @@ -5301,9 +5312,9 @@ dependencies = [ [[package]] name = "pest_meta" -version = "2.8.1" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edd1101f170f5903fde0914f899bb503d9ff5271d7ba76bbb70bea63690cc0d5" +checksum = "42919b05089acbd0a5dcd5405fb304d17d1053847b81163d09c4ad18ce8e8420" dependencies = [ "pest", "sha2", @@ -6209,7 +6220,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ "bitflags", - "errno 0.3.13", + "errno 0.3.14", "libc", "linux-raw-sys 0.4.15", "windows-sys 0.59.0", @@ -6217,22 +6228,22 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.8" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ "bitflags", - "errno 0.3.13", + "errno 0.3.14", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys 0.11.0", + "windows-sys 0.61.0", ] [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "cd3c25631629d034ce7cd9940adc9d45762d46de2b0f57193c4443b92c6d4d40" dependencies = [ "aws-lc-rs", "log", @@ -6253,7 +6264,7 @@ dependencies = [ "openssl-probe", "rustls-pki-types", "schannel", - "security-framework 3.3.0", + "security-framework 3.4.0", ] [[package]] @@ -6268,9 +6279,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "8572f3c2cb9934231157b45499fc41e1f58c589fdfb81a844ba873265e80f8eb" dependencies = [ "aws-lc-rs", "ring", @@ -6325,11 +6336,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.0", ] [[package]] @@ -6438,9 +6449,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fb1d92c5028aa318b4b8bd7302a5bfcf48be96a37fc6fc790f806b0004ee0c" +checksum = "60b369d18893388b345804dc0007963c99b7d665ae71d275812d828c6f089640" dependencies = [ "bitflags", "core-foundation 0.10.1", @@ -6451,9 +6462,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -6511,9 +6522,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" [[package]] name = "serde" @@ -6568,34 +6579,37 @@ dependencies = [ [[package]] name = "serde_ignored" -version = "0.1.12" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b516445dac1e3535b6d658a7b528d771153dfb272ed4180ca4617a20550365ff" +checksum = "115dffd5f3853e06e746965a20dcbae6ee747ae30b543d91b0e089668bb07798" dependencies = [ "serde", + "serde_core", ] [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "indexmap 2.11.4", "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] name = "serde_path_to_error" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" dependencies = [ "itoa", "serde", + "serde_core", ] [[package]] @@ -6931,11 +6945,12 @@ dependencies = [ [[package]] name = "sigstore-verification" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0bb84116961fdc1472eb2ac46d4ff4a539ee73aba5e7c9bcfcc3946ff69130" +checksum = "ccc06efb552fe9051c489e304bb94b6a0829d4be88440c1ecf0c7a5f96b7b18f" dependencies = [ "async-trait", + "aws-lc-rs", "base64 0.22.1", "ed25519-dalek", "hex", @@ -7249,15 +7264,15 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.21.0" +version = "3.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix 1.1.2", + "windows-sys 0.61.0", ] [[package]] @@ -7297,7 +7312,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" dependencies = [ - "rustix 1.0.8", + "rustix 1.1.2", "windows-sys 0.60.2", ] @@ -7390,11 +7405,12 @@ dependencies = [ [[package]] name = "time" -version = "0.3.43" +version = "0.3.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031" +checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", @@ -7507,9 +7523,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "05f63835928ca123f1bef57abbcd23bb2ba0ac9ae1235f1e65bda0d06e7786bd" dependencies = [ "rustls", "tokio", @@ -7894,9 +7910,9 @@ checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" [[package]] name = "unicode-normalization" @@ -8124,18 +8140,27 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.3+wasi-0.2.4" +version = "0.14.7+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +dependencies = [ + "wasip2", +] + +[[package]] +name = "wasip2" +version = "1.0.1+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b" +checksum = "ab10a69fbd0a177f5f649ad4d8d3305499c42bab9aef2f7ff592d0ec8f833819" dependencies = [ "cfg-if", "once_cell", @@ -8146,9 +8171,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb" +checksum = "0bb702423545a6007bbc368fde243ba47ca275e549c8a28617f56f6ba53b1d1c" dependencies = [ "bumpalo", "log", @@ -8160,9 +8185,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.51" +version = "0.4.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe" +checksum = "a0b221ff421256839509adbb55998214a70d829d3a28c69b4a6672e9d2a42f67" dependencies = [ "cfg-if", "js-sys", @@ -8173,9 +8198,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d" +checksum = "fc65f4f411d91494355917b605e1480033152658d71f722a90647f56a70c88a0" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -8183,9 +8208,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa" +checksum = "ffc003a991398a8ee604a401e194b6b3a39677b3173d6e74495eb51b82e99a32" dependencies = [ "proc-macro2", "quote", @@ -8196,9 +8221,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.101" +version = "0.2.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1" +checksum = "293c37f4efa430ca14db3721dfbe48d8c33308096bd44d80ebaa775ab71ba1cf" dependencies = [ "unicode-ident", ] @@ -8218,9 +8243,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.78" +version = "0.3.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12" +checksum = "fbe734895e869dc429d78c4b433f8d17d95f8d05317440b4fad5ab2d33e596dc" dependencies = [ "js-sys", "wasm-bindgen", @@ -8281,7 +8306,7 @@ checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", "env_home", - "rustix 1.0.8", + "rustix 1.1.2", "winsafe", ] @@ -8292,7 +8317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3fabb953106c3c8eea8306e4393700d7657561cb43122571b172bbfb7c7ba1d" dependencies = [ "env_home", - "rustix 1.0.8", + "rustix 1.1.2", "winsafe", ] @@ -8320,11 +8345,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.0", ] [[package]] @@ -8349,7 +8374,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" dependencies = [ "windows-collections", - "windows-core", + "windows-core 0.61.2", "windows-future", "windows-link 0.1.3", "windows-numerics", @@ -8361,7 +8386,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" dependencies = [ - "windows-core", + "windows-core 0.61.2", ] [[package]] @@ -8373,8 +8398,21 @@ dependencies = [ "windows-implement", "windows-interface", "windows-link 0.1.3", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", +] + +[[package]] +name = "windows-core" +version = "0.62.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57fe7168f7de578d2d8a05b07fd61870d2e73b4020e9f49aa00da8471723497c" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link 0.2.0", + "windows-result 0.4.0", + "windows-strings 0.5.0", ] [[package]] @@ -8383,7 +8421,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", "windows-threading", ] @@ -8428,7 +8466,7 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ - "windows-core", + "windows-core 0.61.2", "windows-link 0.1.3", ] @@ -8439,8 +8477,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ "windows-link 0.1.3", - "windows-result", - "windows-strings", + "windows-result 0.3.4", + "windows-strings 0.4.2", ] [[package]] @@ -8452,6 +8490,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-result" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7084dcc306f89883455a206237404d3eaf961e5bd7e0f312f7c91f57eb44167f" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-strings" version = "0.4.2" @@ -8461,6 +8508,15 @@ dependencies = [ "windows-link 0.1.3", ] +[[package]] +name = "windows-strings" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7218c655a553b0bed4426cf54b20d7ba363ef543b52d515b3e48d7fd55318dda" +dependencies = [ + "windows-link 0.2.0", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -8784,9 +8840,9 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "wit-bindgen" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "writeable" @@ -8844,7 +8900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.0.8", + "rustix 1.1.2", ] [[package]] @@ -8912,18 +8968,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 7fd49b9dcb..cef80ba578 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,9 +75,7 @@ demand = "1" digest = "0.10.7" dotenvy = "0.15" duct = "0.13" -either = { version = "1", features = ["serde"] } homedir = "0.3" -# expr-lang = { path = "../expr-lang" } eyre = "0.6" filetime = "0.2" flate2 = "1" @@ -114,6 +112,7 @@ reqwest = { version = "0.12", default-features = false, features = [ "zstd", "charset", "http2", + "rustls-tls-native-roots", "macos-system-configuration", ] } rmcp = { version = "0.3", features = ["server", "transport-io", "schemars"] } @@ -171,6 +170,7 @@ self_update = { version = "0.42", optional = true, default-features = false, fea "archive-tar", "compression-flate2", "signatures", + "rustls", ] } [target.'cfg(windows)'.dependencies] @@ -178,6 +178,7 @@ self_update = { version = "0.42", optional = true, default-features = false, fea "archive-zip", "compression-zip-deflate", "signatures", + "rustls", ] } sevenz-rust = "0.6" winapi = { version = "0.3.9", features = ["consoleapi", "minwindef"] } diff --git a/Cross.toml b/Cross.toml index 22b48a8890..9ca4c77076 100644 --- a/Cross.toml +++ b/Cross.toml @@ -3,7 +3,7 @@ passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] [target.armv7-unknown-linux-gnueabi] pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", ] [target.armv7-unknown-linux-musleabi] @@ -13,7 +13,7 @@ pre-build = [ [target.aarch64-unknown-linux-gnu] pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", ] [target.aarch64-unknown-linux-musl] @@ -23,7 +23,7 @@ pre-build = [ [target.x86_64-unknown-linux-gnu] pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", + "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", ] [target.x86_64-unknown-linux-musl] diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index c34b746cf7..11a730dadc 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -71,11 +71,11 @@ linux-arm*) esac if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored else - cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls-native-roots,self_update,vfox/vendored-lua + cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored fi mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 diff --git a/src/task/mod.rs b/src/task/mod.rs index 224f1ee816..81636015c9 100644 --- a/src/task/mod.rs +++ b/src/task/mod.rs @@ -9,7 +9,6 @@ use crate::tera::get_tera; use crate::ui::tree::TreeItem; use crate::{dirs, env, file}; use console::{Color, measure_text_width, truncate_str}; -use either::Either; use eyre::{Result, eyre}; use globset::GlobBuilder; use indexmap::IndexMap; @@ -143,38 +142,6 @@ pub struct Task { pub file: Option, } -#[derive(Clone, PartialEq, Eq, Deserialize, Serialize)] -pub struct EitherStringOrIntOrBool( - #[serde(with = "either::serde_untagged")] pub Either, -); - -#[derive(Clone, PartialEq, Eq, Deserialize, Serialize)] -pub struct EitherIntOrBool(#[serde(with = "either::serde_untagged")] pub Either); - -impl Display for EitherIntOrBool { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - match &self.0 { - Either::Left(i) => write!(f, "{i}"), - Either::Right(b) => write!(f, "{b}"), - } - } -} - -impl Display for EitherStringOrIntOrBool { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - match &self.0 { - Either::Left(s) => write!(f, "\"{s}\""), - Either::Right(b) => write!(f, "{b}"), - } - } -} - -impl Debug for EitherStringOrIntOrBool { - fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - write!(f, "{self}") - } -} - impl Task { pub fn new(path: &Path, prefix: &Path, config_root: &Path) -> Result { Ok(Self { From af0fa5948dc2a7b2e983d91048c1e8f029b52a1d Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:42:47 +0000 Subject: [PATCH 15/32] refactor: remove cross and cargo-zigbuild from build setup - Remove cross-rs entirely from GitHub Actions workflow - Remove cargo-zigbuild installation and usage - Delete Cross.toml configuration file - Use cargo directly for all cross-compilation targets - Keep ARM-specific feature configuration for OpenSSL vendoring --- .github/workflows/release.yml | 6 +----- Cargo.toml | 1 + Cross.toml | 32 -------------------------------- scripts/build-tarball.sh | 19 ++++++++++++------- 4 files changed, 14 insertions(+), 44 deletions(-) delete mode 100644 Cross.toml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7435d930ca..a13fcd606c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,11 +75,7 @@ jobs: path: ~/.cargo/registry/cache key: cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: cargo-registry - - if: matrix.runs-on != 'ubuntu-latest' - run: rustup target add ${{matrix.target}} - - if: matrix.runs-on == 'ubuntu-latest' - uses: taiki-e/install-action@0aa4f22591557b744fe31e55dbfcdfea74a073f7 # v2 - with: { tool: cross } + - run: rustup target add ${{matrix.target}} - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: diff --git a/Cargo.toml b/Cargo.toml index cef80ba578..531de50a5e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -222,6 +222,7 @@ rustls-native-roots = [ "vfox/rustls-native-roots", "sigstore-verification/rustls-native-roots", ] +openssl = ["dep:openssl"] [package.metadata.binstall] bin-dir = "mise/bin/mise" diff --git a/Cross.toml b/Cross.toml deleted file mode 100644 index 9ca4c77076..0000000000 --- a/Cross.toml +++ /dev/null @@ -1,32 +0,0 @@ -[build.env] -passthrough = ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY"] - -[target.armv7-unknown-linux-gnueabi] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", -] - -[target.armv7-unknown-linux-musleabi] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", -] - -[target.aarch64-unknown-linux-gnu] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", -] - -[target.aarch64-unknown-linux-musl] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", -] - -[target.x86_64-unknown-linux-gnu] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-3.9-dev clang-3.9", -] - -[target.x86_64-unknown-linux-musl] -pre-build = [ - "apt-get update && apt-get install --assume-yes --no-install-recommends libclang-10-dev clang-10", -] diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index 11a730dadc..931785c72a 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -70,13 +70,18 @@ linux-arm*) ;; esac -if command -v cross >/dev/null; then - cross build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored -elif command -v zig >/dev/null; then - cargo zigbuild --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored -else - cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored -fi +# Use native-tls with vendored OpenSSL for ARM targets to avoid aws-lc-sys bindgen issues +case "$RUST_TRIPLE" in +armv7-* | aarch64-*) + echo "Using native-tls with vendored OpenSSL for ARM target: $RUST_TRIPLE" + features="native-tls,self_update,vfox/vendored-lua,openssl/vendored" + ;; +*) + features="rustls,rustls-native-roots,self_update,vfox/vendored-lua" + ;; +esac + +cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features "$features" mkdir -p dist/mise/bin mkdir -p dist/mise/man/man1 mkdir -p dist/mise/share/fish/vendor_conf.d From f528acacfb384bab0f741ca3e3e83e85397a97eb Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:44:05 +0000 Subject: [PATCH 16/32] fix: use ubuntu-24.04-arm runners for ARM builds - Switch ARM targets to use native ARM GitHub Actions runners - This should avoid cross-compilation issues and improve build performance --- .github/workflows/release.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a13fcd606c..8b6648cd85 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -40,19 +40,19 @@ jobs: - os: ubuntu name: linux-arm64 target: aarch64-unknown-linux-gnu - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm - os: ubuntu name: linux-arm64-musl target: aarch64-unknown-linux-musl - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm - os: ubuntu name: linux-armv7 target: armv7-unknown-linux-gnueabi - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm - os: ubuntu name: linux-armv7-musl target: armv7-unknown-linux-musleabi - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm - os: macos name: macos-x64 target: x86_64-apple-darwin From b0596f5d37b08727df53e719cca4ce53a9fd199a Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:46:33 +0000 Subject: [PATCH 17/32] refactor: remove ARM-specific OpenSSL vendoring - Remove conditional logic for ARM targets in build-tarball.sh - Use rustls for all targets uniformly - Remove unused openssl feature from Cargo.toml - Simplify build configuration now that ARM uses native runners --- Cargo.toml | 3 +-- scripts/build-tarball.sh | 11 +---------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 531de50a5e..2dedd866f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -222,7 +222,6 @@ rustls-native-roots = [ "vfox/rustls-native-roots", "sigstore-verification/rustls-native-roots", ] -openssl = ["dep:openssl"] [package.metadata.binstall] bin-dir = "mise/bin/mise" @@ -238,7 +237,7 @@ pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-x64{ ar pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-armv7{ archive-suffix }" [package.metadata.cargo-machete] -ignored = ["built", "openssl", "cfg_aliases", "rmcp-macros"] +ignored = ["built", "cfg_aliases", "rmcp-macros"] [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = [ diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index 931785c72a..e677972046 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -70,16 +70,7 @@ linux-arm*) ;; esac -# Use native-tls with vendored OpenSSL for ARM targets to avoid aws-lc-sys bindgen issues -case "$RUST_TRIPLE" in -armv7-* | aarch64-*) - echo "Using native-tls with vendored OpenSSL for ARM target: $RUST_TRIPLE" - features="native-tls,self_update,vfox/vendored-lua,openssl/vendored" - ;; -*) - features="rustls,rustls-native-roots,self_update,vfox/vendored-lua" - ;; -esac +features="rustls,rustls-native-roots,self_update,vfox/vendored-lua" cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features "$features" mkdir -p dist/mise/bin From c5dcb4694b163c99c626b79322c501f41fc67397 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:48:52 +0000 Subject: [PATCH 18/32] fix: add cross-compilation tools for ARMv7 on ARM64 runners - Install gcc-arm-linux-gnueabihf for ARMv7 cross-compilation - Set appropriate linker environment variables for ARMv7 targets - This fixes builds when compiling ARMv7 on ARM64 runners --- .github/workflows/release.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8b6648cd85..b37953df5b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -75,7 +75,19 @@ jobs: path: ~/.cargo/registry/cache key: cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: cargo-registry - - run: rustup target add ${{matrix.target}} + - name: Install cross-compilation tools + if: contains(matrix.target, 'armv7') + run: | + sudo apt-get update + sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross + - name: Setup Rust target + run: | + rustup target add ${{matrix.target}} + if [[ "${{matrix.target}}" == "armv7-unknown-linux-gnueabi" ]]; then + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + elif [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + fi - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: From 919115e1ab975b0818bfcae78962afe97e89dcbc Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:51:07 +0000 Subject: [PATCH 19/32] fix: add musl cross-compilation tools for ARM targets - Install musl-tools for musl targets on ARM runners - Set CC and linker environment variables for aarch64-musl target - Set CC environment variable for armv7-musl target - Fix shellcheck issues with string comparisons - This fixes zstd-sys build errors for musl targets --- .github/workflows/release.yml | 37 +++++++++++++++++++++++++++-------- scripts/build-tarball.sh | 2 +- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b37953df5b..7b28a29591 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,18 +76,39 @@ jobs: key: cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: cargo-registry - name: Install cross-compilation tools - if: contains(matrix.target, 'armv7') + if: contains(matrix.runs-on, 'arm') && (contains(matrix.target, 'armv7') || contains(matrix.target, 'musl')) run: | sudo apt-get update - sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross - - name: Setup Rust target + # For ARMv7 targets + case "${{matrix.target}}" in + *armv7*) + sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross + ;; + esac + # For musl targets + case "${{matrix.target}}" in + *musl*) + sudo apt-get install -y musl-tools + ;; + esac + - name: Setup Rust target and linkers run: | rustup target add ${{matrix.target}} - if [[ "${{matrix.target}}" == "armv7-unknown-linux-gnueabi" ]]; then - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" - elif [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" - fi + # Set linkers for cross-compilation + case "${{matrix.target}}" in + armv7-unknown-linux-gnueabi) + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + ;; + armv7-unknown-linux-musleabi) + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + echo "CC_armv7_unknown_linux_musleabi=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + ;; + aarch64-unknown-linux-musl) + echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" + echo "CC_aarch64_unknown_linux_musl=musl-gcc" >> "$GITHUB_ENV" + echo "CC=musl-gcc" >> "$GITHUB_ENV" + ;; + esac - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 with: diff --git a/scripts/build-tarball.sh b/scripts/build-tarball.sh index e677972046..4151eb04cd 100755 --- a/scripts/build-tarball.sh +++ b/scripts/build-tarball.sh @@ -70,7 +70,7 @@ linux-arm*) ;; esac -features="rustls,rustls-native-roots,self_update,vfox/vendored-lua" +features="rustls,rustls-native-roots,self_update,vfox/vendored-lua,openssl/vendored" cargo build --profile=serious --target "$RUST_TRIPLE" --no-default-features --features "$features" mkdir -p dist/mise/bin From 37e7de72ef5ef06dbaa895bd2e88b9679c5a71f6 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:54:41 +0000 Subject: [PATCH 20/32] fix: add musl-tools for x86_64-musl targets - Install musl-tools for all musl targets, not just ARM - Set CC and linker environment variables for x86_64-musl - Fix shellcheck issues with string comparisons - This fixes build errors for x86_64-unknown-linux-musl target --- .github/workflows/release.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7b28a29591..f7b08c06a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,16 +76,20 @@ jobs: key: cargo-registry-${{ hashFiles('**/Cargo.lock') }} restore-keys: cargo-registry - name: Install cross-compilation tools - if: contains(matrix.runs-on, 'arm') && (contains(matrix.target, 'armv7') || contains(matrix.target, 'musl')) + if: contains(matrix.target, 'armv7') || contains(matrix.target, 'musl') run: | sudo apt-get update - # For ARMv7 targets - case "${{matrix.target}}" in - *armv7*) - sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross + # For ARMv7 targets on ARM runners + case "${{matrix.runs-on}}" in + *arm*) + case "${{matrix.target}}" in + *armv7*) + sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross + ;; + esac ;; esac - # For musl targets + # For musl targets (all platforms) case "${{matrix.target}}" in *musl*) sudo apt-get install -y musl-tools @@ -108,6 +112,11 @@ jobs: echo "CC_aarch64_unknown_linux_musl=musl-gcc" >> "$GITHUB_ENV" echo "CC=musl-gcc" >> "$GITHUB_ENV" ;; + x86_64-unknown-linux-musl) + echo "CARGO_TARGET_X86_64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" + echo "CC_x86_64_unknown_linux_musl=musl-gcc" >> "$GITHUB_ENV" + echo "CC=musl-gcc" >> "$GITHUB_ENV" + ;; esac - name: build-tarball uses: nick-fields/retry@ce71cc2ab81d554ebbe88c79ab5975992d79ba08 # v3 From ad1ae7b455fd83955693aa7de9757cc01cfd4588 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:55:37 +0000 Subject: [PATCH 21/32] fix: use correct ARM compilers for soft-float vs hard-float targets - Use arm-linux-gnueabi-gcc (soft-float) for armv7-unknown-linux-gnueabi - Use arm-linux-gnueabi-gcc (soft-float) for armv7-unknown-linux-musleabi - Install both soft-float and hard-float toolchains on ARM runners - Set CC and AR environment variables for proper cross-compilation - This fixes '-mfloat-abi=hard': selected architecture lacks an FPU error --- .github/workflows/release.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f7b08c06a4..ccb9be2918 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,7 +84,8 @@ jobs: *arm*) case "${{matrix.target}}" in *armv7*) - sudo apt-get install -y gcc-arm-linux-gnueabihf libc6-dev-armhf-cross + # Install both soft-float and hard-float toolchains + sudo apt-get install -y gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-arm-linux-gnueabihf libc6-dev-armhf-cross ;; esac ;; @@ -101,11 +102,16 @@ jobs: # Set linkers for cross-compilation case "${{matrix.target}}" in armv7-unknown-linux-gnueabi) - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + # Use soft-float compiler for gnueabi target + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABI_LINKER=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" + echo "CC_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" + echo "AR_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-ar" >> "$GITHUB_ENV" ;; armv7-unknown-linux-musleabi) - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" - echo "CC_armv7_unknown_linux_musleabi=arm-linux-gnueabihf-gcc" >> "$GITHUB_ENV" + # musleabi also uses soft-float + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" + echo "CC_armv7_unknown_linux_musleabi=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" + echo "AR_armv7_unknown_linux_musleabi=arm-linux-gnueabi-ar" >> "$GITHUB_ENV" ;; aarch64-unknown-linux-musl) echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" From bec7fffa4557c1f21876f5635b9058ef6559a824 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:45:00 +0000 Subject: [PATCH 22/32] machete --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 2dedd866f2..cef80ba578 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -237,7 +237,7 @@ pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-x64{ ar pkg-url = "{ repo }/releases/download/v{ version }/mise-v{version}-linux-armv7{ archive-suffix }" [package.metadata.cargo-machete] -ignored = ["built", "cfg_aliases", "rmcp-macros"] +ignored = ["built", "openssl", "cfg_aliases", "rmcp-macros"] [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = [ From 1240170493ab0549095d1eba11f0b6dd11127eec Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 14:46:28 +0000 Subject: [PATCH 23/32] fix: add proper musl cross-compiler for ARMv7 targets - Download prebuilt musl cross-compiler from musl.cc for ARMv7 - Use armv7l-linux-musleabihf toolchain for armv7-unknown-linux-musleabi - This provides a proper musl libc toolchain for ARMv7 cross-compilation --- .github/workflows/release.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ccb9be2918..396e77a1c2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -94,6 +94,12 @@ jobs: case "${{matrix.target}}" in *musl*) sudo apt-get install -y musl-tools + # For ARMv7 musl cross-compilation on ARM64, we need additional setup + if [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then + # Download and setup musl cross-compiler for ARMv7 + wget -qO- https://musl.cc/armv7l-linux-musleabihf-cross.tgz | sudo tar -xz -C /opt + echo "/opt/armv7l-linux-musleabihf-cross/bin" >> "$GITHUB_PATH" + fi ;; esac - name: Setup Rust target and linkers @@ -108,10 +114,10 @@ jobs: echo "AR_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-ar" >> "$GITHUB_ENV" ;; armv7-unknown-linux-musleabi) - # musleabi also uses soft-float - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" - echo "CC_armv7_unknown_linux_musleabi=arm-linux-gnueabi-gcc" >> "$GITHUB_ENV" - echo "AR_armv7_unknown_linux_musleabi=arm-linux-gnueabi-ar" >> "$GITHUB_ENV" + # Use the downloaded musl cross-compiler for ARMv7 + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=armv7l-linux-musleabihf-gcc" >> "$GITHUB_ENV" + echo "CC_armv7_unknown_linux_musleabi=armv7l-linux-musleabihf-gcc" >> "$GITHUB_ENV" + echo "AR_armv7_unknown_linux_musleabi=armv7l-linux-musleabihf-ar" >> "$GITHUB_ENV" ;; aarch64-unknown-linux-musl) echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" From f03cbc6f56b571a6e1b466e58560bf952500a605 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 19:56:07 +0000 Subject: [PATCH 24/32] fix: resolve PR #6309 build failures - Use correct soft-float musl cross-compiler (arm-linux-musleabi) for ARMv7 musl targets - Add proper TLS feature flags to vfox's reqwest dependency - This fixes both ARMv7 musl build failures and vfox test failures --- .github/workflows/release.yml | 14 +++++++------- crates/vfox/Cargo.toml | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 396e77a1c2..f2e590fac5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -96,9 +96,9 @@ jobs: sudo apt-get install -y musl-tools # For ARMv7 musl cross-compilation on ARM64, we need additional setup if [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then - # Download and setup musl cross-compiler for ARMv7 - wget -qO- https://musl.cc/armv7l-linux-musleabihf-cross.tgz | sudo tar -xz -C /opt - echo "/opt/armv7l-linux-musleabihf-cross/bin" >> "$GITHUB_PATH" + # Download and setup musl cross-compiler for ARMv7 soft-float + wget -qO- https://musl.cc/arm-linux-musleabi-cross.tgz | sudo tar -xz -C /opt + echo "/opt/arm-linux-musleabi-cross/bin" >> "$GITHUB_PATH" fi ;; esac @@ -114,10 +114,10 @@ jobs: echo "AR_armv7_unknown_linux_gnueabi=arm-linux-gnueabi-ar" >> "$GITHUB_ENV" ;; armv7-unknown-linux-musleabi) - # Use the downloaded musl cross-compiler for ARMv7 - echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=armv7l-linux-musleabihf-gcc" >> "$GITHUB_ENV" - echo "CC_armv7_unknown_linux_musleabi=armv7l-linux-musleabihf-gcc" >> "$GITHUB_ENV" - echo "AR_armv7_unknown_linux_musleabi=armv7l-linux-musleabihf-ar" >> "$GITHUB_ENV" + # Use the downloaded musl cross-compiler for ARMv7 soft-float + echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-musleabi-gcc" >> "$GITHUB_ENV" + echo "CC_armv7_unknown_linux_musleabi=arm-linux-musleabi-gcc" >> "$GITHUB_ENV" + echo "AR_armv7_unknown_linux_musleabi=arm-linux-musleabi-ar" >> "$GITHUB_ENV" ;; aarch64-unknown-linux-musl) echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" diff --git a/crates/vfox/Cargo.toml b/crates/vfox/Cargo.toml index e51b549ff9..53881933fd 100644 --- a/crates/vfox/Cargo.toml +++ b/crates/vfox/Cargo.toml @@ -30,7 +30,7 @@ mlua = { version = "0.11.0-beta.3", features = [ "send", ] } once_cell = "1" -reqwest = { version = "0.12", features = [] } # TODO: replace with xx +reqwest = { version = "0.12", default-features = false } # TODO: replace with xx serde = "1" serde_json = "1" thiserror = "2" @@ -50,9 +50,9 @@ insta = "1" [features] default = ["vendored-lua"] cli = ["clap", "tokio/full", "env_logger"] -native-tls = ["xx/native-tls"] -rustls = ["xx/rustls"] -rustls-native-roots = ["xx/rustls-native-roots"] +native-tls = ["xx/native-tls", "reqwest/native-tls"] +rustls = ["xx/rustls", "reqwest/rustls-tls"] +rustls-native-roots = ["xx/rustls-native-roots", "reqwest/rustls-tls-native-roots"] vendored-lua = ["mlua/vendored"] # [workspace.metadata.release] - removed since this is now part of mise workspace From f0f8bb1ffac587220d9c7cafaa7e3d830bfcaae8 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:05:28 +0000 Subject: [PATCH 25/32] [autofix.ci] apply automated fixes --- crates/vfox/Cargo.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/vfox/Cargo.toml b/crates/vfox/Cargo.toml index 53881933fd..ff5c5d4809 100644 --- a/crates/vfox/Cargo.toml +++ b/crates/vfox/Cargo.toml @@ -52,7 +52,10 @@ default = ["vendored-lua"] cli = ["clap", "tokio/full", "env_logger"] native-tls = ["xx/native-tls", "reqwest/native-tls"] rustls = ["xx/rustls", "reqwest/rustls-tls"] -rustls-native-roots = ["xx/rustls-native-roots", "reqwest/rustls-tls-native-roots"] +rustls-native-roots = [ + "xx/rustls-native-roots", + "reqwest/rustls-tls-native-roots", +] vendored-lua = ["mlua/vendored"] # [workspace.metadata.release] - removed since this is now part of mise workspace From 446d1df29762e5b207366927ffe8cfbf5cb725a9 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:12:35 +0000 Subject: [PATCH 26/32] fix: use ubuntu-latest for ARMv7 musl builds - Switch ARMv7 musl builds back to ubuntu-latest (x86_64) runners - Download prebuilt ARMv7 musl cross-compiler from musl.cc - This avoids issues with ARM64 runners not having x86_64 cross-compilers --- .github/workflows/release.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f2e590fac5..275a50803d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -52,7 +52,7 @@ jobs: - os: ubuntu name: linux-armv7-musl target: armv7-unknown-linux-musleabi - runs-on: ubuntu-24.04-arm + runs-on: ubuntu-latest - os: macos name: macos-x64 target: x86_64-apple-darwin @@ -94,10 +94,11 @@ jobs: case "${{matrix.target}}" in *musl*) sudo apt-get install -y musl-tools - # For ARMv7 musl cross-compilation on ARM64, we need additional setup + # For ARMv7 musl cross-compilation on x86_64, download prebuilt toolchain if [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then - # Download and setup musl cross-compiler for ARMv7 soft-float - wget -qO- https://musl.cc/arm-linux-musleabi-cross.tgz | sudo tar -xz -C /opt + wget -q https://musl.cc/arm-linux-musleabi-cross.tgz + sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt + rm arm-linux-musleabi-cross.tgz echo "/opt/arm-linux-musleabi-cross/bin" >> "$GITHUB_PATH" fi ;; From bb4826406940b55b1e34e50d7a0bfdb6707ff65a Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:18:43 +0000 Subject: [PATCH 27/32] fix: improve ARMv7 musl build script - Add set -x for debugging shell script execution - Fix shell syntax from bash [[ ]] to POSIX [ ] - Add error handling with exit codes for wget and tar - Add status messages for debugging cross-compiler setup --- .github/workflows/release.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 275a50803d..8ed5a1a895 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,6 +78,7 @@ jobs: - name: Install cross-compilation tools if: contains(matrix.target, 'armv7') || contains(matrix.target, 'musl') run: | + set -x sudo apt-get update # For ARMv7 targets on ARM runners case "${{matrix.runs-on}}" in @@ -95,11 +96,14 @@ jobs: *musl*) sudo apt-get install -y musl-tools # For ARMv7 musl cross-compilation on x86_64, download prebuilt toolchain - if [[ "${{matrix.target}}" == "armv7-unknown-linux-musleabi" ]]; then - wget -q https://musl.cc/arm-linux-musleabi-cross.tgz - sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt + if [ "${{matrix.target}}" = "armv7-unknown-linux-musleabi" ]; then + echo "Downloading ARMv7 musl cross-compiler..." + wget -q https://musl.cc/arm-linux-musleabi-cross.tgz || exit 1 + echo "Extracting cross-compiler..." + sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt || exit 1 rm arm-linux-musleabi-cross.tgz echo "/opt/arm-linux-musleabi-cross/bin" >> "$GITHUB_PATH" + echo "Cross-compiler setup complete" fi ;; esac From 19d9a70c89b49e8c92ca9c5d89949c4c3d15c7b6 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:24:41 +0000 Subject: [PATCH 28/32] fix: use mise.jdx.dev for ARMv7 musl cross-compiler - Change URL from musl.cc to mise.jdx.dev for ARMv7 cross-compiler - This should resolve access issues with the musl.cc download --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8ed5a1a895..726ad6f5d2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -98,7 +98,7 @@ jobs: # For ARMv7 musl cross-compilation on x86_64, download prebuilt toolchain if [ "${{matrix.target}}" = "armv7-unknown-linux-musleabi" ]; then echo "Downloading ARMv7 musl cross-compiler..." - wget -q https://musl.cc/arm-linux-musleabi-cross.tgz || exit 1 + wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz || exit 1 echo "Extracting cross-compiler..." sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt || exit 1 rm arm-linux-musleabi-cross.tgz From 4dffeccc114ea20aa53d927d506a1b5006cb757a Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:30:37 +0000 Subject: [PATCH 29/32] fix: set BINDGEN_EXTRA_CLANG_ARGS for ARMv7 musl cross-compilation --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 726ad6f5d2..b00237bff3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -123,6 +123,8 @@ jobs: echo "CARGO_TARGET_ARMV7_UNKNOWN_LINUX_MUSLEABI_LINKER=arm-linux-musleabi-gcc" >> "$GITHUB_ENV" echo "CC_armv7_unknown_linux_musleabi=arm-linux-musleabi-gcc" >> "$GITHUB_ENV" echo "AR_armv7_unknown_linux_musleabi=arm-linux-musleabi-ar" >> "$GITHUB_ENV" + # Set include paths for bindgen to find musl headers + echo "BINDGEN_EXTRA_CLANG_ARGS=--sysroot=/opt/arm-linux-musleabi-cross/arm-linux-musleabi" >> "$GITHUB_ENV" ;; aarch64-unknown-linux-musl) echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=musl-gcc" >> "$GITHUB_ENV" From 8cc806f2427a1533eae6b3838e8c4aab000243af Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:35:25 +0000 Subject: [PATCH 30/32] feat: add checksum verification for ARMv7 musl cross-compiler download --- .github/workflows/release.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b00237bff3..f178113868 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,9 +99,12 @@ jobs: if [ "${{matrix.target}}" = "armv7-unknown-linux-musleabi" ]; then echo "Downloading ARMv7 musl cross-compiler..." wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz || exit 1 + wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz.sha256 || exit 1 + echo "Verifying checksum..." + sha256sum -c arm-linux-musleabi-cross.tgz.sha256 || exit 1 echo "Extracting cross-compiler..." sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt || exit 1 - rm arm-linux-musleabi-cross.tgz + rm arm-linux-musleabi-cross.tgz arm-linux-musleabi-cross.tgz.sha256 echo "/opt/arm-linux-musleabi-cross/bin" >> "$GITHUB_PATH" echo "Cross-compiler setup complete" fi From aae638c3bcbe287275c7cde4302c70254a48afbd Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:36:22 +0000 Subject: [PATCH 31/32] fix: store ARMv7 musl cross-compiler checksum in workflow --- .github/workflows/release.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f178113868..d01b6c165c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -99,12 +99,11 @@ jobs: if [ "${{matrix.target}}" = "armv7-unknown-linux-musleabi" ]; then echo "Downloading ARMv7 musl cross-compiler..." wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz || exit 1 - wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz.sha256 || exit 1 echo "Verifying checksum..." - sha256sum -c arm-linux-musleabi-cross.tgz.sha256 || exit 1 + echo "b5b39f6bea2dccf7d18d45f0c7a7930c059e19dd665151334d18c84981bc3c18 arm-linux-musleabi-cross.tgz" | sha256sum -c || exit 1 echo "Extracting cross-compiler..." sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt || exit 1 - rm arm-linux-musleabi-cross.tgz arm-linux-musleabi-cross.tgz.sha256 + rm arm-linux-musleabi-cross.tgz echo "/opt/arm-linux-musleabi-cross/bin" >> "$GITHUB_PATH" echo "Cross-compiler setup complete" fi From 551b97a2a3207a0028f6df1e1317a6c62d6cdf95 Mon Sep 17 00:00:00 2001 From: jdx <216188+jdx@users.noreply.github.com> Date: Fri, 19 Sep 2025 20:37:21 +0000 Subject: [PATCH 32/32] fix: update ARMv7 musl cross-compiler checksum --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d01b6c165c..8cf0a8f29e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -100,7 +100,7 @@ jobs: echo "Downloading ARMv7 musl cross-compiler..." wget -q https://mise.jdx.dev/arm-linux-musleabi-cross.tgz || exit 1 echo "Verifying checksum..." - echo "b5b39f6bea2dccf7d18d45f0c7a7930c059e19dd665151334d18c84981bc3c18 arm-linux-musleabi-cross.tgz" | sha256sum -c || exit 1 + echo "d70c607101fee5330083463feacf5992892a85b826d1626094500e0c37ec7d25 arm-linux-musleabi-cross.tgz" | sha256sum -c || exit 1 echo "Extracting cross-compiler..." sudo tar -xzf arm-linux-musleabi-cross.tgz -C /opt || exit 1 rm arm-linux-musleabi-cross.tgz