Commit graph

12 commits

Author SHA1 Message Date
Robert Hensing
f7d4499ab2 fix: Use c_char where appropriate
This builds on the previous commit to make it compatible with the
currently locked build configuration.

(cherry picked from commit bd1edec2fa5251263c768c3e2b312eb4f21d2bb4)
2025-10-04 02:31:17 +02:00
Tristan Ross
c924fed81b fix: rust types
(cherry picked from commit 925a0abd694f6409b6d54b6cad3a61fc916215d3)
2025-10-04 02:31:16 +02:00
Robert Hensing
3bef494271 fix: Add mutex to nix_util::settings to prevent concurrent access segfault
Fixes #106

The Nix settings system uses global mutable state without internal
synchronization. When multiple threads call settings::set concurrently
(as happens in parallel test execution), this causes a segfault in the
C++ std::set implementation.

Changes:
- Add mutex to serialize access through the Rust API
- Add documentation explaining thread safety limitations
- Add Once guard in nix-flake tests to minimize concurrent access

The mutex provides protection between Rust callers, though it cannot
completely prevent C++ Nix code from modifying settings concurrently.

(cherry picked from commit 203917657b60c4e1dcbaf442bec64c37c634abc4)
2025-10-04 02:31:16 +02:00
Robert Hensing
b3a80dd36e maint: Remove Cargo.toml patch constraints
(cherry picked from commit 155550be6a8487771ddb67d09f3eba829e54e622)
2025-10-04 02:31:16 +02:00
Robert Hensing
0514ad3433 doc: Basic doc comments for nix-flake
(cherry picked from commit c8f7d9ba5860114c4d602d089c26c05283d312a6)
2025-10-04 02:31:16 +02:00
Robert Hensing
30bcd71527 feat: nix-flake: Flake overriding
(cherry picked from commit e1fa32fc40f2520aab96fae3bb1700b2242cb548)
2025-10-04 02:31:16 +02:00
Robert Hensing
b77a3a2085 feat: nix-flake: Basic locking
(cherry picked from commit cfd374f9deda7d40229198911516b22bc3d82626)
2025-10-04 02:31:16 +02:00
Robert Hensing
bbf245ef1a feat: nix-fetchers crate
(cherry picked from commit 27d572403ac98d83d652481da6c22ad50bb00168)
2025-10-04 02:31:16 +02:00
Robert Hensing
7ae38f296f test: Make sure getFlake exists
(cherry picked from commit 3c1bb4af0009104e836f9110687a1da4e0ee3bb7)
2025-10-04 02:31:16 +02:00
Robert Hensing
8f7d3d5385 maint: Add EvalStateBuilder.flakes(settings)
(cherry picked from commit ee55ef51a60abc692fdef69614c9a8ccfa9358e0)
2025-10-04 02:31:16 +02:00
Robert Hensing
895336ac79 License as LGPL-2.1
(cherry picked from commit 1127742e387ef78b91ec1e4cec0bb17b5e85666c)
2025-10-04 02:31:16 +02:00
Robert Hensing
d40bbbed88 maint: Update Nix
(cherry picked from commit 203f5d519369235097fef2bdaefa6b3d0f5e963b)
2025-10-04 02:31:16 +02:00