<Enzime> puffnfresh[m]: "slack" "Atlassian" can't tell if that has to do with the news announced today :p
<puffnfresh[m]> Enzime: :)
jrolfs has quit [Ping timeout: 256 seconds]
jrolfs has joined #nix-darwin
andreabedini has joined #nix-darwin
hamishmack has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
jrolfs has quit [Ping timeout: 260 seconds]
philr has joined #nix-darwin
jrolfs has joined #nix-darwin
jrolfs has quit [Ping timeout: 264 seconds]
hamishmack has joined #nix-darwin
andreabedini has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
andreabedini has joined #nix-darwin
<angerman> LnL: clever and I have been wondring just how pure darwin is? And we saw that it pulls in CoreFoundation impurely. Is there some document on the purity of nix-darwin?
andreabedini has quit [Quit: Textual IRC Client: www.textualapp.com]
philr has quit [Ping timeout: 244 seconds]
hamishmack has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
FRidh has joined #nix-darwin
<LnL> angerman: CoreFoundation is pure by default, but the frameworks are not, so if something depends on a framework we also switch CF because that can cause problems otherwise
<angerman> LnL: I was thinking about build a cross ghc (linux -> mac) and was wondering if we had enough infra, to support that without constructing a macOS sdk (which could be questionable from a legal perspective)
<johnw_> copumpkin made some huge efforts to purify darwin
<LnL> angerman: the other impurity is Libsystem for which we use a shim that only exposes a set of known symbols, hiding the differences as much as possible
<angerman> LnL: guess I would just have to try then.
<LnL> the sdk packages don't contain anything, it's just a bunch of symlinks to the system locations
<clever> LnL: one thing we did notice, we turned on the nix sandbox, and made a naked builtins.derivation, and bash failed to even start because the stdenv wasnt around to ask for impurities in the sandbox
<clever> : Library not loaded: /usr/lib/system/libunc.dylib Referenced from: /nix/store/q819d3vjz7vswpvkrfa9gck3ys8rmvcj-Libsystem-osx-10.11.6/lib/libSystem.B.dylib Reason: no suitable image found
* clever heads off to bed
<LnL> yeah that's Libsystem like I mentioned
<clever> so you can link against it purely, but not actually run the binary in a pure manner?
<LnL> indeed
<clever> that should be fine for a cross build, no way to run mach-o
<LnL> it has a list of symbols but not their implementation
<LnL> and Libsystem itself is an umbrella that exports a bunch of differen libraries
johnw_ is now known as johnw
johnw has quit [Changing host]
johnw has joined #nix-darwin
hamishmack has joined #nix-darwin
andreabedini has joined #nix-darwin
__Sander__ has joined #nix-darwin
andreabedini has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
philr has joined #nix-darwin
ben has quit [Ping timeout: 255 seconds]
<angerman> so looks like you can't build `x509-system-1.6.6` on a sandboxed nix-darwin machine. Fails with `ld: file not found: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation`
<LnL> angerman: yes, the impure framework paths don't propagated correctly at the moment
<LnL> sandboxing only works for pure stuff at the moment
<angerman> LnL: is there a ticket with more details?
<LnL> there's an issue about sandboxing, but not sure if there are any more details
<LnL> the gist is that frameworks have special properties to open up the sandbox paths for specific stuff in /System/Library/Frameworks
<LnL> however because they are just symlinks, stuff will link against /System/Library/Frameworks/Foundation.framework/Foundation directly and as a result nix doesn't know it's a runtime dependency
<LnL> so anything that depends indirectly on a framework though an input won't have the sandbox opened up
periklis has joined #nix-darwin
philr has quit [Ping timeout: 240 seconds]
periklis has quit [Ping timeout: 240 seconds]
periklis has joined #nix-darwin
ben______ has joined #nix-darwin
periklis has quit [Ping timeout: 244 seconds]
periklis has joined #nix-darwin
periklis has quit [Remote host closed the connection]
adetokunbo has joined #nix-darwin
<adetokunbo> hello!
<adetokunbo> I am using the nix-unstable channel, and would like to pin my project to the current state of the channel.
<adetokunbo> How do I figure out exactly what commit of nixpkgs I am using ?
philr has joined #nix-darwin
alexteves has joined #nix-darwin
<angerman> LnL: thanks!
<LnL> adetokunbo: nix-instantiate --eval '<nixpkgs>' -A lib.nixpkgsVersion
<LnL> ugh, who keeps renaming this stuff!
<adetokunbo> LnL: cool that works!
<LnL> the part after the period is the commit
the has joined #nix-darwin
the has quit [Changing host]
the has joined #nix-darwin
the has quit [Remote host closed the connection]
the has joined #nix-darwin
the has quit [Changing host]
the has joined #nix-darwin
ejpcmac has joined #nix-darwin
__Sander__ has quit [Quit: Konversation terminated!]
philr has quit [Ping timeout: 244 seconds]
Sonarpulse has joined #nix-darwin
ben______ is now known as ben
<johnw> anyone know what the story is with this on nixpkgs master:
<johnw> error: attribute 'pkgs' missing, at /Users/johnw/src/nix/nixpkgs/pkgs/development/compilers/llvm/5/llvm.nix:37:43
<johnw> is this something I've done, or is master fully broken on darwin at the moment?
<LnL> euh
<LnL> I hope not
<johnw> i'm trying to find out what pulls it in
* LnL arms the git revert button
<johnw> the stack trace is huge
<johnw> it says it's happening due to my MANPATH setting
<johnw> which looks like this:
<gchristensen> LnL: I wonder how it got past ofborg
<johnw> gchristensen: it could well be my config
<gchristensen> todo: add johnw's config to ofborg
<johnw> hey, that would be awesome
<johnw> github.com/jwiegley/nix-config
<gchristensen> uh oh
<LnL> let me check first... :)
<johnw> I try to update it daily or every couple of days, against unstable
<gchristensen> cool
<gchristensen> ofborg is useless on anything other than nixpkgs :)
<LnL> gchristensen: that makes me think about something tho....
<gchristensen> ooOOoo?
<LnL> it's about matthew's ofborg pr
Sonarpulse has quit [Ping timeout: 260 seconds]
<gchristensen> O!
<LnL> might be a bad idea
<gchristensen> oh?
<gchristensen> then matthew's pr to nixpkgs should be reverted probably
<LnL> no the ofborg changes
<gchristensen> yeah
<gchristensen> but its two sides of the same thing
<gchristensen> yeah
<johnw> LnL: is this happening just because I reference `config.system.path`?
<gchristensen> I think Hydra breaks if you use aliases
<johnw> i'll bisect it
<gchristensen> LnL: so if we shouldn't merge this PR, we should revert the PR setting it to false
<LnL> let me explain
<gchristensen> ok
<gchristensen> :D sorry
<LnL> same goes for strictMeta btw
<LnL> alltho probably less of a problem
<LnL> if we don't use the default for those we essentially don't test the aliases in ci anymore
<LnL> anything in there could break evaluation for users without noticing it
<LnL> meta is less of a problem since we add code, not remove it
<LnL> right?
<johnw> ok, this is odd
<johnw> 006e2981070061bbd18eef266bf8ec8cbded860d is where things broke
<johnw> but that's just a hackage package set update
<johnw> but indeed, it breaks with this commit, but succeeds in its parent
<johnw> perhaps in my darwin system environment, it's now bringing in a new dependency tree
<LnL> oh enableManpages
<LnL> do you have llvm or llvm-manpages in systemPackages?
<johnw> lvm
<johnw> but I tried commenting it out
<johnw> that and clang
<LnL> only llvm?
<johnw> clang and llvm
<johnw> then i commented both out
<LnL> ugh, that outputs hack was the worst idea I ever added to nixpkgs...
<johnw> question is, why is everything fine before 006e2981070061bbd18eef266bf8ec8cbded860d?
<johnw> i'm walking through the whole diff, and it should be harmelss
<LnL> I think you mean 099c13da1bd
<LnL> pretty sure I even know what commit broke it, because I made it :p
the has quit [Excess Flood]
<LnL> yup
the has joined #nix-darwin
the has quit [Changing host]
the has joined #nix-darwin
FRidh has quit [Quit: Konversation terminated!]
Sonarpulse has joined #nix-darwin
<johnw> hmm
<johnw> I did mean 006e298, but I don't know why it would matter
<johnw> oh
<johnw> maybe that commit is past this merge?
<johnw> so, how fixie?
<LnL> oh boy, I'm going to have to think about this a bit more
<LnL> wut
<LnL> > llvm.man # error: python-boot does not support packages, this is only intended for bootstrapping.
<LnL> > llvmPackages.llvm.man # «derivation /nix/store/b3f39367b8qk1d3ph9kvpszd9qd58kpc-llvm-manpages-5.0.2.drv»
<LnL> and llvm.out == llvmPackages.llvm.out
<LnL> I might have to stare at stdenv/darwin for an hour to understand what's going on here
<LnL> Sonarpulse: ^ all the llvmPackages libraries/tools stuff in the stdenv is really confusing
<Sonarpulse> LnL: yeah it is
<Sonarpulse> if you build the man pages, it's simpler
<Sonarpulse> but it brings in python n crap
<Sonarpulse> I didn't want to make the call
<LnL> not about the manpages
<LnL> all the crazy overriding
<LnL> can't we add a function for that?
* LnL overrides the overriden overrides with great success
<ejpcmac> Hi all! I’m a few days into Nix and nix-darwin now, and I find the concept really great :)
<ejpcmac> I have a question though: I see there is a option named `nix.useSandbox`, which seems a good thing to enable since Nix is about reproducible builds. However, when I enable it and then try to `nix-env --upgrade`, I get an error: `derivation '/nix/store/***-user-environment.drv' specifies a sandbox profile, but this is only allowed when 'sandbox' is 'relaxed'`.
<ejpcmac> The question is: why?
<ejpcmac> And a derivative of this question is: how can I fix that? I assume having `nix.useSandbox = true;` is generally a good thing. What does `relaxed` implies? Do I get impurity with it? At what extent?
<johnw> LnL: what's the fix?
<LnL> euh, I think my ball chair just popped because of the heat
<LnL> johnw: I'll make a pr, but you should be able to use llvm.override { man = null; } as a workaround
<johnw> kk
<LnL> overrideAttrs I mean
<johnw> doesn't help
<johnw> i'll have to make an overlay for llvm
<LnL> your systemPackages should be the only thing that references it
<johnw> but clang pulls it in too
<johnw> hmm.. the overlay doesn't do it either
<johnw> self: super: { llvm = super.llvm.overrideAttrs (attrs: { man = null; }); }
<LnL> ah yeah, same for clang
<johnw> nope, no go
<johnw> oh, wrong dir
<johnw> it gets tricky have a mirrored directory structure
<johnw> yeah, that worked :)
<LnL> I'm just going to remove it, people can use llvm-manpages/clang-manpages, and this isn't the first time it caused problems
<johnw> k
<johnw> i wonder why git now wants to use a pager always, even for very brief output...
<LnL> can't even get it working
<johnw> what, git?
<LnL> llvm.man
<johnw> ah
<LnL> I've been having weird issues with vim recently tho
<LnL> looking at a diff where only the first 2 lines are syntax highlighted
<johnw> ugh, gdk-pixbuf, broken again
<johnw> some packages definitely break more than others
<johnw> well, will you look at that
<johnw> there's some whitespace-only changes in that PR, though I approve of them
<LnL> now, what was I actually working on...
<LnL> oh?
<johnw> see the bottom
<LnL> ah, trailing whitespace in all-packages
<johnw> johnw, Nerd Sniper Extraordinaire
<LnL> if you use a sane editor and/or enable editor-config you won't get trailing whitespace
<johnw> i'm not the one that put them in there :)
<johnw> my editor is the king of editors
<johnw> the Tyrannosaurus Rex, by which I mean it hails from the time of dinosaurs with tiny arms
<LnL> :p
<clever> i have my editor to highlight trailing whitespace in red, and then i kill them all on sight :P
<johnw> yeah, me too
<johnw> whitespace-mode
<johnw> how cute, you can actually config your editor in Nix
<LnL> wow, I feel like your vimrc shrinks every time I see it
<clever> i have another form that is not a nixos module, so i can just scp it to any box, nix-build it, and then jam it into PATH
<johnw> my primary config (not even including immediate library code) is 7.8k lines long
<clever> and now i can use it on any machine, without messing with the defaults of the primary user
<johnw> LnL: does gdk-pixbuf build for you?
<clever> johnw: i prefer to know what every line of config does, not just paste a 5k line "example" in and run it blind :P
<johnw> clever: well, I wrote all of these lines, so I do know :)
<johnw> but others copy and paste from me, and I wonder about their sanity
<LnL> I don't go crazy and highlight it in red, but it's visible http://files.daiderd.com/store/9q9w45n4l899q17k5lyn4kb0j38hxxh6-whitespace.png
<clever> hmmm, i seem to have lost that red anyways, its not working anymore, lol
adetokunbo has quit [Quit: This computer has gone to sleep]
<LnL> johnw: yes, /nix/store/h003l81ih9a5lcxcsw2knfxp97q86q94-gdk-pixbuf-2.36.12?
<johnw> oh, interesting
<johnw> huh, I just built it too
<johnw> wonder why the thumbnail test failed a bit earlier
<johnw> trying again in the context of darwin.system
<LnL> pfff determinism
<johnw> btw, have I mentioned that ZFS is like my favorite thing ever?
<Sonarpulse> LnL: looks nice!
<Sonarpulse> so no more output splicing?
<Sonarpulse> if you wanna do that to all the LLVMs, that would be great
<Sonarpulse> git show | sed ... | git apply -3 ftw!
<LnL> yeah, that was a 'clever' trick to avoid rebuilding when we still did both together
<LnL> only 5 and 6 have manpages, no?
<LnL> oh 4 also
<LnL> we should fix this copypasta
<Sonarpulse> LnL: yes compiler copy-pasta is the worst!
<Sonarpulse> makes all my bootstrapping stuff take so much longer
<johnw> the pasta shall be copied!
<LnL> hmm, why does this rebuild stuff tho
Lisanna has quit [Ping timeout: 255 seconds]
<LnL> Sonarpulse: updated
adetokunbo has joined #nix-darwin
Lisanna has joined #nix-darwin
Lisanna has quit [Quit: Lisanna]
Lisanna has joined #nix-darwin
<LnL> ejpcmac: sorry I totally forgot your question, what version of nix is this?
<ejpcmac> LnL: It’s 2.0.4
<LnL> oh really?
<ejpcmac> Yes
<ejpcmac> I have home-manager installed, maybe it does something too
<LnL> :(
<ejpcmac> Oh… Why this?
<LnL> but, for sandboxing in general there's still an issue with the way we (impurely) use system frameworks
<ejpcmac> Thanks! But now using a "relaxed" profile just to try I get: `building '/nix/store/***-user-environment.drv'...
<ejpcmac> libc++abi.dylib: terminating with uncaught exception of type nix::SysError: getting status of /nix/var/nix/profiles/default/etc/ssl/certs/ca-bundle.crt: Operation not permitted`
<LnL> wut
<LnL> why is it looking at thatt
<ejpcmac> I just did (1) set `nix.useSandbox = "relaxed"`, (2) `darwin-rebuild switch` and (3) `nix-env --update`.
<ejpcmac> If I comment out the sandbox config, switch and call again `nix-env --update`, it works as expected
<LnL> yeah, I'm not sure if relaxed still works
<ejpcmac> It seems there is some impurity in there :(
<LnL> but that's not the error I'd expect
<ejpcmac> I don’t get really what "relaxed" does indeed
<LnL> the idea behind relaxed was to decouple the sandbox profiles from nix
<LnL> so any build can request paths to be opened up
<LnL> that helps with build purity but not security
<ejpcmac> Ok, and when it is false, all base system libraries are visible during builds?
<ejpcmac> False is like a standard nix-shell, true a nix-shell --pure and relaxed something between?
<LnL> no
<LnL> false is more like nix-shell --pure
<LnL> while enabling the sandbox provides much more isolation
<ejpcmac> Ok
<ejpcmac> Completely different question, but how do you manage upgrades with nix-darwin? When are system-wide packets updated?
<dhess> Are sandboxed builds working in Darwin again?
<dhess> oh I see from earlier that it doesn't really.
<LnL> the problem is that --pure only clears the environment, if a certain project decides to look in /usr/local anyway because that's where software is installed right? it might find eg. homebrew variants of libraries you might have accidentally have available and try to use those
<LnL> with sandboxing builds are _never_ allowed to look in /usr/local so if they try it either fails or looks like there's nothing there
<ejpcmac> I see. And the sandboxing avoids this by doing a chroot? And is it effective when you are in a nix-shell too?
<LnL> nix-shell isn't influenced by sandboxing
<LnL> it's intended for development or debugging in which case you might want to access some extra tools etc.
<LnL> as for nix-darwin, switch applies your current configuration, there's no conceptual difference between update, upgrade or rollback
<ejpcmac> So let’s say I have a set of packages that got installed at a given version at a point of time. Now, I did not make any changes on my configuration but some package has a new version available upstream. If I switch, it gets updated. Right?
<LnL> the versions of packages are determined by nixpkgs, if you manage that with nix-channel (probably the case) then use that to update/rollback
<ejpcmac> So I have to do a `nix-channel --update`, then `darwin-rebuild switch` to re-apply the configuration with the updated channel?
<Sonarpulse> LnL: pong
<LnL> exactly
<Enzime> LnL: trying to get mpv building on macOS again
<Enzime> might be that OpenAL is old?
<ejpcmac> That’s more clear now :) Thank you!
<Enzime> not sure what to make of that compiler error
<LnL> unless nixpkgs is managed by root, then you also have to nix-channel --update as root
<ejpcmac> I was about to ask this one, you answered it!
<LnL> Sonarpulse: pong for what? :)
<Sonarpulse> LnL: sorry just saying I am looking at your PR
<LnL> Enzime: yeah, not sure what the issue is
<LnL> is that with your changes or also before now?
<Enzime> LnL: "your changes" referring to what changes?
<LnL> your pr
<Enzime> this is just a clean 0.29 build on macOS
<Enzime> I just made it stop trying to use Swift
<Enzime> which is why it gets further into compilation before failing
<LnL> and what caused it, an update?
<Enzime> I looked up the changes to mpv between 0.28.2 and 0.29
<Enzime> and it looks like they now use some OpenAL extension
<Enzime> and I don't know what actually provides it
<Enzime> looks like on macOS they import <OpenAL/MacOSX_OALExtensions.h>
<LnL> that's in darwin.apple_sdk.frameworks.OpenAL
<LnL> and gets resolved correctly
<Enzime> if you check the get_delay function in the file I linked before
<Enzime> it checks for a certain extension
<Enzime> I'm not sure if the issue is that extension isn't provided
<Enzime> because it fails on the lines inside saying the identifies are undeclared
<LnL> maybe try CoreAudio and/or AudioToolbox instead, those umbrella frameworks with OpenAL and some other stuff
<Enzime> LnL: CoreAudio was already include
<Enzime> -d
<Enzime> I added AudioToolbox which seems to fix that issue but then break other stuff :\
<LnL> sounds like progress
<Enzime> LnL: I removed the AudioToolbox
<Enzime> and the other stuff is still broken...???
<Enzime> I'm so confused
philr has joined #nix-darwin
<Enzime> I wonder if the order of compilation for mpv is actually deterministic
<Enzime> macosx_menubar.m is failing to compile
<Enzime> (I guess irrespective of the OpenAL issues previously)
<LnL> ^ nope, disabling that during testing might help to get consistent errors
the has quit [Ping timeout: 244 seconds]