<{^_^}>
#101330 (by r-burns, 4 days ago, open): cctools-port 949.0.1 broke various builds on macOS
<abathur>
yes
<abathur>
I noticed a ruby break several days ago when I was running some CI tests to demonstrate to domen that the Big Sur installer updates worked
<abathur>
or wait
<abathur>
I'm sorry, I'm mistaken; I have ruby on the brain from another issue; this was a rust crate failing I think
<abathur>
(but maybe the same actual issue?)
<supersandro2000>
the ruby failure causes a lot of packages to fail
<abathur>
nod I imagine
<supersandro2000>
is the error LDFLAG="" invalid?
<abathur>
uh, I don't think so; let me see if I still have one in CI
<supersandro2000>
then it is maybe something else
<abathur>
mine *may* actually be the stdenv work, and I may just be making a dumb connection here :)
<supersandro2000>
if you need help fixing something feel free to ask here
<abathur>
not too directly worried about it, I was just trying to prove the installer worked, so the build failure was incidental and I didn't really expect it to work in the first place
<abathur>
I did get a little more concerned when I noticed this in my cron CI run a couple days ago; I haven't found the initial run/error yet, but I *think* this is the same error
<abathur>
I think that's downstream of the real error, which is probably the "dyld: Symbol not found: __ZTIN4llvm10CallbackVHE" Referenced from: /nix/store/v9d6qvdbdxl3ax4nl700lgci19gxafi8-clang-10.0.1-lib/lib/libclang-cpp.dylib Expected in: /nix/store/1n7yirznfx5gaqrhl05216wb01ky1b5g-rustc-bootstrap-1.45.2/lib/libLLVM.dylib in
<supersandro2000>
each and every requires a little different set of modules
<supersandro2000>
*frameworks
<supersandro2000>
and then patching values and disabling tests...
adelbertc has joined #nix-darwin
akoppela has joined #nix-darwin
<akoppela>
Hello everyone
<akoppela>
I'm trying to understand how to install apps
<akoppela>
e.g. Slack
<akoppela>
Nix expression says it will be unpacked to $out/Applications
<akoppela>
and I can find it in store at hash-slack/Applications/Slack.app
<akoppela>
but there is no command line slack binary
<akoppela>
how I'm suppose to run it?
<akoppela>
there is a Applications symlink in user directory
<akoppela>
but Slack is not there
<abathur>
the only app I manage with Nix also has a plain CLI so I'm not super familiar with how it's supposed to work, but until someone else responds, can you try `open -a Slack.app`?
akoppela has quit [Remote host closed the connection]
<emily>
my path looks like `/usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/Apple/usr/bin /Users/emily/.nix-profile/bin /etc/profiles/per-user/emily/bin /run/current-system/sw/bin /nix/var/nix/profiles/default/bin`. I'm using nixpkgs fish as my login shell and have `programs.fish.enable = true`, is it expected that the Nix stuff all comes last?
<emily>
environment.systemPath seems like the Nix stuff should come first at least
Chiliparrot has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
Chiliparrot has joined #nix-darwin
Chiliparrot has quit [Quit: My iMac has gone to sleep. ZZZzzz…]
hmpffff has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
supersandro2000 has quit [Ping timeout: 246 seconds]
supersandro2000 has joined #nix-darwin
supersandro2000 has quit [Disconnected by services]
supersandro2000 has joined #nix-darwin
philr has quit [Ping timeout: 246 seconds]
hmpffff has joined #nix-darwin
<abathur>
I think I could still use more direct input on https://github.com/NixOS/nix/pull/4181#issuecomment-716242733 (and maybe a cc @NixOS/darwin-maintainers :); seems like consensus is leaning towards removing single-user darwin installs; or maybe I'll have to pull it out into discourse?
<supersandro2000>
Do we lose anything when removing it?
<supersandro2000>
Don't think so right?
<abathur>
I'm not comfortable trying to summarize it at that high of a level, but that is roughly the question
<abathur>
I'm having a hard time characterizing it, but i.e., we've already been forced to violate some of the more salient benefits of single-user mode to install on Catalina+; we can get simpler installs, but they entail violating it further--what do?
<LnL>
I'm not sure about entirely removing the single user path, but switching feels like the best direction
<LnL>
so for example move all the volume handling and have single-user only work when /nix already exists
<LnL>
that way there also shouldn't be too much platform specific behaviour/implementation other than the default
<LnL>
abathur: also FYI you already pinged the darwin maintainers, it's not a big group :)
<abathur>
if I am extrapolating right, you mean that macOS <= 10.14 would default to single-user, and macOS >=10.15 would default to multi?
<LnL>
nah just everything would be fine at this poin I think
<abathur>
LnL: k; I hoped so but shooting from the hip and didn't want to leave anyone out
<LnL>
just not block off the path that exists on linux (without the weird volume stuff) completely
<abathur>
oh; default multi-user, but allow macOS users to specify --no-daemon (always? or only with a writable root?)
<LnL>
you only missed copumpkin, but he hasn't been very active in some time
<abathur>
:)
<LnL>
not sure how relevant it would be to still make conditional
<LnL>
it's easier if everything is the same, since it's basically the only supported path at that point
<emily>
we should really ship an uninstaller
<emily>
or people will hate us for adding 32 users and a volume and etc.
<emily>
I guess the docs are at least pretty clear about what you have to undo
<LnL>
yeah, that part will be less nice with the switch
<LnL>
there are also a few other small tweaks that could be done to make it a bit better in a few cases
<LnL>
eg. does the channel really have to be configured for root by default?
<LnL>
and the installer could setup both /etc/bashrc and ~/.bashrc so the issue with updates doesn't really bother people that only use a single account
<abathur>
emily: it's a good point, and there's still time to argue it; I don't think any outcome is a given yet
<LnL>
btw I also took a first stab at the installer binary
<abathur>
nice
<emily>
ugh, that fish issue
<emily>
what if we just patched nixpkgs fish to not do path_helper?
<emily>
I guess that would be bad for non-nix-darwin users
<LnL>
if test -z $PATH; then ...; fi?
<LnL>
that might also be upstreamable
<supersandro2000>
Uninstaller or default to 4 users or so
<LnL>
it's more than the default count used because passing -jX will fail otherwise
<LnL>
and having more can be useful for substituting
<emily>
defaulting to fewer users also doesn't solve /etc/synthetic.conf(.d), /etc/fstab, diskutil apfs blahblah, deleting the group, ...
<LnL>
yeah, it's too complicated to do manually now
<emily>
<LnL "if test -z $PATH; then ...; fi?"> is PATHt totally empty at the start of a conventional login shell?
<emily>
> <@freenode_LnL:matrix.org> if test -z $PATH; then ...; fi?
<emily>
* is PATH totally empty at the start of a conventional login shell?
<{^_^}>
error: syntax error, unexpected '<', at (string):345:1
<supersandro2000>
I am getting a segfault with the Cocoa Framework and sockets. Anyone any idea?
<LnL>
whoa, some matrix weirdness there :p
<emily>
ah, sorry
<LnL>
emily: yeah so if PATH is not defined in the environment run the path helper but don't otherwise
<emily>
was replying to the `test -z $PATH` line
<emily>
how far I've fallen from my IRC elitist days, it's hard to remember replies don't work there by now...
<LnL>
heh, I always feel that I'm missing something because I don't understand the appeal of matrix
<LnL>
supersandro2000: is this from python?
<supersandro2000>
LnL: yeah, pyobjc
<supersandro2000>
I am stupid
<supersandro2000>
I thought it does some local websocket but `sd.connect(("www.apple.com", 80))`
<{^_^}>
#12346 (by pikajude, 4 years ago, open): Darwin packages get linked with two different copies of system framework, causing strange runtime errors
<supersandro2000>
🤔 mmm
<supersandro2000>
I try this thanks
<LnL>
we solved this for binaries by linking against the correct library at build time
<supersandro2000>
LnL++
<{^_^}>
LnL's karma got increased to 0b1011011
<LnL>
but since the python interpreter is the same in both cases we can't really do that there
<supersandro2000>
and don't get me started with versions
<{^_^}>
fish-shell/fish-shell#5641 (by thefloweringash, 1 year ago, closed): No way to configure system PATH with higher priority than vendor PATH
<supersandro2000>
LnL: means I should set the version to 12 or better 9?
<supersandro2000>
well 9 does not compile so 10 or 11 works
<LnL>
not sure what version you're referring to
<emily>
LnL: re appeal of matrix, well, for IRC it's IRCCloud (no disconnections, usable across multiple devices incl. decent mobile client, persistent logs) but free
<emily>
for general messaging... IRC only gets more annoying if you try and layer e2e over it, especially if you have multiple devices
<emily>
I think people were working on porting OMEMO to IRCv3 or something...
<supersandro2000>
or just throw thelounge on some vps
<emily>
sure, there are lots of options. i find this is the one that works best for me (e.g. does thelounge get you a mobile client with push notifications even when the app isn't open?)
<LnL>
*shrug* znc does everything I want it to
<emily>
it seems like some people have PATH issues even on non-fish
<emily>
I guess probably just because of /etc files still having path_helper in them?
<supersandro2000>
TheLounge is a PWA
<supersandro2000>
not sure about push notifications
<LnL>
emily: that's usually dotfiles which overwrite PATH
<LnL>
btw does anybody know if there are apis to interact with apfs/diskutility?
<emily>
I wonder why path_helper prints out a PATH including Nix paths for me
<emily>
there's nothing Nix related in /etc/paths{,.d}
<emily>
ohh, it inherits the existing PATH
<supersandro2000>
Any idea about: ?
<supersandro2000>
an error occurred while attempting to obtain endpoint for listener 'ClientCallsAuxiliary': Connection interrupted
<emily>
is there a simple way to get rid of the `/nix/var/nix/profiles/default` and `~/.nix-profile` entries from paths etc.? I don't use `nix-env` environments at all so those profiles are pretty useless for me and have made debugging this PATH issue more annoying. (this was something I meant to do on NixOS for a while but never figured out...)
<emily>
ah, I guess `environment.profiles` is related
gchristensen has quit [*.net *.split]
gchristensen has joined #nix-darwin
hmpffff has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
__monty__ has quit [Quit: leaving]
<emily>
is it safe to skip path_helper entirely with path managed by nix-darwin? I do have one file in /etc/paths.d adding /Library/Apple/usr/bin which I guess is probably either stock or from Xcode
<emily>
might try just patching the global fish config
philr has joined #nix-darwin
hmpffff has joined #nix-darwin
hmpffff has quit [Client Quit]
<emily>
workaround seems to work!
<emily>
well, "workaround"; I patched the fish package
<emily>
but it might be good enough to put in nixpkgs at least. not 100% sure it wouldn't break trying to use nixpkgs fish outside of nix-darwin though, would anyone be up for testing that?
<emily>
oh, actually, it is missing /Library/Apple/usr/bin. is it really intended that /etc/paths.d is totally ignored with nix-darwin? it seems like that could easily break installing stuff externally like xquartz and manually mirroring all the entries in the nix-darwin config could be a bit painful
<LnL>
yeah it is, feels kind of weird to add random entries while environment.variables.PATH is declarative
<emily>
right. I guess I'm wondering if it wouldn't be better to just expose an interface to add things to /etc/paths.d rather than expecting people to add random stuff to path
<emily>
if `/etc/paths.d/100-rvictl` exists on a stock catalina it should probably be added to the path defaults, but not entirely sure about that
<LnL>
just managing everything with paths.d, environment.d, etc. is also something I've thought about
<emily>
it seems like it could be potentially nicer. I'm unclear on whether `environment.vars.*` customizations work for e.g. GUI apps that (presumably?) aren't the child of any shell for instance
<emily>
(or is macOS login so oldschool that it involves a /bin/sh -l at some point?)
<supersandro2000>
GUI programs inherit their envs from the parent shell
<supersandro2000>
or anything parent
<supersandro2000>
Did you already dump env?
<LnL>
I think it comes from the launchd user context I think
<LnL>
but paths.d is also the only thing that exists, there's nothing like it for variables in general
<emily>
supersandro2000: on "modern Linux desktop" these days there is no shell parent of a random GUI app you run
<emily>
not sure if it's true of macOS, but I'd at least hope so -- launchd was my guess, yeah
<emily>
I tend to avoid setting stuff via shell for this reason so I'll probably do most things via launchd
<supersandro2000>
it is run with systemd
<emily>
seems like my launchds have no PATH set currently
<supersandro2000>
or something
<emily>
sure, and systemd doesn't read /etc/profile
<supersandro2000>
it gets some ENV or explicitly none
<emily>
I guess there's no way to do the $HOME thing with paths.d even
<emily>
if we could use /etc/paths.d, a nice blend between declarativity and flexibility could be to simply initialize environment.systemPath from readFile /etc/paths + /etc/paths.d
<emily>
so you can either add stuff to it by assigning in the normal way, or override the system paths with mkForce etc.
<emily>
and all the /etc/paths.d/* files are still reflected in the nix configuration
<emily>
(and then you just filter out the ones already present on the FS to write /etc/paths.d/00-nix-darwin)
<abathur>
mostly unrelated, but is there a way to detect .d support for a given conf?
<abathur>
technically apple gave us synthetic.d, but IMO it takes more effort to support doing it both ways than just using synthetic.conf
<abathur>
and I kinda hate them for even bothering to add the .d variant a single cycle later
<supersandro2000>
abathur: don't think so
<supersandro2000>
most configs on debian abuse their include feature
<supersandro2000>
and just tell it to wildcard load in conf.d
<supersandro2000>
this is necessary if multiple packages should ship configs like php does
dhess has quit [Remote host closed the connection]