aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJade Lovelace <lix@jade.fyi>2024-09-13 16:26:15 -0700
committerjade <lix@jade.fyi>2024-09-14 07:31:30 +0000
commitb7fc37b0154b14d677f2d05b06b761373e2d44b6 (patch)
treee3e8888b9c90de130024902a9a466dfa8cc9a506 /src
parentb2fc007811a5afc473bf116fe8d38688b3699e25 (diff)
store: add a hint on how to fix Lix installs broken by macOS Sequoia
This is not a detailed diagnosis, and it's not worth writing one, tbh. This error basically never happens in normal operation, so diagnosing it by changing the error on macOS is good enough. Relevant: https://git.lix.systems/lix-project/lix-installer/issues/24 Relevant: https://git.lix.systems/lix-project/lix-installer/issues/18 Relevant: https://git.lix.systems/lix-project/lix/issues/521 Change-Id: I03701f917d116575c72a97502b8e1617679447f2
Diffstat (limited to 'src')
-rw-r--r--src/libstore/lock.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libstore/lock.cc b/src/libstore/lock.cc
index 05296757d..377499c0a 100644
--- a/src/libstore/lock.cc
+++ b/src/libstore/lock.cc
@@ -73,8 +73,16 @@ struct SimpleUserLock : UserLock
debug("trying user '%s'", i);
struct passwd * pw = getpwnam(i.c_str());
- if (!pw)
- throw Error("the user '%s' in the group '%s' does not exist", i, settings.buildUsersGroup);
+ if (!pw) {
+#ifdef __APPLE__
+#define APPLE_HINT "\n\nhint: this may be caused by an update to macOS Sequoia breaking existing Lix installations.\n" \
+ "See the macOS Sequoia page on the Lix wiki for detailed repair instructions: https://wiki.lix.systems/link/81"
+#else
+#define APPLE_HINT
+#endif
+ throw Error("the user '%s' in the group '%s' does not exist" APPLE_HINT, i, settings.buildUsersGroup);
+#undef APPLE_HINT
+ }
auto fnUserLock = fmt("%s/userpool/%s", settings.nixStateDir,pw->pw_uid);