Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/acceptance-205.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,9 @@ jobs:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v3
- name: Setup soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/bench-205.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,9 @@ jobs:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v3
- name: Setup soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down Expand Up @@ -76,8 +77,9 @@ jobs:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v3
- name: Setup soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/check-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ jobs:
- uses: actions/checkout@v6
- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/check-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ jobs:
- uses: astral-sh/setup-uv@v3
- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@ jobs:
- uses: actions/checkout@v6
- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/dylint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,9 @@ jobs:
steps:
- uses: actions/checkout@v6
- uses: astral-sh/setup-uv@v3
- uses: zackees/setup-soldr@v0.9.65
- uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
toolchain: 1.94.1
cache-key-suffix: dylint
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/fmt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ jobs:
- uses: actions/checkout@v6
- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: false
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/msrv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@ jobs:
- uses: actions/checkout@v6
- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/release-auto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -170,14 +170,14 @@ jobs:
linux_cross: true
macos_cross: false

# macOS lanes restored on soldr v0.7.98 + setup-soldr
# v0.9.64. They were dropped when every usable soldr
# macOS lanes restored on soldr v0.8.0 + setup-soldr
# v0.9.66. They were dropped when every usable soldr
# version still pointed the Apple SDK fetch at the retired
# manifest branch (HTTP 404); the "setup-soldr version
# --json incompatibility" that blocked bumping soldr was a
# misdiagnosis — soldr v0.7.85/v0.7.87 shipped silent
# binaries. v0.7.98 fixes the Apple SDK URL and
# setup-soldr@v0.9.65 hardens against silent binaries.
# binaries. v0.8.0 carries the Apple SDK URL fix and
# setup-soldr@v0.9.66 hardens against silent binaries.
#
# aarch64-apple-darwin cross-compiles from the Linux
# runner via soldr + cargo-zigbuild + soldr's managed
Expand Down Expand Up @@ -205,7 +205,7 @@ jobs:
# Windows x86_64 now uses the same Linux -> MSVC soldr build path
# as aarch64-pc-windows-msvc. The native windows-latest release
# lane repeatedly exceeded the 45 minute release-binary step while
# compiling fbuild-cli, blocking the v2.4.0 publish. soldr v0.7.98's
# compiling fbuild-cli, blocking the v2.4.0 publish. soldr v0.8.0's
# clang-cl shim fixes the earlier cargo-xwin/ring header routing
# issue that forced native Windows on the 2.3.12 cut.
- target: x86_64-pc-windows-msvc
Expand All @@ -214,7 +214,7 @@ jobs:
linux_cross: false
macos_cross: false

# aarch64-pc-windows-msvc — restored on soldr v0.7.98,
# aarch64-pc-windows-msvc — restored on soldr v0.8.0,
# whose release archive ships the soldr-clang-shim that
# routes ring 0.17.x's hardcoded `c.compiler("clang")`
# to clang-cl when `--target=*-pc-windows-msvc` (the
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/template_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ jobs:

- name: Setup soldr
id: setup-soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
# cache-preset: foundation expands to:
# build-cache: true, target-cache: false,
# cargo-registry-cache: false, prebuild-deps: soldr-cook
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/template_native_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -93,14 +93,14 @@ jobs:
# v0.7.85/v0.7.87 were broken releases that shipped silent
# binaries (no output at all), which setup-soldr@v0.9.63
# surfaced as a version-JSON parse failure.
# Now pinned to v0.7.98: Apple SDK URL fix, soldr-clang-shim
# Now pinned to v0.8.0: Apple SDK URL fix, soldr-clang-shim
# shipped in every release archive, cargo:rustc-env wrapper
# forwarding, managed cmake/ninja — all 7 soldr cross lanes
# verified green upstream. setup-soldr@v0.9.65 hardens
# verified green upstream. setup-soldr@v0.9.66 hardens
# against the silent-binary failure mode.
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.7.98"
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down Expand Up @@ -203,7 +203,7 @@ jobs:
# on PATH — without it, ring + cc-rs fail with
# `failed to find tool "clang-cl": No such file or
# directory` during `cargo xwin build`. Create the symlink
# ourselves so the env vars resolve. soldr >= v0.7.98 ships
# ourselves so the env vars resolve. soldr >= v0.8.0 ships
# `soldr-clang-shim` in its release archive and `soldr build`
# installs it on PATH (zackees/soldr#1032); the symlink stays
# as a safety belt for any direct `cargo xwin` invocation.
Expand Down Expand Up @@ -287,7 +287,7 @@ jobs:
# passthrough. cargo-xwin is still installed (handles
# SDK download); soldr build delegates to cargo-xwin via
# internal env vars when the catalogue xwin-cache row is
# absent for the target arch. Requires soldr >= v0.7.98
# absent for the target arch. Requires soldr >= v0.8.0
# (first pin whose release archive ships the shim).
soldr build --release --target ${{ inputs.target }} \
-p fbuild-cli \
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/update-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,9 @@ jobs:
--worktree "${WWW_WORKTREE}" --branch "${WWW_BRANCH}"

- name: Setup soldr
uses: zackees/setup-soldr@v0.9.65
uses: zackees/setup-soldr@v0.9.66
with:
version: "0.8.0"
cache: true
build-cache: true
target-cache: true
Expand Down
4 changes: 2 additions & 2 deletions ci/docker-mac-cross/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
# to an unrelated squatted `soldr-0.1.0` placeholder package. The tarball
# is built against glibc 2.17 (manylinux_2_17 floor) so it runs on every
# remotely-recent distro. Issue tracked at zackees/soldr#1005 (forthcoming).
ARG SOLDR_VERSION=0.7.98
ARG SOLDR_VERSION=0.8.0
RUN mkdir -p /opt/soldr-bin \
&& curl -fsSL \
"https://github.com/zackees/soldr/releases/download/v${SOLDR_VERSION}/soldr-v${SOLDR_VERSION}-x86_64-unknown-linux-gnu.tar.zst" \
Expand All @@ -68,7 +68,7 @@ RUN mkdir -p /opt/soldr-bin \
# `soldr-clang-shim` must live next to the running soldr binary —
# soldr's blessed cross-compile path resolves it relative to its own
# exe (zackees/soldr#1015/#1016) and ships it in every release
# archive as of v0.7.92+.
# archive as of v0.8.0+.
RUN for bin in soldr soldr-clang-shim cargo-chef crgx; do \
[ -f "/opt/soldr-bin/$bin" ] && cp "/opt/soldr-bin/$bin" "/usr/local/bin/$bin" && chmod +x "/usr/local/bin/$bin"; \
done
Expand Down
2 changes: 1 addition & 1 deletion ci/docker-profile/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ RUN test -f /etc/machine-id || cat /proc/sys/kernel/random/uuid | tr -d '-\n' >
# Soldr binary tarball from GitHub Releases — same rationale and pin as
# ci/docker-mac-cross/Dockerfile (pip wheel is manylinux_2_39-tagged and
# falls back to a squatted placeholder on older glibc).
ARG SOLDR_VERSION=0.7.98
ARG SOLDR_VERSION=0.8.0
RUN mkdir -p /opt/soldr-bin \
&& curl -fsSL \
"https://github.com/zackees/soldr/releases/download/v${SOLDR_VERSION}/soldr-v${SOLDR_VERSION}-x86_64-unknown-linux-gnu.tar.zst" \
Expand Down
2 changes: 1 addition & 1 deletion ci/publish.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@
"binaries-x86_64-unknown-linux-musl": "linux-x86_64",
"binaries-aarch64-unknown-linux-musl": "linux-aarch64",
# Restored alongside the release-auto.yml macOS matrix entries on
# soldr v0.7.98 + setup-soldr v0.9.64 (Apple SDK URL fix).
# soldr v0.8.0 + setup-soldr v0.9.66 (Apple SDK URL fix).
"binaries-aarch64-apple-darwin": "macos-aarch64",
"binaries-x86_64-pc-windows-msvc": "windows-x86_64",
}
Expand Down
17 changes: 16 additions & 1 deletion crates/fbuild-core/src/path.rs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ pub fn path_arg_for_compile_cwd(path: &Path, cwd: &Path) -> String {
path.to_path_buf()
} else {
let stable_path = canonicalize_lexical(path).unwrap_or_else(|| path.to_path_buf());
let stable_cwd = strip_unc_prefix(cwd);
let stable_cwd = canonicalize_lexical(cwd).unwrap_or_else(|| strip_unc_prefix(cwd));
stable_path
.strip_prefix(&stable_cwd)
.map(|tail| tail.to_path_buf())
Expand Down Expand Up @@ -787,6 +787,21 @@ mod tests {
assert_eq!(path_arg_for_compile_cwd(&source, &cwd), "src/main.cpp");
}

#[test]
#[cfg(unix)]
fn path_arg_for_compile_cwd_canonicalizes_symlinked_cwd() {
let tmp = tempfile::TempDir::new().unwrap();
let real = tmp.path().join("real");
let link = tmp.path().join("link");
let cwd = link.join("project");
let source = cwd.join("src/main.cpp");
std::fs::create_dir_all(real.join("project/src")).unwrap();
std::os::unix::fs::symlink(&real, &link).unwrap();
std::fs::write(&source, "int main() { return 0; }\n").unwrap();

assert_eq!(path_arg_for_compile_cwd(&source, &cwd), "src/main.cpp");
}

#[test]
#[cfg(windows)]
fn path_arg_for_compile_cwd_forces_forward_slashes_on_windows() {
Expand Down
Loading