| 2 Dec 2025 |
antifuchs | so I have an issue with users.users / users.knownUsers on nix-darwin; I'm trying to have nix-darwin create a user, but (after a bunch of swearing & reading the activate script in the built system closure) it seems to expect that the user needs to be deleted? here's what I configure, is there anything wrong with it?
users.knownGroups = [ "ci-worker" ];
users.knownUsers = [ "ci-worker" ];
users.groups.ci-worker = {
gid = 502;
};
users.users.ci-worker = {
createHome = false;
description = "Nix Build support user for remote builds from CI";
home = "/var/empty";
shell = pkgs.bashInteractive;
name = "Nix Build CI Worker";
uid = 502;
gid = 502;
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGFg7XQg/ACCFIL0f2OJoU0EIcQFuwa3qz7pQNzmDe2W root@gloria"
];
};
| 20:36:16 |
antifuchs | (creating a home dir or anything else seems to have no effect on the "should be present" calculation) | 20:36:50 |
Randy Eckenrode | Redacted or Malformed Event | 20:37:12 |
Randy Eckenrode | Per the issue emily linked and the part I quoted, named POSIX semaphores are apparently more wasteful. There is a patch to implement the functionality using futexes on Darwin. No idea how well it works. | 20:37:37 |
antifuchs | update: the user is missing a name attribute. without that, the check in https://github.com/nix-darwin/nix-darwin/blob/e95de00a471d07435e0527ff4db092c84998698e/modules/users/default.nix#L20 counts the user as not-intended-to-be-created | 20:45:24 |
antifuchs | * update: the user doesn't have a matching name attribute. without that, the check in https://github.com/nix-darwin/nix-darwin/blob/e95de00a471d07435e0527ff4db092c84998698e/modules/users/default.nix#L20 counts the user as not-intended-to-be-created | 20:45:42 |
| 3 Dec 2025 |
Randy Eckenrode | The C++ bootstrap compiler can’t even use the 14.4 SDK. | 03:37:00 |
Randy Eckenrode | https://github.com/swiftlang/swift/pull/84413 | 03:37:01 |
Randy Eckenrode | I need to see if I can revert https://github.com/swiftlang/swift/pull/79186. Otherwise, that issue in 84413 prevents building against the 14.4 SDK. | 03:37:54 |
Randy Eckenrode |
FAILED: bootstrapping1/SwiftCompilerSources/Basic.o /nix/var/nix/builds/nix-build-swiftc-6.2.1+bootstrap.drv-0/b/source/build/bootstrapping1/SwiftCompilerSources/Basic.o
cd /nix/var/nix/builds/nix-build-swiftc-6.2.1+bootstrap.drv-0/b/source/SwiftCompilerSources && /nix/var/nix/builds/nix-build-swiftc-6.2.1+bootstrap.drv-0/b/source/build/bootstrapping0/bin/swiftc -c -o /nix/var/nix/builds/nix-buil>
<unknown>:0: warning: using (deprecated) legacy driver, Swift installation does not contain swift-driver at: '/nix/var/nix/builds/nix-build-swiftc-6.2.1+bootstrap.drv-0/b/source/build/bootstrapping0/bin/swift-driver-new'
/nix/store/bj5iys7xm7ba8xxsc6hb9q6zv9x5igs2-apple-sdk-14.4/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface:10062:3: error: missing return in instance metho>
10060 | }
10061 | while true
10062 | }
| `- error: missing return in instance method expected to return 'FlattenSequence<Base>.Iterator.Element?' (aka 'Optional<Base.Element.Element>')
10063 | }
10064 | extension Swift.FlattenSequence.Iterator : Swift.Sequence {
| 03:38:08 |
Randy Eckenrode | Though. Hmm. I wonder if swift-driver works. | 03:38:43 |
Randy Eckenrode | Why isn’t it setting it up? | 03:38:50 |
Randy Eckenrode | Nope. I may have to try to revert that change. | 04:24:00 |
Randy Eckenrode | I think I managed to revert the optimizer changes that cause this failure. The optimization pass moved to Swift, which broke the C++ bootstrap compiler. There have been some workarounds done in the Swift stdlib, but those don’t help when dealing with SDK swiftinterface files that have the same constructs. | 05:17:05 |
Randy Eckenrode | I am so happy I don’t have to rebuild LLVM every time while working on this …. | 05:17:48 |
Randy Eckenrode | Dammit, no. Let’s see if reverting the change in the stage 1 compiler works. | 05:19:18 |
Randy Eckenrode | It built! That’s a Swift compiler that supports macros, which should let it build the full compiler and SwiftPM. | 05:36:58 |
Randy Eckenrode | Unfortunately, install phase failed. I’ll fix that tomorrow. | 05:37:05 |
kfiz | Redacted or Malformed Event | 05:42:46 |
kfiz | Redacted or Malformed Event | 05:43:35 |
kfiz | I'm getting these, when trying to build dovecot after a nixpkgs upgrade:
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [Makefile:651: libssl_iostream_openssl.la] Fehler 1
make[3]: *** Es wird auf noch nicht beendete Prozesse gewartet …
libtool: link: ar cr .libs/libssl_iostream.a .libs/iostream-ssl.o .libs/iostream-ssl-context-cache.o .libs/iostream-ssl-test.o
libtool: link: ranlib .libs/libssl_iostream.a
libtool: link: ( cd ".libs" && rm -f "libssl_iostream.la" && ln -s "../libssl_iostream.la" "libssl_iostream.la" )
make[3]: Verzeichnis „/nix/var/nix/builds/nix-build-dovecot-2.3.21.1.drv-0/b/dovecot-2.3.21.1/src/lib-ssl-iostream“ wird verlassen
make[2]: *** [Makefile:573: all-recursive] Fehler 1
make[2]: Verzeichnis „/nix/var/nix/builds/nix-build-dovecot-2.3.21.1.drv-0/b/dovecot-2.3.21.1/src“ wird verlassen
make[1]: *** [Makefile:704: all-recursive] Fehler 1
make[1]: Verzeichnis „/nix/var/nix/builds/nix-build-dovecot-2.3.21.1.drv-0/b/dovecot-2.3.21.1“ wird verlassen
make: *** [Makefile:548: all] Fehler 2
Package version hasn't been updated in ages. I can see that the SDK was updated. Last time it successfully build I was using apple-sdk-11.3 in stdenv. Now we are using apple -sdk-14.4. Could this be related?
| 05:55:30 |
Randy Eckenrode | There was also a change to enforce availability annotations. | 15:08:42 |
Randy Eckenrode | But the missing symbols appear to be internal to Dovecot. Something in its build is getting confused. | 15:09:11 |
Katalin 🔪 | fwiw there is a “mostly done just needs a little polish” update to 2.4 or whatever and I’m already using it | 20:40:34 |
Katalin 🔪 | this is the PR, if you want to see if it works for you: https://github.com/NixOS/nixpkgs/pull/410912
I do have my own changeset that I run on my server that has diverged a bit but only in the nixos module so it shoulndn’t be necessary here | 20:48:55 |
| 4 Dec 2025 |
Randy Eckenrode | It’s amazing that Apple managed to successfully compile Swift 6.2 for release with Xcode. I got a bootstrap compiler to build with macros enabled. It crashes building the Swift Compiler Driver. | 00:52:54 |
Randy Eckenrode | Why would nativeBuildInputs use the dev output of a derivation? | 02:11:10 |
Randy Eckenrode | Oh, I need to fixup nix-support. | 02:20:39 |
Randy Eckenrode | /nix/store/7x3jpimm3qaffhdcgj23rd51gpmy4p2f-apple-sdk-26.0/Platforms/MacOSX.platform/Developer/SDKs/MacOSX26.0.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface:34793:42: error: Using type 'Int' can cause metadata allocation or locks
| 04:48:13 |
Randy Eckenrode | 34791 |
34792 | let queryVersion = (Int(major), Int(minor), Int(patch))
34793 | let major32 = Int32(truncatingIfNeeded:Int(queryVersion.0))
| `- error: Using type 'Int' can cause metadata allocation or locks
34794 | let minor32 = Int32(truncatingIfNeeded:Int(queryVersion.1))
34795 | let patch32 = Int32(truncatingIfNeeded:Int(queryVersion.2))
| 04:50:31 |