samueldr changed the topic of #nixos-dev to: #nixos-dev NixOS Development (#nixos for questions) | NixOS 19.09 is released! https://discourse.nixos.org/t/nixos-19-09-release/4306 | https://hydra.nixos.org/jobset/nixos/trunk-combined https://channels.nix.gsc.io/graph.html | https://r13y.com | 19.09 RMs: disasm, sphalerite | https://logs.nix.samueldr.com/nixos-dev
drakonis1 has quit [Ping timeout: 240 seconds]
drakonis1 has joined #nixos-dev
drakonis has quit [Quit: WeeChat 2.6]
alex_giusi_tiri has joined #nixos-dev
ris has quit [Ping timeout: 240 seconds]
mmlb has joined #nixos-dev
justanotheruser has joined #nixos-dev
pie__ has quit [Ping timeout: 240 seconds]
alex_giusi_tiri has quit [Quit: Leaving.]
v0|d has quit [Ping timeout: 250 seconds]
octe has quit [Ping timeout: 240 seconds]
octe has joined #nixos-dev
pie_ has joined #nixos-dev
ivan has quit [Quit: lp0 on fire]
ivan has joined #nixos-dev
eraserhd has quit [Ping timeout: 240 seconds]
eraserhd has joined #nixos-dev
drakonis has joined #nixos-dev
drakonis1 has quit [Ping timeout: 240 seconds]
drakonis_ has joined #nixos-dev
morgib has quit [Quit: Connection closed for inactivity]
drakonis has quit [Ping timeout: 276 seconds]
orivej has quit [Ping timeout: 245 seconds]
ixxie has joined #nixos-dev
psyanticy has joined #nixos-dev
<domenkozar[m]> niksnut: is it considered a bug that derivation can have no name?
<gchristensen> :o
<domenkozar[m]> nix-repl> builtins.toFile "" "a"
<domenkozar[m]> "/nix/store/ya02cq4lak96pzikphlqf2z7w0hz8kjy-"
<clever> uhhhh....
<gchristensen> nice
<gchristensen> yes :P
<domenkozar[m]> I already have a cookie :P
<tilpner> That's not a derivation, but it probably should have a name too
<clever> i think that uses the same hash style as `src = ./foo`
<domenkozar[m]> tilpner: it uses a derivation underneath (or at least it should)
<domenkozar[m]> nix-repl> :t builtins.toFile "a" "a"
<domenkozar[m]> a string with context
<domenkozar[m]> that's a string with a derivation
<clever> domenkozar[m]: nope, thats the same as "${./foo}"
<clever> its just a string, that depends on a fixed-output path, with no derivation that can build it
<domenkozar[m]> I guess Nix defines that term as
<domenkozar[m]> store object
<domenkozar[m]> Store objects can be sources (objects copied from outside of the store)
<clever> yeah, and toFile is generating a store object, rather then copying it
<domenkozar[m]> alright, it's a source that ends up being a store object
<domenkozar[m]> now I wonder what happens if you do
<domenkozar[m]> > /tmp
<{^_^}> /tmp
<clever> > "${/tmp}"
<{^_^}> access to path '/tmp' is forbidden in restricted mode
<clever> but the bot will block it
<domenkozar[m]> "${/bin}"
<domenkozar[m]> ah that takes the subpath
<{^_^}> nix#3239 (by domenkozar, 28 seconds ago, open): toFile allows ommitting name
drakonis_ has quit [Read error: Connection reset by peer]
<clever> domenkozar[m]++
<{^_^}> domenkozar[m]'s karma got increased to 6
<gchristensen> nice, thanks domenkozar[m]++
<{^_^}> domenkozar[m]'s karma got increased to 7
drakonis_ has joined #nixos-dev
<clever> gchristensen: i did a nixos-rebuild switch today, and slim just crashed hard, forcing all gui apps to restart
<gchristensen> nice
<clever> NOT restarting the following changed units: display-manager.service, getty@tty1.service, systemd-fsck@dev-disk-by\x2duuid-5f5946ad\x2d5d9c\x2d42d9\x2d97ef\x2dadfae2e6cc20.service, systemd-journal-flush.service, systemd-logind.service, systemd-random-seed.service, systemd-remount-fs.service, systemd-tmpfiles-setup.service, systemd-udev-settle.service, systemd-update-utmp.service, systemd-user-sessions.service, toxvpn.service, user-runtime-dir@1000.servi
<clever> yet it said it wasnt going to do that
<clever> it also broke the gpg ssh agent in the process
<clever> the new session was using ssh-agent again
<gchristensen> :o
drakonis has joined #nixos-dev
drakonis1 has joined #nixos-dev
drakonis_ has quit [Ping timeout: 246 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Read error: Connection reset by peer]
<Profpatsch> domenkozar[m]: Well, an empty string is still a string. You’re not technically omitting the name :trollface:
drakonis_ has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-dev
puck has joined #nixos-dev
<Profpatsch> domenkozar[m]: But yeah, nix-build -E 'with import <nixpkgs> {}; runCommand "abc" {} \'\'echo ${builtins.toFile "" "a"} > $out\'\''
<Profpatsch> cat result
drakonis1 has quit [Ping timeout: 250 seconds]
<Profpatsch> /nix/store/ya02cq4lak96pzikphlqf2z7w0hz8kjy-
<Profpatsch> whereas an empty name in a derivation throws an error
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 245 seconds]
<niksnut> domenkozar[m]: that looks like a bug
<gchristensen> niksnut: I'm surprised computeStorePathForText and addTextToStore don't validate the name, in adition to toFile: https://github.com/NixOS/nix/blob/d12d69ea1a871d631d77c8ef5e8468b4a2bff80f/src/libexpr/primops.cc#L1029-L1030
drakonis1 has joined #nixos-dev
<niksnut> well maybe it's not a bug
<niksnut> I mean it's not like there's a spec
<gchristensen> hah
<gchristensen> smells like a bug to me :)
<gchristensen> in that these store paths have rules different from all other store paths
<domenkozar[m]> I'd say inconsistencies are bugs
<domenkozar[m]> (if they can be fixed)
<gchristensen> +1
andi- has quit [Ping timeout: 276 seconds]
<clever> ../../include/QtGui/5.9.7/QtGui/private/../../../../../src/gui/painting/qfixed_p.h:197:72: internal compiler error: Segmentation fault
<clever> what??? lol
LnL has quit [Ping timeout: 240 seconds]
LnL has joined #nixos-dev
LnL has quit [Changing host]
LnL has joined #nixos-dev
<globin> clever: oom maybe?
<clever> globin: that box has 64gig of swap, it shouldnt be able to oom
<clever> its been building for 3mins longer then before, i think it will pass
justanotheruser has quit [Ping timeout: 265 seconds]
<clever> but why hasnt nixos hydra built it yet...
drakonis_ has joined #nixos-dev
drakonis2 has joined #nixos-dev
drakonis has quit [Ping timeout: 265 seconds]
drakonis_ has quit [Ping timeout: 276 seconds]
drakonis2 has quit [Quit: WeeChat 2.4]
andi- has joined #nixos-dev
FRidh has joined #nixos-dev
<{^_^}> firing: ChannelUpdateStuck: https://status.nixos.org/prometheus/alerts
<gchristensen> neat
orivej has joined #nixos-dev
<gchristensen> AWS network problems
<{^_^}> firing: ChannelUpdateStuck: https://status.nixos.org/prometheus/alerts
<gchristensen> that is ... interesting ...
<gchristensen> tilpner: do you know why it did it twice?
<{^_^}> firing: ChannelUpdateStuck: https://status.nixos.org/prometheus/alerts
<gchristensen> oh gosh
<{^_^}> resolved: ChannelUpdateStuck: https://status.nixos.org/prometheus/alerts
<domenkozar[m]> is there a recording of nixcon from second day?
<domenkozar[m]> I'm missing lightning talks
<clever> globin: still fails to build, but with a proper error in the code this time
<gchristensen> IMO marking nix2 as experimental now is wrong, and we can't put it back in the bottle
<gchristensen> niksnut: I propose merging ?
<{^_^}> nix#3238 (by puckipedia, 3 hours ago, open): Ensure enough space in attrset bindings
<tilpner> gchristensen: Are you restarting/deploying anything?
<gchristensen> I'm not
<tilpner> Could it apply to different update-nix-*.service?
<tilpner> That's a suspicious interval
<gchristensen> hmmm perhaps
FRidh has quit [Quit: Konversation terminated!]
drakonis1 has quit [Quit: WeeChat 2.6]
<Profpatsch> gchristensen: It doesn’t feel to me like the nix 2 commands are stable, they have so many rough edges that it would probably hinder us a *lot* in the future if we declare them as stable now.
<Profpatsch> Stuff like “you need to wrap in () if you want to enter an expression” is just not good UX
<gchristensen> yeah we don't have to mark them as stable
<gchristensen> we shouldn't make them disappear, though
<gchristensen> that genie is out of the bottle for better or worse
<Profpatsch> Or “don’t forget the last argument (an empty string) if you want it to work”
<Profpatsch> Ah, yeah, removing them is also a bad idea.
drakonis has joined #nixos-dev
justanotheruser has joined #nixos-dev
drakonis has quit [Remote host closed the connection]
drakonis has joined #nixos-dev
justanotheruser has quit [Quit: WeeChat 2.6]
drakonis has quit [Remote host closed the connection]
orivej has quit [Ping timeout: 246 seconds]
ris has joined #nixos-dev
johnny101 has quit [Quit: Konversation terminated!]
<niksnut> gchristensen: we're not making anything disappear, we just mark 'nix' as experimental
orivej has joined #nixos-dev
<thoughtpolice> IMO it codifies something that was basically true anyway, since `nix` isn't a suitable replacement for several things yet. I like using it but was under the impression it would change to fit more use cases, so I "expected" things to maybe change, possibly in an incompatible manner.
<thoughtpolice> But it's kind of pointless, because on the other hand, what does marking it experimental mean to me anyway? I'm just going to enable it and keep using it as if nothing changed. All I've really done is just add one more like to configuration.nix. Cat's out of the bag, I'm afraid.
psyanticy has quit [Quit: Connection closed for inactivity]
<thoughtpolice> I imagine the end-game effects will have been the same if it was feature-gated or not: you just bite the bullet and break some stuff and write it up in the release notes. I suppose it's a matter of setting expectations but that's a tricky thing.
<thoughtpolice> For instance, does "experimental" mean it isn't supported, so bug reports have some other weighting to them? I'd hope if it's experimental *more* feedback would be welcome to get it right! Or does it just mean I can expect things to not work right? Or not to write scripts around it?
<tilpner> nix.enableUnstableFeaturesThatMayChangeAtAnyTime = true;
<tilpner> c.c
<thoughtpolice> nix.invalidateSLAs = true;
<samueldr> nix.hereBeDragons # Dragons availability may be limited
<LnL> :p
<samueldr> though some sub-commands may need to be available in a trivial way even without opting-in, namely `repl`
<samueldr> I think it's pretty much the only command from nix 2.0 that I'm using
<thoughtpolice> `why-depends` so good
<LnL> copy is the other one that apparently is depended on already
<LnL> and I guess the main problem is that this one uses the new installable arguments
<thoughtpolice> I also dislike some of copy's UX because I'm not sure doing things like baking upload parameters into a query string attached to the URL is super great.
<thoughtpolice> I think it would be much nicer for several reasons to have an `--option` flag or something like it, that only takes effect when certain sources/sinks are attached. (For instance, it would enable autocompletion for those options on NixOS)
<thoughtpolice> But I haven't fully thought it out yet. All I know is I had to dig in the code to figure out how to replicate the proper flags to mimic S3 uploads (e.g. "yes I want manifests, and compress them") because they aren't part of the real argument handling flow.
<thoughtpolice> s/mimic S3 uploads/mimic upstream S3 uploads/
<niksnut> thoughtpolice: "experimental" here means "can change in the future"
<thoughtpolice> Yes, but all software can, and does, continue to change in the future! :P
<thoughtpolice> The good news is: maybe we can figure out what that means. The bad news is that this condition appears to be terminal, and there's nothing we can do about it.
<niksnut> well no, the old commands are not supposed to change in incompatible ways
<thoughtpolice> That's what I mean! You have to set an expectation for what you can do. But on the other hand I *did* have that command available for a while and now it's behind a flag. Is that not breaking an expectation?
<thoughtpolice> Like I said, I think it does codify something important, but I also think for instance it's pointless for me because I'll just enable it. That's really *user* feedback, not developer feedback! As a developer I absolutely get it. So it's kind of a moot thing.
<thoughtpolice> In the long run I do not expect it to matter much, but I do think the cat's out of the bag. It's a minor nit more than anything. `experimental` will probably be useful in the future, too, so that's nice.
<thoughtpolice> And actually I like samueldr's suggestion of some commands being gated and others available by default. `why-depends`, `verify`, etc are all rather nice and fairly well self-contained. That's at least the right way to go in the long run.
<niksnut> well, 'nix --help' always said it's experimental and subject to change
<niksnut> so now that we have an experimental-features option it makes sense to use it for this as well
justanotheruser has joined #nixos-dev
orivej has quit [Ping timeout: 240 seconds]
lopsided98 has quit [Remote host closed the connection]
lopsided98 has joined #nixos-dev
ixxie has quit [Ping timeout: 245 seconds]
obadz has joined #nixos-dev
drakonis_ has joined #nixos-dev
<ris> oh dear have we killed ofborg?
<samueldr> have we?
drakonis_ has quit [Ping timeout: 246 seconds]
<ris> nah think he's just a little behind
tilpner has quit [Ping timeout: 252 seconds]
tilpner has joined #nixos-dev
<gchristensen> oh dear I wonder what happened