!lheuhImcToQZYTQTuI:nixos.org

Nix on macOS

1181 Members
“There are still many issues with the Darwin platform but most of it is quite usable.” — http://yves.gnu-darwin.org193 Servers

Load older messages


SenderMessageTime
8 Jan 2026
@markus.lohmayer:matrix.orgmarkus.lohmayerNot sure if this is a good place to ask, but let me try please. I am an admin using Nix for some years now on macOS, Ubuntu Linux, and NixOS. I am also using flakes like home-manager, nix-darwin, nixvim, etc. While nixpkgs-unstable seems to be the norm when looking at other people's flakes, I feel it might indeed be a bit too unstable for me and "my" users. So, I am thinking about switching my flakes (which usually contain many system (nix-darwin or nixos) and home configurations across different platforms) to stable branches of said input flakes. Unfortunately, it seems like I should complicate my flakes by having, say, nixpkgs-25.11-darwin for macOS, nixos-25.11 for nixos, and nixpkgs-25.11 for the Ubuntu machines as different inputs, and make flakes like home-manager or nixvim follow the correct nixpkgs depending on the platform, right? Obviously I am hoping to see less surprises during the year when rebuilding the systems and applying home-manager configurations. Will moving to release branches really give me a significantly smoother experience with Nix and will this offset the downside of having to deal with said complication (i.e. different flake inputs for different platforms)? If so, can someone please recommend me an example of how to manage this additional complexity in an easy way? 08:28:28
@k900:0upti.meK900nixos-unstable is unstable in what way?09:03:56
@markus.lohmayer:matrix.orgmarkus.lohmayerWell, if I can reduce the friction with Nix, I would do it. That's also why I asked the question in this way (i.e. will moving to stable/release branches really reduce friction (while being on a given release)?). There certainly is friction.10:12:54
@k900:0upti.meK900What exactly do you mean by "friction"?10:20:08
@markus.lohmayer:matrix.orgmarkus.lohmayerIn general terms, from time to time, after nix flake update, the config cannot be applied due to some error, or changes to the config are required (although these are often just deprecation warnings).10:28:28
@k900:0upti.meK900It depends on the kind of error, really10:29:02
@k900:0upti.meK900Also, keep in mind that stable is not LTS10:29:08
@k900:0upti.meK900You get 6 months of stable, and then you get all of those errors at the same time10:29:18
@markus.lohmayer:matrix.orgmarkus.lohmayer Ok thanks K900 , I take this as a recommendation to stay on unstable 10:33:47
@k900:0upti.meK900Really the question is, what kinds of errors are you seeing10:34:10
@k900:0upti.meK900If it's packages breaking, that's less common on stable, yes10:34:19
@markus.lohmayer:matrix.orgmarkus.lohmayerIf others can recommend to move to stable, I am of course interested in diverse opinions.10:34:29
@k900:0upti.meK900If it's module API or such breaking, that's delayed on stable, but generally unavoidable10:34:33
@k900:0upti.meK900And like, assuming you're pinning your inputs, which you should be, you can always rebuild without upgrading10:34:56
@markus.lohmayer:matrix.orgmarkus.lohmayerI will post the last error that made me think that way in a bit when I'm ready.10:35:18
@markus.lohmayer:matrix.orgmarkus.lohmayerI think on unstable, the recent bug that kept me from applying the configuration is "pkgs.buildEnv error: Can't use string ("/Applications") as an ARRAY ref while "strict refs" in use at /nix/store/qcnckfk16sad3j255jpw1hzfdj4ix2ph-builder.pl line 18.", which is probably the same as https://github.com/nix-community/home-manager/issues/835711:15:48
@markus.lohmayer:matrix.orgmarkus.lohmayerWhen it comes to broken packages, I usually managed to work around it by modifying the config such that the broken package comes from stable, but in this case I think it affects everything (or at least home-manager which I use to install a ton of packages).11:16:55
@reckenrode:matrix.orgRandy Eckenrode Finally. I have everything in $lib/lib/swift/${swiftPlatform building in the stdlib package. Now I just need to make Swift use that instead of what it’s using. I’ve managed to avoid installing most of the stdlib, but some of the files are part of other components. They’ll need removed. 12:27:24
@nazarewk:matrix.orgkdn why are the $KEYS in linux-builder fed through the store? 16:16:26
@nazarewk:matrix.orgkdn where do I find SSHD logs on MacOS? is there anyting more than /usr/bin/log show --predicate 'process == "sshd"' --info --debug --last 2m? I'm just seeing this error there: [com.apple.network.libinfo:si_destination_compare] send failed: Invalid argument 20:20:17
@nazarewk:matrix.orgkdn *

where do I find SSHD logs on MacOS? is there anyting more than /usr/bin/log show --predicate 'process == "sshd"' --info --debug --last 2m? I'm just seeing this error there: [com.apple.network.libinfo:si_destination_compare] send failed: Invalid argument

on the client side I get permission denied

20:30:46
@nazarewk:matrix.orgkdnI can login to my primary user, but not to the additional user20:34:54
@nazarewk:matrix.orgkdnI cannot force the password authentication for that user either20:40:17
@nazarewk:matrix.orgkdn

FYI: /usr/sbin/sshd -ddd -p 2222 was quite helpful, turned out SSHD didn't like the /nix/store permissions, I changed it to this copying and referencing static path:

          system.activationScripts.preActivation.text = ''
            cp -a ${pkgs.writeShellScript "cat-nofail" ''/bin/cat "$@" || :''} /etc/ssh/authorized-keys-command
          '';
21:23:12
@nazarewk:matrix.orgkdnis there any way to connect directly to the linux-builder's serial console?22:20:13
@nazarewk:matrix.orgkdn

FYI: I found it:

            virtualisation.qemu.options = [
              # socat - UNIX-CONNECT:/run/org.nixos.linux-builder/qemu-serial.sock
              # minicom -D 'unix#/run/org.nixos.linux-builder/qemu-serial.sock'
              ''-serial unix:"$TMPDIR/qemu-serial.sock",server,nowait''
            ];
23:23:37
9 Jan 2026
@reckenrode:matrix.orgRandy Eckenrode

    [1/2] /nix/store/jk2r3w2q06vh7hkfxrw74ckrlrppm6gz-swiftc-6.2.3/bin/swiftc -j 16 -num-threads 16 -c  -module-name cmTC_a937f -target arm64-apple-macosx14.0  -sdk /nix/store/i6yfk1parrl2f2m>
    FAILED: [code=1] CMakeFiles/cmTC_a937f.dir/main.swift.o
    /nix/store/jk2r3w2q06vh7hkfxrw74ckrlrppm6gz-swiftc-6.2.3/bin/swiftc -j 16 -num-threads 16 -c  -module-name cmTC_a937f -target arm64-apple-macosx14.0  -sdk /nix/store/i6yfk1parrl2f2mhj96x5>
    <unknown>:0: warning: using (deprecated) legacy driver, Swift installation does not contain swift-driver at: '/nix/store/jk2r3w2q06vh7hkfxrw74ckrlrppm6gz-swiftc-6.2.3/bin/swift-driver-new'
    <unknown>:0: warning: option '-incremental' is only supported in swift-driver
    /nix/store/i6yfk1parrl2f2mhj96x565ijc3lg7xv-apple-sdk-26.0/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface:5:8: error>
        3 | // swift-module-flags: -target arm64e-apple-macosx26.0 -target-variant arm64e-apple-ios26.0-macabi -enable-objc-interop -enable-library-evolution -module-link-name swiftCore -pars>
        4 | // swift-module-flags-ignorable: -enable-lexical-lifetimes=false -enable-ossa-modules -strict-memory-safety -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
        5 | import SwiftShims
          |        `- error: no such module 'SwiftShims'
        6 | @inlinable public func min<T>(_ x: T, _ y: T) -> T where T : Swift.Comparable {
        7 |

    /nix/store/i6yfk1parrl2f2mhj96x565ijc3lg7xv-apple-sdk-26.0/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/swift/Swift.swiftmodule/arm64e-apple-macos.swiftinterface:1:1: error>
        1 | // swift-interface-format-version: 1.0
          | `- error: failed to build module 'Swift'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.17.14 clang-170>
        2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.17.14 clang-1700.3.17.1)
        3 | // swift-module-flags: -target arm64e-apple-macosx26.0 -target-variant arm64e-apple-ios26.0-macabi -enable-objc-interop -enable-library-evolution -module-link-name swiftCore -pars>
    ninja: build stopped: subcommand failed.
01:52:13
@reckenrode:matrix.orgRandy EckenrodeThat’s with the separate stdlib. I think I’m going to have to do some patching to make it aware of both the dev and lib outputs in the stdlib package.01:52:46
@reckenrode:matrix.orgRandy EckenrodeYeah. I need to revisit the separate lib patch. I don’t think patching the compiler lookup is the right approach. It’s changing the semantics of the search. I should be augmenting the path.02:27:53
@reckenrode:matrix.orgRandy Eckenrode * Yeah. I need to revisit the separate lib patch. I don’t think patching the compiler lookup is the right approach. It’s changing the semantics of the search. I should be augmenting the paths in updateRuntimeLibraryPaths. 02:28:10

Show newer messages


Back to Room ListRoom Version: 6