Compare commits
No commits in common. "3d7342656f41356dd202fe99afa7070d2fe92ba4" and "bce0a3e696c5fc3ae4d5ad7c914dfad98070b1ad" have entirely different histories.
3d7342656f
...
bce0a3e696
@ -344,7 +344,6 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
env:
|
env:
|
||||||
APPIMAGE_EXTRACT_AND_RUN: "1"
|
APPIMAGE_EXTRACT_AND_RUN: "1"
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
run: |
|
run: |
|
||||||
npm ci --legacy-peer-deps
|
npm ci --legacy-peer-deps
|
||||||
CI=true npx tauri build --target x86_64-unknown-linux-gnu
|
CI=true npx tauri build --target x86_64-unknown-linux-gnu
|
||||||
@ -445,7 +444,8 @@ jobs:
|
|||||||
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER: x86_64-w64-mingw32-gcc
|
CARGO_TARGET_X86_64_PC_WINDOWS_GNU_LINKER: x86_64-w64-mingw32-gcc
|
||||||
OPENSSL_NO_VENDOR: "0"
|
OPENSSL_NO_VENDOR: "0"
|
||||||
OPENSSL_STATIC: "1"
|
OPENSSL_STATIC: "1"
|
||||||
SODIUM_LIB_DIR: /usr/x86_64-w64-mingw32/lib
|
PKG_CONFIG_x86_64_pc_windows_gnu: x86_64-w64-mingw32-pkg-config
|
||||||
|
PKG_CONFIG_ALLOW_CROSS: "1"
|
||||||
run: |
|
run: |
|
||||||
npm ci --legacy-peer-deps
|
npm ci --legacy-peer-deps
|
||||||
CI=true npx tauri build --target x86_64-pc-windows-gnu
|
CI=true npx tauri build --target x86_64-pc-windows-gnu
|
||||||
@ -634,7 +634,6 @@ jobs:
|
|||||||
OPENSSL_NO_VENDOR: "0"
|
OPENSSL_NO_VENDOR: "0"
|
||||||
OPENSSL_STATIC: "1"
|
OPENSSL_STATIC: "1"
|
||||||
APPIMAGE_EXTRACT_AND_RUN: "1"
|
APPIMAGE_EXTRACT_AND_RUN: "1"
|
||||||
SODIUM_LIB_DIR: /usr/lib/aarch64-linux-gnu
|
|
||||||
run: |
|
run: |
|
||||||
npm ci --legacy-peer-deps
|
npm ci --legacy-peer-deps
|
||||||
CI=true npx tauri build --target aarch64-unknown-linux-gnu --bundles deb,rpm
|
CI=true npx tauri build --target aarch64-unknown-linux-gnu --bundles deb,rpm
|
||||||
|
|||||||
@ -12,8 +12,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: rustlang/rust:nightly
|
image: rustlang/rust:nightly
|
||||||
env:
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
run: |
|
run: |
|
||||||
@ -71,8 +69,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: rustlang/rust:nightly
|
image: rustlang/rust:nightly
|
||||||
env:
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
run: |
|
run: |
|
||||||
@ -111,8 +107,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
container:
|
container:
|
||||||
image: rustlang/rust:nightly
|
image: rustlang/rust:nightly
|
||||||
env:
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
120
FIX_SUMMARY.md
120
FIX_SUMMARY.md
@ -1,120 +0,0 @@
|
|||||||
# libsodium Build Failure - FINAL FIX
|
|
||||||
|
|
||||||
## The Problem
|
|
||||||
`libsodium-sys-stable v1.24.0` build script was failing with:
|
|
||||||
```
|
|
||||||
thread 'main' panicked at build.rs:539:13:
|
|
||||||
libsodium not found via pkg-config or vcpkg
|
|
||||||
```
|
|
||||||
|
|
||||||
## Root Cause Analysis
|
|
||||||
|
|
||||||
After 12 hours of attempts, the issue is clear:
|
|
||||||
|
|
||||||
### Build Script Logic (from libsodium-sys-stable/build.rs)
|
|
||||||
The build script checks in priority order:
|
|
||||||
1. **SODIUM_LIB_DIR** - if set, use that path directly (HIGHEST PRIORITY)
|
|
||||||
2. **SODIUM_USE_PKG_CONFIG** - if set, try pkg-config/vcpkg
|
|
||||||
3. **Fallback** - try to build from source
|
|
||||||
|
|
||||||
### Previous Failed Approaches
|
|
||||||
1. **PR #101, #102**: Tried pkg-config environment variables - failed because pkg-config couldn't find libsodium in containers
|
|
||||||
2. **PR with use-pkg-config feature**: Enabled the feature but pkg-config still failed to locate libraries
|
|
||||||
|
|
||||||
### Why pkg-config Failed
|
|
||||||
- Container images have libsodium installed but pkg-config can't find the .pc files
|
|
||||||
- Cross-compilation adds complexity to pkg-config searches
|
|
||||||
- Different containers have different pkg-config configurations
|
|
||||||
|
|
||||||
## The Solution
|
|
||||||
|
|
||||||
**Use SODIUM_LIB_DIR to bypass pkg-config entirely.**
|
|
||||||
|
|
||||||
This directly tells the build script where libsodium is installed, skipping all detection logic.
|
|
||||||
|
|
||||||
## Implementation
|
|
||||||
|
|
||||||
### test.yml (Rust tests)
|
|
||||||
Added to ALL cargo commands:
|
|
||||||
```yaml
|
|
||||||
env:
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
```
|
|
||||||
|
|
||||||
### auto-tag.yml (Release builds)
|
|
||||||
|
|
||||||
**Linux x86_64:**
|
|
||||||
```yaml
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/x86_64-linux-gnu
|
|
||||||
```
|
|
||||||
|
|
||||||
**Linux aarch64:**
|
|
||||||
```yaml
|
|
||||||
SODIUM_LIB_DIR: /usr/lib/aarch64-linux-gnu
|
|
||||||
```
|
|
||||||
|
|
||||||
**Windows MinGW:**
|
|
||||||
```yaml
|
|
||||||
SODIUM_LIB_DIR: /usr/x86_64-w64-mingw32/lib
|
|
||||||
```
|
|
||||||
|
|
||||||
**macOS:** No change needed (already works)
|
|
||||||
|
|
||||||
## Why This Will Work
|
|
||||||
|
|
||||||
1. **SODIUM_LIB_DIR has highest priority** in build.rs - checked BEFORE pkg-config
|
|
||||||
2. **Direct path** - no detection, no guessing, no pkg-config configuration issues
|
|
||||||
3. **Already confirmed** - the original working Windows build used this exact approach
|
|
||||||
4. **Simple** - one environment variable per platform
|
|
||||||
|
|
||||||
## Branch Info
|
|
||||||
- **Branch:** `fix/libsodium-direct-path`
|
|
||||||
- **Base:** `beta`
|
|
||||||
- **Commits:** 1 atomic commit
|
|
||||||
- **Files Changed:** 2 (.gitea/workflows/test.yml, .gitea/workflows/auto-tag.yml)
|
|
||||||
|
|
||||||
## Testing Status
|
|
||||||
- ⏳ Awaiting CI pipeline results
|
|
||||||
- Expected: ALL builds (Linux x86, Linux ARM, Windows, macOS) will succeed
|
|
||||||
- Expected: ALL test jobs (fmt, clippy, tests) will succeed
|
|
||||||
|
|
||||||
## If This Still Fails
|
|
||||||
|
|
||||||
The only remaining possibility would be:
|
|
||||||
1. Libsodium is NOT actually installed in the containers (verify with `dpkg -L libsodium-dev`)
|
|
||||||
2. The library path is wrong (verify with `find /usr -name "libsodium.*"`)
|
|
||||||
|
|
||||||
But based on previous error messages showing pkg-config attempts, libsodium IS installed - we just need to tell the build script where it is.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
**Created:** 2026-06-14 (after 12 hours of attempts)
|
|
||||||
**Approach:** Direct library path specification
|
|
||||||
**Confidence:** HIGH - This is the intended workaround when pkg-config fails
|
|
||||||
|
|
||||||
## Update History
|
|
||||||
|
|
||||||
### Commit 1: Initial SODIUM_LIB_DIR implementation
|
|
||||||
Added SODIUM_LIB_DIR to all workflows, but conflicted with existing use-pkg-config feature.
|
|
||||||
|
|
||||||
### Commit 2: Remove conflicting feature
|
|
||||||
Removed `libsodium-sys-stable = { version = "1.24", features = ["use-pkg-config"] }` from Cargo.toml.
|
|
||||||
The build script doesn't allow both SODIUM_LIB_DIR and SODIUM_USE_PKG_CONFIG simultaneously.
|
|
||||||
|
|
||||||
### Commit 3: Refactor to job-level env
|
|
||||||
Moved SODIUM_LIB_DIR from per-step env to job-level env in test.yml for consistency and to ensure ALL cargo commands (including `cargo generate-lockfile`) have access to it.
|
|
||||||
|
|
||||||
## Final State
|
|
||||||
|
|
||||||
**Branch commits:**
|
|
||||||
1. `863868b2` - fix(ci): use SODIUM_LIB_DIR to bypass pkg-config detection
|
|
||||||
2. `b20deab3` - fix: remove use-pkg-config feature conflicting with SODIUM_LIB_DIR
|
|
||||||
3. `1172f201` - refactor(ci): move SODIUM_LIB_DIR to job-level env
|
|
||||||
|
|
||||||
**Files modified:**
|
|
||||||
- `.gitea/workflows/test.yml` - SODIUM_LIB_DIR at job level for 3 Rust jobs
|
|
||||||
- `.gitea/workflows/auto-tag.yml` - SODIUM_LIB_DIR in Build steps for all platforms
|
|
||||||
- `src-tauri/Cargo.toml` - Removed conflicting use-pkg-config dependency
|
|
||||||
- `src-tauri/Cargo.lock` - Updated after dependency removal
|
|
||||||
|
|
||||||
**Automated Review:** APPROVE WITH COMMENTS (addressed in commit 3)
|
|
||||||
25
src-tauri/Cargo.lock
generated
25
src-tauri/Cargo.lock
generated
@ -727,7 +727,7 @@ version = "3.1.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
|
checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1193,7 +1193,7 @@ dependencies = [
|
|||||||
"libc",
|
"libc",
|
||||||
"option-ext",
|
"option-ext",
|
||||||
"redox_users 0.5.2",
|
"redox_users 0.5.2",
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -1491,7 +1491,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3253,7 +3253,7 @@ dependencies = [
|
|||||||
"png 0.18.1",
|
"png 0.18.1",
|
||||||
"serde",
|
"serde",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"windows-sys 0.60.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3384,7 +3384,7 @@ version = "0.50.3"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
|
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-sys 0.59.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -3720,7 +3720,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
|
checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"windows-sys 0.45.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -4717,7 +4717,7 @@ dependencies = [
|
|||||||
"errno",
|
"errno",
|
||||||
"libc",
|
"libc",
|
||||||
"linux-raw-sys",
|
"linux-raw-sys",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -5328,7 +5328,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
|
checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
"windows-sys 0.60.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -6032,7 +6032,7 @@ dependencies = [
|
|||||||
"getrandom 0.4.2",
|
"getrandom 0.4.2",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustix",
|
"rustix",
|
||||||
"windows-sys 0.52.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -6523,7 +6523,7 @@ dependencies = [
|
|||||||
"png 0.18.1",
|
"png 0.18.1",
|
||||||
"serde",
|
"serde",
|
||||||
"thiserror 2.0.18",
|
"thiserror 2.0.18",
|
||||||
"windows-sys 0.60.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -6545,6 +6545,7 @@ dependencies = [
|
|||||||
"http 1.4.1",
|
"http 1.4.1",
|
||||||
"infer 0.15.0",
|
"infer 0.15.0",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
|
"libsodium-sys-stable",
|
||||||
"lopdf",
|
"lopdf",
|
||||||
"mockito",
|
"mockito",
|
||||||
"portable-pty",
|
"portable-pty",
|
||||||
@ -6637,7 +6638,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"memoffset 0.9.1",
|
"memoffset 0.9.1",
|
||||||
"tempfile",
|
"tempfile",
|
||||||
"windows-sys 0.60.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -7202,7 +7203,7 @@ version = "0.1.11"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"windows-sys 0.48.0",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@ -59,6 +59,7 @@ http = "1.4"
|
|||||||
flate2 = { version = "1", features = ["rust_backend"] }
|
flate2 = { version = "1", features = ["rust_backend"] }
|
||||||
serde_yaml = "0.9"
|
serde_yaml = "0.9"
|
||||||
portable-pty = "0.8"
|
portable-pty = "0.8"
|
||||||
|
libsodium-sys-stable = { version = "1.24", features = ["use-pkg-config"] }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user