<garbas>
niksnut: do you maybe know if svanderburg is still on irc? i'd like to bring his attentions to https://github.com/NixOS/nixos-homepage/pull/350 but i'm not sure he is looking at the github notifications or emails from github
<{^_^}>
nixos-homepage#350 (by garbas, 1 minute ago, open): Remove disnix and redirect to github page
ckauhaus has joined #nixos-dev
<niksnut>
garbas: his nick is __Sander__ but I haven't seen him on IRC since february
<niksnut>
he should get github pings though
<garbas>
just grepped my irc history and found __Sander__ as well :)
<Mic92>
I created a new tool for updating nix packages: https://github.com/Mic92/nix-update/ It is like the interactive version of nixpkgs-update.
<infinisil>
Nice! Mic92++
<{^_^}>
Mic92's karma got increased to 14
teto has joined #nixos-dev
abathur has joined #nixos-dev
abathur has quit [Ping timeout: 246 seconds]
tilpner has quit [Quit: tilpner]
tilpner has joined #nixos-dev
<hexa->
Mic92++
<{^_^}>
Mic92's karma got increased to 15
johnny101 has joined #nixos-dev
<infinisil>
roberth: I'm not entirely sure what you mean in https://github.com/NixOS/nixpkgs/pull/80582#issuecomment-599453350, but I think I know what would work well: The unstructuredOption represents the whole module evaluation, meaning if you want to have one level of unstructured options you need `attrsOf str` or so
<infinisil>
Then specifying `foo.bar = "foo"` would throw an error that foo isn't of type str. For recursively nested types this would be a recursive type.
<infinisil>
Um, for nested *options* this would be a recursive unstructured type
<infinisil>
And only the unstructured bits would use that option, so even if `unstructuredOption = attrsOf str`, the submodule could still define `foo.bar = mkOption { type = int; }`
v0|d has joined #nixos-dev
tilpner has quit [Remote host closed the connection]
tilpner has joined #nixos-dev
drakonis has joined #nixos-dev
<gchristensen>
man, the i915 problems on 5.4.25 are rough
<tilpner>
Can you switch to 5.5?
<gchristensen>
does 5.5 fix it? :)
<tilpner>
It did for me
<tilpner>
No hangs since, and no problems with zfs either
<gchristensen>
neat
<etu>
This sounds like the issues I started having when 5.3 got removed from nixpkgs and I moved up to 5.4... So now I'm running 4.19 on this laptop...
<gchristensen>
a few minutes in, tilpner, 5.5 seems good :)
<etu>
And I seem to have a i915 card as well
<tilpner>
etu: Try 5.5
<domenkozar[m]>
do we have someone that knows basic Rust (and Nix obviously) looking for a job? helping someone out :)
<etu>
We'll see if both of my out of tree modules exists for 5.5 yet :D
<gchristensen>
domenkozar[m]: PM'ing
<etu>
tilpner: virtualbox ain't there yet :/
<tilpner>
libvirtd is c.c
<adisbladis>
Virtualbox </3
<tilpner>
... is that a broken heart?
<adisbladis>
tilpner: Yeah
<etu>
tilpner: yeah, I kinda depend on chef/vagrant/virtualbox for work though :/
<srk>
domenkozar[m]: yes
<domenkozar[m]>
PMing
<adisbladis>
domenkozar[m]: While you are here :) Do you plan to merge https://github.com/NixOS/nixos-weekly/pull/112 soon-ish ? I'm considering something I may wanna get in but want to know if I have some time to consider first.
<Ericson2314>
niksnut: you around? so the big schema change I think we need to make is adding a drv->drv table, so when we finally do build a CA drv, we don't need to go and update *all* the DerivationOutputs from any derivation that would resolve to it
<niksnut>
shouldn't that be a outpath->outpath table?
<Ericson2314>
niksnut: I think that would just be the same thing but biffer?
<niksnut>
i.e. mapping the "virtual" drv outputs to the actual CA outputs
<Ericson2314>
I was just going to put the resolved CA derivations in the DerivationOutput table
<Ericson2314>
niksnut: also relates to how much we want to "purge" legacy store paths from ca derivations
<Ericson2314>
I had tried making the derivation output path std::optional, which breaks a lot of things, but does feel right :)
<roberth>
infinisil: yes, that is what I had in mind
<infinisil>
roberth: I see. Am just implementing that, and it seems to work pretty well :D. I had to change `unstructuredOption -> unstructuredType` though, so you can't pass in an option anymore, but only a type
<roberth>
infinisil: that sounds ok. Most mkOption parameters don't seem to apply anyway
<roberth>
infinisil: would be nice to have docs though. I was thinking the @ symbol may be a good fit for representing this "wildcard" behavior in the generated options docs
<infinisil>
roberth: Example?
<roberth>
maybe it's unnecessary, because the option that has the submodule can document the wildcard behavior
<infinisil>
Yeah, that's already happening
<roberth>
so services.foo.settings.@ is not necessary if you have service.foo.settings
<infinisil>
The only change that's needed is that the submoduleWith type needs to have the unstructured bit in its description
<roberth>
not as visible though
<infinisil>
(instead of the current "submodule")
<roberth>
ah you mean the description of the submodule type?
<infinisil>
roberth: The description of the type
<roberth>
"submodule also allowing ${unstructuredType}"
<infinisil>
Yeah, or even just unstructuredType.description directly, since the submodules options will also be documented below that
<roberth>
"union of submodule and ${unstructuredType}"
<roberth>
the sub options may not be as visible when it's a submodule with large examples etc; it goes off screen
<infinisil>
Hm yeah
<aanderse>
infinisil: "i would use dynamic user but that would break some users workflow i think" or "i need to revert the change to dynamic user because it breaks my workflow" is becoming a pattern
<infinisil>
As previously said, I don't think that's a problem. If DynamicUser ends up being too restrictive, then so be it :)
<infinisil>
There's many services where it should work
cole-h has joined #nixos-dev
<aanderse>
infinisil: sorry, i don't mean to say i think it is a problem... i mean to say i think it is a lost opportunity
<aanderse>
:)
<infinisil>
I mean DynamicUser isn't the right thing to use when its files need to interact with things outside the service
ckauhaus has quit [Quit: WeeChat 2.7.1]
ixxie has joined #nixos-dev
<aanderse>
that is true
<aanderse>
but many programs sometimes have to do that, and sometimes don't
<aanderse>
nice to be able to choose to take advantage (easily) if you can
<julm>
« “Ultimately I would like to see NixOS running in space,” says Christensen » :D
abathur has quit [Ping timeout: 256 seconds]
<cole-h>
gchristensen: Don't know if you know who the best person to notify is, but see above message by Taneb
<cole-h>
(if it hasn't already been brought to someone's attention)
<adisbladis>
garbas: ^
<samueldr>
Taneb: noted, there's an issue on the nixos-homepage tracker
<samueldr>
will look at it later today
<cole-h>
So there is. Thanks.
lovesegfault has quit [Quit: WeeChat 2.7.1]
justanotheruser has joined #nixos-dev
orivej has quit [Ping timeout: 246 seconds]
abathur has joined #nixos-dev
_ris has joined #nixos-dev
lovesegfault has joined #nixos-dev
Profpatsch has quit [*.net *.split]
Profpatsch has joined #nixos-dev
<domenkozar[m]>
anyone can recommend a cool game for Steam+NixOS?
<gchristensen>
is factorio over steam?
<cole-h>
Yes.
<domenkozar[m]>
I got quite excited today reading about vaccines for COVID-19, but then remembered that viruses mutate and there's a high chance there will be another strain...
<cole-h>
Also Rimworld and Stardew Valley
<domenkozar[m]>
now I need some games in my life :D
<infinisil>
domenkozar[m]: I just recently started playing The Binding of Isaac again, can very much recommend
<gchristensen>
the nintendo switch has been a real delight, but I can only play 10-15 minutes at a time :(
<domenkozar[m]>
:(
* domenkozar[m]
hugs gchristensen
<domenkozar[m]>
thanks all for recommendations!
<infinisil>
(Although I haven't played Binding Of Isaac on Steam on Linux. I'm using the Wii U version)
<domenkozar[m]>
I wanted to buy Alyx, but I'm not paying 1500 EUR for playing it
<domenkozar[m]>
btw is there anyone that plays Spring?
<aminechikhaoui>
gchristensen cool, I have a Nintendo switch that I don't use much, I'll look at those :)
<gchristensen>
great! yeah, they're fun
<emily>
infinisil: "unstructuredType = types.unspecified" will work fine for programs that have flexible config schemas, right? (e.g. wanting to support submodules/nested options that aren't necessarily predefined)
<{^_^}>
#75584 (by Infinisil, 13 weeks ago, open): Configuration file formats for JSON, INI, YAML and TOML
<emily>
will that work with arbitrarily nested undefined foo.bar.baz?
<infinisil>
emily: Yup, with a recursive type like the json or yaml one
<emily>
mhm
<infinisil>
We could even have `lib.recursiveAttrsOf (oneOf [ int str bool])` to allow for this
<emily>
I'm kind of confused why types.unspecified wouldn't work though
<infinisil>
Because it doesn't specify how multiple values should get merged together
<infinisil>
Though I guess with what we're doing this isn't as important anymore
<infinisil>
Wait no it is
<infinisil>
E.g. if you do `foo = [ 10 ];` in one module, and `foo = [ 20 ];` in another, if the type of `foo` is `types.unspecified`, the result will be `foo = [ 20 ]` and the other definition will be ignored
<infinisil>
The same happens with attribute sets I think
<emily>
oh, I assumed that types.unspecified just fails to merge :/
<infinisil>
That might be more sane behavior
<infinisil>
Oh wait
<infinisil>
Am I confusing this with types.attrs
<infinisil>
Ima test this real quick
<infinisil>
Hm no that works actually
<infinisil>
I confused this with types.attrs
<infinisil>
emily: But anyways, most of the time config files have a set of allowed types, and declaring those upfront allows the module system to error when a value isn't of a supported type
<emily>
infinisil: I guess, but I don't really feel like that's compelling when "anything YAML allows" is not really any more restrictive than Nix's data model?
<emily>
and is already enforced if you're converting the thing to YAML in your module anyway, so...
<infinisil>
Nix has functions at least
<emily>
I don't see the point, most of the time. it's going to be rare that you have no idea what options people are going to set, but are totally sure they're going to be integers or booleans and a string-valued configuration option will never ever be added
<infinisil>
And e.g. TOML doesn't have floats
<infinisil>
emily: It certainly allows better error messages. Instead of in the TOML case `json2toml` failing at build time with an obscure error, you get `value is not of type int str or bool`
<infinisil>
During eval time
ixxie has quit [Ping timeout: 246 seconds]
<emily>
sure
<FRidh>
I've been playing a bit with writing nix tutorials as jupyter notebooks and let users interactively use them through binder, have a look https://github.com/FRidh/nix-tutorials
<infinisil>
Oh and also, it allows for more complicated merge behavior. E.g. for INI we can use `coercedTo` to allow setting `foo = 10` and `foo = [ 20 ]` which then results in `foo = [ 10 20 ]` instead of an error that int's and lists' can't be merged together
ixxie has joined #nixos-dev
<infinisil>
And lists would be disallowed when the application doesn't allow for duplicate keys
<garbas>
Taneb: adisbladis: cole-h: tnx for the ping. i'm looking into it.
<cole-h>
garbas++
<{^_^}>
garbas's karma got increased to 7
<srk>
FRidh: pretty cool!
<srk>
FRidh: looks like ipython nix kernel would be handy
<FRidh>
srk: that would be quite nice indeed for learning the language
<FRidh>
suppose that's quite doable with Mic92's nix bindings
<FRidh>
for now, just writing the expressions to file and executing them should do fine
<samueldr>
tilpner: paste the full output as a comment please
<niksnut>
btw one interesting thing from the firefox network panel is that it shows packages-nixos-19.09.json being fetched twice, where the second one shows "3.81 MB (raced)" under the Transferred column
<samueldr>
I'm behind with my updates (firefox 72)
<samueldr>
(please don't scream at me)
<tilpner>
73 here, been waiting for 74 to reach unstable
<MichaelRaskin>
74, channels are a myth
<samueldr>
though it really looks like sometimes netlify serves it up through a straw
<samueldr>
AH!
<tilpner>
*suspense*
<samueldr>
content-length was filled on a fast response
ixxie has quit [Quit: Lost terminal]
<samueldr>
as was age
<samueldr>
(instead of 0)
<MichaelRaskin>
If it is caching, they time out pretty aggressively
<tilpner>
samueldr: You're right, is this something we can bring up with netlify?
<garbas>
are we building rpi images on hydra nowdays?
<{^_^}>
nixos-homepage#353 (by samueldr, 26 minutes ago, open): Package listing is extremely slow to load initially
<samueldr>
we might be causing Netlify's infra some grief by how we're serving our gzip
<samueldr>
our json packages listing**
<samueldr>
it takes 30~120 seconds to load sometimes, and when (I suspect it is) cached it's about instant
<garbas>
samueldr: oh i see. i'm going through all the issues in nixos-homepage at the moment and i have 10 of the open currently :)
<samueldr>
:)
<samueldr>
also, garbas++ for slaying the issues backlog on the nixos-homepage project
<{^_^}>
garbas's karma got increased to 8
<garbas>
samueldr: i wonder whay is causing the slowdown. maybe i was clearing cache on edges when merging PRs in last 4-6 hours.
<samueldr>
99% sure it's not it
<samueldr>
it comes and goes
<samueldr>
you didn't do anything that may have cleared caches in the last 20 minutes?
<samueldr>
anyway, even if it is, 2 minutes is not good
<samueldr>
it really feels like they don't cache the compressed data for long, and that something takes a bunch of time related to that
<garbas>
hmm, lets open a ticket and investigate properly.
<samueldr>
well, I did proper investigation, but yes, with Netlify would be desirable
<garbas>
i'll try to go over all tickets today and then call a day.
<samueldr>
an option to explore, but does start relying on another third-party service, is to use an actual indexing service for the packages listing, and do XHRs to it to get the data
<samueldr>
no up-front cost of loading the whole data set
<samueldr>
but multiple queries to a third party
<garbas>
i'm not going to say no, but i'm not a fan if we can solve this better with only a static site.
<garbas>
i'd definetly like to first dive into the code that parses json
<cole-h>
Any reason the urls are unquoted? I was under the impression all URLs should be quoted.
<adisbladis>
"Reasons"
<domenkozar[m]>
garbas++
<{^_^}>
garbas's karma got increased to 9
<domenkozar[m]>
for website efforts :)
<adisbladis>
cole-h: There has been talks about deprecating it for some time
<cole-h>
RFC 45, yeah
<cole-h>
Which is why I was curious if there was a reason, or if I should suggest that change
<samueldr>
cole-h: suggest it with RFC 45 link
<cole-h>
I think it's funny because he was the first reviewer of RFC 45 :')
Jackneill has joined #nixos-dev
justanotheruser has quit [Ping timeout: 246 seconds]
<gchristensen>
cole-h: if you can, can you make an assertion about if the URLs match the files they're in, and if the hashes are correct, as well?
<cole-h>
Would I do that by just running nixpkgs-review on it?
<gchristensen>
first, validate that the string between stdenv-linux/ and /0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778 matches the name of the .nix file it is contained (stdenv-linux/armv5tel/0eb0ddc4dbe3cd5415c6b6e657538eb809fc3778 is in armv5tel.nix)
<gchristensen>
second, clone the repo and: nix-build pkgs/stdenv/linux/bootstrap-files/armv{5tel,6l,7l}.nix then nix-build pkgs/stdenv/linux/bootstrap-files/armv{5tel,6l,7l}.nix --check