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
<jtojnar> thanks
rajivr___ has joined #nixos-dev
orivej has quit [Ping timeout: 240 seconds]
orivej has joined #nixos-dev
orivej has quit [Ping timeout: 276 seconds]
aristid_ has quit [Ping timeout: 276 seconds]
aristid_ has joined #nixos-dev
cptchaos83 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
cptchaos83 has joined #nixos-dev
drakonis has quit [Read error: Connection reset by peer]
MichaelRaskin has left #nixos-dev [#nixos-dev]
orivej has joined #nixos-dev
globin has quit [Remote host closed the connection]
globin has joined #nixos-dev
ris has quit [Ping timeout: 268 seconds]
Jackneill has joined #nixos-dev
page has quit [Quit: leaving]
page has joined #nixos-dev
FRidh has joined #nixos-dev
__Sander__ has joined #nixos-dev
pie__ has joined #nixos-dev
pie_ has quit [Ping timeout: 246 seconds]
globin has quit [Ping timeout: 250 seconds]
domenkozar[m] has joined #nixos-dev
domenkozar[m] has quit [Changing host]
Jackneill has quit [Ping timeout: 250 seconds]
Jackneill has joined #nixos-dev
Jackneill has quit [Read error: Connection reset by peer]
Jackneill has joined #nixos-dev
Synthetica has joined #nixos-dev
cjpbirkbeck has quit [Quit: Quitting now.]
orivej has quit [Ping timeout: 240 seconds]
psyanticy has joined #nixos-dev
globin has joined #nixos-dev
<__Sander__> sigh
<__Sander__> trying to process the latest XML specs from the upstream Android repository
<__Sander__> it's a nightmare. there all kinds of overlapping properties
<__Sander__> you can't really directly translate it into attribute sets anymore
<__Sander__> I need some program that processes the data imperatively
<jonge[m]> hi there. i have a hydra channel here on some jobset that lists a set of packages as available on the channel page. the channel should have many more packages, but somehow the channel doesn't list them. in `$hydra/src/lib/Hydra/Base/Controller/NixChannel.pn` you can see how it filters those packages, but i don't understand what the perl code does. what is the criterion for a package to be selected for the channel package
<jonge[m]> list?
orivej has joined #nixos-dev
<qyliss> Profpatsch: could we have a function to generate a C program that execs into an interpreter?
<qyliss> It would do nothing else, so shouldn't get in the way of debugging
<qyliss> But would work around this macOS problem
<Profpatsch> qyliss: haha, yes, I mulled about that in #s6
<Profpatsch> Sorry for confusion
<Profpatsch> (let’s continue this there and talk about makeWrapper here if need be)
<FRidh> qyliss: Profpatsch: I think we could have just a single executable for that, that reads its configuration from a (json) file.
<qyliss> What configuration would it even have apart from the name of the script to execute?
<qyliss> A program that reads a config file becomes much more complicated immediately than one that just consists of a single execv().
<FRidh> env variables like PATH, PYTHONPATH, executable to exec and args
<qyliss> I don't want to reimplement makeWrapper in C
<Profpatsch> FRidh: wtf, no need to conjure up evil spirits
<qyliss> (Profpatcsh mentioned debugging concerns in another channel)
<Profpatsch> A problem I see is that `wrapProgram` is a bash thing, so we’d have to specialize and compile the C wrapper in the build environment, iff we want to keep the current bash-based interface.
<Profpatsch> But I’m not really ready to generalize that idea to the existing infrastructure :)
<adisbladis> Makewrapper could also be it's own (very limited) interpreter
<FRidh> Profpatsch: https://discourse.nixos.org/t/wrappers-and-hooks-do-not-invoke-wrapprogram-directly in this case the executable needs to compose a string out of the JSON and then exec
<FRidh> of course, this gets bigger then just a workaround for darwin
<Profpatsch> I personally think we should move from the shell level to the nix level, but that’s a different concern
<FRidh> yes
<Profpatsch> the stdenv bash swamp is big enough as it is really
<adisbladis> What's the background for this discussion?
<Profpatsch> adisbladis: macOS can’t nest shebangs.
<Profpatsch> e.g. a shebang interpreter cannot be a shebang itself
<Profpatsch> Minix and Linux are apparently the only kernels that support nesting shebangs.
<adisbladis> Profpatsch: Thanks
<Profpatsch> Everywhere else, you need a layer of “normal” executables in between, e.g. an ELF binary
<Profpatsch> The reason this normally doesn’t come up is that on most other systems, scripts start with /usr/bin/env, but stdenv patches those to the storepath.
<Profpatsch> were /usr/bin/env is a hack in the first place.
<Profpatsch> To work around differences in binary location
<qyliss> If we move things to the nix level, does that mean every wrapped derivation would be a symlinkFarm except for executable files?
<qyliss> That sounds… heavy
<qyliss> OTOH, a stand-alone makeWrapper program could be nice
<Profpatsch> In this case it would mean being specific about which binaries exist and creating a specialized makeWrapper program for each binary
<qyliss> Well, not quite
<qyliss> You’d have makeWrapper, the program, and then executables generated by makeWrapper
<Profpatsch> scratch binary, I mean only for things that are already scripts.
<qyliss> makeWrapper could even be implemented with patchelf if we really wanted
<Profpatsch> But even finding that out on the nix level is impossible, so either you want magic (which means bash stuff), or you are explicit and fail fast.
<Profpatsch> stdenv is structured for magic, I tend towards the latter
<Profpatsch> Maybe that’s also why I prefer static over dynamic languages *thinkingface*
<qyliss> being specific in this case means listing every program? I don’t think that’s a good trade-off.
<Profpatsch> Why isn’t it?
<qyliss> Because nowhere else do we have to have a list of programs in a package
<adisbladis> I've wanted a stand-alone makeWrapper for a long time anyway
<Profpatsch> Maybe we *should* have a list of executables in a package.
<qyliss> And I don’t think there’s anything to be gained by requiring such a list, and also requiring another layer of symlinkFarms
<Profpatsch> That’s important metadata.
<FRidh> this is something that we can introduce incrementally, and force for certain core packages
<qyliss> What would happen if they didn’t match with what was actually generated?
<Profpatsch> No symlink farms, just specialized makeWrappers at build time.
<qyliss> so you still have to makeWrapper from bash anyway??
<infinisil> Yeah I think a list of executables isn't something we should try to have at eval time
<infinisil> Tools like nix-index are for that
<qyliss> My proposal, I think, is a makeWrapper replacement that is standalone, generates binaries, and can additionally dump a binary and explain what it does for debugging.
<qyliss> Being able to dump means you could call it multiple times as well
<adisbladis> qyliss: I like the discoverability of the current bash-solution though
<adisbladis> (a wrapper is just human readable text)
<qyliss> adisbladis: me too, but we just can’t have it. At least on macOS.
<qyliss> And any other non-Linux
<Profpatsch> Which doesn’t mean we can’t not have it on Linux.
<qyliss> That’s true
<qyliss> Although it’s more code
<qyliss> Which is already tricky to do right
<qyliss> The text is already not particularly easy to read anyway
orivej has quit [Ping timeout: 265 seconds]
<adisbladis> With that said, I'll happily sacrifice that readability to get rid of bash from my closures
<FRidh> suppose we could use dash for makeWrapper if that size is an issue
<adisbladis> FRidh: Still wouldn't solve the shebang issue
orivej has joined #nixos-dev
ixxie has joined #nixos-dev
<infinisil> niksnut: zimbatm: (MichaelRaskin who isn't here): Ping for the call on rfcs#45
<{^_^}> https://github.com/NixOS/rfcs/pull/45 (by 7c6f434c, 24 weeks ago, open): [RFC 0045] Deprecating unquoted URL syntax
<zimbatm> infinisil: it's in 15min right?
<infinisil> Yea
<infinisil> > UTC
<{^_^}> "The time in UTC is currently 14:45:49 (UTC 0)"
<zimbatm> it should be quick
<infinisil> Probably
MichaelRaskin has joined #nixos-dev
<Profpatsch> adisbladis: If you are happy with execline, we could whip something up.
<Profpatsch> I’m not the person to ask for a C rewrite though :)
<Profpatsch> infinisil: I don’t know enough about the module system to review https://github.com/NixOS/nixpkgs/pull/70138
<{^_^}> #70138 (by Infinisil, 1 week ago, open): lib/types: Introduce lazyAttrsOf
<Profpatsch> But it looks small enough, maybe I can give it a tentative review
<infinisil> Profpatsch: You mean how lazyAttrsOf works and why it's lazy?
<Profpatsch> infinisil: I haven’t taken a closer look, maybe it’s obvious.
<infinisil> Profpatsch: Quick explanation: lazyAttrsOf doesn't filter based on whether the attribute is defined, it just includes all of them. So where attrsOf uses `optionalValue` returning { value = mergedValue; } if it's defined and {} if it's not, lazyAttrsOf uses mergedValue directly (which consequently produces an error when accessed)
<Profpatsch> infinisil: Hm, doesn’t that mean we lose the type-safety?
<infinisil> s/when accessed/when accessed if there's no definitions
<infinisil> Profpatsch: The only thing we lose is described in the manual, namely that if you do `foo.attr = mkIf false "..."`, then evaluate `config.foo ? attr` it returns true, even though it should be false
<Profpatsch> Well, I guess that’s something that shouldn’t be done in that context anyway.
FRidh2 has joined #nixos-dev
<infinisil> The idea is of course that there's something more complex than false in the mkIf
<infinisil> (but false is a simple illustration of the problem)
<infinisil> So this is why I'm pointing out that lazyAttrsOf should only be used if conditional definitions aren't needed like that
<infinisil> s/needed/used
<infinisil> (and consequently why it can be used without worry for _module.args)
drakonis_ has quit [Ping timeout: 276 seconds]
__Sander__ has quit [Quit: Konversation terminated!]
<infinisil> Profpatsch: I'm not eager to have this merged quickly, as it's very much not an essential type to have, but it seems to have some use cases
<FRidh2> globin: is it happening at 18:00 CEST?
<globin> yes
<globin> I sent a link to "FRidh" in query
<FRidh2> oh could you sent it to FRidh2 instead
<globin> sure!
<globin> worldofpeace: ping?
<gchristensen> FRidh / FRidh2 we've moved to a different video call provider, see PMs I think
<gchristensen> worldofpeace: (ping)
<worldofpeace> gchristensen: wah, I don't think I can attend which sucks. I have a flight and I was unsure of the time today
<gchristensen> ack! okay, I'm sorry we didn't schedule it in such a way that you can attend
<gchristensen> worldofpeace: would you like to PM me some information on your disposition?
<worldofpeace> gchristensen: sure
drakonis_ has joined #nixos-dev
MichaelRaskin has quit [Quit: leaving]
justanotheruser has quit [Ping timeout: 265 seconds]
Synthetica has quit [Quit: Connection closed for inactivity]
justanotheruser has joined #nixos-dev
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 245 seconds]
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 245 seconds]
<gchristensen> I love these RFC meetings!
FRidh2 has quit [Quit: Konversation terminated!]
ajs124 has quit [Quit: Gateway shutdown]
ajs124 has joined #nixos-dev
orivej has quit [Ping timeout: 245 seconds]
<gchristensen> FRidh, aanderse, globin: I updated that document to include worldofpeace's feedback
<worldofpeace> All in all gchristensen FRidh2 aaron globin I think we're in good hands and this is what I expect from our bright minds ✨ I'd say this RFC is mission critical too me, so I'm defienetly all for it in any shape or form we mold it too.
<gchristensen> Mic92: would nix-review be unhappy if the name of some of the ofborg statuses changed?
<gchristensen> Mic92: also, what would you think about transfering nix-review to nix-community?
orivej has joined #nixos-dev
xwvvvvwx has quit [Ping timeout: 240 seconds]
xwvvvvwx has joined #nixos-dev
xwvvvvwx has quit [Client Quit]
xwvvvvwx- has joined #nixos-dev
xwvvvvwx- has quit [Read error: Connection reset by peer]
xwvvvvwx has joined #nixos-dev
xwvvvvwx has quit [Read error: Connection reset by peer]
xwvvvvwx has joined #nixos-dev
ris has joined #nixos-dev
xwvvvvwx has quit [Client Quit]
xwvvvvwx has joined #nixos-dev
drakonis_ has quit [Ping timeout: 245 seconds]
xwvvvvwx has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-dev
xwvvvvwx has joined #nixos-dev
xwvvvvwx has quit [Read error: Connection reset by peer]
xwvvvvwx has joined #nixos-dev
xwvvvvwx has quit [Read error: Connection reset by peer]
xwvvvvwx has joined #nixos-dev
xwvvvvwx has quit [Read error: Connection reset by peer]
xwvvvvwx has joined #nixos-dev
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 250 seconds]
mjsir911 has quit [Quit: Goodbye, World!]
eraserhd has quit [Quit: WeeChat 2.6]
eraserhd has joined #nixos-dev
psyanticy has quit [Quit: Connection closed for inactivity]
mjsir911 has joined #nixos-dev
drakonis has quit [Ping timeout: 245 seconds]
drakonis has joined #nixos-dev
ixxie has quit [Remote host closed the connection]
Moredread[m] has joined #nixos-dev
drakonis has quit [Read error: Connection reset by peer]
drakonis_ has joined #nixos-dev
drakonis has joined #nixos-dev
justanotheruser has quit [Ping timeout: 250 seconds]
drakonis_ has quit [Ping timeout: 276 seconds]
justanotheruser has joined #nixos-dev
drakonis1 has joined #nixos-dev
<Mic92> gchristensen: moving it over to nix-community should be fine.
<Mic92> gchristensen: what do you plan to change?
<gchristensen> Mic92: s/grahamcofborg/ofborg/
<Mic92> gchristensen: I could just add both.
<gchristensen> look for both and use the one present?
<gchristensen> oh you don't actually look for the grahamcoforg bit anyway
<gchristensen> ah
<gchristensen> Mic92: I'm only planning on changing http://gsc.io/snaps/87df52be-f3a9-4e26-9cd0-127a7e9d7e64.png for now
drakonis_ has joined #nixos-dev
drakonis has quit [Ping timeout: 250 seconds]
drakonis has joined #nixos-dev
drakonis_ has quit [Ping timeout: 245 seconds]
<globin> gchristensen: i think we had nixborg reserved to?
Synthetica has joined #nixos-dev
<worldofpeace> jtojnar: think #71022 is ready?
<{^_^}> https://github.com/NixOS/nixpkgs/pull/71022 (by hedning, 2 days ago, open): Gnome 3.34.1 staging
drakonis has quit [Read error: Connection reset by peer]
drakonis has joined #nixos-dev
noonien has quit [Quit: Connection closed for inactivity]